起因

产线与小批量生产里有个高频需求:烧录时不接电脑——工人按键/插 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 区有没有目标芯片的成功案例。