QSC6010调试flash遇到问题的小结

来源:互联网 发布:网络互动文案招聘 编辑:程序博客网 时间:2024/05/18 12:38

在QSC6010调试flash的时候,最开始用trace32单步跟踪,最开始跑到时钟初始化,只要写clk_sel_2的寄存器为0xa88a8,最后一位选择AHB的时钟源为PLL/4,就会跑飞,然后屏蔽掉此处的时钟初始化,就可以跑过去,但是在flash最会遇到flash_msm.c的943, flash的suspend_erase总是异常,有时候在suspend_erase中erase完成之后检查状态之前,用trace32停顿一下就可以了,但是尝试在此处加延时,只有加到clk_busywait(5300)以上才可以,通常代码中都是加的clk_busywait(1),似乎都没有什么思路,然后为了调试方便,从头开始使用jfalsh,然后保证jfalsh成功了,然后把jflash成功的flash驱动移动代码中,时钟,flash_erase之类的问题都好了。

1. 从以上方法,还是不能轻信别人修改的代码,可以自己从头开始,以免把别人的错误移留给自己,因为调试flash本身都是一个比较简单的问题。

2. 要保证工具的现代化,从最简系统开始,从而提高效率

3. 如果有成功的方案对比,可以事半功倍

4. 可能一开始时钟不正常,是由于flash驱动有问题,但会跑会,这样写入了错误的寄存器,如果没有办法,可以尝试把寄存器通过trace32 dump出来,如果时钟出问题,至少把时钟相关的问题dump出来,和跑得正常的flash在上电初始化的时候对比。

5.最好多几块板子同时对比避免单板的问题,虽然这次不是单板的问题,

原创粉丝点击