QSC6010调试flash遇到问题的小结

在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.最好多几块板子同时对比避免单板的问题,虽然这次不是单板的问题,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值