近年来,电子系统的复杂度快速提升,同时,这些产品又常常是更大系统中的子系统。面对网络互连和复杂度的增加,传统的嵌入式软件开发工具在设计、调试、集成、测试和维护等环节的效率越来越差。
目前,产品上市速度、质量和安全可靠性依然是企业最关心的问题。然而,如果在这些问题上发生错误,企业将会付出更高的代价。因此,功能模拟/仿真技术在当今越来越充满不确定性、越来越复杂的世界里,显现出越来越高的价值。
对于物联网环境中的智能化、网络化系统和产品而言,风河(Wind River)公司的模拟解决方案Simics正是为了满足企业这些需求而产生的。它让企业可以快速对其产品与系统进行模拟,快速发现潜在问题、排除问题,从而获得市场竞争优势。
据风河公司调试工具及生命周期解决方案副总裁Michel Genard介绍,Simics软件是一个系统全功能模拟器,它通过脚本模拟出系统的硬件组成。在其上执行软件类似于软件调试器,可以进行单步执行、断点设置、反向(回溯)执行等操作。
他 表示,风河Simics问世已有多年,最初由瑞典计算机科学研究院(SICS)针对爱立信公司需求开发,后于Virtutech公司进行商业化开发。以 往,通信开发调试的搭建过程非常漫长,爱立信采用该软件后发现非常好用,从此其便一直向前发展。Intel看好这项技术,收购了Virtutech公司, 然后又将这项技术交与风河管理。
该软件对于可靠性要求非常高、上市后不容许出问题的应用尤其适用,比如,火星探测器或飞机等 系统,在设计时必须通过模拟做验证。对于上市后遇到问题不可承受的应用(如汽车召回、医疗设备等),或是市场非常大、厂商又重信誉的应用(比如 iPhone5),Simics将显示出最大的成本效益。
Simics由3个部分组成:内核——模拟引擎,类似CPU的指令系统;部件库——模拟脚本,比如模拟Intel的CPU;由部件库搭建的场景——验证功能,搭建各种不同的场景,使调试更加全面、系统更加稳健。
作为一种全系统模拟软件,Simics可以模拟任何目标硬件系统,如单处理器母板、多核系统或者具备数百块板以及不同架构的整个系统;无需修改目标软件的二进制文件,即可像在实际物理硬件上一样运行。
在 这个可共享的虚拟平台上,应用软件开发人员拥有了前所未有的调试能力、即时的测试与集成能力。同时,Simics也为开发人员之间的协同提供了一种方便的 机制,因为他们可以同时看到目标硬件在运行软件时的表现,又可以各自进行自己的开发与测试,而且许多测试工作可以自动化地进行。这样一来,许多原本必须互 相等待的工作可以同时进行了,从而使得整个项目的工期大幅缩减。
软件开发者可以用Simics来模拟目标硬件中发生的任何事情。这个目标硬件的规模可以小到一个单一处理器,大到一个庞大、复杂并且由网络互联起来的电子系统。这个由软件模拟出来的系统可以像真实的硬件一样,让完全真实的软件运行在其中,包括系统引导、BIOS、固件、实时操作系统(RTOS)、板级支持包(BSP)、中间件和应用软件。
阻 碍嵌入式软件开发工程进度的一大障碍就是,目标硬件尚未提交给软件团队,甚至还未形成最终产品。在这种情况下,Wind River Simics可以用软件来模拟这个未来才会出现的硬件系统,而且可以模拟其多种可能的版本、配置。更有意思的是,这个模拟出来的硬件环境只是一些软件,可 以无限制地复制,提供给更多软件开发人员使用。
这样一来,软件开发人员就可以在尚未拿到真是硬件的情况下提早开始软件开发工程,而且可以在多种不同的配置中进行。特别是对于软件测试人员来说,在模拟出来的多种不同配置的硬件环境中对应用软件进行测试,这对确保软件的兼容性具有特别的价值。
电子产品的完整生命周期从设计开始,接着就是开发、集成与测试、交付上市以及售后服务与维护。Wind River Simics可以覆盖整个产品生命周期提供支持。
在 设计阶段,Simics可以帮助电子产品提供商探索系统设计的各种选项,例如,哪些功能用软件来实现,哪些功能用硬件来实现,软硬件的接口应该是怎样。在 实际投产芯片之前,以软件模拟的方式尝试各种可能的方案及其结果,从中选出最佳的方案,从而可以避免芯片设计投产上的不当选择,节省大量的成本。
在 软件开发阶段,即便是实际的硬件还没有交付给软件团队,他们也可以利用 Simics模拟的硬件来进行软件编程、调试和测试,从最底层的设备驱动、BSP到操作系统和应用软件无一例外。这样一来,软件和硬件的开发就是齐头并进 的。而且,它拥有各种先进的调试方法,例如反向调试、设置测试点和观察点等。
当整个软件开发完成之后,进入系统集成与测试阶 段。软件既可以运行在由Simics模拟的硬件环境中,也可以运行在逐渐就绪的实际硬件环境中,让全系统的集成与测试工作无缝接轨,顺畅地开展起来。此 时,Simics为故障注入、程序转折点测试等先进的方法提供了便利的支持。Simics的脚本功能可以提供各种测试配置,帮助产品研发团队进行自动化的 并行测试。
在产品上市交付用户的时候,软件团队还可以借助于Simics所模拟的产品与其他合作伙伴和用户一起分享和探讨产品的实际使用情况,呈现各种不同参数情况下产品的表现,帮助用户决定他应该如何选择所适用的产品配置。
在产品交付用户使用之后,Simics可以帮助用户设立虚拟的维修实验室,当设备使用出现问题时,可以用来模拟和观察故障现象,直观、方便、快速地找到故障原因。
最后,对于Simics今后的发展,Michel Genard表示,从Simics的三大组成部分可以看出,该软件的模拟引擎效率将会随硬件的升级而不断提高。部件库将会越来越丰富,新的硬件出现,部件 库将会进行相应更新。场景更加丰富,针对容易出bug的情况,Simics将考虑到更全面的场景。另外,对于场景的更新,用户可以添加自己的脚本,但是由 风河更新,则可以降低用户的使用难度。
文章评论(0条评论)
登录后参与讨论