QSC6010调试flash遇到问题的小结
2011-04-27 22:58
330 查看
在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.最好多几块板子同时对比避免单板的问题,虽然这次不是单板的问题,
1. 从以上方法,还是不能轻信别人修改的代码,可以自己从头开始,以免把别人的错误移留给自己,因为调试flash本身都是一个比较简单的问题。
2. 要保证工具的现代化,从最简系统开始,从而提高效率
3. 如果有成功的方案对比,可以事半功倍
4. 可能一开始时钟不正常,是由于flash驱动有问题,但会跑会,这样写入了错误的寄存器,如果没有办法,可以尝试把寄存器通过trace32 dump出来,如果时钟出问题,至少把时钟相关的问题dump出来,和跑得正常的flash在上电初始化的时候对比。
5.最好多几块板子同时对比避免单板的问题,虽然这次不是单板的问题,
相关文章推荐
- Linux环境下段错误的产生原因及调试方法小结 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是
- SDRAM调试遇到的问题小结 -- Quartus II & Verilog HDL
- 调试STM32 time遇到的问题小结
- 调试JavaScript中正则表达式中遇到的问题
- 调试铁通与联通专线遇到的问题
- 代码调试遇到的问题
- 调试win7虚拟机时遇到的问题(转载)
- 真机调试iOS遇到的问题
- tx1调试车辆检测遇到的问题
- 用ads调试时遇到的一些问题
- WinCE 调试某手写输入法时遇到的加载手写库失败的问题
- 调试I2C遇到的一些问题
- MySQL版本升级遇到的问题小结
- 第一次用PHP做网站遇到的问题小结
- Jqgrid中使用日期控件datepicker遇到的问题小结
- Android studio 3.0上进行多渠道打包遇到的问题小结(超简洁版)
- 调试win7+pyhton+keras+mnist过程中遇到的问题
- QT+opencv+摄像头调试过程中遇到的问题
- VC调试遇到的问题
- yii-debug-toolbar调试工具[安装中可能遇到的问题,汇总、分析、解决]