void HardFault_Handler(void)
{
static uint32_t r_sp ;
char sPoint[2]={0};
int i=3;
if(__get_PSP()!=0x00)
r_sp = __get_PSP();
else
r_sp = __get_MSP();
r_sp = r_sp+0x10;
printf("HardFault");
printf("%s","0x");
for(i=3;i>=0;i--){
HexToString((uint8_t*)(r_sp+i+24),sPoint,2);
printf("%s ",sPoint);
}
printf("/r/n");
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);
printf("HardFault_Handler 20%02d-%02d-%02d %02d:%02d:%02d.%03d:\r\n",RTC_DateStructure.RTC_Year,RTC_DateStructure.RTC_Month,\
RTC_DateStructure.RTC_Date,RTC_TimeStructure.RTC_Hours,RTC_TimeStructure.RTC_Minutes,RTC_TimeStructure.RTC_Seconds,gTimerMs);
printf("Function:HardFault_Handler 文件:%s 行:%d\r\n",__FILE__,__LINE__ );
return;
}
}
STM32出现hardfault打印错误程序地址
最新推荐文章于 2024-06-18 19:59:13 发布