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!!!!
竟然是无符号整型溢出。。。。。靠,官方的库也不靠谱,还好不是火箭发射程序。