|
|
|
@ -48,3 +48,13 @@ void delay_us(int nus) |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
void hard_fault_handler_c(unsigned int *hardfault_args) |
|
|
|
{ |
|
|
|
unsigned int stacked_pc = hardfault_args[6]; // 程序计数器
|
|
|
|
unsigned int stacked_psr = hardfault_args[7]; // 状态寄存器
|
|
|
|
uint32_t sp = (uint32_t)hardfault_args; |
|
|
|
|
|
|
|
// 打印寄存器现场
|
|
|
|
log_a("====== HardFault Detected ======\nPC = 0x%08X, PSR= 0x%08X\nHFSR = 0x%08X\tCFSR = 0x%08X\nBFAR = 0x%08X\tMMFAR= 0x%08X\nsp = 0x%08X\n", |
|
|
|
stacked_pc, stacked_psr, SCB->HFSR, SCB->CFSR, SCB->BFAR, SCB->MMFAR, sp); |
|
|
|
} |
|
|
|
|