打印
[应用相关]

printf在keil5的AC6编译器下运行进入死循环,怎么回事?

[复制链接]
869|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
七毛钱|  楼主 | 2021-5-17 15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

使用STM32F769I-DISCO板运行LwIP_HTTP_Server_Socket_RTOS的示例,在程序中使用宏LCD_UsrLog ("  State: Ethernet Initialization ...\n");把信息显示在屏幕上,用AC5编译时运行正常,但是编译速度太慢;而用AC6编译时,速度快,但运行出现死循环(更改库编译都能通过),这个宏定义是:
#define  LCD_UsrLog(...)    do { \
                                           LCD_LineColor = LCD_LOG_TEXT_COLOR;\
                                                  printf(__VA_ARGS__);\
                                              } while (0)

向大侠们请教怎么解决?

使用特权

评论回复
沙发
Undshing| | 2022-12-17 17:24 | 只看该作者
这个while(0)有什么用啊?

使用特权

评论回复
板凳
AloneKaven| | 2022-12-18 18:48 | 只看该作者
这个do while的条件是不是永远不成立啊

使用特权

评论回复
地板
偷吻月亮| | 2022-12-25 06:52 | 只看该作者
正常来说,你用AC5AC6是不兼容的,所以可能会导致这个问题发生

使用特权

评论回复
5
占得人间第一春| | 2022-12-25 07:24 | 只看该作者
你可以用AC5编译,但是不要选择Use Cross-Module Optimization

使用特权

评论回复
6
岁月反驳| | 2022-12-25 07:56 | 只看该作者
解决不了,一般都是编译的时候,喝杯茶

使用特权

评论回复
7
討厭和人归類| | 2022-12-25 08:28 | 只看该作者
你这为啥能进到死循环里呢,是把printf去掉试试?

使用特权

评论回复
8
极客晨星| | 2022-12-25 09:00 | 只看该作者
怎么会进到LCD的用户LOG之中呢?

使用特权

评论回复
9
晚晚皆安| | 2022-12-25 09:32 | 只看该作者
你把这段代码屏蔽试试,看看能不能正常运行

使用特权

评论回复
10
一枝香| | 2022-12-25 10:04 | 只看该作者
速度慢可以提升电脑的配置的,加个固态啥的就应该好了吧

使用特权

评论回复
11
銀河| | 2022-12-25 10:36 | 只看该作者
我还没用过AC6呢,话说AC5怎么转换到AC6上啊

使用特权

评论回复
12
笨蛋无需搭理| | 2022-12-25 11:08 | 只看该作者
为啥编译速度慢,我感觉我的程序编译速度挺快的,是不是你电脑配置不够了

使用特权

评论回复
13
风吻过你的不羁| | 2022-12-25 11:40 | 只看该作者
按理来说,也不能在这里出现死循环啊,都while0)这是啥操作

使用特权

评论回复
14
SantaBunny| | 2023-2-19 22:21 | 只看该作者
不应该啊,你加个固态试试看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

342

主题

2359

帖子

4

粉丝