
在一个典型的网络项目中,管道可能看起来像:
代码→构建→测试→部署,这个过程足够简单。
但是,当你的“部署的目标”是微控制器(MCU)或ECU(汽车电子控制器)时,会发生什么?突然间,管道看起来更像:
编码→构建/交叉编译→静态分析→单元测试→集成测试→固件构建→闪存烧入/部署→硬件闭环(HIL)→系统测试
这就是嵌入式系统中的CI/CD变得有趣的地方,你必须处理那些在纯软件环境中通常不存在的东西:
🔹交叉编译器
🔹硬件依赖性
🔹固件伪造
🔹目标资源有限
🔹物理设备
🔹硬件闭环测试
🔹不同的板和配置
这也是为什么Git和Docker等工具变得非常有用,Git帮助管理源代码和协作,Docker可以帮助创建可复制的构建和测试环境,CI可以自动构建和测试每个更改,结果呢?
• 更少的体力劳动。
• 更快的反馈。
• 更可复制的构建。
• 早期发现问题。
但有一个重要的问题:我们真的可以在嵌入式系统中进行持续部署吗?有时是的,有时,部署到真实硬件需要额外的安全、验证、批准或受控发布流程,这是我发现嵌入式软件工程有趣的事情之一。
现代嵌入式开发正在成为软件工程+硬件+自动化+测试的结合,我目前正在探索如何将Git+Docker+CI/CD+自动测试集成到嵌入式工作流程中。
对于那些在嵌入式中工作的人,你的CI/CD管道是什么样子的?您是否已经自动化了固件构建和测试,还是仍然有很多手动工作?

麦克泰技术作为SEGGER代理商,秉承“让嵌入式软件开发更容易”的理念,致力于推广嵌入式软件开发工具、测试软件和嵌入式操作系统。SEGGER具有代码生成、构建、调试、验证和编程工具和软件,广泛受到产业界的欢迎,欢迎联系info@bmrtech.com。

产品购买(麦克泰)

产品购买(贝尼思)

线上课程(网校)
欢迎关注微信公众号【麦克泰技术】,回复 “加群” 按提示可加入技术交流群
产品咨询:
北京:010-62975900
上海:021-62127690
深圳:0755-82977971
分享、在看与点赞,至少我要拥有一个吧
