STM32程序死在BEAB BKPT 0xAB解决办法
shaynerain 2018-11-27 21:49:26 1117 已收藏 2
版权
最近做STM32无线IAP,调试时发现的问题,把程序改回原启动地址时候出现死机情况,仿真后发现程序一直卡死在 BEAB BKPT 0xAB,找到几个解决办法
-
MDK选择设置,TARGET ,勾选Use MicroLIB
2、直接复制进去以下代码,
声明一下,这个引用的是正点原子的
-
#if1
-
#pragmaimport(__use_no_semihosting)
-
//标准库需要的支持函数
-
struct __FILE
-
{
-
int handle;
-
/* Whatever you require here. If the only file you are using is */
-
/* standard output using printf() for debugging, no file handling */
-
/* is required. */
-
};
-
/* FILE is typedef’ d in stdio.h. */
-
FILE __stdout;
-
//定义_sys_exit()以避免使用半主机模式
-
_sys_exit(int x)
-
{
-
x = x;
-
}
-
//重定向fputc函数
-
//printf的输出,指向fputc,由fputc输出到串口
-
//这里使用串口1(USART1)输出printf信息
-
int fputc(int ch, FILE *f)
-
{
-
while((USART1->SR&0X40)==0);//等待上一次串口数据发送完成
-
USART1->DR = (u8) ch; //写DR,串口1将发送数据
-
return ch;
-
}
-
#endif
3、如果还没有解决,也有可能你程序掉进某个死循环,或者掉进某个中断中,需要好好检查一下