keil遇到hardfault时原因的查找

【keil遇到hardfault时原因的查找】当硬件仿真遇到hardfault会进入响应的中断软件陷阱中void HardFault_Handler(void),此时通过view-registers中的
1 如果STACK=MSP,则查看SP的堆栈值,在memrory窗口输入sp的值回车,在地址内容之后的第21字节开始的4个字节为LR的值,在堆栈调用窗口右击选择show callee code,在反汇编窗口右击选择show code at address,输入LR的值然后回车,就是发生hardfault前的调用大致位置,仔细查找即可,
一般都是因为数组越界,访问了超过范围或者未定义的地址,或者利用字符串库函数或者内存操作库函数时出现的情况。
转载于:https://www.cnblogs.com/jieruishu/p/11126348.html

    推荐阅读