6552918 发表于 2022-11-9 17:34

【开源代码】-基于国民N32G45x系列MCU使用JLINK的RTT Viewer/logger/Client组件工具

本帖最后由 sy12138 于 2022-11-29 14:18 编辑

#申请原创# #技术资源#
@21小跑堂 @安小芯


测试条件

IDE
硬件
软件
其他

MDK 5.37
N32G457XVL-STB V1.1J-LINK V9
SEGGER-J-LINK V7.54d
 

J-Link RTT Viewer J-Link RTT Client J-Link RTT Logger是J-LINK工具包里的组件,都是依托RTT功能,实现在不同场景下的使用。

J-Link RTT Viewer的特点如下:

在JINK工具包的安装目录下能够找到RTT的源码包

解压后,源码分别存放在ConfigExamples RTT Syscalls这4个文件夹下。

Config内存放SEGGER_RTT_Conf.h文件,文件内是RTT的宏定义,可以根据情况修改(一般不建议修改)。

Examples内存放了4个例程文件,在不太熟悉RTT使用时,可以参考例程进行学习。

RTT内存放的是RTT实现的源码,所有使用的函数都是这些文件内实现和定义

Syscalls内实现了不依赖微库的printf,使用者可以根据自己的需求进行选择

接下来以MDK为例看一下RTT的移植过程,首先将RTT文件夹内的SEGGER_RTT.c和SEGGER_RTT_printf.c文件添加到工程(因为工程使用了微库,所以Syscalls内的文件就没再添加)。

在将头文件路径添加到功能中

移植完后,看一下RTT的API如下


部分常用的API说明如下:

配置RTT的宏定义说明如下:


我写了段简单的测试代码

使用RTT字符输出替换串口输出实现printf。

下面看看一下J-LINK RTT Viewer的用法(在调试模式和离线模式都可以使用,使用方法一样),打开J-LINK RTT Viewer

设置好芯片型号、接口和速度,OK。即可

运行后,在接收窗口就会有我成立里设置的打印信息,因为RTT接收时有缓存区的,可以将打开前的数据从缓存区获取并显示

在输入窗口内输入数据,在显示窗口会有数据输出

J-LINK RTT Viewer可以显示多个Terminal, All Terminal会显示所以的消息,在代码中也可以设置要将数据发送到不同的Terminal上。

这段代码是将数据发送到不同的Terminal,并设置数据颜色

Terminal 1的显示

Terminal 2的显示

Terminal 3的显示(蓝色字体和背景色太接近了,需要放大再看)

接下下来看一下J-LINK RTT Client的用法,这里要注意J-LINK RTT Client只能在仿真模式下使用!!!
打开J-LINK RTT Client,J-LINK RTT Client处于等待连接状态


进入仿真模式后

J-LINK RTT Client也支持输入,在窗口内使用键盘输入字符即可在窗口内看到打印返回的信息。
接下下来看一下J-LINK RTT Logger的用法,









如果想接收数据记录,直接回车即可。
在刚才显示的路径里可以找到保存的.log文件

保存的内容就是RTT的收发数据。

至此,在同一个代码下使用J-Link RTT Viewer J-Link RTT Client J-Link RTT Logger的方法就介绍完成了。
源码:
应用笔记:

视频地址:
https://www.bilibili.com/video/BV1UG4y1Z7js/?vd_source=379505f5c723a533bd2f5f97bf385084
https://www.bilibili.com/video/BV168411b7Bh/?vd_source=379505f5c723a533bd2f5f97bf385084
https://www.bilibili.com/video/BV1sY411Z7b9/


klbyf 发表于 2024-4-15 16:54

棒棒哒!
页: [1]
查看完整版本: 【开源代码】-基于国民N32G45x系列MCU使用JLINK的RTT Viewer/logger/Client组件工具