发布于2021年9月29日
作者:Arm嵌入式工具高级总监Reinhard Keil
基于云的嵌入式开发工具(如Keil Studio)可以改进嵌入式应用程序的工作流程,从产品评估到基于模型或仿真的验证。
嵌入式系统设计是电子学中最古老、最传奇的学科之一。几十年来,部署在该领域的数十亿嵌入式产品以数不清的方式改变了世界。然而今天,尽管其他类型的软件和应用程序开发已经转移到云上,基于云的嵌入式开发仍然是一种新兴趋势——许多嵌入式应用程序仍然是在桌面计算机上本地创建的。
原因是多方面的。其中最主要的是嵌入式开发人员的传统风险规避:在高压环境下,随着上市时间的缩短,嵌入式开发人员往往不愿意改变他们的工具和设计流程。但另一个关键原因是:验证过程严重依赖于目标硬件,并且该硬件连接到桌面计算机。事实上,本地工具安装作为与实际目标硬件的接口通常是必要的。
现在,随着物联网(IoT)前景的展现,这一已有数十年历史的方法正在经历巨大的变化,这多亏了云。基于云的嵌入式开发工具(如Arm Keil Studio)可以帮助改进嵌入式系统的开发流程,从产品评估到基于模型或模拟的持续集成验证、机器学习的模型优化,直至部署的设备配置。
在软件开发中,版本管理和相关的管理工具(如问题跟踪)越来越多地被重新定位到云上。如今,跨国公司使用像GitHub这样的服务比拥有自己的it和服务器基础设施更经济。这还允许分散的开发团队或与不应直接访问公司IT的其他公司进行协作。
嵌入式开发人员基于云的嵌入式开发的四个关键优势
这一设计流程正在走向嵌入式,它有望改变嵌入式设计,并引发新一轮的创新和设计效率。
基于云的嵌入式开发有四个关键优势:
1.软件即服务(SaaS)和现成的开发工具
您可以使用云服务提供商提供的完整设置,而不是在计算机上本地安装集成开发环境(IDE)和相关软件开发环境。IDE在internet浏览器中运行,实际编译在云服务器上进行,通常比使用桌面流要快得多。
通过基于云的嵌入式开发,开发人员可以通过USB简单地连接来自不同半导体制造商的评估板,并使用web浏览器在目标系统上立即加载、测试和更改各种示例程序。不需要复杂的工具安装,软件示例始终是最新的。如果您想评估微控制器,您可以节省时间和精力,因为设置已准备好使用。这为团队提供了开发计算和操作系统的灵活性。
2.已部署系统的软件更新
空中传送(OTA)更新已经在许多设备上可用,但通常需要用户交互。OTA的自动化程度越来越高,也可用于Arm Cortex-M等小型微控制器。这使得软件开发可以分阶段进行,您可以更快地将功能最少的系统推向市场。然后,您可以通过OTA扩展此功能,从而使已部署的新一代产品适应新的需求。这提高了竞争力,但也可能导致未来出现新的商业模式。
3.预测性维修的数据分析
物联网系统可以通过与云的物联网连接向制造商提供有价值的数据。例如,如果您报告了有关系统的重要状态参数,则可以在系统出现问题之前,在早期阶段确定可能导致系统故障的潜在问题。维护工作更具成本效益,因为它只针对可能出现故障的系统。但是你也应该考虑操作数据,即系统通过传感器从环境接收的数据。如果您发现在开发过程中未考虑到的操作异常,则可以改进系统的功能。基于云的嵌入式开发为您提供了足够的计算能力来使用人工智能(AI),从而分析来自广泛安装基础的数据集。
4.软件修改的持续集成(CI)
GitHub等版本管理服务还提供了一个虚拟机,其中包含运行程序以执行各种测试作业。这已经是许多应用程序的常见做法。嵌入式应用程序的问题通常是目标硬件,但通过Keil Studio,我们可以为基于云的嵌入式开发提供强大的模拟环境,为Cortex-M子系统建模,并提供I/O选项。
一旦一个持续集成(CI)系统集成到流程中,软件开发人员就会收到自动信息——例如,修改是否有回归或正确集成。这通常会提高员工的积极性,及早发现潜在的错误,从而更快地提高质量。这样的CI流在汽车行业中已经很流行,但在未来几年中,这将作为一种常见做法推广到整个嵌入式行业。
事实上,当您将CI看作云服务中的一个服务时,使用虚拟平台的CI测试更加简化了开发。优点包括:
- 速度:虚拟平台没有在物理硬件上烧录应用程序的开销。这节省了小型快速单元测试的时间。
- 扩展:虚拟平台可以扩展以并行运行许多测试。这使得虚拟平台比物理硬件平台更具成本效益。
- 维护:与物理硬件不同,虚拟平台不会过热,不会因过度使用而磨损,不会因误用而中断,也不会使用物理空间和资源。
- 升级:虚拟平台可以进行调整和重新配置,以与正在开发的底层硬件平台的相应更改相匹配。
混合方法
虽然云系统的出现很重要,但这类系统有其局限性,尤其是因为云系统自然需要互联网连接。这并不总是满足开发需求。例如,软件开发中的指令跟踪要求数据的实时处理和高带宽。因此,在可预见的未来,此类系统将需要本地计算能力,并且需要在台式计算机上安装本地工具。
因此,目前需要一种混合的软件开发工具:云和桌面。例如,Keil Studio的云版本可以直接从桌面版本Keil MDK加载项目,反之亦然。这提供了必要的灵活性,并允许您逐步切换到云技术。
这里有更高效的嵌入式开发
跨国公司已经接受了云,利用其众多优势,从分散的开发团队到已安装设备的产品生命周期(PLM)管理。
具有相关服务的创新嵌入式产品通常依赖于云计算。例如,没有云,语音识别等应用是不可想象的。云对小型公司也很有吸引力,因为小型公司可以简化其IT基础设施。
在物联网边缘设备中集成云服务仍然是一个挑战,但这是一种具有光明前景的方法。这就是为什么我们正在与不同的行业合作伙伴合作开发软件堆栈,以降低复杂性,并与PSA设备安全认证等计划合作。
在未来,云对于嵌入式系统的开发过程和功能特性都是不可或缺的,我们致力于使基于云的嵌入式开发变得简单有效。
我们将在即将举行的Arm DevSummit虚拟活动上展示这些技术:
- 10月19日|现场问答对话:物联网端点开发的CI/CD和MLOps工作流程
- 10月19日|现场问答对话:为物联网长尾实现基于云的软件开发
- 10月20日研讨会:介绍Keil Studio和基于云的物联网和嵌入式应用开发
- 10月21日|研讨会:物联网DevOps在云中变得简单且可扩展
在Arm DevSummit 2021上了解更多关于基于云的嵌入式开发的信息:https://devsummit.arm.com/en?utm_source=blueprint&utm_medium=web&utm_campaign=2021_armdevsummit_mk17_arm_na_na_conv&utm_term=agenda&utm_content=cloud-services-blog