【嵌入式开发】开源烧录器收集
Contents
起因
产线与小批量生产里有个高频需求:烧录时不接电脑——工人按键/插 U 盘就把固件写进板子。商用的离线烧录器不便宜,而开源方案大多基于 CMSIS-DAP/DAPLink 这套开放协议,自己做一个并不难。这份清单收集几个可以直接拿来用的开源离线烧录器项目。
先分清:在线烧录与离线烧录
- 在线烧录:调试器(J-Link/DAPLink/ST-Link)一头接 PC,一头接目标板,PC 上的软件控制整个烧录过程。开发调试阶段都用它;
- 离线烧录器:把“控制烧录的那台计算机”缩小成一块小 MCU + 存储。固件先灌进烧录器(U 盘拷贝或 PC 工具下发),到产线上脱离 PC 独立完成烧录,有的还带校验、计数、权限控制。
为什么开源方案多基于 DAPLink/CMSIS-DAP:CMSIS-DAP 是 ARM 官方开放的调试访问协议标准(USB 转 SWD/JTAG 时序),DAPLink 是它的开源参考实现。协议开放意味着上位机(pyOCD、OpenOCD、Keil/IAR)都认,做离线烧录器只需要在固件里把“PC 发命令”换成“本地脚本回放命令”。
资源清单
nanoDAP 离线烧录器,拖拽到U盘烧录
https://github.com/wuxx/nanoDAP
小巧的开源 DAP 调试器,同时带离线烧录功能:固件拖到它虚拟出的 U 盘里即完成烧录,做产线工装很方便。
DAP离线烧录器
PC端程序
https://gitee.com/airtech/offline_Qt
固件程序
https://gitee.com/airtech/offline_burner
一套 PC 工具 + 烧录器固件的组合:先用 PC 端程序把固件和配置下发到烧录器,之后烧录器即可脱离 PC 独立工作。源码都在,适合按自己的产线流程改造。
SWD离线烧写器
https://github.com/MBronsom/OfflineSWD/
另一个开源 SWD 离线烧写器实现,可对照参考不同作者对“离线控制逻辑”的处理。
怎么选
- 只是偶尔产线烧几片:nanoDAP 这类“U 盘拖拽”最省事;
- 要校验/计数/多固件切换/对接产线软件:airtech 那套 PC 端 + 固件的组合可定制性更强;
- 想自己写一个:先读 DAPLink 源码理解协议回放,再参考这几个项目的离线状态机。
注意事项
- 离线烧录的核心是校验:U 盘拖拽方便,但一定要在流程里保留读回校验(verify),否则坏片混出去很难追;
- 目标板的烧录算法要确认支持:DAP 方案依赖 flash 算法(FLM/flash algo),冷门芯片先在在线模式下验证算法可用,再做离线;
- SWD 线序与电平:不同板子的 SWD 引出顺序不统一,做工装时标好线序,注意电平匹配(1.8V 目标板);
- GitHub 项目活跃度:这类项目作者随缘维护,选型时看一下 issue 区有没有目标芯片的成功案例。
Author 软件开发大郭
LastMod 2022-06-04