背景
调试mcu这一类程序时,时常遇到程序进入到hardfault中,下面分享一些常见引起hardfault的原因
常见原因
(1) 数组越界
(2)野指针
(3)任务堆栈溢出
(4)未初始化硬件却开始操作,或无
中断服务函数等(硬件IIC、串口,在上电/休眠唤醒后,未执行初始化,但是又去 发送/读取 等操作,导致死机
。)
常用调试方法
mcu在keil中的调试方法
-
在中断HardFault_Handler中的while()处打上断点,让程序执行到此处停止

-
在仿真状态下,调出Call Stack Window,可直接跳转到调用代码

结果如下:
