0x08002628 BEAB BKPT 0xAB0, 死循环
来源:互联网 发布:打击网络违法犯罪 编辑:程序博客网 时间:2024/05/18 02:39
http://www.stmsky.com/bbs/thread-2908-1-1.html
以前使用printf 都很顺利,程序可以很自然地通过串口输出字符串,最近使用printf时,程序总是进不去,就是连MAIN函数都不会执行了,只要把printf屏蔽了,软件就可以正常运行
使用的是STM32芯片
仿真的时候程序就是一直在:
0x08002628 BEAB BKPT 0xAB0,
动都不动
这个问题的解决办法是:
在项目设置中 选择 target选项卡 然后选择 USE Mcrolib 这样就可以了
就是说要用printf函数时要用"Use MicroLIB"库,即: C 微库(microlib)
还有一种方法:
标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数,printf输出到串口,只需将putc里面的输出指向串口就行,另外在使用标准库函数时必须避免半主机模式,方法是在main文件里加代码:_sys_exit(int x)
{
x = x;
}
但是在使用时务必注意,正常情况下以上两种方法都能解决问题,如果还是解决不了就要检查你的程序中有什么其他的代码影响了,
我的情况是,单独打印完全正常,一加到我的其他程序中就会停在
0x08002628 BEAB BKPT 0xAB0, 这个地方,后来才发现,我的main.c中
有一个条件编译
#ifdef USE_FULL_ASSERT
如下:
- #ifdef USE_FULL_ASSERT
- /**
- * @br
- ief 当程序出错时,返回出错的文件名及在源程序中的行号.
- * @param file: 指向文件名的指针
- * @param line: 在源程序中的行号
- * @retval : None
- */
- void assert_failed(uint8_t* file, uint32_t line)
- {
- /* 用户可以在此根据需要添加内容,例如报告出错的文件名和行号,
- ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
- /* 无限循环 */
- while (1)
- {
- }
- }
- #endif
- /*******************************************************************************
- * Function Name : PUTCHAR_PROTOTYPE
- * Description : Retargets the C library printf function to the USART.
- * Input : None
- * Output : None
- * Return : None
- *******************************************************************************/
- PUTCHAR_PROTOTYPE
- {
- /* Write a character to the USART */
- USART_SendData(USART1, (u8) ch);
- /* Loop until the end of transmission */
- while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET) {
- }
- return ch;
- }
#ifdef USE_FULL_ASSERT
.................................
#endif
中间了,而 USE_FULL_ASSERT 又没有定义过,所以出现了没法解决的问题,在这里提醒大家注意,遇到问题一定要认真的检查了!
- 0x08002628 BEAB BKPT 0xAB0, 死循环
- 死循环在BEAB BKPT 0xAB汇编的解决办法
- 死循环在BEAB BKPT 0xAB汇编的解决办法
- 死循环在BEAB BKPT 0xAB汇编的解决办法
- STM32程序死在BEAB BKPT 0xAB解决办法
- 【MDK调试经验】 程序死在BEAB BKPT 0xAB汇编的解决办法
- STM32仿真停在0x08001460 BEAB BKPT 0xAB这个_sys_open代码下
- 【不算奇葩的问题】MDK调试stm32遇到BEAB BKPT 0xAB,重定向printf的BUG
- 如何解决程序跳到0x08001460 BEAB …
- Stm32 debug停留在"BKPT 0xAB"或者"SWI 0xAB"的解决办法。
- 死循环耗死cpu,sleep(0)无用,一定要有个时间间隔。
- 死循环
- 死循环
- 死循环
- 死循环
- 死循环
- 死循环
- 死循环
- AsyncTask 用法
- c++中的 mutable 关键字
- MySQL 数据库连接(jdbc连接)
- java网络编程
- mac下安装iso软件
- 0x08002628 BEAB BKPT 0xAB0, 死循环
- Win8MetroC#数字图像处理--2.1图像灰度化
- iphone开发为视图加边框
- Yii源码分析——yii整个工作流程
- 调试远程线程注入的dll(Windbg)
- 再谈使用UrlRewrite时修改form的action属性问题
- 解决framework层修改导致无法开机
- 迷宫算法实现(php)
- hdu 2222