嵌入式软件调试与验证技术概述
1. 调试与验证过程的重要性
近年来,嵌入式系统(ES)凭借其灵活的操作和未来扩展的可能性,在电子系统行业中得到了广泛应用。嵌入式系统由硬件、软件和其他模块(如机械部件)组成,旨在作为更大系统的一部分执行特定任务。诸如网络物理系统(CPS)和物联网(IoT)等重要概念也涉及到嵌入式系统的不同方面。在CPS中,计算和物理过程会结合时间、能量和尺寸等物理量进行集成;在IoT中,物理对象无缝集成到信息网络中。车辆内部控制、自动驾驶、电信产品、电器、移动设备、机器人控制和医疗设备等都是嵌入式系统的实际应用案例。
过去几年,嵌入式电子产品中使用的软件数量不断增加,且这种趋势预计将在未来持续。全球开发的近90%的微处理器都应用于嵌入式系统产品中,因为嵌入式软件(ESW)是功能创新的主要驱动力,例如在汽车领域可减少气体排放、提高安全性和舒适性。
嵌入式软件也常用于安全关键应用(如汽车领域),在这些领域中,故障是不可接受的。调试和验证过程的主要挑战在于应对系统的复杂性。例如,到2010年,汽车嵌入式软件的规模已达到1GB。如图1所示,嵌入式软件在现代片上系统(SoC)中有多种应用,涵盖从应用程序软件(如应用程序、中间件、操作系统、驱动程序、固件)到硬件相关(即裸机)软件,以及通信软件栈。
电子系统级(ESL)设计和验证通常采用自下而上和自上而下相结合的方法。它通过硬件和软件的并行设计,利用两者的协同作用来实现系统级目标。因此,软件的开发需要在SoC设计、集成和验证的早期阶段就开始并行进行。在预硅阶段,需要消除系统环境中的关键错误。在此阶段,软件成为流片的重要要求,因为严重的软件错误可能会阻碍制造进程。生产完成后,可以继续进行片上软件开发并进行后硅