嵌入式开发:嵌入式软件配置管理的3个技巧(嵌入式开发-嵌入式软件配置管理的3个技巧是什么)

  嵌入式软件配置管理可能是一项棘手的工作。今天的系统通常设计为在多种产品中为不同的客户在很长一段时间内工作,这些系统需要能够轻松配置,以便代码不会成为噩梦,并最大限度地减少配置不当的机会。在这篇文章中,我们将探讨嵌入式软件配置管理的三个技巧,这些技巧可以帮助嵌入式开发人员简化配置并最大限度地减少产品生命周期内的技术债务。

  技巧1 – 使用单独的回购

  在开发嵌入式产品时,将产品的所有代码放入单个版本控制存储库中可能很诱人。毕竟是一个产品,不应该把产品的所有东西都放在一个地方吗?不!将应用程序分成多个存储库可以显着改善代码库配置管理。

  在许多情况下,一个产品代码将用于多个产品SKU,并且在十年或更长时间内,可能会找到不同的配置来满足客户的要求。因此,团队可以仔细检查他们的产品设计并将所有配置代码放入单独的存储库中。至少,这会创建核心产品代码和几个配置存储库,用于管理核心应用程序的行为方式。这样做的好处是,如果SKU 或特定客户需要更改配置,它不会强制更改可能意外传播到其他系统的应用程序。

  配置不是唯一可以从放置在单独的存储库中受益的组件,将应用程序的每一层放入不同的存储库也有好处。例如,将驱动程序、中间件和应用程序分离到单独的存储库中可以迫使嵌入式开发人员更多地考虑代码的接口和抽象,这将有助于最大限度地减少层之间的耦合。例如,在芯片短缺期间,许多团队一直在努力更换微控制器,因为他们将应用程序与硬件紧密耦合。

  

嵌入式开发:嵌入式软件配置管理的3个技巧(嵌入式开发-嵌入式软件配置管理的3个技巧是什么)

  技巧2 – 利用 YAML、JSON 和 XML 文件

  在许多嵌入式产品中,开发人员将使用条件编译语句来管理他们的系统配置。 例如,如果我有两个不同的系统,一个有两个可以控制的继电器,另一个有四个,开发人员将编写如下C代码:

  #if SKU == PRODUCT_1

  // Custom configuration for two relays.

  #elif SKU == PRODUCT_2

  // Custom configuration for four relays.

  #else

  #error “The Product SKU has not been defined!”

  #endif

  如果产品很简单,那么在代码中散布一些条件编译并不是什么大问题,然而,今天的系统非常复杂,可能有数千条这样的语句分散在各处。可以想象,这将成为维护和配置的噩梦。

  开发人员可以利用配置文件,而不是使用条件编译。有两种方式可以利用配置文件。首先,嵌入式开发人员可以只创建包含产品配置信息的C模块配置,这些配置值被传递到各种应用程序、中间件和驱动程序初始化函数中。其次,基于C的配置文件易于设置和维护。

  一种更现代的方法是利用 YAML、JSON 和/或 XML格式的配置文件。例如,回顾条件编译示例,我们可以为两个中继配置编写一个如下所示的YAML文件:

  —

  Hardware:

  Relays:

  0x01:GPIO01

  0x02:GPIO15

  四中继配置 YAML 文件可能如下所示:

  —

  Hardware:

  Relays:

  0x01:GPIO01

  0x02:GPIO15

  0x03:GPIO22

  0x04:GPIO23

  使用YAML、JSON 和 XML文件有一个有趣的转折,如何使用这些文件来配置 C/C 应用程序?有几种方法,比如编写一个脚本,读取YAML文件,然后生成等效的C代码。例如,该过程可能如下所示:

  

