跳转至

RTOS Trace:看任务什么时候运行

任务响应慢、执行周期不稳,或中断占用太久,可以用 RTOS Trace 把运行过程展开成时间线。SystemView 是目标程序使用的事件跟踪组件,网页入口叫 RTOS Trace。

先让工程产生跟踪事件

目标程序需要集成 RTT、SystemView 和对应 RTOS 的事件支持。普通日志通常使用 RTT 通道 0,任务跟踪使用工程配置的跟踪通道;本例为通道 1。

帮我检查任务跟踪有没有接好,编译下载后打开 RTOS Trace。

RT-Thread 工程需要对应 hook 支持;HPM 的 FreeRTOS 工程使用相应适配。没有 RTOS 的裸机示例,不会自动产生任务切换事件。

开始观察

  1. 加载与固件匹配的 AXF/ELF,连接正在运行的目标。
  2. 打开 仪表盘 → RTOS Trace,定位 RTT 控制块和跟踪通道。
  3. 点击开始,运行一次要检查的业务场景。
  4. 停止后展开任务,查看运行片段与统计。

STM32 任务运行时间线

先找影响响应的那一段

关心的问题 怎么看
周期任务晚执行 比较相邻运行片段的间隔,再看中间的任务和中断
CPU 负载高 比较业务任务、中断与空闲任务的占比
中断影响实时性 找最长片段,与业务允许的延迟比较

看看采样任务被谁耽误了,修改后用同样场景再比较一次。

高空闲率通常意味着 CPU 还有余量。是否发生任务饥饿,需要结合任务就绪、阻塞和执行情况判断。

HPM 也可以看任务时间线

最新 HPM 配套 RTOS 示例展示 Wave16 与 Telemetry 等任务。要从裸机 hello_world 开始使用,先加入对应 RTOS 和跟踪支持。

HPM5301 FreeRTOS 时间线

HPM 实战提供配套例程和使用步骤。

数据不完整时先排查采集

任务数为 0、时间尺度异常、目标缓冲溢出或丢失计数增长时,先检查工程适配、时间基准、跟踪通道与缓冲配置,再做定量分析。前端显示队列丢弃与目标端溢出是不同问题,需结合保存的数据检查。

页面切走或暂停图表不等于停止采集。结束观察后明确停止,再让其他工具接管下载器。

用 AI 分析任务时间线