0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Trace初体验一之使用Trace功能调试Cortex-M4 | 技术集结

RT-Thread官方账号 2025-07-06 10:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着嵌入式系统规模和复杂度不断提升,传统的调试手段已难以满足对系统运行状态的精细化分析需求。为提升开发效率、优化系统性能,RT-Thread 推出了一款全新调试工具 ——RT-Trace。该工具基于SWO 技术实现对操作系统运行状态的实时跟踪,无需安装额外软件,即可通过 Web 页面直观查看线程切换、中断响应等关键信息,极大降低了调试门槛。

本文将以实际开发板为基础,展示 RT-Trace 的Trace 功能在调试Cortex-M4 平台中的应用效果,包括配置流程、可视化分析、时间测量等操作体验,帮助开发者更全面地了解该工具在项目开发中的应用价值。

75ef3764-5a0d-11f0-9cf1-92fbcf53809c.jpg

1.

进入RT-Trace配置页面

在板子的右下角是有Trace的IP地址,我们在浏览器中输入该地址进入配置页面。

75feed6c-5a0d-11f0-9cf1-92fbcf53809c.png

摆在第一行的就是Trace功能的介绍。可以看到有如下特点:

基于SWO 的 RT-Thread OS 跟踪 (Trace) 功能,无需额外安装软件,捕获线程关系。

免安装的 Web UI,直接在浏览器中实时显示线程间的调用关系。

以高速 SWO Trace 为基础,后续升级固件支持持久化线程运行记录,统计各线程用量与 CPU 随时间的工作负载。

后续升级支持 TPIU Trace 接口,可以观察到更多内部信息。

从介绍捕获线程功能来看,RT-Trace应该是定位一款专用工具,因为不同RTOS的线程控制块是不一样的,需要人力物力去适配。

2.

Trace 配置

点击左侧的Trace Config选项进入配置页面。

本次调试的板子是Cortex-M4内核的STM32F407,使用的是RT-Thread的星火一号开发板。板子链接至星火一号开发板预留的Trace接口。

760f5b16-5a0d-11f0-9cf1-92fbcf53809c.jpg

进入页面后,首先配置选择JTAG,Cortex(RISC-V的芯片选择RISC-V),频率默认,然后点击提交即可,此时在右上角可以显示芯片的ID,显示正确则表示连接成功。

然后依次点击下述两个自动探测选项,探测线程的地址与MCU主频(这里比较好奇线程地址是怎么探测出来的,是否有大佬解答一二),然后swo的频率可以调高一些,这里配置为21,最后点击提交配置就可以啦。下面是配置完成的页面。

7626e48e-5a0d-11f0-9cf1-92fbcf53809c.png

然后点击左侧的Trace Viewer选项进入Trace页面。

3.

Trace Viewer

进入Trace Viewer页面如下。

7638066a-5a0d-11f0-9cf1-92fbcf53809c.png

点击左上角的Start选项进行Trace,适当时间后点击stop选项,完成Trace,点击左侧的perfett0-trace选项出现下述页面。

764d51c8-5a0d-11f0-9cf1-92fbcf53809c.png

接下来将探测出的波形图局部放大进行观察。

7661e2fa-5a0d-11f0-9cf1-92fbcf53809c.png

局部放大后可以直观的看到各个线程与中断的运行情况,看来这个对调试RT-Thread项目是个不错的选择。有时候我们期望看一下某个线程的执行时间,比如这里看一下shell线程的执行时间,点击左键选择shell线程的起始位置,便可以看到shell线程当前一次执行的时间为10us,这个功能很不错呀。

7673f65c-5a0d-11f0-9cf1-92fbcf53809c.png

我们知道在cortex-m系列的MCU,RTOS的切换大多由pendsv中断实现,,那么框选下述部分我们便可以看到当前一个线程切换到另一个不同的线程的时间。下图当前运行过程从shell线程到idle线程用时5.3us