嵌入式开发:嵌入式软件配置管理的3个技巧(嵌入式开发-嵌入式软件配置管理的3个技巧是什么)

  有些人在C之外使用配置文件并依赖脚本来构建配置感觉很复杂。但是,如果操作正确,这种技术可以成为管理系统配置的一种有价值且有益的方式。

  技巧3 – 使用C/C 包管理器

  嵌入式开发人员可以利用的另一个选项来帮助管理他们的产品配置是使用包管理器。包管理器允许开发人员管理他们的软件依赖项。此外,包管理器可以集成到构建系统中,使开发人员能够轻松地管理他们的构建,包括他们的配置管理。

  有几个包管理器可供使用C/C 的开发人员使用。例如,Microsoft C/C 团队维护了一个免费可用的工具,称为vcpkg,vcpkg 工具可用于集成第三方库、框架和开源代码或添加私有代码。或者,conan是一个开源包管理器,也被广泛使用。每种工具都有其优点和缺点,但无论你选择哪一种,它们都可以非常有效地帮助管理软件配置。

  结论

  很久以前,嵌入式软件已经从简单的小控制应用程序升级为通常需要复杂配置管理的复杂系统。条件编译等旧技术在小型项目中可能会有所帮助,但随着复杂性和规模的增长,嵌入式开发人员需要寻找更现代的工具。例如,包管理器和自动生成的配置文件可以极大地帮助改进系统的配置管理。但是,当然,成功使用这些工具依赖于纪律严明的团队,毕竟,谁想追逐生成配置的脚本中的错误?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年10月29日 上午8:14
下一篇 2022年10月29日 上午8:16

相关推荐

  • IT部门绩效

    IT部门绩效: 推动公司发展的关键 随着信息技术的不断发展,IT部门已经成为了公司中不可或缺的一部分。他们的工作不仅仅是维护公司的信息技术系统,还需要制定和实施公司的战略计划,并确…

    科研百科 2024年10月21日
    0
  • 2023年组织工作的重点任务和工作要求(2023年组织工作的重点任务和工作要求心得体会)

    2023年1月17日召开的全国组织部长会议,紧紧围绕深入学习贯彻习近平新时代中国特色社会主义思想和党的二十大精神,系统总结2022年组织工作和党的十九大以来组织工作新进展新成效,明…

    科研百科 2023年12月8日
    114
  • 系统项目管理面试

    系统项目管理面试:挑战与机遇 随着信息技术的快速发展,系统项目管理已经成为企业项目管理中的重要组成部分。系统项目管理涉及到多个方面,包括需求分析、系统设计、系统开发、系统测试、部署…

    科研百科 2024年12月14日
    0
  • 顺丰、三通一达、百世都在做的云仓,背后的信息系统是怎样打造的

    云仓是通过大数据分析、云计算等技术实现库存下沉、拉近库存与消费者距离,订单就近寻仓,提高整体效率的多仓网络运营模式;利用OMS就近寻仓将订单传入最近仓库的WMS进行发货,从而大大提…

    科研百科 2023年5月23日
    565
  • 还没体验过装系统?虚拟机你可以试试,安全无风险(用虚拟机安装系统)

    还没体验过安装系统?又有新系统出来了?生活中,各种系统经常出新,难免有时候想尝尝鲜,体验下新系统的新功能。由于只是出于好奇,如果对自己电脑重装其实是有风险的,小白用户稍一操作不当,…

    科研百科 2023年8月24日
    191
  • 熊猫办公官网

    欢迎来到熊猫办公官网! 熊猫办公是一家专注于办公领域的在线平台,提供各种办公工具和服务,让用户可以更加方便、高效地完成工作。 在熊猫办公官网,你可以找到各种实用的办公工具,例如: …

    科研百科 2024年10月2日
    29
  • 中国航发集团研究院所全名单

    中国航发集团研究院所全名单 中国航发集团是中国航空航天工业的主要组成部分,旗下拥有多个研究院所,涵盖了航空发动机、航空器、航空能源、航空材料、航空电子等多个领域。以下是中国航发集团…

    科研百科 2024年10月28日
    0
  • 青岛中车顾化龙

    青岛中车顾化龙:从工程师到企业家的转型之路 青岛中车顾化龙,是一位有着丰富工作经验的工程师,同时也是一位成功的企业家。他于1982年从德国留学归来,一直在青岛中车集团工作,担任着多…

    科研百科 2024年11月6日
    0
  • 项目经费列支

    项目经费列支:如何合理规划预算 项目经费列支是项目管理中非常重要的一环。合理的预算规划不仅可以提高项目的成功率,还可以保证项目在预算范围内完成。本文将介绍如何规划项目经费列支,包括…

    科研百科 2024年9月11日
    28
  • T20天正暖通CADV8.0(2022)软件安装及使用教程(天正暖通t20v4.0支持什么版本cad)

    ↓↓↓↓ 点击获取T20天正暖通软件V8.0体验地址 软件下载(免费更新各种办公软件,记得关注喔) T20天正暖通软件V8.0支持Win7 32位AUTOCAD 2010-2016…

    2022年7月26日
    1.1K