芯片串口不够用?教您如何使用SEGGER RTT打印LOG

Neulen 2019-07-30

应用场景

芯片串口不够用的情况下,可以通过JLINK从SWD接口实现打印调试LOG.

准备工作

1.准备JLINK仿真器或者JLINK OB仿真器,链接目标硬件。

2.下载JLink RTT软件包,一定要到官网下载最新版本。下面是下载页面地址。https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/下载后安装包如下图,当前最新版本为V648。

源码移植

1.双击安装Jlink_Windows_V648.exe, 安装完毕后,在其安装路径下找到RTT文件夹,文件夹内即为RTT芯片源码。如图

2.拷贝RTT文件夹至芯片程序工程目录,这里我们为OBD车联网开发板添加RTT功能。如图

3.用MDK打开工程,在工程目录下添加RTT源码。如图

4.添加RTT文件夹到编译器头文件路径。如图

5.添加完毕即可开始编程。编程所用的API函数可参阅官方文件UM08001官方下载页面地址https://www.segger.com/downloads/jlink

例子程序

通常我们打印LOG只需要一个输出函数即可,为了简单起见,这里只介绍三个函数完成我们的目的,三个函数功能如下图所示。更多函数详解请参阅UM08001文件。

演示程序用户键盘输入字母g, 则芯片输出Hello Word.下面是示例程序片段

定义RTT头文件

使用功能函数前,先调用SEGGER_RTT_Init()函数。SEGGER_RTT_GetKey()判断键盘输入值。SEGGER_RTT_printf() 向PC输出内容。和printf类似。 数值型可以进行格式控制输出。通常做调试LOG 我们只需要利用函数SEGGER_RTT_Init()和SEGGER_RTT_printf() 即可。

效果演示

开始菜单打开J-Link RTT Viewer.

输入字母g,接收到来自芯片的Hello Word响应。

随着串口模块的越来越丰富,芯片中的串口资源开始变得稀缺,在调试程序过程中能用调试接口则尽量用调试接口,腾出更多的串口去实现更多的功能。

地址:广西南宁市高新区高新4路9号和泰科技园综合楼212室
邮箱:neulen@neulen.cn
©2021-2023 广西南宁市尼尔伦科技有限公司 版权所有 桂ICP备16000953号-2