在程序中加入下面程序试试, 在其中使用PC和LR记录出错程序地址,LR表示程序返回地址,也就是实际出错地址,比如
void HardFault_Handler(void)
{
sp = _get_MSP();
lr = *(uint32_t*)(sp+20);
pc = *(uint32_t*)(sp+24);
While(1);
}
void BusFault_Handler(void)
{
While(1);
}
void UsageFault_Handler(void)
{
While(1);
}
如果程序进入任意一个,尝试使用此方法分析。 |