一、引言
在嵌入式代码开发、调试中,为了及时了解当前程序的运行状态需要对外输出一系列的运行结果,通常采取的方式有串口输出、JLINK RTT Viewer,相比寄存器、变量值观察会显得内容更加直观,而且能够更好管理输出内容。本文以JLINK RTT Viewer调试信息输出为例,介绍RTT Viewer工具的安装、使用方法。
二、RTT Viewer
RTT Viewer是JLINK众多上位机软件中一种,专门用于接收和解析来自单片机的调试数据,它仅适用于SERGGER JLINK调试工具。以下以JLINK V8调试器,STM32L4开发板为例,IDE环境为MDK Keil。
2.1 RTT库文件移植
库文件默认位于以下目录
C:\Program Files\SEGGER\JLink_V796f\Samples\RTT

解压该压缩包,打开子目录RTT
![1734527732526411.png OQV35YW]@(1_R{D4R}L`OJP.png](http://uphotos.eepw.com.cn/1709346044/pics/1734527732526411.png)
以上3个文件用于导入工程目录
2.2 工程设置
Keil新建工程目录SEGGER_RTT,并导入以下源文件

工程添加RTT头文件路径
![1734528049975887.png (D)0%)$@[K79J1SE8@]_9Q7.png](http://uphotos.eepw.com.cn/1709346044/pics/1734528049975887.png)
2.3 程序调用
在main.c或main.h导入SEGGER_RTT.h头文件
/* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "stdio.h" #include "SEGGER_RTT.h" /* USER CODE END Includes */
SEGGER_RTT_printf函数调用
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_Delay(300);
SEGGER_RTT_printf(0, "Hello world !\n"); // 原接口
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
SEGGER_RTT_printf(0, "Hello STM32 !\n"); // 原接口
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}三、实验结果

增加字符颜色控制,字符颜色宏位于SEGGER_RTT.h
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_Delay(300);
SEGGER_RTT_printf(0, RTT_CTRL_TEXT_BRIGHT_MAGENTA"Hello world !\n"); // 原接口
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
SEGGER_RTT_printf(0, RTT_CTRL_TEXT_BRIGHT_GREEN"Hello STM32 !\n"); // 原接口
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}可以看到输出的内容被格式化指定颜色
![1734530274847395.png 6[J$7DQICB)$4]O%R_OY9ZU.png](http://uphotos.eepw.com.cn/1709346044/pics/1734530274847395.png)
其实RTT调试输出这个效果非常接近日志调试模式,但是需要做些封装修改。RTT库文件的移植对于JLINK所能支持的MCU是通用的,所以RTT库移植应该是不限制于STM32L4系列处理器,其他MCU也能够按照以上方法把RTT调试程序构建出来。以下继续完成
RTT Viewer工具的安装与配置(二)
【JLINK调试篇】RTT Viewer工具的安装与配置(二)-电子产品世界论坛
修改RTT源码-支持浮点数打印(三)
我要赚赏金
