Skip to content

[add] MRamTrace: lightweight RAM-backed function tracing for MCU firmware - #2027

Merged
Rbb666 merged 2 commits into
RT-Thread:masterfrom
Zepp-Hanzj:add-mramtrace
Aug 28, 2026
Merged

[add] MRamTrace: lightweight RAM-backed function tracing for MCU firmware#2027
Rbb666 merged 2 commits into
RT-Thread:masterfrom
Zepp-Hanzj:add-mramtrace

Conversation

@Zepp-Hanzj

Copy link
Copy Markdown
Contributor

包介绍 / Package Description

MRamTrace 是一款轻量级基于 RAM 的 MCU 函数追踪与离线可视化工具。通过 GCC/Clang 的 -finstrument-functions 将函数进入/退出事件写入环形缓冲区,冻结后导出,结合 ELF 生成火焰图、调用图、Perfetto、Speedscope 等离线分析数据。

MRamTrace is a lightweight RAM-backed function tracing and offline visualization tool for MCU firmware.

仓库 / Repository

特性 / Features

  • 16 字节固定事件,低开销,纯软件插桩,无 ETM/SWO 依赖
  • 支持多上下文(任务 / 中断 / 空闲)
  • RT-Thread port:利用 rt_thread_self() 免任务切换 hook
  • 主机端分析器:火焰图、KCachegrind、Chrome Tracing、Speedscope

验证 / Validation

已在 STM32F407(lxb407zgt6)实测:1200 事件、100% 覆盖、0 未解析符号,成功生成火焰图 / callgrind / chrome-trace。

修改文件 / Files

  • tools/MRamTrace/package.json
  • tools/MRamTrace/Kconfig
  • tools/Kconfig(注册 source)

@Zepp-Hanzj

Copy link
Copy Markdown
Contributor Author

已将 VER_SHA 从 main 固定到 v1.0.0 release 对应的 commit(81c2e766),避免后续 main 分支变动影响拉取稳定性。

本地已通过完整 CI 校验:

python3 ci.py --packages MRamTrace --check-kconfig

结果:Checked 1 package(s),无报错。

另外补充说明:RT-Thread 适配已在 STM32F407 真机验证(1200 事件、100% 覆盖、0 未解析符号),详情见 PR 描述。

@Zepp-Hanzj

Zepp-Hanzj commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

@Rbb666 打扰了, CI 目前卡在 action_required 状态(首次向仓库贡献的 fork PR 需要维护者手动点击「Approve and run」workflow 才能触发),如方便也请帮忙批准一下。本地已通过完整校验:python3 ci.py --packages MRamTrace --check-kconfig,无报错。

该包为函数级追踪工具(RT-Thread port 已在 STM32F407 真机验证:1200 事件、100% 覆盖、0 未解析符号),版本已固定到 v1.0.0。

@Rbb666
Rbb666 merged commit 9903f93 into RT-Thread:master Aug 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants