# RTT-Assistant **Repository Path**: 292812832/RTT-Assistant ## Basic Information - **Project Name**: RTT-Assistant - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-05-15 - **Last Updated**: 2026-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RTT Assistant ## 介绍 - **RTT Assistant**是一个功能丰富的RTT(Real Time Transfer)调试工具,通过J-Link或DAP-Link/ST-Link等调试器与MCU进行RTT通信。 - **RTT Assistant对标Segger**的相关产品,主要**扩展多种调试**支持和**人性化功能**的支持。 - 目前测试和验证了3种调试器:**J-Link、DAP-Link、ST-Link**。
## 快速开始 1. 双击 `RTT-Assistant vx.x.x.exe` 启动 2. 点击"配置"按钮 3. 点击"刷新"选择探针类型(J-Link / DAP-Link / ST-Link) 4. 选择目标芯片,配置接口和速度(列表没有则点击“Pack”按钮,输入型号自动下载,也可以手动下载) 5. 选择RTT控制块模式(3选1) 6. 点击"连接"按钮,开始收发RTT数据 ## 与 SEGGER RTT 工具对比 | 功能 | RTT Assistant | J-Link RTT Viewer | JLinkRTTClient | JLinkRTTLogger | J-Scope | |------|:---:|:---:|:---:|:---:|:---:| | **免费开源** | ✅ GPLv3 | ❌ 专有 | ❌ 专有 | ❌ 专有 | ❌ 专有 | | **J-Link 探针** | ✅ | ✅ | ✅ | ✅ | ✅ | | **DAP-Link / ST-Link** | ✅ | ❌ | ❌ | ❌ | ❌ | | **图形化界面** | ✅ | ✅ | ❌ CLI | ❌ CLI | ✅ | | **多通道显示** | ✅ | ✅ | ❌ | ❌ | ❌ | | **实时波形/示波器** | ✅ 内置 | ❌ | ❌ | ❌ | ✅ 免费工具 | | **ANSI 颜色解析** | ✅ | ❌ 有限 | ✅ | ❌ | ❌ | | **关键字高亮** | ✅ 自定义 | ❌ | ❌ | ❌ | ❌ | | **HEX 显示** | ✅ | ❌ | ❌ | ❌ | ❌ | | **时间戳** | ✅ | ✅ | ❌ | ❌ | ❌ | | **CMSIS Pack 管理** | ✅ 自动加载 | ❌ | ❌ | ❌ | ❌ | | **MAP 文件符号搜索** | ✅ | ❌ | ❌ | ❌ | ❌ | | **RTT 控制块范围搜索** | ✅ | ✅ | ❌ | ❌ | ❌ | | **数据导出** | ✅ | ✅ | ❌ | ✅ 文件日志 | ✅ | | **配置文件保存** | ✅ | ❌ | ❌ | ❌ | ❌ | | **多探针支持** | ✅ J-Link/DAP/ST-Link | ❌ 仅J-Link | ❌ 仅J-Link | ❌ 仅J-Link | ❌ 仅J-Link | ## 示波器模式使用说明 ![](./resources/rtta.gif) ### 切换到示波器模式 点击工具栏的"示波器"按钮切换显示模式。 ### 采集控制 1. 连接设备后,点击示波器工具栏的**"开始"**按钮启动采集 2. 点击**"暂停"**冻结画面(后台继续接收数据),再次点击**"恢复"**继续显示 3. 点击**"停止"**停止采集并清空画布 ### 数据格式规则 示波器模式遵循 **JScope 标准格式规范**。**MCU 端负责**按规则声明和发送数据,RTT Assistant 自动检测并展示,无需手动选择格式。 格式通过 **RTT 通道名**声明(对应 SEGGER RTT 的 `acName` 字段)。连接成功后,RTT Assistant 自动读取通道名,解析其中的格式描述并显示在工具栏。 #### 通道命名规则 RTT 上行通道名必须以 `JScope_` 开头,后跟字段描述符: ``` JScope_... ``` 每个字段描述符由 **类型字母 + 字节数** 组成: | 描述符 | 类型 | 大小 | |--------|------|------| | `t4` | 时间戳 (µs) | 4 字节 | | `i1` | int8 | 1 字节 | | `i2` | int16 | 2 字节 | | `i4` | int32 | 4 字节 | | `u1` | uint8 | 1 字节 | | `u2` | uint16 | 2 字节 | | `u4` | uint32 | 4 字节 | #### 示例 ##### 日志模式(通道 0) 通道 0 由 SEGGER RTT 默认初始化,无需额外配置,直接发送即可: ```c #include "SEGGER_RTT.h" // 通道 0 默认可用,直接发送文本 SEGGER_RTT_WriteString(0, "Hello RTT Assistant!\r\n"); // 格式化输出 SEGGER_RTT_printf(0, "温度: %d°C, 湿度: %d%%\r\n", temp, humidity); ``` ##### 示波器模式(通道 1) 示波器模式使用 **JScope 标准格式**:MCU 端在通道名中声明数据结构,RTT Assistant 自动解析并展示。 需先通过 `SEGGER_RTT_ConfigUpBuffer()` 配置通道名,然后按声明格式发送二进制数据包: ```c #include "SEGGER_RTT.h" // 步骤1:配置通道1,通道名声明 JScope 数据格式 // 格式描述:t4(时间戳) + i4(int32) + u1(uint8),共 9 字节/包 SEGGER_RTT_ConfigUpBuffer(1, "JScope_t4i4u1", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP); // 步骤2:按声明格式发送数据包 void send_data(int32_t value, uint8_t status) { uint8_t packet[9]; uint32_t ts = SEGGER_RTT_GetUpBufferFree(); // 或其他时间源 *(uint32_t*)&packet[0] = ts; // t4: 时间戳 (4字节) *(int32_t*)&packet[4] = value; // i4: int32 (4字节) packet[8] = status; // u1: uint8 (1字节) SEGGER_RTT_Write(1, packet, 9); } ``` #### 自动识别(无 JScope 命名) 如果通道名不以 `JScope_` 开头,则使用 **自动识别模式**: 每个数据值前加 1 字节类型标识: | type_byte | 类型 | |-----------|------| | 0x01 | int8 | | 0x02 | uint8 | | 0x03 | int16 | | 0x04 | uint16 | | 0x05 | int32 | | 0x06 | uint32 | | 0x07 | float | ```c // 自动识别模式:每个值前加 type_byte uint8_t buf[5]; buf[0] = 0x07; // float memcpy(&buf[1], &val, 4); SEGGER_RTT_Write(1, buf, 5); ``` ## 系统要求 - Windows 10/11(64位) - J-Link DAP-Link/ST-Link 驱动 - MCU需已移植SEGGER RTT代码并初始化 ## 目录结构(打包后) ``` RTT-Assistant v2.1.1/ ├── RTT-Assistant v2.1.1.exe # 主程序 ├── config/ # 配置文件 │ └── config.json ├── runtime/ │ ├── dll/ # 动态链接库 │ │ ├── JLink_x64.dll │ │ └── libusb-1.0.dll │ ├── packs/ # CMSIS Pack文件 │ └── venv/ # Python虚拟环境(PyOCD等依赖) ├── doc/ # 文档 ├── resources/ # 资源文件 └── log/ # 日志(自动创建) ├── rtt_system.log # 系统日志(5MB轮转) ├── pyocd_diag.log # PyOCD诊断日志(5MB轮转) └── rttdata_*.log # RTT数据日志 ``` ## 源码开发 ```bash python main.py ``` ### 打包 ```bash python build.py ``` 输出: `dist/RTT-Assistant vx.x.x/` ## 许可证 GNU General Public License v3.0 (GPL v3) ## 作者 陈卡卡