ARM菜鸟:JLINK与JTAG的区别

发布者:大酉幽华1最新更新时间:2013-05-03 来源: 21IC关键字:ARM  JLINK  JTAG 手机看文章 扫描二维码
随时随地手机看文章

调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种。当仿真时,IAR、KEIL、ADS等都有一个公共的调试接口,RDI就是其中的一种,那么我们如何完成RDI-->ARM调试协议(JTAG)的转换呢?有以下两种做法:

1.在电脑上写一个服务程序,把IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气 物理层上的转换,就像RS232那样的作用)发送你的的目标板。H-JTAG就是这样的。H-JTAG的硬件就仅是一个物理电平的转换接口,所以很简单。 而电脑中装的h-JTAG软件就是前面说到的服务程序,负责协议转换的。

2.做一个板,用此板直接接收来自IAR、KEIL和ADS等软件的调试命令,由此板做RDI->JTAG协议的转换。然后与目标板通信,这就是JLINK的工作原理。

由上可以看出H-JTAG由于是软件作协议转换的,所以速度较慢,但是硬件简单。而第二种方法的JLINK一般带一个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快。

JTAG的基本原理

JTAG(JointTestActionGroup,联合测试行动组)是一种国际标准测试协议(IEEE1149.1兼容)。标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。

JTAG的主要功能有两种,或者说JTAG主要有两大类:

1)一类用于测试芯片的电气特性,检测芯片是否有问题;

2)另一类用于Debug,对各类芯片以及其外围设备进行调试;一个含有JTAGDebug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器、挂在CPU总线上的设备以及内置模块的寄存器。本文主要介绍的是Debug功能。

JTAG原理分析

简单地说,JTAG的工作原理可以归结为:在器件内部定义一个TAP(TestAccessPort,测试访问口),通过专用的JTAG测试工具对内部节点进行测试和调试。首先介绍一下边界扫描和TAP的基本概念和内容。

边界扫描

边界扫描(Boundary-Scan)技术的基本思想是在靠近芯片的输入/输出引脚上增加一个移位寄存器单元,也就是边界扫描寄存器(Boundary-ScanRegister)。

当芯片处于调试状态时,边界扫描寄存器可以将芯片和外围的输入/输出隔离开来。通过边界扫描寄存器单元,可以实现对芯片输入/输出信号的观察和控制。对 于芯片的输入引脚,可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去;对于芯片的输出引脚,也可以通过与之相连的边界扫描寄存器“捕 获”该引脚上的输出信号。在正常的运行状态下,边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何影响。这样,边界扫描寄存器提供了一种便捷 的方式用于观测和控制所需调试的芯片。另外,芯片输入/输出引脚上的边界扫描(移位)寄存器单元可以相互连接起来,在芯片的周围形成一个边界扫描链 (Boundary-ScanChain)。边界扫描链可以串行地输入和输出,通过相应的时钟信号和控制信号,就可以方便地观察和控制处在调试状态下的芯 片。

测试访问口TAP

TAP(TestAccessPort)是一个通用的端口,通过TAP 可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。对整个TAP的控制是通过TAP控制器(TAPController)来完成的。下面先 分别介绍一下TAP的几个接口信号及其作用。其中,前4个信号在IEEE1149.1标准里是强制要求的。

TCK:时钟信号,为TAP的操作提供了一个独立的、基本的时钟信号。

TMS:模式选择信号,用于控制TAP状态机的转换。

TDI:数据输入信号。

TDO:数据输出信号。

TRST:复位信号,可以用来对TAPController进行复位(初始化)。这个信号接口在IEEE1149.1标准里并不是强制要求的,因为通过TMS也可以对TAPController进行复位。

STCK:时钟返回信号,在IEEE1149.1标准里非强制要求。

简单地说,PC机对目标板的调试就是通过TAP接口完成对相关数据寄存器(DR)和指令寄存器(IR)的访问。

系统上电后,TAPController首先进入Test-LogicReset状态,然后依次进入Run-Test/Idle、Selcct-DR- Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exitl-IR、Update-IR状态,最后回到Run- Tcst/Idle状态。在此过程中,状态的转移都是通过TCK信号进行驱动(上升沿),通过TMS信号对TAP的状态进行选择转换的。其中,在 Capture-IR状态下,一个特定的逻辑序列被加载到指令寄存器中;在Shift-IR状态下,可以将一条特定的指令送到指令寄存器中;在 Update—IR状态下,刚才输入到指令寄存器中的指令将用来更新指令寄存器。最后,系统又回到Run—Test/Idle状态,指令生效,完成对指令 寄存器的访问。当系统又返回到Run—Test/Idle状态后,根据前面指令寄存器的内容选定所需要的数据寄存器,开始执行对数据寄存器的工作。其基本 原理与指令寄存器的访问完全相同,依次为seIect—DR—Scan、Capture—DR、Shift—D、Exitl一DR、Update—DR, 最后回到Run-Tcst/Idle状态。通过TDl和TDO,就可以将新的数据加载到数据寄存器中。经过一个周期后,就可以捕获数据寄存器中的数据,完 成对与数据寄存器的每个寄存器单元相连的芯片引脚的数据更新,也完成了对数据寄存器的访问。

目前,市场上的JTAG接口有14引脚和20引脚两种。其中,以20引脚为主流标准,但也有少数的目标板采用14引脚。经过简单的信号转换后,可以将它们通用。

关键字:ARM  JLINK  JTAG 引用地址:ARM菜鸟:JLINK与JTAG的区别

上一篇:图解ADS+JLINK调试ARM
下一篇:基于EFM32的主动快门式3D眼镜解决方案

