陈拓 2022/11/04-2022/11/04
1. 概述
在《WSL构建nRF5 SDK + ARM GCC开发环境 – RTT打印调试日志》
https://blog.csdn.net/chentuo2000/article/details/126104346?spm=1001.2014.3001.5502
一文中我们用J-Link RTT Viewer打印调试日志。
本文我们用J-Link RTT Client打印调试日志。
2. 代码
- 头文件
#include "SEGGER_RTT.h" // for SEGGER_RTT_printf
#include "SEGGER_RTT_Conf.h" // for SEGGER_RTT_printf
- 初始化
在main()中:
SEGGER_RTT_Init();
- 测试语句
int main(void)
{
// Initialize.
log_init();
SEGGER_RTT_Init();
NRF_LOG_INFO("Hello RTT!")
SEGGER_RTT_printf(0,"hello rtt!\r\n");
3. J-Link RTT Client + J-Link RTT Logger
3.1 打开J-Link RTT Client
J-Link RTT Client正在连接J-Link RTT服务,可以通过J-Link RTT Logger来连接服务。
3.2 打开J-Link RTT Logger
- 如图设置
设置项:
Device name (随便写)
Interface speed [kHz]. Default: 4000 kHz > 2000
RTT Channel name or index. Default: channel 1 > 0
其他回车默认。
J-Link RTT Logger建立连接:
- J-Link RTT Client通过J-Link RTT Logger连接J-Link RTT服务
连接后J-Link RTT Client输出打印信息。
观察日志输出发现NRF_LOG_INFO显示的信息有延迟,按照代码的顺序应该Hello RTT!显示在hello rtt!之前,但实际情况相反。
在实际使用时SEGGER_RTT_printf比较好用。
4. J-Link RTT Client + J-Link RTT Viewer
J-Link RTT Client也可以通过J-Link RTT Viewer建立连接。
- 打开J-Link RTT Viewer
OK建立连接。
-
打开J-Link RTT Client
J-Link RTT Client通过J-Link RTT Viewer连接J-Link RTT服务。
当J-Link RTT Client打开时J-Link RTT Viewer日志窗口不显示。
NRF_LOG_INFO有丢失显示信息的情况,有时不显示日志信息。
5. 有了J-Link RTT Viewer为什么还要用J-Link RTT Client
个人感觉J-Link RTT Client的可读性好一些,下面时同样的代码在J-Link RTT Viewer和J-Link RTT Client中的LOG显示对比:
参考文档
- SEGGER_RTT的使用
https://blog.csdn.net/a369000753/article/details/51192707 - SEGGER-RTT调试(代替串口printf输出)的使用方法
https://blog.csdn.net/yanyuzuixin/article/details/68953131?spm=1001.2101.3001.6650.2