开发嵌入式软件构建管道

我注意到一个有关嵌入式的有趣事实 软件开发是指开发过程和技术往往落后 一般软件行业。当我第一次开始编写嵌入式软件时 在1990年代后期,重点似乎转移到不再写作上 汇编语言和采用C以及随之而来的最佳实践 它。应用程序是整体的野兽将几乎没有组织。如果你 看看当时软件行业的目标, 应用程序的面向对象设计,重用和可伸缩性。甚至 今天,通用软件行业已经采用了构建管道,持续不断 集成和测试工具,而一般的嵌入式行业似乎 几乎没有意识到这些过程的存在(至少在有市场的公司中 上限远低于十亿美元)。让我们研究一下嵌入式开发人员如何 创建自己的构建管道。

构建管道概述

开发更复杂的构建管道可以 对嵌入式软件开发生命周期的巨大影响。例如, 在软件产品的整个生命周期中,经过深思熟虑的构建流程 can:

  • 提高软件质量
  • 减少调试时间
  • 降低项目成本
  • 增强按时完成任务的能力
  • 简化软件部署流程

软件构建管道仅是过程 以及用于管理,测试和部署应用程序的工具。例如, 嵌入式软件开发人员通常会将其软件进行修订 控制系统,手动测试其代码,然后发布应用程序映像 可以手动部署到他们的系统。这个构建管道非常 传统,但缺乏现代构建的复杂性和自动化 pipeline can offer.

嵌入式开发人员可以使用的更现代的构建管道 杠杆包括四个阶段,可以完全自动化和手动 开始。这些阶段包括:

  • 提交软件(手动触发)
  • 构建和分析(自动化)
  • 测试和报告(自动)
  • 部署(自动或手动)

每个阶段都有自己的流程和相关工具 ,但最后三个阶段都可以作为连续 集成/连续部署过程(CI / CD)。 CI / CD背后的想法是 开发人员可以在一天结束时将其代码提交到存储库 然后开始进行一系列的自动构建,指标和测试, 在第二天或一切顺利的情况下向开发人员提供反馈 自动将固件部署到现场设备上。概述 流程和涉及的通用工具可以在下图中看到:

请注意,此图由两半组成,上半部 一半描述了要遵循的过程,另一半描述了 描述所涉及的工具。测试之间也存在障碍 和报告阶段以及部署阶段。仅在以下情况下才应部署软件 除所有测试外,它还通过了所有构建和分析标准 案件。如果任何构建或测试案例创建警告或错误,则此 反馈可以报告给开发人员,从而触发更新 软件,然后进行新的提交,然后再次启动自动化阶段。

增强嵌入式软件构建管道

创建自动构建管道不会发生 过夜。研究正确的工具,实施它们,测试 过程,然后培训工程师如何正确使用它。如我所说 以前,收益很容易超过这些成本。那怎么办 增强他们的软件构建渠道?

首先,重要的是要确保您的身体健康 修订控制流程到位。我现在与之交谈的大多数团队都在使用 版本控制。与几年前相比,这是一个很大的进步,但是 我交谈过的许多团队都会提到,他们每周仅提交一次代码,或者 甚至更少。我相信应该以小规模开发软件 足够的代码块,每天至少要提交一次(如果不是几次) 天。这样做将使管道能够提供更多反馈 frequently.

其次,您需要实现持续集成 服务器。最受欢迎的游戏之一,也可以由 嵌入式软件开发人员是詹金斯(尽管还有其他人)。一种 持续集成服务器旨在自动化构建和部署 软件,您会发现通常可以进行许多集成 用于自动执行几乎任何您想要的操作。

第三,您需要确保编译器和 静态代码分析工具可以通过命令行界面或 包括用于持续集成服务器的插件。如果你呢 没有静态代码分析工具?静态代码分析很重要 在软件开发过程中迈出第一步,现在是找到一个的好时机。

第四,也许最困难的是选择测试 利用并将其集成到开发过程中。自动化测试是 非常适合回归测试和验证软件,但它们确实要求 测试应作为开发过程的一部分进行设计和实施。 自动化无法完全测试软件的测试可能会在 软件,导致部署质量比以前低 期望。因此,应该从一开始就开发测试工具 如果可能的话,并集成到测试驱动开发(TDD)等流程中。

最后,您不必一次完成所有这些操作。可以逐步完成构建流程。一次从上述每个步骤开始,并构建您的工具链和流程,以使它们如虎添翼。一旦每个阶段都坚如磐石,就添加它,直到最终拥有一个现代化的构建管道,该管道可以完全自动化您的构建,测试和部署。

结论

现代化嵌入式软件构建管道可以 为开发团队和整个企业带来很多好处。 就像任何过程一样,正确建立现代化的构建流程 嵌入式系统开发需要花费时间和预算,才能 设计和实施管道。鉴于我的环境动荡 看到如此众多的开发团队,现代化的构建流程可以帮助阐明 前进的道路,监控软件质量,甚至简化软件更新。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.