1、调试接口概念
1)SWD:Serial Wire Debug,代表串行线调试,是ARM设计的协议,用于对其微控制器进行编程和调试。
SWD 引脚:
- SWDIO–串行数据线,用于数据的读出和写入
- SWDCLK–串行时钟线,提供所需要的时钟信号
2) JTAG(JointTest ActionGroup)是一个接口,为了这个接口成立了一个小组叫JTAG小组,它成立于1985年。在1990年IEEE觉得一切妥当,于是发布了IEEE Standard 1149.1-1990,并命名为Standard Test Access Port and Boundary-ScanArchitecture,这就是大名鼎鼎的JTAG了。
JTAG 基本上带有 5 个引脚:
- TDI:Test Data In。串行输入引脚
- TDO:Test Data Out,串行输出引脚
- TCK:Test Clock,时钟引脚
- TMS:Test Mode Select,模式选择(控制信号)引脚 TR
- T:Test Reset,复位引脚
JTAG的三大功能:
- 下载器,即下载软件到FLASH里。
- DEBUG,跟医生的听诊器似的,可探听芯片内部小心思。
- 边界扫描,可以访问芯片内部的信号逻辑状态,还有芯片引脚的状态等等。
2、SWD / JTAG 的各种区别
(1)共享引脚
SWD 的引脚在一定条件下可以和 JTAG 引脚复用
(2) SWD 协议的特点:
使用引脚更少,只需 SWDIO 和 SWCLK 两个引脚
SWD 具有特殊功能,例如通过其 I / O 线打印调试信息
在高速大数据情况下,SWD整体性能比JTAG更好。
只能用于ARM内核的单片机。
(3)JTAG 协议的优势:
不限于ARM内核单片机,能支持更多单片机程序调试和下载
占用引脚数比较多,比较占用板子尺寸。
3、常见仿真器
(1)J-Link仿真器
J-Link是德国SEGGER公司推出基于JTAG的仿真器。
J-LINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。
(2)ULink仿真器
ULINK是ARM/KEIL公司推出的仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。
(3)ST-LINK仿真器
ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口。