嵌入式软件,尤其是电控系统,有个共同的难点:让代码跑起来不难,难的是搞清楚它到底跑得好不好——快在哪、慢在哪、稳不稳。
系统偶尔卡顿、响应变慢,到底是哪个任务、哪段代码多花了时间,靠日志和经验很难查准;
想测真实的执行时间,一接传统调试器,系统运行节奏就被打乱,测出来的数据不准;
芯片一换,原来那套调试办法往往要重来。
工程师缺的不是"能运行",而是一套能看清系统内部、又不干扰它运行的办法。ISDT 就是为解决这个问题做的。
ISDT是什么?
ISDT(In System Debug and Timing Analysis Tool),是合兴自主研发的嵌入式软件调试与时间分析工具,主要面向多核 RTOS 系统,用来做调试、时间性能分析和设计验证。
它由三部分组成,配合工作:
ISDT-Viewer(上位机软件):负责监控、调试交互、数据显示与分析,支持 Windows 和 Linux;
ISDT-Umlink(硬件接口卡):提供CAN/CANFD接口,通过一根通信线做软件调试和时间分析,板载 8GB eMMC 存储,可在脱机条件下完成长时间数据采集与归档;
ISDT-Stub(下位机软件库):部署在 MCU 内,负责调试和时间测量的核心功能,兼容多种芯片架构、RTOS 和编译器。
三个词概括它的特点:非侵入、精准、灵活。
核心功能
时间分析。这是 ISDT 最核心的能力。它能做到微秒级、乃至纳秒级的时间测量,把每个任务、每段代码的执行开销量出来。实时性问题不用再靠猜,而是有具体数据支撑——对汽车电子这类"几微秒偏差就可能是安全隐患"的系统尤其重要。
非侵入式调试。不用拆壳,也不必接 JTAG,靠 CAN/CANFD 等普通通信接口就能调试。系统该怎么运行还怎么运行,不会因为接了工具就改变状态,所以测出来的数据是真实可用的。
低资源占用。ISDT 用优化过的插桩技术,对系统的影响压得很低,而且这个影响是可预测的。这样既能采到需要的数据,又不会一测就把结果测歪,不改变系统本来的运行行为。
可视化与数据溯源。把实时性能、任务时序这些抽象的东西变成看得懂的图表;一旦出现异常,能快速定位,并沿全链路追溯到根源,而不是停留在"知道有问题但找不到在哪"。
多核支持。面向多核 ECU、多核 RTOS 的确定性实时行为分析,能看清多个核之间的调度和交互。
兼容性
ISDT 的适配面比较广,尽量做到不挑环境:
RTOS:AUTOSAR OS、RT-Thread、FreeRTOS,以及裸机程序;
通信:ETH/CAN/CANFD/TCP/UDP;
应用层协议:UDS 等;
接口卡:兼容合兴自家的 Umlink 系列,也支持 Vector 等主流品牌。
芯片适配
ISDT 从架构层面支持 ARM、TriCore、瑞萨 G4MH/G3M、RISC-V 等主流阵营,目前已公开适配英飞凌 AURIX、瑞萨 RH850、RISC-V 国产内核等平台,并在持续扩展。不管项目选的是国际大厂芯片还是国产平台,基本都能用同一套工具,不用换一颗芯片就重学一遍。
应用场景
ISDT 已经用在动力总成、电驱域控、新能源 BMS、底盘电控、高阶智能驾驶等领域。这些场景的共同点是对实时性、确定性要求高,系统一旦出现时间上的偏差,轻则性能下降,重则关系到安全,正是 ISDT 发挥作用的地方。也正因为面向的是安全相关场景,ISDT 自身已通过 ISO 26262 功能安全认证(ASIL-D),工具本身的可靠性与置信度有据可依,能够放心地用于这类高安全等级的开发与测试中。
说到底,ISDT想做的是让"看不清"的系统变得"看得清":过去凭经验判断的实时性,现在有了具体数据;过去接上工具就会失真的调试,现在可以在系统正常运行时进行;过去查不到根源的异常,现在能沿链路追溯。实时性不再靠猜,调试不再以失真为代价,异常不再止步于"知道有问题却找不到在哪"。
芯片正在快速迭代,架构越来越多、国产化也在推进。ISDT 把对不同芯片架构的支持做扎实,让工具能跟着芯片走,帮开发者在换芯片、上新平台时少走弯路,把精力放在真正的开发上。
如果你正被实时性、时序或跨芯片调试的问题困扰,欢迎联系我们,一起看看 ISDT 能帮上什么。