JTAG引脚示意图:
一、SWD 和传统的调试方式区别
1. SWD 模式比 JTAG 在高速模式下面更加可靠
2. GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚
3. 在板子的体积有限的时候推荐使用 SWD 模式
二、仿真器对 SWD 模式支持情况
1. 市面上的常用仿真器对 SWD 模式支持情况
JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M
ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M
2. SWD 硬件接口上的不同
(1) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK (2) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的实际连线及相应实验结果) (3) ULINK1 不支持 SWD 模式 (4) ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK 三、在 MDK 中SWD 模式的设置
正常的JTAG需要20管脚,而J-Link 的SWD只需要2根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就4根),这样就节省了3个I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)为其它所用,并且可节省一部分板子的空间(只需4个口就可以了)
第一步:
第二步:
另外, JTAG引脚可以被复用为IO口,但是这样一来,JLINK就不能够连上芯片了。解决的方法有两种: (1)另写一段程序,不要将JTAG复用为I/O口,然后将这段程序用串口工具写入芯片中 (2)将BOOT0/BOOT1设置成为内部RAM启动,那么上电后就不会执行FLASH中的程序,这样JLINK就能顺利“接管”JTAG引脚