虚拟 ECU:基于 SkyEye 的 TRACE32 嵌入式调试
![虚拟ECU:基于SkyEye的TRACE32嵌入式调试](https://static001.geekbang.org/infoq/1f/1f674e61d10b4f1e7bd67e3a9f9ee4c5.png)
随着通信技术、智能终端、云计算等基础支撑技术的发展,嵌入式软件功能的丰富程度日益上升,已不再局限于 21 世纪初的基础功能,在航空航天、工业控制、医疗设备、消费电子、汽车电子、信息家电、网络通信等领域得到大规模应用,为加快经济发展、提升生活便利水平、提高工作效率起到促进作用。
与之相对应的挑战也接踵而至:伴随着功能的丰富与拓展,嵌入式软件规模逐渐扩大,但因其偏向私域、定制化的特点,导致嵌入式软件的开发缺乏统一规范,很大概率存在一定缺陷。一旦涉及航空航天、汽车等安全关键领域,这些可能存在的缺陷就会对人身、财产安全方面带来极大威胁。
为什么嵌入式软件相较普通应用软件更易存在缺陷?
最根本的原因是,嵌入式软件需要依赖真实硬件才能运行,那么在软件开发初期,硬件资源未生产调试完成之前,软件开发处于盲盒状态,极大地增加了软件开发的不确定性。可以说,在嵌入式软件开发的初期阶段,不具备调试的条件。
要解决这一问题并不难,时至今日,仿真已在众多领域得到了广泛应用,对嵌入式软件而言也是如此,甚至更为有利,因为实物调试对嵌入式软件而言的风险实在太高:
1. 烧录风险:在硬件资源比较充裕的情况下,嵌入式软件的功能开发与验证需要不断重复完成烧录调试,而烧录本身具有一定的风险性和不确定性。烧录失败可能导致集成在板卡上的存储设备失效。由于独立更换存储设备的成本较高,最终结果往往是板卡整体报废,甚至会导致设备的损坏,带来不必要的财产损失。
2. 环境风险:嵌入式软件的实物调试依赖硬件环境,因此外界环境的影响,如静电、水等不确定因素很可能会引起硬件损坏,导致调试工作无法顺利进行,进而影响工期与交付、上市时间。
3. 场景限制:嵌入式软件的调试存在特定场景无法验证的问题,如太空射线导致的设备失灵。根据国内外对航天故障的统计结果,40%左右的故障源自太空辐射:1993 年 8 月 21 日,美国五颗卫星同时失效,原因是使用的同一批定时器芯片均因宇宙射线辐照而失效;1994 年,我国发射的“风云二号”气象卫星的失控也是由于一块超大规模集成电路(Very Large Scale Integration, VLSI)芯片受到空间辐射影响而失效。
由此可见,对于嵌入式软件而言,仿真不光能够实现测试“左移”,还能有效规避上述风险,将问题扼杀在初期阶段,保证嵌入式软件不受场景限制地完成开发与调试。这种优势对于当前电动化、智能化、网联化的全球汽车发展方向而言无疑更为契合。
![](https://static001.geekbang.org/infoq/4a/4a0b09ab2a1adc7915edd3fc5325e0fa.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
当前汽车行业对仿真的应用主要集中在对汽车 ECU,也就是“行车大脑”的虚拟仿真。下文将介绍应用于汽车 ECU 的基于天目全数字实时仿真软件 SkyEye 的 TRACE32 调试,SkyEye 负责提供汽车虚拟 ECU 的搭建平台,结合 TRACE32 即可实现嵌入式仿真调试。
*SkyEye:天目全数字实时仿真软件 SkyEye 是一款国内自主研发、自主可控的嵌入式仿真软件,支持多种处理器架构,如 ARM、DSP、PowerPC、SPARC、X86、MIPS、Tricore 等。同时支持多种国产操作系统的调试运行,如天脉、锐华、翼辉、RT-Thread 等,支持 Linux 系统、Android 系统调试运行。
*TRACE32:嵌入式系统调试工具,主要用于对微处理器、微控制器和数字信号处理器(DSP)等嵌入式系统进行调试和分析,提供了代码调试、系统状态监控、性能分析、系统控制、多核调试等多种功能。
![](https://static001.geekbang.org/infoq/c0/c0cd5a269aebfda94ed8c0d694018734.png)
▲基于 SkyEye 的 TRACE32 调试架构图
功能:
SkyEye 与 TRACE32 结合可实现多种高安全高可靠的嵌入式软件研发目的,通常包含以下几种:
嵌入式软件开发:SkyEye 用于仿真硬件,TRACE32 用于代码调试和验证。通过单步执行、断点设置、变量监视等功能,开发人员可以快速定位代码中的问题,确保软件的正确性和稳定性。
仿真硬件调试和验证:通过查看寄存器状态、观察信号波形等,开发人员可以分析硬件的工作状态和问题,并及时进行修复和优化。
性能分析和优化:支持跟踪程序的执行路径、记录函数调用时间等,帮助开发人员分析程序的性能瓶颈并进行优化,提高系统的响应速度和效率。
多核系统调试:SkyEye 支持多核嵌入式系统,TRACE32 调试器可以同时调试多个核心的代码和状态,帮助开发人员理解多核系统的协同工作和通信机制,确保系统的稳定性和可靠性。
系统集成测试:帮助开发人员在集成测试阶段进行系统级调试和验证。通过模拟外部环境、仿真外部设备等功能,开发人员可以模拟各种场景下的系统行为,并验证系统的功能和性能。
优势:
SkyEye 与 TRACE32 的结合具有下列优势:
系统结构简单:TRACE32 与 SkyEye 都是功能独立的软件,包含丰富的接口设计,通过简单的配置即可实现两款软件的协同工作,一个页面即可完成软件对接配置。
![](https://static001.geekbang.org/infoq/c8/c8e9c4b63bcf2f27ef6ce09484a3fed7.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
功能易于操作:TRACE32 作为上位机软件,SkyEye 作为下位机仿真软件,通过配置连通后,在 TRACE32 中可对 SkyEye 仿真环境进行调试,调试过程可视化,操作简单。
![](https://static001.geekbang.org/infoq/14/14360c347d5be6908ccb96d7e710311a.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
结果响应及时:SkyEye 虚拟 ECU 可实现真实 ECU 的 1:1 仿真,通过 TRACE32 可快速查看结果,使仿真调试工作不会感知到虚拟设备的存在,达到与真实 ECU 一样的处理结果。
集成测试便捷:SkyEye 支持多种处理器仿真,可通过 TRACE32 同时调试不同的仿真设备,构建起集成测试环境,实现联合测试效果。
总结
SkyEye 虚拟 ECU 与 TRACE32 的完美结合能够为汽车等安全关键领域的用户有效降低软件研发成本,并为增效、保质量保驾护航。可以大胆预测,该方案具备为用户至少节省 35%调试时间、减少 50%测试成本、缩短 66%产品上市时间的能力。
原文链接:https://mp.weixin.qq.com/s/O6hZ4s5_TxQ6OKiFgWp5JQ
版权声明: 本文为 InfoQ 作者【DevOps和数字孪生】的原创文章。
原文链接:【http://xie.infoq.cn/article/3eb781ddecbc0bd834c817311】。文章转载请联系作者。
评论