硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1023|回复: 6
收起左侧

[MDK] 请教MDK下使用SEGGER-RTT的问题

[复制链接]

59

主题

284

回帖

461

积分

高级会员

积分
461
发表于 2022-6-29 09:40:15 | 显示全部楼层 |阅读模式
在使用SEGGER-RTT时,怎么样可以条件开关调试输出呢?
在调试的时候,可能需要SEGGER-RTT,但调试完成后想关闭,但又不想一个一个删除,第一想到的就是定义一个宏,如果调试打开,就把宏定义转到SEGGER_RTT_printf函数,如果调试关闭,就将宏定义为空,但这样有个问题,SEGGER_RTT_printf函数传递的参数是不定长的,这个有什么好的办法吗?
回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2022-6-29 13:11:26 | 显示全部楼层
这个功能真不耗什么资源。
回复

使用道具 举报

3

主题

70

回帖

79

积分

初级会员

积分
79
发表于 2022-6-29 15:02:14 | 显示全部楼层
#if LOG_ENABLE
#define LOG_RAW(... ) SEGGER_RTT_printf(0, ##__VA_ARGS__)
#else
#define LOG_RAW( ... )
#endif

#if LOG_ENABLE
#define LOG_INFO(format, ... ) SEGGER_RTT_printf(0, "[INFO][%s][%d]:"format, __FUNCTION__,__LINE__,##__VA_ARGS__)
#else
#define LOG_INFO( ... )
#endif
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2022-6-29 15:54:13 | 显示全部楼层
turnip 发表于 2022-6-29 15:02
#if LOG_ENABLE
#define LOG_RAW(... ) SEGGER_RTT_printf(0, ##__VA_ARGS__)
#else

看一些SDK就这样搞得。
回复

使用道具 举报

3

主题

70

回帖

79

积分

初级会员

积分
79
发表于 2022-6-29 16:51:37 | 显示全部楼层
查一下__VA_ARGS__使用方法就知道了。
回复

使用道具 举报

59

主题

284

回帖

461

积分

高级会员

积分
461
 楼主| 发表于 2022-6-29 20:02:24 | 显示全部楼层
turnip 发表于 2022-6-29 15:02
#if LOG_ENABLE
#define LOG_RAW(... ) SEGGER_RTT_printf(0, ##__VA_ARGS__)
#else

还有这妙用啊,宏定义的参数也可以变长啊?
回复

使用道具 举报

0

主题

58

回帖

58

积分

初级会员

积分
58
发表于 2022-10-12 17:59:38 | 显示全部楼层
RTT代码版本和上位机软件版本是不是要用一样的版本?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-11 04:29 , Processed in 0.263070 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表