首页 > 解决方案 > RTT 查看器未识别 Segger RTT 控制块

问题描述

我正在尝试使用 Segger 的 RTT(实时传输),但在 RTT 查看器上看不到任何输出。我怀疑根本原因是 RTT 查看器未识别 RTT 控制块。

设置

主机 PC 使用 Seggers 的 J-Link 调试器(JTAG 接口)连接到基于 ARM-CORTEX-M4 的板,如下所示:

[PC] <---- J-Link -----> [ generic CORTEX-M4 board]

我想要达到的目标

我正在尝试集成 Segger 特有的 RTT 功能,但我无法在主机 PC 上的 RTT 查看器软件中看到来自 RTT 的打印件,方法是

  1. segger提供的集成代码

    SEGGER_RTT_Conf.h
    SEGGER_RTT_printf.c
    SEGGER-RTT.c
    SEGGER_RTT.h
    
  2. 包含SEGGER_RTT.h在我的主文件中并添加了一个调用

    SEGGER_RTT_WriteString(0, "Hello World from SEGGER RTT!\r\n");
    

    main()

  3. 使用 Eclipse 和arm-none-eabi-工具链编译应用程序,以及

    • JLINK_GDBserverCL.exe-- 调试服务器
    • arm-none-eabi-gdb -- 调试客户端
    • Segger J-Link -- 硬件调试器(连接其 JTAG 接口)

    在主机 PC 上使用 RTT 查看器软件在步骤 #2 中接收打印。

我希望在第 3 步中看到打印,请帮助我继续。

标签: armcortex-mjtagsegger-jlink

解决方案


您需要在调用 JLinkRTTViewer / JLinkRTTClient 时指定要连接的特定设备,或者您需要在 .map 文件中找到“_SEGGER_RTT”的内存地址并将其传递给工具。


推荐阅读