RTT 查看器未识别 Segger RTT 控制块
Posted
技术标签:
【中文标题】RTT 查看器未识别 Segger RTT 控制块【英文标题】:Segger RTT control block is not identified by RTT viewer 【发布时间】:2020-07-03 15:00:26 【问题描述】:我正在尝试使用 Segger 的 RTT (Real Time Transfer), 但我无法在 RTT 查看器上看到任何输出。 我怀疑根本原因是 RTT 查看器未识别 RTT 控制块。
设置
主机 PC 使用 Seggers 连接 J-Link 调试器(JTAG 接口)到基于 ARM-CORTEX-M4 的板,如下所示:
[PC] <---- J-Link -----> [ generic CORTEX-M4 board]
我正在努力实现的目标
我正在尝试集成 Segger 特有的 RTT 功能,但我无法在主机 PC 上的 RTT 查看器软件中看到来自 RTT 的打印件
segger提供的集成代码
SEGGER_RTT_Conf.h
SEGGER_RTT_printf.c
SEGGER-RTT.c
SEGGER_RTT.h
在我的主文件中包含 SEGGER_RTT.h
并添加了一个调用
SEGGER_RTT_WriteString(0, "Hello World from SEGGER RTT!\r\n");
在main()
内。
使用Eclipse和arm-none-eabi-
工具链编译应用程序,以及
JLINK_GDBserverCL.exe
-- 调试服务器
arm-none-eabi-gdb
-- 调试客户端
Segger J-Link -- 硬件调试器(连接其 JTAG 接口)
在主机 PC 上使用 RTT 查看器软件在步骤 #2 中接收打印。
我希望在第 3 步中看到打印,请帮助我继续。
【问题讨论】:
你设置搜索范围了吗?设置RTTSearchRanges 我发现在 JLinkGdbServer 运行时使用 RTT(通过 Segger SysView)非常间歇性地工作( 【参考方案1】:您需要在调用 JLinkRTTViewer / JLinkRTTClient 时指定要连接的特定设备,或者您需要在 .map 文件中找到“_SEGGER_RTT”的内存地址并将其传递给工具。
【讨论】:
以上是关于RTT 查看器未识别 Segger RTT 控制块的主要内容,如果未能解决你的问题,请参考以下文章