嵌入式项目很容易变成一堆 SDK 压缩包、临时补丁、手工改动和不可复现镜像。项目目录和协作方式如果不规范,团队越多人,问题越难追。
一、推荐目录
示例:
1 | project/ |
或者把 Buildroot 作为子模块,应用单独仓库。关键是能说明每个目录职责。
二、哪些要进 Git
应该保存:
- defconfig。
- kernel config。
- busybox config。
- rootfs overlay。
- 自定义 package。
- 应用源码。
- 构建脚本。
- 文档。
不建议保存:
- 完整 output。
- 临时镜像。
- 编译中间文件。
- 私钥和证书。
产物可以通过 CI 归档,不一定进源码仓库。
三、补丁管理
厂商 SDK 经常需要打补丁。
建议:
1 | patches/ |
每个补丁写清楚:
- 修改原因。
- 适用版本。
- 是否已反馈上游。
- 是否可以删除。
不要直接在 SDK 里手工改完就忘。
四、一键构建
提供:
1 | ./scripts/build.sh |
做到:
- 从干净环境开始。
- 加载配置。
- 编译固件。
- 生成版本信息。
- 输出产物路径。
新人接手项目时,一键构建比长文档更可靠。
五、文档最小集
至少包括:
- 环境搭建。
- 构建方法。
- 烧录方法。
- 串口参数。
- 分区布局。
- OTA 流程。
- 常见问题。
文档要跟着代码更新,否则很快失效。
六、协作底线
团队协作底线:
- 所有改动可追踪。
- 所有镜像可复现。
- 所有版本可定位。
- 所有发布有记录。
嵌入式项目不是只写代码,更多时候是在管理复杂系统的可重复性。
- 本文链接: https://blog.hansong.icu/2026/06/26/Embedded_Linux_Series_30_SDK_Project_Structure/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。