推荐阅读最新更新时间:2024-03-16 13:22

基于ARM与WindowsCE的LCD显示器设计
1 引言 随着电子信息技术不断发展, 嵌入式系统的应用越来越广泛。在嵌入式电子测量系统中, LCD(Liquid Crystal Display,液晶显示器)作为人机交互的主要设备,具有功耗低、外形尺寸小和优越的字符和图形显示功能。WindowsCE是嵌入式实时操作系统,它友好的图形界面,成为嵌入式开发的主流操作系统,它使用图形设备接口(GDI)来处理程序的图形输出,利用GDI所提供的众多函数可方便地在LCD屏幕上输出图形和文本 。 基于嵌入式处理器IntelPXA270和WindowsCE设计LCD系统的原理,为嵌入式便携设备提供了一种在高亮度显示条件下维持低功耗的解决方案,适用于高档PDA、便携媒体播放器、手持式导
[单片机]
基于<font color='red'>ARM</font>与WindowsCE的LCD显示器设计
ARM 非对齐的数据访问操作
非对齐的数据访问操作 对于Load/Store操作,如果是非对齐的数据访问操作,系统定义了下面3种可能的结果. 执行的结果不可预知. 忽略字单元地址的低两位,即访问地址为(address _and 0xffffffc)的字单元;忽略半字单元地址的最低位的值,即访问地址位(address _and 0xffffffe)的半字单元. 忽略字单元地址值种的低两位的值;忽略半字单元地址的最低位的值.有存储体统实现这种 忽略 .也就是说,这时该地址值原封不动的送到存储系统. 当发生非对齐的数据访问时,到底采用上述3种处理方法种的哪一种,是有各指令指定的.
[单片机]
ARM指令和Thumb指令区别
Thumb指令集 Thumb指令可以看做是ARM指令压缩形式的子集,是针对代码密度1】的问题而提出的,它具有16为的代码密度。Thumb不是一个完整的体系结构,不能指望处理程序只执行Thumb指令而不支持ARM指令集。因此,Thumb指令只需要支持通用功能,必要时,可借助完善的ARM指令集,例如:所有异常自动进入ARM状态。 在编写Thumb指令时,先要使用伪指令CODE16声明,而且在ARM指令中要使用BX指令跳转到Thumb指令,以切换处理器状态。编写ARM指令时,可使用伪指令CODE32声明。 1】.代码密度:单位存储空间中包含的指令的个数。例如 ARM指令是32位的,而Thumb指令
[单片机]
ARM-Linux驱动--DM9000网卡驱动分析(三)
ARM-Linux驱动--DM9000网卡驱动分析(二)硬件平台:FL2440(s3c2440) 内核版本:2.6.35 主机平台:Ubuntu11.04 内核版本:2.6.39 交叉编译器:arm-linuc-gcc4.3.2 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6615027 本文接上文 ARM-Linux驱动--DM9000网卡驱动分析(一) ARM-Linux驱动--DM9000网卡驱动分析(二) 下面开始看网卡设备的打开、关闭函数和操作函数 view plainprint? static const struct net_
[单片机]
<font color='red'>ARM</font>-Linux驱动--DM9000网卡驱动分析(三)
关于ARM的22个概念
1.ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中断控制器; SPI:全双工串行接口; CAN:控制器局域网,一种串行通讯协议; PWM:脉宽调制器; ETM:嵌入式跟踪宏; CPSR:当前程序状态寄存器; SPSR:程序保护状态寄存器; 2.MAM 使用注意事项: 答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。 对于低于 20MHz
[单片机]
ARM加载域和运行域的理解
一般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于嵌入式系统而言,程序映象都是存储在Flash存储器等一些非易失性器件中的,而在运行时,程序中的RW段必须重新装载到可读写的RAM中。这就涉及到程序的加载时域和运行时域。简单来说,程序的加载时域就是指程序烧入Flash中的状态,运行时域是指程序执行时的状态。对于比较简单的情况,可以在ADS集成开发环境的ARM LINKER选项中指定RO BASE和RW BASE,告知连接器
[单片机]
tmux在ARM上的移植
当使用超级终端或者Minicom通过串口去调试ARM的时候,只能使用一个终端,不能像在Linux PC机上同时打开多个终端,这为我们同时执行或者调试多个程序带来不便;当然你可以让某些程序在后台执行,但是有没有更好的办法呢? 在Linux PC机上我们可以使用GNU Screen对终端进行复用,不过GNU Screen移植到ARM还是比较困难的。而且还有比GNU Screen更好的终端复用器,就是我们今天要用到的tmux. 我选择移植的版本是tmux-1.2,从tmux-1.2开始,它依赖于libevent包,当然,它还依赖于ncurses. ncurses我之前都已经移植好了的,这里就不说了。 一
[单片机]
tmux在<font color='red'>ARM</font>上的移植
ARM推出工程师认证计划
ARM将要在其10月30号~11月1号的ARM TechCon 2012大会上推出一项工程师认证计划(AAEP)。 这个计划的创意来自台湾,当时,当地的OEM厂商向ARM表示,他们认为通过适当的训练课程培养适合ARM的工程师是个不错的选择。这样,第三方的培训公司就会为OEM厂商们输送特定的符合ARM要求的工程师。 这对于ARM向计算机、服务器和微控制器领域的扩张也是很有必要的。所以,ARM计划推出工程师认证计划,其教学大纲可以在ARM的官网上下载。 据悉,第一批AAEP工程师将在TechCon上曝光。 “在TechCon上,我们将会提供一天免费的训练,第二天,我们将会探讨这项计划。”ARM公司的副总裁兼总经理Paul El
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved