| 不像是软件问题,如果软件出问题了,会进入各种fault向量,R14(LR)指示的是出错的原始位置。现在所有寄存器都是零,软件问题做不到这一点,一定是硬件问题,比如PCB画的稀巴烂,没有电源去耦电容等等…… |
| 暂停 一下看看程序停在 哪儿 一般都是越界闹的 |
天ノ忆 发表于 2022-3-17 19:05 死机怎么定位到出错处 |
| 出错的地方会显示,蓝色小箭头是吧 |
| 在HardFault_Handler的while(1)那里打断点,当程序停止时,查看汇编代码,看看上一条运行的是什么代码,或者“Call Stack Window”弹出“Call Stack + Locals”对话框。然后在对话框中右键选择“Show Caller Code”,就会跳转到出错之前的函数处,一般这个错误跟内存有关,看看你的数组定义或者调用的时候有没有问题 |
| HardFault_Handler 怎么定位到函数中 |
| 排查法,在主程序中一个一个放开你的程序,看看添加哪一段出现死机现象,如果是跑了很多个小时才出现死机,肯定之前的备份程序有没死机的,进行对比 |