烧录工具与BootROM协同调试实战工程 - 第2节

2. 烧录工具基础

烧录工具,说白了就是把固件塞进芯片的那把「钥匙」。我做了这么多年嵌入式,发现很多新手上来就纠结选什么工具,其实没那么复杂。按使用场景,我习惯把它们分成两大类:离线烧录器和在线调试器。

1.1 离线烧录器

离线烧录器,也叫脱机烧录器。它的特点是——不需要电脑。你想想看,产线上几百块板子同时烧录,每块都连台电脑?那画面太美我不敢看。

离线烧录器的工作原理很简单:

  • 先把固件从PC下载到烧录器内部存储(SD卡或Flash)
  • 然后拔掉USB线,拿到产线上一对多烧录
  • 烧录器自己供电,自己控制时序

我在项目中遇到过最典型的场景:某次给客户做量产,一天要烧5000片STM32。用J-Link在线烧?一块板子要30秒,还得配台电脑。后来换成离线烧录器,一次烧8片,10秒搞定。效率差距,你品品。

离线烧录器核心特点:
  • 无需PC,独立运行
  • 支持批量烧录(4路、8路、16路常见)
  • 适合产线量产场景
  • 常见品牌:西尔特、致远电子、周立功

1.2 在线调试器

在线调试器,就是我们平时开发用的那种。它必须连着电脑,通过IDE(比如Keil、IAR)来控制。它的优势不是量产,而是调试。

我个人习惯这样区分:

  • 开发阶段:用在线调试器,单步执行、看变量、设断点
  • 量产阶段:用离线烧录器,只管烧,不管调

常见的在线调试器有:

品牌 支持协议 价格区间 适用场景
J-Link SWD, JTAG ¥300-¥5000 ARM Cortex全系列
ST-Link SWD ¥30-¥100 STM32专用
DAP-Link SWD ¥20-¥80 开源方案,兼容性好
ULINK SWD, JTAG ¥500-¥2000 Keil生态专用
我的建议: 个人开发用DAP-Link就够了,便宜又好用。公司项目建议上J-Link,稳定性和速度确实不一样。

二、常见烧录协议

协议这东西,说白了就是芯片和烧录器之间怎么「说话」。我见过最常用的就三种:SWD、JTAG、UART。嗯,这里要注意,不是所有芯片都支持所有协议,选错了连不上是常有的事。

2.1 SWD协议

SWD(Serial Wire Debug)是ARM公司搞出来的。它只需要两根线:SWDIO(数据线)和SWCLK(时钟线)。比起JTAG的5根线,它省了3根。

为什么我推荐SWD?

  • 引脚少:2根线就能调试+烧录,PCB布线省事
  • 速度快:最高能跑到几十MHz,烧录大固件不煎熬
  • 兼容性好:所有ARM Cortex-M系列都支持

我曾经踩过一个坑:某次用SWD调试一款国产MCU,死活连不上。查了半天,发现是芯片的SWD引脚默认被复用成了GPIO,需要先拉高BOOT引脚才能进入烧录模式。嗯,这种坑,遇到一次就记住了。

2.2 JTAG协议

JTAG(Joint Test Action Group)是更老的协议,5根线:TMS、TCK、TDI、TDO、nTRST。它比SWD多了边界扫描功能,可以测试PCB焊接质量。

什么时候必须用JTAG?

  • 调试FPGA或CPLD时
  • 需要边界扫描测试PCB时
  • 某些老芯片只支持JTAG
注意: JTAG的5根线不能随便接。我见过有人把TDI和TDO接反了,烧录器直接冒烟。接线前一定看芯片手册,别凭感觉来。

2.3 UART烧录

UART烧录,也叫串口烧录。它不需要专门的调试器,一根USB转串口线就能搞定。很多芯片出厂时,BootROM里就内置了UART烧录程序。

UART烧录的特点:

  • 成本低:一根CH340线才几块钱
  • 速度慢:一般115200bps,烧个1MB固件要几分钟
  • 适合小批量:开发调试时临时用用还行

我记得有一次出差,客户现场板子出了问题,我手头只有一根USB转串口线。还好芯片支持UART烧录,硬是靠着115200的波特率把固件灌进去了。虽然慢,但能救命。

三、烧录工具与PC的通信方式

烧录工具怎么跟PC「聊天」?常见的有三种方式:USB、以太网、SD卡。我一个个说。

3.1 USB通信

这是最主流的方式。烧录器通过USB连接到PC,PC上的烧录软件通过USB协议发送命令和数据。

USB通信的优势:

  • 即插即用,方便
  • 速度快(USB 2.0理论480Mbps)
  • 供电+通信一根线搞定

但要注意:USB线质量很重要。我遇到过好几次,劣质USB线导致烧录中途断开,芯片直接变砖。后来我学乖了,产线上统一用带屏蔽的USB线。

3.2 以太网通信

有些高端烧录器支持以太网。比如J-Link Pro、PE Micro等。它们通过网线连接到局域网,PC通过网络远程控制。

什么时候用以太网?

  • 产线自动化:烧录器放在产线上,PC在办公室远程控制
  • 多台烧录器协同:一台PC控制几十台烧录器同时工作
  • 远程调试:出差时远程烧录现场设备
以太网烧录的典型架构:
PC(烧录软件)→ 局域网 → 烧录器(以太网口)→ SWD/JTAG → 目标芯片

3.3 SD卡通信

离线烧录器常用这种方式。把固件拷贝到SD卡,插到烧录器上,烧录器自己读取SD卡里的固件进行烧录。

SD卡通信的优缺点:

  • 优点:完全脱离PC,适合产线
  • 缺点:更新固件需要拔插SD卡,麻烦

我个人习惯:量产时用SD卡方案,开发调试时用USB方案。各取所长。

四、知识体系总览

说了这么多,我画了张图帮你理一理。这张图把烧录工具的分类、协议、通信方式串在了一起,你看完应该能有个整体印象。

烧录工具知识体系 烧录工具分类 离线烧录器(脱机烧录) 在线调试器(联机调试) 常见烧录协议 SWD(2线) JTAG(5线) UART(串口) 与PC通信方式 USB通信 以太网通信 SD卡通信
一句话总结: 开发用在线调试器+SWD协议+USB通信;量产用离线烧录器+SWD协议+SD卡通信。记住这个组合,基本不会出错。