摘要:调试比较大的STM32程序时,使用仿真器下载速度会比串口下载快很多,调试起来也非常方便。当您使用仿真器调试STM32时,有时会遇到突然不能正常烧写的情况发生。本来刚才还好好的,可突然就不能烧写了。一般发生的错误是Flash Download failed--"Cortex-M4”,Invalid ROM Table。当你试遍全网所有的解决方法都不能解决的时候,一定要再看看板子是否供电了。尽管是低级错误,但是很有可能会发生,尤其是在攻关、熬夜、头脑不太清醒的时候。
目录
一、故障发生时的软硬件
硬件:正点原子STM32F429开发板,STLINK-V2仿真器。
软件:WIN7 X64,MDK V5。
程序是前几天刚调试好没问题的。
二、故障描述
当下载程序到开发板时,提示Flash Download failed--"Cortex-M4”。
紧接着出现nvalid ROM Table
三、试过之后不管用的方法
1.重新设置CPU。最开始以为是CPU型号设置错误,于是重新设置,严格对照芯片标识来设置。结果还是不能解决。
2.卸载仿真器驱动。把仿真器驱动卸载之后,重装。还是不行。
3.清除芯片。使用FlyMcu工具,对芯片进行清除。注意这个软件是通过USB串口与STM32连接的,并不是利用仿真器。擦出芯片之后重新用仿真器下载,还是不行。
可是通过FlyMcu却可以烧录。证明芯片是没有损坏的。
4.尝试短接BOOT。按照下图所示的方法,设置晶振、短接BOOT等,都不行。
四、原因分析:
如果不考虑低级错误,只是在各种设置或者网络搜索中寻找答案,很有可能都来自于keil官网的答案。官网是这样解释的。解决方法就是设置一些参数。但是嵌入式系统出了问题,原因是多方面的,当按照这种设置或者擦出芯片的方式来解决,还是不行的话,那么类似的解决方法可以不再看,而需要从硬件部分的开头开始查找了。
五、解决方法
在本例中,解决的方法很简单:给开发板上电。
方法很笨,但是能够解决问题的方法就是好方法。
心得:
其实最想要跟大家分享的就是
1.具体问题具体分析,不要盲目依赖网络搜索
2.遇到问题首先从低级错误开始排查
3.用对比法逐个排除可能的故障
4.最笨的方法是最快的,慢就是快。
1024,节日快乐!但愿今天10点24之前能睡觉,不再熬夜。