深度解析嵌入式软件时间系统 | EP10

2026-05-18 09:39 合兴软件

本系列前两期分别讲了静态分析的"上界",和仿真的"模型上观测值"。但项目后期总会遇到一类问题:偶发、零星、复现条件不明——这时唯一可靠的信息来源,是目标硬件上正在实际发生什么。


获取这类信息有三条技术路径:


  • 运行时间测量——从端口引脚配示波器、硬件定时器、性能计数器到 ping,工程上历史最久;它还有一个独有属性:可以一直保留在量产软件里,把关键参数最大值写进非易失存储、超限触发安全状态切换,是 ISO 26262 安全概念中的常见组件。

  • 基于硬件的追踪——靠处理器片上的追踪逻辑直接观测 CPU,不需要修改软件,是目标代码层级覆盖率分析的唯一手段;但需要芯片厂提供的"仿真设备",多核场景下接口带宽是瓶颈。

  • 基于软件的追踪——通过挂钩或调用插入测量点,灵活性最高;开销范围从内部自研工具的"几 µs/事件、两位数 CPU 占用"到高度优化工具的"60 ns/事件、CPU 占用低于 0.4%"——这个数量级差异决定了能否在生产软件中常驻。


它们都给出真实硬件上的观测值——不是上界。测出来的最大 CET 是"观测期内最大",不等于 WCET。要 WCET 还得回到静态分析。


建议直接看视频,7 分钟讲清楚三条路径的工作流与共同边界。