目录
大家好,本文讲解了嵌入式发展的3个大趋势,分享给大家。
趋势#1 – Visual Studio Code Integration
趋势#2 –支持“现代”软件流程
趋势 #3 – 在设计中利用 AI 和 ML
结论
大家好,本文讲解了嵌入式发展的3个大趋势,分享给大家。
Jacob Beningo是一名嵌入式软件顾问,专门研究基于微控制器的实时系统。他通过大量文章、博客和网络研讨会积极推广软件最佳实践,主题包括软件架构设计、嵌入式 DevOps 和实施技术。Jacob 在该领域拥有 20 年的经验,拥有三个学位,包括密歇根大学的工程硕士学位。
每年,都有无数的会议涵盖电子、嵌入式系统和软件。经理、工程师、开发人员等都有机会了解行业、网络中正在发生的事情,并看到所有即将推出的很酷的新东西,我的意思是工具。我最喜欢的三个会议是嵌入式世界大会,嵌入式在线会议和传感器融合会议。
今年3月,我有机会参加在德国纽伦堡举行的嵌入式世界大会,这是自疫情以来的第一次。在会议和展览期间,三个有趣的趋势突出出来,我相信开发人员会感兴趣。
图1:会议演讲出席率似乎恢复到大流行前的水平。这是一张 Jacob 软件架构会议前的一个演讲室的照片。
趋势#1 – Visual Studio Code Integration
Visual Studio Code(VS Code)在全球许多软件开发人员中越来越受欢迎。调查显示,75%的开发人员使用它,在嵌入式世界周围,我听说全球大约有4000万开发人员。这是很多开发人员。
正如你所料,使用 Visual Studio Code 的嵌入式软件开发人员的比例要小得多,但我怀疑这些数字正在迅速上升。通过参加我的研讨会的几位客户和工程师,我看到对VS Code的兴趣日益浓厚。在过去的几年里,我已经在几个项目中使用了它,尽管我并不声称自己是专家。
设置 VS Code 以使用嵌入式系统可能很复杂且容易出错。不要误会我的意思;一些很棒的插件简化了事情。但是,尝试集成微控制器供应商工具、交叉编译器、调试器等可能会很痛苦。(我曾经遇到过一个问题,如果是 C 代码,我可以毫无问题地编译、部署和调试。不幸的是,找不到C++来源!)
在嵌入式世界期间,来自不同微控制器供应商的公告,如意法半导体,恩智浦和Arm,关于对Visual Studio Code的支持。对VS Code的支持通常是与Microsoft合作开发的,并作为扩展出现在IDE中。
例如,STM32 VS Code Extension可以从扩展菜单下载,并且需要STM32CubeCLT。恩智浦为Visual Studio Code提供MCUXpresso。Arms Keil提供了一个名为Keil Studio Pack的扩展。
随着VS Code的普及,在嵌入式空间中使用它的需求正在增加,很高兴看到有价值的解决方案即将到来。(看到您最喜欢的供应商也宣布支持,请不要感到惊讶!)
趋势#2 –支持“现代”软件流程
我在会议上看到的另一个潜在趋势是对嵌入式开发人员的流程支持。长期以来,嵌入式开发人员一直与软件行业的其他开发人员分开,希望按照目标做所有事情。不幸的是,这限制了利用许多现代软件流程(如单元测试、持续集成、模拟等)的能力。
业界大力推动嵌入式系统的设计和构建方式现代化。例如,在展会现场有一些创建自动化管道的示例,该管道产生了GitHub原生的灵活CI / CD流程。
虽然这不是什么新鲜事,但显着的特点是 GitHub 操作现在使 Arm 开发工具(如 Arm 交叉编译器和 Arm 虚拟硬件)可用!此外,开发人员现在可以为其 CI/CD 管道运行虚拟硬件模拟。
趋势 #3 – 在设计中利用 AI 和 ML
我发现了一个令人兴奋的工具,尽管我认为它还有很长的路要走:GitHub Copilot。Copilot 使用 AI 根据您编写的代码行或添加到源代码中的注释来建议代码行。
我发现这在编写生成文件或函数时很有帮助。但是,有时这些建议没有意义或重复。也就是说,我无法告诉你CoPilot提出了多少次建议,我说,“哦,是的,添加它是个好主意!
我看到的另一个很酷但有点吓人的工具是系统设计工具。开发人员可以输入他们想要构建的内容,然后人工智能将使用开源参考设计、数据表等来创建框图、原理图,甚至 PCB 布局。
利用人工智能加速设计有可能大大加速设计和开发。再一次,我看到的例子做得很好,但总有那么一种在我脑海中啃噬,虽然它看起来不错,但魔鬼通常在细节中。尽管如此,AI / ML辅助设计的潜力还处于起步阶段,看到它已经在哪里真是太棒了。
结论
今年的嵌入式世界没有让人失望。它挤满了与会者、供应商和同事。来自世界各地的近900家公司正在展示他们最新,最卓越的技术。
虽然我无法在这篇博客中公正地描述它们,甚至无法触及我们行业所有趋势和暗流的表面,但我希望您对一些趋势和工具有一点了解,我们可以期待在不久的将来帮助我们开发嵌入式软件。