嵌入式系统版本控制的5个技巧

嵌入式系统工程师可能要棘手的一个话题 是如何对其嵌入式系统进行版本控制。每个嵌入式系统都有两个主要的 需要版本控制的系统,硬件和软件。而 对系统进行版本控制听起来很简单,但在最佳方式上可能会造成混淆 版本化系统。在这篇文章中,我们将研究五个版本的技巧 embedded system.

技巧1 –使用GPIO对PCB版本进行硬编码

将硬件版本号放在PCB丝网上是 对嵌入式系统的硬件进行版本控制的一种通用方法,但是该系统 软件无法读取丝印。在某些应用中,硬件可以 版本之间的差异很大,因此确保 某些软件版本在特定硬件上运行。为此, 软件需要能够读取硬件版本号,以确保 它在兼容的硬件上运行。

开发人员可以通过两种方式对其版本进行版本控制 硬件,以便软件可以读取硬件版本。首先,如果系统 具有备用GPIO,可以使用两到三个GPIO线来指示 硬件版本。每条GPIO线都可以拉至VCC(代表1) 或地面(代表0)。如果使用二进制表示,则两个GPIO将 提供多达四个版本,而三个GPIO提供八个版本 shown below:

GPIO 0 GPIO 1 GPIO 2
版本1 0 0 0
版本2 0 0 1
版本3 0 1 0
版本4 0 1 1
版本5 1 0 0
版本6 1 0 1
版本7 1 1 0
版本8 1 1 1

并非所有系统都会有两到三条空闲的GPIO线 可用。相反,开发人员还可以利用免费的模拟到数字 (ADC)通道,并使用模拟电压表示版本号。在 在这种情况下,单个ADC通道可以连接到一个ADC的中点。 电阻桥,其中一个电阻连接到VCC,另一个电阻接地。在 在这种情况下,将调整电阻值以提供特定的 与版本号关联的电压。对于低功耗应用, 开发人员可能希望选择足够大的电阻值 足以防止任何大的寄生电流通过电路。

提示2 –使用Major.Minor.Patch语义

开发人员可以使用多种方法 用于对其嵌入式软件进行版本控制。应采用的系统 但是,并且适合大多数软件开发团队使用的是 MAJOR.MINOR.PATCH语义。您无疑已经看到带有这些功能的软件 版本号,例如1.0.0、1.1.2、2.4.2等。

通用版本控制方案,并了解更改 由于具有语义定义,因此一目了然。 例如,主号码仅在软件发布时递增 API更改不兼容。这意味着我们仅在有 是不向后兼容的代码更改。 MINOR号是 仅在进行与之向后兼容的改进时才增加 现有的API。仅当将错误修复程序应用于补丁时,补丁才增加 software.

使用此语义模式进行版本控制将使其 任何软件开发人员都可以理解版本控制。

提示3 –创建一个version.h模块

通常,我发现创建了一个version.h模块 包含Major.Minor.Patch语义以及要作为版本日志的版本日志 最有效的软件版本控制方法。版本号可以轻松设置 使用宏定义的软件,例如:

#define VERSION_MAJOR      (1)

#定义VERSION_MINOR      (0)

#定义VERSION_PATCH       (0)

开发人员甚至可以设置最低硬件版本 允许运行该软件:

#定义HARDWARE_VERSION_MIN  (4)

version.h模块的重要组成部分不仅仅是 软件版本,但还包括版本日志。可以做到 使用评论,并应包含以下信息:

  • 软件版本
  • 模块已更改
  • 模块变更

在我自己的版本日志中,我总是将更改附加到 日志的顶部,这样我就不必一直滚动到底部来查看 在先前版本中进行了哪些更改。

提示4 –尽可能避免模块和功能的版本控制

嵌入式应用程序的版本控制方式为 完全取决于开发团队,但我的一个建议是尝试 尽可能避免模块和功能级别的版本控制。我的意思是 是我们不想为各个C模块分配版本号 或其中的功能。原因是它开始添加一个 不必要的版本控制开销,也提高了 版本信息将是错误的。

例如,如果我有一个Dio_Write函数 更改为,我不想增加此功能的版本号。一世 想要更新Dio_Write所在组件的版本号。 可以是Dio.c,也可以是驱动程序组件,它是 特定微控制器的驱动程序。如果我对功能进行版本控制,我也有 对模块,组件和软件进行版本控制。我会忘记 在某处更新它,然后这些更改将丢失。最好 只是避免在如此低的级别进行版本控制。

提示5 –将VCS与您的IDE集成

版本控制软件的一个重要方面是 该软件已集成到版本控制系统(VCS)中。最受欢迎 这些天的VCS是git,但是某些开发仍使用svn和mecurial 团队。在对软件进行版本控制时,我发现确保 您将VCS功能集成到您的开发环境中 为了使更改变得简单而容易。例如,许多VCS 插件将允许开发人员单击单个按钮,他们将添加任何 推送的新变化。他们还将弹出一个对话框,为开发人员提供 有机会对他们所做的更改发表评论。这是绝佳的机会 复制在version.h中记录的更改并将其粘贴到VCS中 日志。这样,软件和VCS之间的所有版本信息 match!

结论

不必对嵌入式系统进行版本控制 复杂。实际上,对系统进行版本控制的过程越简单, 错误的使用可能会导致混乱或问题 硬件或软件的版本。如我们所见,有一些技巧 开发人员可以利用来简化版本控制,例如使用集成的 版本日志和基于硬件的版本控制。不管采用什么系统 成功的唯一途径是,如果相关的开发人员采用 规范的版本控制方法,当他们提交自己的文档时不要偷工减料 software.

发表评论

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

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