一、引言
在嵌入式代码开发、调试中,为了及时了解当前程序的运行状态需要对外输出一系列的运行结果,通常采取的方式有串口输出、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
以上3个文件用于导入工程目录
2.2 工程设置
Keil新建工程目录SEGGER_RTT,并导入以下源文件
工程添加RTT头文件路径
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 */ }
可以看到输出的内容被格式化指定颜色
其实RTT调试输出这个效果非常接近日志调试模式,但是需要做些封装修改。RTT库文件的移植对于JLINK所能支持的MCU是通用的,所以RTT库移植应该是不限制于STM32L4系列处理器,其他MCU也能够按照以上方法把RTT调试程序构建出来。以下继续完成
RTT Viewer工具的安装与配置(二)
【JLINK调试篇】RTT Viewer工具的安装与配置(二)-电子产品世界论坛
修改RTT源码-支持浮点数打印(三)