通用嵌入式debug方式

Posted on 2025-07-30T20:27:00+08:00

嵌入式调试接口详解:JTAG、ST-LINK、DAP-Link 与 CMSIS-DAP

在嵌入式开发中,调试接口是连接开发主机与目标微控制器的关键桥梁。本文将深入介绍四种常见的调试接口技术,帮助开发者更好地理解和选择适合自己项目的调试工具。

#JTAG:经典的边界扫描测试接口

JTAG(Joint Test Action Group)最初是为了解决复杂电路板的测试问题而开发的IEEE 1149.1标准。随着时间推移,它已经成为嵌入式系统调试的重要工具。

JTAG接口通常包含以下信号线:

JTAG的主要优势在于其通用性和成熟度。几乎所有的ARM处理器、FPGA和复杂的微控制器都支持JTAG接口。通过JTAG,开发者可以进行程序下载、单步调试、断点设置、寄存器和内存查看等操作。然而,JTAG接口需要较多的引脚,在某些空间受限的应用中可能不太适用。

#ST-LINK:STM32专属的调试利器

ST-LINK是意法半导体(STMicroelectronics)专门为STM32系列微控制器开发的调试编程器。它支持JTAG和SWD(Serial Wire Debug)两种调试协议,其中SWD只需要两根信号线(SWDIO和SWCLK),大大减少了所需的引脚数量。

ST-LINK的演进历程包括:

ST-LINK与STM32CubeIDE、Keil MDK、IAR等主流开发环境都有良好的集成,使得STM32的开发变得更加便捷。许多STM32开发板(如Nucleo和Discovery系列)都内置了ST-LINK调试器,进一步降低了开发门槛。

#DAP-Link:开源的通用调试解决方案

DAP-Link是ARM公司开发的开源调试器固件,可以将支持的硬件平台转换为CMSIS-DAP兼容的调试器。它的设计理念是提供一个标准化、低成本的调试解决方案。

DAP-Link的特点包括:

DAP-Link通常运行在低成本的微控制器上,如NXP的LPC11U35或STM32F103等。这使得制作自定义调试器变得非常容易,许多开发板制造商都选择集成DAP-Link作为板载调试器。

#CMSIS-DAP:ARM的标准化调试协议

CMSIS-DAP(Cortex Microcontroller Software Interface Standard - Debug Access Port)是ARM定义的标准调试协议,旨在为Cortex-M系列微控制器提供统一的调试接口。

CMSIS-DAP协议定义了主机与调试器之间的通信方式,支持通过USB HID或USB Bulk传输。这种标准化带来了几个重要优势:

CMSIS-DAP可以看作是一个协议规范,而DAP-Link是这个规范的一个具体实现。除了DAP-Link,许多商业调试器也支持CMSIS-DAP协议,如SEGGER J-Link、Keil ULINKplus等。

相关配置文件

wlink-f1

# choose st-link/j-link/dap-link etc.
adapter driver cmsis-dap
transport select swd
# 0x10000 = 64K Flash Size
#加上这么一句,将WCHLink识别为DPLink
cmsis-dap vid_pid 0x1a86 0x8012
set FLASH_SIZE 0x20000
source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000
📎
wlink-f1.cfg
📎
wlink-f1e.cfg
📎
wlink-f4.cfg
📎
wlink-f4e.cfg