Real-Time Transfer (RTT) Viewer移植及使用说明

RTT Viewer是Segger公司提供的一个实时终端工具,用于通过J-Link、ST-Link等调试器与嵌入式系统进行交互,实现实时的数据交换和调试信息输出。RTT(Real-Time Transfer)技术允许开发者在不占用硬件UART资源的情况下,高效地从目标MCU向主机发送调试信息或接收控制命令。

API介绍

集成Segger RTT功能时,会用到Segger RTT库的API来实现数据的发送和接收。以下是一些常用的Segger RTT库API介绍:

  1. 初始化与配置API:
  • SEGGER_RTT_Init():初始化RTT系统。一般在程序启动时调用一次。
  • SEGGER_RTT_ConfigUpBuffer():配置一个上行(Target到Host)的RTT缓冲区(通道)。参数包括通道索引、缓冲区地址、大小、模式等。
  • SEGGER_RTT_ConfigDownBuffer():配置一个下行(Host到Target)的RTT缓冲区,如果双向通信需要。
  1. 数据发送API:
  • SEGGER_RTT_printf():格式化输出数据到RTT缓冲区,类似于C语言的printf,是最常用的输出函数。
  • SEGGER_RTT_Write():直接写入原始数据到RTT缓冲区,适用于非字符串数据的传输。
  • SEGGER_RTT_SetTerminal():设置当前使用的终端,如果配置了多个终端。
  1. 数据接收API(如果支持下行通道):
  • SEGGER_RTT_Read():从下行缓冲区读取数据。
  • SEGGER_RTT_GetKey():在支持的环境中,可以从RTT接收键盘输入(如果下行通道配置并启用)。
  1. 控制与状态API:
  • SEGGER_RTT_IsTerminalValid():检查指定的终端是否有效。
  • SEGGER_RTT_GetBufferInfo():获取缓冲区的状态信息,如已满、空闲空间大小等。
  1. 高级或特殊用途API:
  • SEGGER_RTT_Syscalls():在某些特定环境下,用于替换系统调用,比如在RTOS中。
  • SEGGER_RTT_LOCK()SEGGER_RTT_UNLOCK():提供简单的锁定机制,用于防止多线程环境下的并发访问问题。

移植

  1. 获取RTT库:确保你的项目中包含了Segger的RTT库文件,这通常包括SEGGER_RTT.h头文件和相应的实现文件(如SEGGER_RTT.c)。这些文件可能随J-Link软件套件提供,或者你需要从Segger的官方网站下载。在这里插入图片描述

  2. 初始化RTT:包含头文件#include "SEGGER_RTT.h"在你的程序代码中,调用适当的初始化函数来设置RTT。例如,使用SEGGER_RTT_Init()初始化RTT系统(可以不初始直接调用打印接口也会初始化)。示例代码:

        SEGGER_RTT_Init();
    
  3. 配置通道:通过调用如SEGGER_RTT_ConfigUpBuffer()之类的函数来配置RTT的输出缓冲区(通道)。你可以设置多个通道,每个通道有不同的用途,如日志、调试信息等(默认初始化了0通道,需要使用其他通道需要进行配置缓存区)。

  4. 使用RTT输出:在你的代码中,使用SEGGER_RTT_printf()或其他RTT提供的函数来代替传统的printf,将数据发送到RTT Viewer(默认Terminal 0显示)。

    SEGGER_RTT_WriteString(0, "SEGGER Real-Time-Terminal Sample\r\n\r\n");
    SEGGER_RTT_WriteString(0, "###### Testing SEGGER_printf() ######\r\n");
    SEGGER_RTT_printf(0, "RTT Viewer start\r\n");
    

rtt viewer使用方法

1.安装RTT Viewer
  • 下载安装Segger J-Link软件套件:首先,确保从Segger的官方网站下载并安装最新版本的J-Link软件套件,因为RTT Viewer通常是作为该套件的一部分提供的。
  • 启动RTT Viewer:安装完成后,可以从J-Link安装目录下找到并启动RTT Viewer应用程序。
2. 连接到目标硬件
  • 确保硬件连接:使用J-Link或其他兼容的调试器将电脑与目标嵌入式硬件相连。

  • 打开RTT Viewer:在RTT Viewer界面,通常它会自动尝试连接到已连接的硬件上的RTT服务。

  • RTT控制块的地址:在编译工程中搜索_SEGGER_RTT查看地址。在这里插入图片描述

  • 手动配置(如有必要):如果自动连接失败,你可能需要手动配置连接设置,如选择正确的CPU类型、指定RTT控制块的地址等。在这里插入图片描述

3.使用shell类工具连接

在这里插入图片描述

4.打印信息查看

JLINK RTT Viewar

在这里插入图片描述

MobaXterm

在这里插入图片描述

  • 25
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值