HardFault_Handler调试及问题方法
接下来在keil_MDK工程中,编译代码,并debug,之后全速运行,可以看到如下图所示程序进入HardFault异常。
如下所示我们找到SP寄存器,0x20001F40即为栈地址,栈里面的值依次为R0~R3、R12、PC(Return address)、xPSR(CPSR或SPSR)、LR。
在Memory1中搜0x20001F40
注意两红色方框(有两个连续08开头的,这是两个地址,第一个地址是卡住的具体位置,第二个是卡住的具体函数)在show code at address中输入0x08000140(注意从后面开始),点击go to即找到出现异常的代码段附近下面要执行的程序。
点击黄色,就跳到了卡住的具体位置