|
|
пре 3 месеци | |
|---|---|---|
| README.md | пре 3 месеци | |
| RT_insight.c | пре 3 месеци | |
| RT_insight.h | пре 3 месеци | |
| RT_insight_config.h | пре 3 месеци | |
| SConscript | пре 3 месеци |
RT_Insight 是基于 RT-Thread 内核的系统事件洞察组件,核心功能是通过注册 RT-Thread 系统钩子函数,实时记录线程调度、ISR 进出、内核对象操作(信号量 / 互斥锁 / 队列等)、定时器回调等关键事件,并结合 DWT(数据观察点与跟踪单元)提供纳秒级高精度时间戳,最终通过 RT-Tunnel 组件传输事件数据,助力嵌入式开发者快速定位系统卡顿、线程竞争、定时器异常等问题。
:注册 RT-Thread 全量核心钩子,自动记录以下事件:
定时器回调(定时器进入 / 退出)。
高精度时间戳:基于 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 获取失败、隧道配置错误)时输出明确日志,便于问题定位。
RT_Insight 需在 RT-Tunnel 初始化后启动,推荐初始化顺序:
RT_Tunnel_Init 先执行(通常自动初始化);RT_Insight_Init 分配隧道并初始化insight功能;确保 RT-Tunnel 已启用,且 TUNNEL_NUM 至少为 1