随着现代软件技术进入我们的行业,嵌入式系统行业经历了一些快速的变化。虽然将改变你的开发的具体技术可能会根据你的行业和团队技能而有所不同,但是有三种技术是每个团队都应该采用的。
现代技术1:基于模型的设计
嵌入式开发人员习惯于在硬件和应用程序代码的交叉点上工作。他们从低层次思考,包括与硬件的交互。虽然在某些情况下这很重要,但是有更多的机会在最高的抽象层次上思考。今天的系统已经变得如此复杂,以至于从头开始构建一个系统是没有意义的。
基于模型的设计是一种技术,团队可以利用它来帮助他们在更高的抽象层次上工作。他们不关注硬件,而是关注用户和他们的应用程序代码。这种技术使用图形模型(而不是传统的代码)来设计和模拟嵌入式系统。它允许快速原型化和测试,使得开发过程更加高效和抗错。
基于模型的设计经常与“无代码”的概念联系在一起这个想法是,你可以创建应用程序的模型,测试它,修改它,然后生成代码。虽然这种想法可能会令许多嵌入式开发人员反感,但它是一种现代技术,可以帮助你更快地开发系统并关注客户。有客户反馈的快速迭代对每个产品开发周期都至关重要。
现代技术2:容器化和虚拟化
容器和虚拟化是软件开发人员的基本技术,但它们仍在嵌入式系统中被采用。这些技术可以在几个方面极大地帮助开发人员。
首先,利用容器可以帮助团队创建隔离且一致的开发、测试和部署环境。这些环境可以确保每个开发人员都使用配置相同的一组工具。对于团队来说,与在不同机器上表现不同的软件斗争并不罕见。根本原因通常是编译器或工具链的差异。容器有助于确保这些环境是相同的。他们还可以帮助新的团队成员和机器更快地建立起来,只需让他们构建容器,然后准备好就可以了。
第二,这些技术可以集成到系统的软件架构中,以提供可扩展和可移植的解决方案。开发人员可以创建基于微服务的架构,以各种架构模式部署容器。现在,这些技术不一定适用于所有的嵌入式系统。例如,使用运行Linux的应用程序处理器的开发人员可以很容易地利用这些技术。与此同时,使用微控制器的开发人员可能会发现,微控制器需要太多的马力和内存才能发挥作用。
虽然容器和虚拟化是令人着迷的技术,但嵌入式开发人员必须仔细权衡何时何地使用它们才能对其开发过程产生最大的积极影响。
现代技术3: DevOps和CI/CD
在嵌入式系统开发中实施DevOps实践(包括CI/CD管道)可以显著提高软件开发过程的效率和质量。嵌入式开发人员通常手动完成所有工作,例如手动测试代码、审查代码、部署代码等等。
DevOps和CI/CD帮助开发人员专注于自动化他们的开发过程。这一切都是为了快速和经常地获得反馈。持续改进和快速迭代。有什么比自动化更好的方法来做到这一点呢?
CI/CD可以帮助开发人员创建构建、测试、集成、分析和部署其软件的自动化。一条简单的管道可以在几个小时内组装起来。然而,一个完整的生产意图管道可能需要仔细的规划和熟练的执行。从质量保证、安全扫描、报告等等,在整个流程中可能会有其他流程的交叉。团队通常会在部署前创建一个手动关口,要求签收向客户部署的最新固件。
一旦进入现场,可观察性技术用于监控固件的行为并报告是否有任何问题。可观察性可以帮助团队尽早发现问题和缺陷,然后部署修复措施以确保客户在使用产品时获得最佳体验。
结论
成功设计和构建一个嵌入式系统需要多方面的配合。虽然你可以通过多种方式创建系统,但这三种现代技术可以帮助你提高质量并更快地进入市场。有些方法需要极大的思维转变才能发挥杠杆作用,而其他方法似乎非常自然。