本文参考博客:https://blog.youkuaiyun.com/Mculover666/article/details/106373147 ,
1、下载代码:https://github.com/armink/CmBacktrace
2、将cm_backtrace.c相关代码添加到工程中;
3、在interrupt_gr55xx.c中 修改 HardFault_Handler 函数,异常时跳转到cm_backtrace_fault 执行;
SECTION_RAM_CODE __asm void HardFault_Handler (void)
{
IMPORT cm_backtrace_fault
MOV r0, lr ; get lr
MOV r1, sp ; get stack pointer (current is MSP)
BL cm_backtrace_fault
Fault_Loop
BL Fault_Loop ;while(1)
ENDP
END
}