又一个碉堡的BUG

flash操作导致系统宕机。。。奇哉怪哉。。。。

       本以为又是clock的问题,遂将system clock换成osc clock,依旧宕机。

       watchdog重启!!!第六感告诉哥,一定是哪里访问出错进入interrupt死循环。。。(最有可能的就是flash address 出错,导致bus fault...)

       寄出杀手锏,重定位了bus fault和flash ctl interrupt。。。

       很好,死在了flash ctl interrupt中。。。(看来极有可能是flash program protection被打开了,导致的访问失败)

      又翻了遍文档,默认竟然是可读写擦除。。。。。  遂又打印了flash ctl register,结果显示是读写可擦除。。

      没办法了,只好再次在Interrupt中精确定位到底是什么操作导致的。。。

      想不到竟然是data pragram compete 中断-->意味着数据操作成功。。。。

       哎。。。 大意啦,大意啦。。。。

       进入interrupt后竟然没有清除interrupt status bit。导致cpu 中断控制单元检查到status bit后重复进入int routine.....造成系统假死。。。。

       修改后依旧宕机。。。。shit.....

       但是明显是死在了driver中。

       Oh,my lady gaga!!!! 

       竟然是无符号整型溢出。。。。。靠,官方的库也不靠谱,还好不是火箭发射程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值