如何处理嵌入式系统的版本控制

How to handle version control for embbedded system developement

提问人:Viermusketiere 提问时间:10/16/2023 最后编辑:Tom RiniViermusketiere 更新时间:10/18/2023 访问量:46

问:

我从我的第一个实际项目开始,开发一个由多个组件组成的嵌入式系统。也就是说,这些是用于引导加载程序的 uboot、用于内核和用户空间的 buildroot 以及应该安装到系统上的自定义应用程序。

关键问题是我应该如何处理不同组件的版本控制。

我心目中的所需文件夹结构如下所示:

- mainproject
  - bootloader
    - configs
      - someFiles.cfg
    - uboot                   [Git Repo]
      - .config
      - otherUbootFiles
    - crosstool-ng            [Git Repo]
  - os
    - buildroot [Git Repo]
    - buildrootOutOfTreeFiles
    - targetfs
      - someFiles.txt
  - application
    - application1            [Git Repo]
    - application2            [Git Repo]
    - userdata
      - someFiles.txt

主项目应包含完全生成嵌入式系统所需的所有文件。 我想到的是一个解决方案,如果我想更新例如 uboot 或 buildroot 的版本,可以简单地将集成存储库升级到新版本。 Uboot 和 buildroot 都将配置存储在其文件夹中。当我使用 git 将这些存储库作为子模块包含在内时,我只能跟踪相应存储库中这些文件夹中的更改。我想将这些配置文件包含在我的主存储库中,但不会失去从 git 中提取 uboot 和 buildroot 新版本的能力。

您将如何针对给定的用例进行版本管理? 我对各种建议持开放态度,唯一的限制是 git 应该用于源代码和版本控制。

git 版本控制 buildroot

评论

0赞 Andreas Louv 10/16/2023
您是否考虑过使用指向子模块外部的符号链接?
0赞 Viermusketiere 10/16/2023
您的意思是在主存储库中创建一个符号链接,该链接指向我想从子存储库中包含的文件?我还没有尝试过。
0赞 Andreas Louv 10/19/2023
我正在考虑在指向主存储库内部的子模块中创建符号链接。

答: 暂无答案