本帖最后由 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的方法就介绍完成了。
源码:
Nationstech.N32G45x_Library.2.1.0.zip
(3.71 MB)
应用笔记:
视频地址:
|