烧录工具固件更新步骤与兼容调试 - 第1节

一、烧录工具概述:它到底是什么?

大家好,我是你们的嵌入式固件开发讲师。今天咱们正式开始这门课的第一讲——烧录工具概述。

先问个问题:你写好的代码,怎么跑到芯片里去的?

嗯,答案就是烧录工具。说白了,烧录工具就是一座桥。它把 PC 上的固件二进制文件,通过某种物理接口,写入目标芯片的 Flash 或 ROM 里。没有它,你写的代码就只是一堆躺在硬盘上的文本。

我个人习惯把烧录工具分成两大类:离线烧录器和在线调试器。这两者虽然都叫“烧录”,但使用场景和原理差别很大。下面我详细说说。

1.1 离线烧录器

离线烧录器,也叫编程器。它的特点是:不依赖 PC 运行。你只需要把固件文件提前下载到烧录器内部存储里,然后它就能独立完成烧录工作。

我在项目中遇到过一种情况:产线上一批 1000 片芯片需要烧录,如果每片都连电脑,效率极低。这时候离线烧录器就派上用场了。操作员只需把芯片放到烧录座,按一下按钮,几秒钟就搞定一片。

离线烧录器的核心优势:

  • 批量烧录,效率高
  • 不依赖 PC,适合产线环境
  • 支持多种芯片封装(DIP、SOP、QFP 等)
  • 通常带校验功能,保证数据正确

注意:离线烧录器一般不支持在线调试。它只管“写进去”,不管“跑起来”。如果你需要调试代码,得用在线调试器。

1.2 在线调试器

在线调试器,也叫调试探针。它不仅能烧录,还能实时调试——设置断点、单步执行、查看寄存器值、读写内存。这是开发阶段最常用的工具。

你想想看,写代码时谁能保证一次就写对?反正我不能。我记得刚入行那会儿,写了个 SPI 驱动,死活调不通。后来用调试器单步跟踪,才发现是时钟极性配置反了。要是没有在线调试器,这种问题排查起来简直要命。

常见的在线调试器有:

  • J-Link(SEGGER 出品,ARM 芯片首选)
  • ST-Link(ST 官方调试器,用于 STM32 系列)
  • CMSIS-DAP(ARM 开源调试器方案)
  • ULINK(Keil 配套调试器)

1.3 离线 vs 在线:一张表看懂

对比项 离线烧录器 在线调试器
主要用途 批量烧录固件 开发调试 + 烧录
依赖 PC 仅初始化时需要 全程需要
调试功能 无 有(断点、单步等)
烧录速度 快(专用硬件) 中等(受调试协议限制)
适用场景 产线量产 研发调试
典型价格 几百到几千元 几十到上万元

二、常见烧录协议:SWD、JTAG、UART

工具讲完了,咱们聊聊协议。烧录协议就是工具和芯片之间通信的“语言”。不同的芯片支持不同的协议,选错了协议,烧录器连都连不上。

2.1 SWD(Serial Wire Debug)

SWD 是 ARM 公司推出的调试协议。它只用两根线:SWDIO(数据线)和 SWCLK(时钟线)。

为什么 ARM 要搞 SWD?因为 JTAG 占用的引脚太多了。SWD 只需要 2 根信号线,加上 VCC、GND,总共 4 根线就能完成烧录和调试。这在引脚紧张的芯片上非常实用。

我的经验:现在绝大多数 ARM Cortex-M 系列芯片都支持 SWD。我个人习惯优先用 SWD,除非芯片不支持或者需要调试 FPGA 逻辑。SWD 的烧录速度通常能跑到 10MHz 以上,实际体验很流畅。

2.2 JTAG(Joint Test Action Group)

JTAG 是更早的标准,由 IEEE 1149.1 规范定义。它需要 5 根线:

  • TMS(模式选择)
  • TCK(时钟)
  • TDI(数据输入)
  • TDO(数据输出)
  • TRST(可选,复位)

JTAG 的优势在于:它不仅能调试 CPU,还能测试 PCB 板级连接(边界扫描)。我在调试一块多核 ARM + FPGA 的板子时,就用 JTAG 的边界扫描功能定位了一根虚焊的地址线。这个功能 SWD 可做不到。

避坑指南:我曾经遇到过一个案例——JTAG 的 TDO 引脚被复用成了 GPIO,结果调试器死活连不上。查了两天才发现是硬件设计时没考虑调试需求。所以,画原理图时一定要确认 JTAG 引脚没有被其他外设占用。

2.3 UART(串口烧录)

UART 烧录,也叫 ISP(In-System Programming)。它利用芯片的串口(UART)来接收固件数据,由芯片内部的 Bootloader 完成写入。

UART 烧录的特点是:

  • 硬件简单:只需要 TX、RX 两根线
  • 速度慢:通常 115200 bps 或 460800 bps
  • 无调试功能:只能烧录,不能单步调试
  • 依赖 Bootloader:芯片出厂时需预置 ISP 固件

什么时候用 UART 烧录?我举个例子:你手头只有一块 STM32 最小系统板,没有调试器。这时候可以用 USB 转串口模块,通过 UART1 把固件烧进去。虽然慢,但能应急。

2.4 三种协议对比

协议 信号线数 调试功能 速度 适用芯片
SWD 2 完整调试 高(可达 50MHz) ARM Cortex-M/R/A
JTAG 4~5 完整调试 + 边界扫描 高 ARM、FPGA、DSP 等
UART 2 无 低(通常 ≤ 1Mbps) 带 ISP Bootloader 的芯片

三、知识体系总览

下面这张图,把本章的核心知识点串起来了。你可以把它当作一个思维导图来理解。

烧录工具知识体系 烧录工具 离线烧录器 在线调试器 烧录协议 批量烧录 产线量产 断点调试 单步执行 SWD JTAG UART 核心要点 • 离线烧录器:适合产线,不支持调试 • 在线调试器:适合开发,支持断点/单步 • SWD:2线,ARM芯片首选 • JTAG:4~5线,支持边界扫描

四、小结

这一章我们聊了三个核心概念:

  • 烧录工具是什么——连接 PC 和芯片的桥梁
  • 两大分类——离线烧录器(产线用)和在线调试器(开发用)
  • 三种协议——SWD(2线)、JTAG(4~5线)、UART(2线,无调试)

嗯,到这里第一章就结束了。内容不多,但都是基础中的基础。后面的章节我们会深入每个协议的细节,还会讲固件更新的具体步骤和兼容性调试技巧。到时候见。