下载器与调试接口

← 返回 debug方法 | ← 主页

下载器/调试器本质是 USB → SWD/JTAG 的协议桥,干的都是同一件事:把 PC 端命令转成 SWD/JTAG 时序送进芯片。


统一下载原理

Cortex-M 芯片内部已集成调试硬件(CoreSight),下载器只是「外接的桥」,本身不懂芯片:

PC(Keil/Ozone/pyOCD) ──USB──▶ 下载器(J-Link/ST-Link/DAP) ──SWD/JTAG──▶ 芯片 DAP ──▶ 内核/内存
环节作用
内核调试单元DWT(数据观测)、ITM(跟踪)、FPB(硬件断点)、ETM(指令跟踪),ARM 已集成在内核里
DAP 调试访问端口芯片对外的调试入口(SW-DP 或 JTAG-DP + AHB-AP),下载器就接它
AHB-AP经它访问内存总线 → 直接读写 Flash/RAM/外设寄存器
下载器仅协议转换 USB↔SWD/JTAG,不参与译码
  • 烧录流程:经 AHB-AP 写 Flash 控制寄存器 → 擦除 → 分页写入 → 校验。
  • 调试流程:写内核调试寄存器(DHCSR 暂停、DCRSR/DCRDR 读改寄存器、FPB 设断点)→ 单步/继续 → ITM/SWO 输出跟踪。

各下载器对比

下载器厂商接口支持芯片生态/软件参考价
J-Link(EDU/Base/Plus/Ultra+/Pro)SEGGERSWD+JTAG几乎全平台 ARM + RISC-VRTT/Ozone/J-Flash/J-Scope,各 IDE 首选EDU ~¥500(限个人学习)、Base ~¥2000、Ultra+ ~¥9000、Pro 更高;野版 V9 ~¥30
ST-Link(V2/V3)ST 官方SWD(+SWIM/JTAG)仅 STM8/STM32STM32CubeProgrammer、Keil/IARV2 ~¥15-40、V3 ~¥150
DAP-LinkARM(开源)SWD+JTAGARM 全系pyOCD/OpenOCD、Mbed 拖拽烧录、跨平台开源/克隆 ~¥15-50
ICE / JTAG ICEAtmel 等JTAGAVR/老芯片AVR Studio已停产,二手老工具

价格为参考区间,随时波动。


SEGGER 出品,嵌入式调试的事实标准,核心卖点是软件生态强而非硬件。

版本线(从低到高):

版本定位
EDU / Mini学习/个人(限非商用),Mini 为板载小板
Base入门量产
Plus带 RTT 源码授权 + 免费 J-Link 序列号服务
Ultra+高速 + 以太网(J-Link RTT over Ethernet)
Pro最高速 + 以太网

生态软件:RTT(实时打印,见 RTT)、Ozone(图形调试,见 Ozone调试器)、J-Flash(量产烧录)、J-Scope(变量实时波形)、FlashBP(Flash 无限断点)。

⚠️ 野版(克隆)风险:SEGGER 会检测克隆固件,正版软件升级后克隆会报 The connected J-Link is defective 变砖。学习建议 EDU 或确认能关升级的老版本。


ST 官方,便宜,很多 Nucleo/Discovery 板载。只支持 ST 系列(STM8/STM32)。

版本接口特点
V2SWD + SWIM(STM8)USB 全速,SWD ~4MHz,最便宜
V3SWD + JTAG + VCP 虚拟串口USB 高速,更快,自带虚拟串口

软件用 STM32CubeProgrammer;Keil/IAR 也直接认。


ARM Mbed 官方开源,基于 CMSIS-DAP 标准。

  • 拖拽烧录:插上电脑变 U 盘,把 .bin/.hex 拖进去即烧录,免 IDE。
  • 跨平台不锁厂:pyOCD / OpenOCD 通用,不绑定 Keil/IAR。
  • 便宜、可 DIY,网上克隆多;CMSIS-DAP v2 用 WinUSB 走高速 Bulk。

ICE(在线仿真器)

In-Circuit Emulator,传统概念:早期芯片没有片上调试单元,用一个硬件仿真器「顶替」目标 CPU,插到电路板 CPU 插座上,能无侵入观测总线、设硬件断点。

  • 现代 Cortex-M 已内置 CoreSight 调试,ICE 被片上调试取代
  • Atmel AVR 时代的「JTAG ICE mkII」名字带 ICE,实则是 JTAG 调试器,不是真 ICE。

SWD 与 JTAG 调试接口

维度JTAGSWD
全称Joint Test Action GroupSerial Wire Debug
引脚数4~5:TCK、TMS、TDI、TDO(+TRST)2:SWCLK、SWDIO(+可选 SWO)
数据方向TDI/TDO 分开、全双工SWDIO 单线半双工
速度标准,受移位链限制更快
应用通用:芯片测试、边界扫描、FPGA/CPLDARM Cortex-M 专用
现状Cortex-M 上较少用Cortex-M 默认/主流

SWD 引脚

引脚说明
SWDIO数据(半双工)
SWCLK时钟
SWO跟踪输出(可选,ITM 数据,配合 J-Link SWO Viewer 看 printf)
nRESET复位(可选)
GND / VCC共地 + 参考电压(目标板通常自供电,SWD 只采参考电压)

补充要点:

  • SWD 是 ARM 为省引脚设计的「JTAG 精简版」;两者可复用引脚(JTAG 的 TMS→SWDIO、TCK→SWCLK),Cortex-M 芯片默认两者都支持。
  • 下载器必须与目标板共地,且电平匹配(3.3V / 5V)。