【问题标题】:Segger RTT control block is not identified by RTT viewerRTT 查看器未识别 Segger RTT 控制块
【发布时间】: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 的打印件

  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 步中看到打印,请帮助我继续。

【问题讨论】:

  • 你设置搜索范围了吗?设置RTTSearchRanges
  • 我发现在 JLinkGdbServer 运行时使用 RTT(通过 Segger SysView)非常间歇性地工作(

标签: arm cortex-m jtag segger-jlink


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2023-04-08
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多