在这篇文章中,我们将了解嵌入式系统版本控制的五个技巧。技巧1-使用GPIO对PCB版本进行硬编码并非所有系统都有两到三个空闲GPIO线路可用。相反,开发人员还可以利用免费的模数(ADC)通道并使用模拟电压来表示版本号。在这种情况下,单个ADC通道可以连接到电阻桥的中点,其中一个电阻连接到VCC,另一个连接到地。在这种情况下,将调整电阻值以提供与版本号相关的特定电压。对于低功耗应用,开发人员希望选择足够大的电阻值,以防止任何大的寄生电流通过电路。技巧2-使用Major.Minor.Patch语义开发人员可以使用多种不同的方法来对他们的嵌入式软件进行版本控制。然而,应该采用并适合大多数软件开发团队的系统是MAJOR.MINOR.PATCH语义。毫无疑问,您见过具有这些版本号的软件,??例如1.0.0、1.1.2、2.4.2等。由于语义定义,常见的版本控制方案和对更改影响的理解一目了然。例如,MAJOR编号仅在软件发布时带有不兼容的API更改时才增加。这意味着我们仅在代码发生向后不兼容的更改时才增加MAJOR。MINOR数字仅在对现有API进行向后兼容改进时才会增加。PATCH仅在对软件应用错误修复时递增。使用此语义模式进行版本控制将使任何嵌入式软件开发人员都可以理解版本控制。技巧3-创建一个version.h模块创建一个包含Major.Minor.Patch语义和版本日志的version.h模块是对软件进行版本控制的最有效方法。可以使用宏定义轻松设置软件的版本号,例如:#defineVERSION_MAJOR(1)#defineVERSION_MINOR(0)#defineVERSION_PATCH(0)开发人员甚至可以设置允许运行软件的最低硬件版本:#defineHARDWARE_VERSION_MIN(4)version.h模块的一个重要部分不仅是版本控制软件,还有版本日志。这可以使用注释来完成,并且应该包括以下信息:软件版本模块更改模块更改提示4–尽可能避免模块和功能版本控制建议尽可能避免模块和功能级别的版本控制,这意味着版本号未分配给单个C模块或其中的函数。这样做的原因是给版本控制增加了不必要的开销,也增加了版本控制信息出错的可能性。例如,如果对Dio_Write函数进行了更改,则该函数的版本号不会增加。更新Dio_Write所在组件的版本号,这可能是Dio.c,或驱动程序组件,它是特定微控制器的驱动程序集合。如果你对你的功能进行版本化,你还必须对你的模块、组件和软件进行版本化,你可能会忘记在某个地方更新它,然后这些更改就会丢失。最好避免在如此低的级别进行版本控制。技巧5-将VCS与您的IDE集成版本控制软件的一个重要方面是该软件如何集成到版本控制系统(VCS)中。最流行的VCS是git,但一些开发团队仍在使用svn和mecurial。在对软件进行版本控制时,确保将VCS功能集成到开发环境中以使提交更改变得简单易行至关重要。例如,许多VCS插件将允许开发人员单击一个按钮,他们会将任何新的更改添加到推送中。他们还会弹出一个对话框,让开发人员有机会评论他们所做的更改,这是复制版本中记录的更改的绝佳机会。匹配的所有版本信息!结论对嵌入式系统进行版本控制并不一定很复杂。事实上,对系统进行版本控制越容易,使用错误版本的硬件或软件时出现混乱或问题的可能性就越小。嵌入式开发人员可以利用多种技术来简化版本控制,例如使用集成版本日志和基于硬件的版本控制。无论是什么系统,成功的唯一方法是所涉及的开发人员采用严格的版本控制方法并且在提交软件时不要偷工减料。
