对于传统的智能边缘软件开发,那一定少不了硬件的支持。如果放在以前,那你可能就要按部就班的来,选择硬件方案-设计产品原型-调试硬件-在硬件上进行软件开发,这一套流程下来,不说最后到底能不能成功,就说所花费的时间,是很多初创企业等待不起的。更不凑巧的是,目前全球缺芯严重,加上本身的电子系统越来越复杂,假如又涉及到不同硬件平台上的软件开发,每一个硬件平台的搭建都是大成本、费时费力的支出,尤其对于初创公司来说,这无疑是雪上加霜。往细了说,传统智能边缘软件开发从选择设计硬件开始就面临着几大难点。
第一,开发生命周期长。在设计团队确定的情况下,若所设计的智能边缘设备采用的硬件方案涉及到还没有上市或者已经上市但是成本太高的器件,比如说前两年英伟达RTX3090系列的显卡,无论是考虑到硬件成本还是硬件平台搭建难度,都不可能满足团队中每个成员的使用,这种掣肘延长了整个开发生命周期。
第二,精度差、速度慢。在无法获取精准硬件的情况下,可能很多团队用类似的硬件去实现软件开发,勉强满足正在开发的系统,但是很多产品都是需要非常精准的作业,比如制造业中需要准确无误地执行100多万次任务的工业机器人,这是绝不允许凑合的。或者还有团队可能会想到了某种形式的模拟或者仿真来解决硬件的问题,这是可行的。但是应用场景对仿真模型的精度有着特定的要求。例如,如果你正在开发基于英特尔特定SoC芯片,而你无法获得这款芯片,就可以在仿真x86系统上进行开发和测试,或者在相似设备上进行较普通的x86开发。你可能会发现一些缺陷,或者错误地认为你的设计是可靠的——一旦你能在真实的电路板上进行开发,很可能发现以前做的工作都白费了,白白浪费时间。
第三,无损测试以及多台设备测试麻烦。在硬件平台上测试基本上时无法做到无损,此外如果有多台甚至一群设备系统。而且每个设备都将处于不同的环境中,或者需要执行不同的操作,但仍然联网或甚至完全依赖于网络,又该怎么办?如果用几十台、几百台或上千台设备建立一个实验环境,在其中运行测试肯定更不容易。实体实验室尚且如此,但如果你在网络环境中工作,挑战就远不止于此。你需要花费大量的时间在将要部署的环境中测试每一部分硬件。速度是另一个问题。当你面对着包含多个组件的物理测试实验室,你实际完成一次测试需要多久的时间?如果你需要非常频繁地进行部署,那么你真的可以每月、每周、每天进行多次测试吗?
遇到这些难点,到底该如何解?打破硬件限制,答案是Simics。
Simics也就是风河的模拟仿真软件,模拟仿真技术允许你使用任意多个设备来设置完整的环境,不受任何限制,它的主要功能包括:
- 添加了三个快速启动平台,即ARM、Intel和PowerPC,可快速模拟主流的目标架构。
- 可模拟整个目标系统包括处理器、设备、所有电路板和子系统。
- 可运行与物理系统完全相同的软件。
- 所有团队成员都可以访问虚拟系统,也包括生态系统合作伙伴。
- 可对整个系统进行分析和调试,而非某一块参考版。
- 通过正向或逆向的运行提高调试效率。
- 整个开发团队都可共享系统和虚拟硬件的状态。
- 可从上一次保存的记录点开始继续执行操作。
- 在系统稳健性测试中进行故障导入。 通过创建脚本自动执行人工步骤和重复任务。
- 可与现有的软件开发环境和自动化流程进行集成,也可以由风河公司提供支持。
- 集成物理环境模拟器,创建完整的系统模拟,也可以由风河公司提供支持。
- 提供基于Eclipse的Simics、C/C++源代码调试器,或标准软件工具组。
- 可以使用Wind River 提供的预装虚拟平台,也可以自行搭建或由风河公司为你搭建所需平台。
正如你所见到的,相比在物理设备上进行测试,采用Simics Simulation可以做到更灵活,既降低时间和资金成本,同时也不会限制你的全面测试能力。从一开始就采用高精度模型,无需等待供应商提供硬件,也免除了工程师因为没有硬件而等待的时间,而且让你在项目截止日期前有足够的时间运行所需的全部测试,让这些测试实现自动化。如果一个模拟模型被破坏了,只需按下按钮,就会立即重新创建起来。更有意义的是,可以自动设置并再次运行,这样你就可以直接查看结果。如果需要测试网络,只需添加任意数量的组件,这基本上是复制粘贴之类的简单操作。根据你的应用场景,你甚至可以连接到其他网络或物理设备,并将其包括在测试工作中。
所以,总结下来,使用Simics的好处有:
1、在虚拟环境中开发软件:Simics能够满足DevOps和持续开发实践对访问、自动化和协作方面的要求,通过虚拟平台和开发模拟,软件开发人员在开发过程中无需关注物理硬件及其限制。
2、通过访问、协作和自动化加快产品开发速度:Simics有助于提高开发和测试效率,通过无限制地访问Simics虚拟硬件平台,团队成员能够实时优化和持续更新,快速进行设计、开发和测试,以完成系统建设。
3、优化系统开发:Simics让你能够同时操作、查看和控制系统中所有的参考板和处理器。Simics 虚拟平台比实体硬件更易于设置和管理,且可以通过无数个参考版来测试扩展性。
4、按需提供的虚拟实验室:通过Simics,整个开发团队都能随时随地获得一个虚拟的实验室,而且是一个完整的系统而不是某个部分,这样每个开发人员都能基于整个系统来思考、设计方案与开发。对于一些需要对目标硬件做各种不同配置的开发人员,Simics虚拟平台能帮他们轻而易举地实现多种组件配置,这一功能在兼容性测试和客户的特定条件测试中特别有用。
5、对整个产品生命周期的支持:Simics 对产品的整个生命周期都能提供支持,从设计直到后期产品部署和维护(包括设计阶段、应用程序开发阶段、集成与测试阶段、产品交付阶段、系统维护阶段)。