当前位置: 首页 > news >正文

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

搞嵌入式开发和ARM开发搞了半辈子了,调试程序是不可避免的。接触了那么多的调试规范、调试工具、调试手段,彼此之间的关系却也不是特别清楚,今天就来捋一捋:

JTAG协议

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

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

JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。所以,目前市场上已经很少看到它的身影了。

这里写图片描述

SWD接口

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

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

  • SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。
  • 在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。
  • 在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小啦!比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。

这里写图片描述

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 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。

这里写图片描述

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下不能使用。

这里写图片描述

ST-Link仿真器

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

  • 编程功能:可烧写FLASH ROM、EEPROM、AFR等;
  • 仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;
  • 仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快;
  • 编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快;

这里写图片描述

转载于:https://www.cnblogs.com/neverguveip/p/9457261.html

相关文章:

  • 手把手教你如何安装Pycharm——靠谱的Pycharm安装详细教程
  • 腾讯TBS加载网页无法自适应记录
  • CPU状态信息us,sy,ni,id,wa,hi,si,st含义
  • QuickBI助你成为分析师——计算字段功能
  • 基于ASP.NET MVC 微信网页登录授权(scope为snsapi_base) 流程 上 获取OPENID
  • PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
  • composer移除依赖包
  • 在Linux,误删磁盘分区怎么恢复呢【转】
  • 纯html页面中js如何获得项目路径
  • Confluence 6 后台中的选择站点首页
  • 算法18-----判断是否存在符合条件的元素【list】
  • 邪恶的三位一体:机器学习、黑暗网络和网络犯罪
  • sql查询本周,本月数据
  • 生产环境Vmware新增硬盘扩展VG并新建文件系统
  • 通过7个函数解密区块链(附代码)
  • es6要点
  • gulp 教程
  • Java Agent 学习笔记
  • LeetCode算法系列_0891_子序列宽度之和
  • MySQL几个简单SQL的优化
  • SpringCloud集成分布式事务LCN (一)
  • Vue.js 移动端适配之 vw 解决方案
  • 分类模型——Logistics Regression
  • 给初学者:JavaScript 中数组操作注意点
  • 缓存与缓冲
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 温故知新之javascript面向对象
  • 小程序button引导用户授权
  • 新手搭建网站的主要流程
  • - 转 Ext2.0 form使用实例
  • 转载:[译] 内容加速黑科技趣谈
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 从如何停掉 Promise 链说起
  • 说说我为什么看好Spring Cloud Alibaba
  • ​linux启动进程的方式
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #QT(串口助手-界面)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (day 12)JavaScript学习笔记(数组3)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET框架
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .skip() 和 .only() 的使用
  • ??在JSP中,java和JavaScript如何交互?
  • @EnableAsync和@Async开始异步任务支持
  • @Transactional类内部访问失效原因详解
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——