重写 HardFault 函数需要先定义一个函数指针,然后将函数指针指向新的 HardFault 函数,最后需要重新配置向量表以使新的 HardFault 函数生效。具体代码如下:
```
typedef void (*pFaultHandler)(void);
void myHardFaultHandler(void)
{
// Your code here
}
void* myHardFaultHandlerPtr = (void*)myHardFaultHandler;
__ASM void HardFault_Handler(void)
{
TST LR, #4
ITE EQ
MRSEQ R0, MSP
MRSNE R0, PSP
MOV R1, LR
B (pFaultHandler)(myHardFaultHandlerPtr)
}
```
以上代码会将 HardFault 函数指向 myHardFaultHandler 函数。在 myHardFaultHandler 函数中,你可以编写自己的错误处理逻辑。
重写 HardFault 函数需要先定义一个函数指针,然后将函数指针指向新的 HardFault 函数,最后需要重新配置向量表以使新的 HardFault 函数生效。具体代码如下:
```
typedef void (*pFaultHandler)(void);
void myHardFaultHandler(void)
{
// Your code here
}
void* myHardFaultHandlerPtr = (void*)myHardFaultHandler;
__ASM void HardFault_Handler(void)
{
TST LR, #4
ITE EQ
MRSEQ R0, MSP
MRSNE R0, PSP
MOV R1, LR
B (pFaultHandler)(myHardFaultHandlerPtr)
}
```
以上代码会将 HardFault 函数指向 myHardFaultHandler 函数。在 myHardFaultHandler 函数中,你可以编写自己的错误处理逻辑。
举报