STM32调试方式JTAG&SWD的区别

在学习STM32时,我们经常会遇到JTAG和SWD的调试方法,还涉及到Jlink,Ulink,Stlink等,

JTAG和SWD是ARM板一种调试模式.
后面三种都是实现这种模式的一种工具,他们之间的区别简单归纳如下。
在这里插入图片描述
第一种调试方式JTAG,JTAG的全称是Joint Test Action Group (测试行动联合组织),它是由几家主要电子制造商发起制订的PCB 和IC 测试标准,主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。
标准的JTAG接口是4线:JTAGTMS–模式选择、TCK–时钟、TDI–数据输入、TDO–数据输出,在设计PCB时,还要考虑到是否需要利用JTAG接口给MCU供电。

第二种调试方式SWD,全称是Serial Wire Debug(串行调试),它的接线方式较JTAG简单,2线式:SWDIO–串行数据线、SWDCLK–串行时钟线,一般在设计PCB时,会预留4个2.54mm的排座,这种接线方式适合引脚少的芯片,充分利用芯片资源。

在这里插入图片描述
以上两种调试方法比较,各自有优势。1)SWD模式比JTAG在高速模式下更加可靠,在大数据量的情况下JTAG下载程序会失败,但是SWD发生的几率会小很多,基本使用JTAG的模式下可以直接使用SWD模式的,前提是仿真器支持。2)在GPIO口刚好缺一个的时候,可使用SWD仿真,这种模式支持更少的引脚;3)在PCB设计体积有限的时候推荐使用SWD模式。

更多细节可参考http://news.eeworld.com.cn/mcu/2018/ic-news121542504.html