HardFault_Handler BX LR
时间: 2023-12-31 16:23:14 浏览: 89
HardFault_Handler问题查找方法
5星 · 资源好评率100%
HardFault_Handler是一个处理器异常,当程序发生严重错误时,处理器会自动跳转到HardFault_Handler函数中执行。默认情况下,HardFault_Handler函数会进入死循环,导致程序无法继续执行。为了解决这个问题,可以将HardFault_Handler函数中的wait函数改为BX LR指令,以便在出错后直接返回到出错位置的下一条指令处继续执行程序。具体实现方法如下:
```c
__asm void wait()
{
BX LR //BX 无条件转移指令,返回到发生错误的后面代码中
}
void HardFault_Handler(void)
{
wait(); //将wait函数改为BX LR指令
}
```
这样,在程序发生错误时,处理器会跳转到HardFault_Handler函数中执行,然后立即返回到出错位置的下一条指令处继续执行程序,从而避免了死循环的问题。
阅读全文