烧录工具与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生态专用 |
二、常见烧录协议
协议这东西,说白了就是芯片和烧录器之间怎么「说话」。我见过最常用的就三种: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
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方案。各取所长。
四、知识体系总览
说了这么多,我画了张图帮你理一理。这张图把烧录工具的分类、协议、通信方式串在了一起,你看完应该能有个整体印象。