Skip to content

RT-Thread insight, a probe tool for RT-Thread to help to analyze internal behavior of the system.

Notifications You must be signed in to change notification settings

RT-Thread-packages/rti

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RT-Insight 软件包

简介

RT_Insight 是基于 RT-Thread 内核的系统事件洞察组件,核心功能是通过注册 RT-Thread 系统钩子函数,实时记录线程调度、ISR 进出、内核对象操作(信号量 / 互斥锁 / 队列等)、定时器回调等关键事件,并结合 DWT(数据观察点与跟踪单元)提供纳秒级高精度时间戳,最终通过 RT-Tunnel 组件传输事件数据,助力嵌入式开发者快速定位系统卡顿、线程竞争、定时器异常等问题。

主要特性

  • 全场景事件覆盖

    :注册 RT-Thread 全量核心钩子,自动记录以下事件:

    • 线程调度(线程切换、挂起 / 恢复);
    • ISR 生命周期(中断进入 / 退出,自动获取 IRQ ID);
    • 内核对象操作(信号量 / 互斥锁 / 事件 / 邮箱 / 队列的获取 / 释放 / 尝试获取);
    • 定时器回调(定时器进入 / 退出)。
  • 高精度时间戳:基于 DWT cycle counter 实现纳秒级时间戳,事件时间精度可达 CPU 时钟周期级(需配置正确的 BOARD_SYSTICK_FREQ_IN_HZ)。

  • 事件安全缓存:内置 TEMP_BUFFER_SIZE(默认 64)临时缓冲区,当 RT-Tunnel 忙时自动缓存事件,避免数据丢失,后续自动重试写入。

  • 依赖 RT-Tunnel 传输:事件数据通过 RT-Tunnel 组件传输(隧道 ID 固定为 0x52544953,即 "RTIS"),兼容 RT-Tunnel 的线程安全传输机制。

  • Shell 快速初始化:提供 RT_Insight_Init 命令,通过 RT-Thread Shell 一键初始化组件,无需手动调用接口。

  • 清晰错误日志:初始化失败(如 RT-Tunnel 获取失败、隧道配置错误)时输出明确日志,便于问题定位。

核心配置

  • CPU_freq:设置设置为 MCU 实际的主频,确保时间戳计算准确。

快速上手

初始化流程

RT_Insight 需在 RT-Tunnel 初始化后启动,推荐初始化顺序:

  1. 初始化 RT-Tunnel:确保 RT_Tunnel_Init 先执行(通常自动初始化);
  2. 初始化 RT_Insight:调用 RT_Insight_Init 分配隧道并初始化insight功能;

注意

确保 RT-Tunnel 已启用,且 TUNNEL_NUM 至少为 1

About

RT-Thread insight, a probe tool for RT-Thread to help to analyze internal behavior of the system.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 6