问题描述
使用 KEIL5 进行软件仿真调试时,进不去 main() 函数,按下 STOP 后再按下 RUN,发现有时候卡在 HardFault_Handler(),有时候却又卡在 UsageFault_Handler()。
解决历程
一般来说,如果程序真的有问题,出现的异常应该是一样的,而不会一会 HardFault 一会 UsageFault,于是我开始检查代码,这里贴上一个我认为很有用的帖子:
【KEIL】发生硬件错误卡在HardFault_Handler()的解决办法
但是操作了一下,没有找到问题,我又想到是不是因为工程路径中包含中文字符,于是一通修改,无果。
解决方式
其实这就是使用 KEIL5 仿真时的一个 bug,关掉所有打开的 KEIL 工程,重启 KEIL 即可,后面我又遇到仿真时 Logic Analyzer 窗口显示异常,也是重启即可。
原因
此 BUG 可能是我使用是 KEIL5 与 KEIL4 的共存版导致的。
后记
重启解决 99% 的问题
重买解决 100% 的问题(狗头)