gpt4 book ai didi

git - CMSIS 库是否应该包含在版本控制中?

转载 作者:行者123 更新时间:2023-12-02 07:49:17 25 4
gpt4 key购买 nike

通常,我曾经在版本控制中包含芯片供应商 (ST) 提供的设备特定 header 和源以及 CMSIS-Core header 。数量不多,也没有更新的习惯。我使用 STM32 微 Controller ,但不使用CUBE 框架标准外设库

最近,我需要使用 CMSIS-DSP 库。 CMSIS-DSP 库附带大量头文件和源文件。我决定使用预编译库 (libarm_cortexM4lf_math.a),大约 5.4 MB。但现在我开始质疑它们是否应该进入版本控制。

我知道在版本控制中管理二进制文件不是一个好主意。但据我所知,CMSIS更新并不频繁。所以我很困惑。这些是我能想到的选项:

  1. 在存储库中包含 CMSIS header 和静态二进制文件:如果我决定不更新这些库,这可能是个好主意。 CMSIS本身并不经常发布新版本,即使发布了新版本,也可能不需要在项目中更新它。或者,在我的项目中更新它之前,我可能会跳过一些版本。
  2. 在存储库中包含 CMSIS 头文件和源文件:与选项 1 类似,但 git 更乐意使用文本文件而不是 5 MB 以上的二进制文件。但我不确定让第 3 方代码更改来污染我的源历史记录是否是一个好主意(选项 1 遇到同样的问题,但仅限于头文件)。
  3. 不要在存储库中包含 CMSIS: 这会生成一个干净的存储库,但在克隆项目后我必须手动将库文件复制到项目目录中。我还可以为 CMSIS 指定系统范围的安装文件夹并将其添加到项目中,但这会导致“在我的机器上运行”的情况。
  4. 找到一种自动获取库的方法:首先想到的是git子模块。但是,我不确定获取整个 CMSIS 存储库是否有效,因为我需要重组它,因为有很多不需要的文件,包括预编译的二进制文件。我想我需要某种后处理脚本?

这里最好的方法是什么?还有其他选择吗?

这里有一个类似的问题:Storing third-party libraries in source control看来人们对这个话题有不同的看法。但我相信在嵌入式 C 项目中使用 CMSIS 是一个具体案例,值得提出自己的问题。

最佳答案

使用 CMSIS 的 IMO 嵌入式项目应包含所使用的版本。 CMSIS 不像 C 标准库那样标准化,而且新版本通常与旧版本不兼容。

链接的帖子已经有 12 年历史了,(IMO) 存储库的大小远不如当时那么重要。现在嵌入式程序员使用的计算机的存储、内存、计算能力和上行连接带宽都无法与12年前使用的计算机相比。

关于git - CMSIS 库是否应该包含在版本控制中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60010580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com