SEGGER 的实时传输 (RTT) 是一种用于嵌入式应用程序中交互式用户 I/O 的技术。它以非常高的性能结合了 SWO 和半主机的优势。但是在笔者使用时(RTT v758版本),其暂时不支持浮点数打印的功能。我们可以通过修改源码添加该功能。 跳转到RTT>SEGGER_RTT_printf.c>SEGGER_RTT_vprintf(unsigned, const char*, va_li...
今天的内容就是把RTT Client嵌入到VS Code中。 最终效果:只插一个Jlink,使用SWD接口,无需占用串口,无需SWO引脚,实现日志printf输出(带颜色)如下: 1 为什么需要日志 虽然利用断点、调用堆栈和变量窗口能很方便地进行调试,但是在一些情况下,是不允许打断点的,例如无人机、蓝牙/WiFi协议栈等。一旦程序暂停,就会造成...
if (SEGGER_RTT_HasKey()) /* 判断接收缓冲区中是否有数据 */ { GetKey = SEGGER_RTT_GetKey(); /* 从接受缓冲区中取出一个字符 */ SEGGER_RTT_SetTerminal(1); SEGGER_RTT_printf(0, "GetKey = %c\r\nHello world! Today is %.4d-%.2d-%.2d", GetKey, YEAR, MONTH, DAY); } } retu...
将_SEGGER_RTT变量放置到默认的扫描空间内,这样可有效避免打开RTTViewer,却没有任何打印信息的问题 IAR下的配置如下截图, gcc工具链下操作类似,MDK的连接脚本的语法没研究过~~~ 5.RTT的源码中没有实现类似printf("%f",...)打印浮点数,如实在需要打印浮点数,需修改RTT源码,其中一个关键点是理解C语言不定数量参...
SEGGER_RTT_printf(0,'Times %d\r\n',++u32Counter);u32Counter 这个变量每次打印完之后都会递增。我们把程序编译,然后进⼊调试模式,在J-Link安装⽬录下打开J-link RTT Client(也可以使⽤JLinkRTTViewer查看),可以看到如下图所⽰的信息。(1)J-link RTT Client (2)JLinkRTTViewer 如果已经正常...
include文件夹也需要加入到 C/C++的的环境变量中,这样可以在工程中比较方便的引用。 现在你就可以用如下的代码就行打印的测试了: void SEGGER_RTT_Test(void){ SEGGER_RTT_Init(); uint32_t count = 10; while (count--) { SEGGER_RTT_printf(0, "system init ok\r\n"); }} ...
所谓侵入式,即需要编写额外代码,将想要跟踪的信息通过组件API写入跟踪Buffer。比如RTT,需要将SEGGER_RTT...
将_SEGGER_RTT变量放置到默认的扫描空间内,这样可有效避免打开RTTViewer,却没有任何打印信息的问题 IAR下的配置如下截图, gcc⼯具链下操作类似,MDK的连接脚本的语法没研究过~~~5.RTT的源码中没有实现类似printf("%f",...)打印浮点数,如实在需要打印浮点数,需修改RTT源码,其中⼀个关键点是理解C语⾔...
stm32实现printf打印log的几种办法 的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要像SWO那样需要MCU上面额外的引脚,而是使用标准的调试接口。J-Link驱动4.90之后的版本都有这个软件哦。具体操作笔者未测试...安装的Jlink目录找到J-linkRTTClient.exe(还有其他查看log工具),打开此程序,打印的信息即...