7685f92e-5a0d-11f0-9cf1-92fbcf53809c.png

当然想看一下某个中断到线程的切换时间也是同样的道理。比如下述从pendsv中断到idle线程用时1.5us

7697b628-5a0d-11f0-9cf1-92fbcf53809c.png

这期体验就到这里啦,最后总结一下使用感受吧。

4.

体验总结

优点:

直观的将系统的线程运行状态展示出来便于调试以及对项目线程的优化

原生支持RT-Thread无需其他额外适配工作,探测功能很方便

时间测量功能很方便,可以知道线程到线程,线程到中断,线程的执行时间,中断服务函数的执行时间等等,方便优化自己的项目

缺点:

当前主要支持ARM系列的芯片,相对使用其他架构的RT-Thread的项目就有点可惜,未来会支持?

是否可以加一个一键出报告的功能,不需要用户一个一个去点去测量,针对一些RTOS的指标可以一键输出?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3716

    浏览量

    133114
  • 操作系统
    +关注

    关注

    37

    文章

    7330

    浏览量

    128663
  • 开发板
    +关注

    关注

    25

    文章

    6136

    浏览量

    113555
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RT-Trace功能再升级!GDB Server功能 + Flash键烧录,嵌入式开发更加便捷!| 技术集结

    RT-Trace持续进化,推出两大开发者期待的核心功能:GDBServer功能与Flash程序烧录!本次升级旨在为嵌入式开发者提供更强大、更便捷、更高效的开发调试体验,显著提升开发效率
    的头像 发表于 07-25 15:40 4621次阅读
    【<b class='flag-5'>RT-Trace</b>】<b class='flag-5'>功能</b>再升级!GDB Server<b class='flag-5'>功能</b> + Flash<b class='flag-5'>一</b>键烧录,嵌入式开发更加便捷!| <b class='flag-5'>技术</b><b class='flag-5'>集结</b>

    揭秘!基于RT-Thread探究“优先级反转”下的任务调度究竟是什么样的?| 技术集结

    RT-Trace初体验!废话不多说,我们直接开始。本文基于RT-Thread来编写测试代码。在此之前我们先捋下代码流程:优先级反转问题的本质是高优先级任务因等待
    的头像 发表于 08-17 10:07 2820次阅读
    揭秘!基于<b class='flag-5'>RT</b>-Thread探究“优先级反转”下的任务调度究竟是什么样的?| <b class='flag-5'>技术</b><b class='flag-5'>集结</b>

    IAR EWARM的SWO Trace调试功能

    SWD调试接口是ARM公司提出的调试接口,相对于传统的JTAG接口,使用更少的信号引脚。SWD调试接口信号定义如下图红线所示:图 1
    发表于 11-10 13:36

    使用IAR ETM Trace调试功能的要求

    嵌入式跟踪宏单元所记录的跑飞前后段时间内MCU执行的所有指令,在查找此类复杂问题的原因时非常有帮助。ETM嵌入式跟踪宏单元ETM Trace调试功能的实现依赖于芯片上的ETM嵌入式跟
    发表于 03-05 14:49

    Cortex-M4内核处理器的技术参考手册

    Cortex-M4处理器是种低功耗处理器,具有低门数、低中断延迟和低成本调试等特点。Cortex-M4F是款与
    发表于 01-09 08:00 101次下载
    <b class='flag-5'>Cortex-M4</b>内核处理器的<b class='flag-5'>技术</b>参考手册

    trace32 for rt-thread support的基本使用及系统插件原理

    trace32 for rt-thread support 1.概述 2.trace32的基本使用 3.trace32系统插件原理 4.离线
    的头像 发表于 01-07 10:34 8032次阅读

    IAR下使用J_Trace进行指令跟踪

    IAR下使用J_Trace进行指令跟踪(电源技术发展的新趋势新技术)-STM32的CPU采用的是Cortex-M系列的内核(M3或
    发表于 08-04 17:25 23次下载
    IAR下使用J_<b class='flag-5'>Trace</b>进行指令跟踪

    详解CoreSight技术中的调试和跟踪功能

    如今众多Cortex-M处理器能这么方便调试,在于有项基于Arm Cortex-M处理器设备的CoreSight技术,该
    的头像 发表于 04-12 20:16 6190次阅读

    重磅预售!RT-Trace调试工具

    嵌入式开发者注意!调试神器RT-Trace即将登陆淘宝!嵌入式开发从业者们:您是否常被调试效率低下、线程分析不清、故障定位困难所困扰?别愁!专为嵌入式开发者打造的高性能调试工具
    的头像 发表于 05-20 18:15 996次阅读
    重磅预售!<b class='flag-5'>RT-Trace</b><b class='flag-5'>调试</b>工具

    RT-Trace调试工具正式发布!

    5月20日,RT-Thread官方预售了首款调试工具RT-Trace,获得了开发者及企业用户的广泛关注与支持。RT-Trace调试工具结束预
    的头像 发表于 06-18 12:02 1211次阅读
    <b class='flag-5'>RT-Trace</b><b class='flag-5'>调试</b>工具正式发布!

    告别 “栈溢出”!用 RT-Trace 工具精准定位嵌入式系统内存隐患 | 技术集结

    虽然StackOverflow因为大模型已经几乎要凉凉了,但是栈溢出的问题仍然困扰着许多开发者。正好RT-Trace发布了他们的内测新功能——栈保护,与此同时,
    的头像 发表于 08-31 09:34 905次阅读
    告别 “栈溢出”!用 <b class='flag-5'>RT-Trace</b> 工具精准定位嵌入式系统内存隐患 | <b class='flag-5'>技术</b><b class='flag-5'>集结</b>

    【直播预告】RT-Trace调试工具V1.1.0版本功能全解析 | 问学直播

    RT-Thread直致力于为开发者提供更高效的工具和技术支持。RT-Trace调试工具自面世以来持续演进,
    的头像 发表于 09-05 11:53 970次阅读
    【直播预告】<b class='flag-5'>RT-Trace</b><b class='flag-5'>调试</b>工具V1.1.0版本<b class='flag-5'>功能</b>全解析 | 问学直播

    【干货分享】RT-Trace国产调试工具 | 技术集结

    在嵌入式系统开发中,调试直是最具挑战性的环节之。传统的调试方式往往依赖低速串口输出、简单的断点调试或离线日志记录,这些手段在面对复杂的实
    的头像 发表于 09-16 08:07 583次阅读
    【干货分享】<b class='flag-5'>RT-Trace</b>国产<b class='flag-5'>调试</b>工具 | <b class='flag-5'>技术</b><b class='flag-5'>集结</b>

    【直播预告】RT-Trace 全新版本发布|ITM输出 MemoryWatch 功能首发实测! | 问学直播

    RT-Trace迎来又次重要更新!本次新版本带来了两项备受期待的功能——ITM输出与MemoryWatch内存监控,让调试可视化更高效、问题定位更精准。为帮助开发者快速上手新特性
    的头像 发表于 10-14 11:57 365次阅读
    【直播预告】<b class='flag-5'>RT-Trace</b> 全新版本发布|ITM输出  MemoryWatch <b class='flag-5'>功能</b>首发实测! | 问学直播

    【直播预告】RT-Trace 新玩法|无SWO板也能Trace,控制台直连功能首秀! | 问学直播

    RT-Trace功能边界再次突破!针对开发者反馈的硬件限制与调试便捷性问题,我们推出两款全新软件包,让更多开发板都能畅享Trace调试体验
    的头像 发表于 10-19 10:03 950次阅读
    【直播预告】<b class='flag-5'>RT-Trace</b> 新玩法|无SWO板也能<b class='flag-5'>Trace</b>,控制台直连<b class='flag-5'>功能</b>首秀! | 问学直播