良许Linux教程网 干货合集 浅论各种调试接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的区别

浅论各种调试接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的区别

一、JTAG协议

JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部的测试。大多数高级器件,如ARM、DSP、FPGA等,都支持JTAG协议。标准的JTAG接口是由4根线构成:TMS、TCK、TDI、TDO,分别用于模式选择、时钟、数据输入和数据输出。以下是相关JTAG引脚的定义:

  • TMS:测试模式选择。通过TMS设置JTAG接口处于特定的测试模式。
  • TCK:测试时钟输入。
  • TDI:测试数据输入。数据通过TDI引脚输入JTAG接口。
  • TDO:测试数据输出。数据通过TDO引脚从JTAG接口输出。

在JTAG协议定义时,由于当时的计算机普遍配备并口,因此在计算机端连接时使用了并口。然而,随着计算机的发展,尤其是现在的笔记本电脑,并口的使用已经十分少见,取而代之的是越来越多的USB接口。因此,在市场上已经很少看到使用JTAG协议的情况了。

image-20240120201519541
image-20240120201519541

二、SWD接口

串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。

SWD和传统的调试方式区别:

  1. SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。

  2. 在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。

  3. 在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小啦!比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。

    image-20240120201522542
    image-20240120201522542

三、RDI接口

远程调试接口(Remote Debug Interface),是ARM公司提出的标准调试接口,主要用于ARM芯片的仿真,由于各个IDE厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。

现在众多的IDE厂家都逐步采用标准RDI作为ARM仿真器的调试接口,因此使跨平台的硬件调试成为可能。EasyJTAG由于使用标准RDI调试接口,因此在任何使用标准RDI接口的IDE调试环境中都可以使用,例如ARM公司的ADS1.2/IAR公司的EWARM 3.30 。

四、JLink仿真器

J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。

JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。

image-20240120201530156
image-20240120201530156

五、ULink仿真器

ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。

开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。但是要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。image-20240120201532807

六、ST-Link仿真器

ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,其主要功能有:

  • 编程功能:可烧写FLASH ROM、EEPROM、AFR等;

  • 仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;

  • 仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快;

  • 编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快;

    image-20240120201535354
    image-20240120201535354

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部