ARM JLINK与JTAG的不同

发布者:Wanderlust123最新更新时间:2021-02-07 来源: eefocus关键字:ARM  JLINK  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的不同

上一篇:ARM相关概念的区分
下一篇:扩大ARM SoC的验证覆盖与缩短仿真时间

推荐阅读最新更新时间:2024-11-13 15:09

ARM:我们比X86多元、成熟、省电又好玩
    行动装置市场竞争激烈,目前主流的运算核心大多采 ARM 推出的 Cortex 系列晶片,包括 Qualcomm、NVIDIA、TI,以及联发科都是安谋的客户。但除此之外,称霸桌机笔电市场多年的 X86 架构主导厂商 Intel,近年来也积极跨足行动运算领域,经过几年努力也有一定程度的规模。 针对目前的行动市场现况,晶片大厂安谋国际首席行动装置策略师 James Bruce 于 Computex 2013 台北国际电脑展受访指出,采用 ARM 架构的产品无论在功耗表现、产品多元性方面,都优于对手的 X86 架构。另外,由于超过 60% 的 App 是基于 ARM 架构撰写并优化,因此软体相容性也会优于 X86 产品。整体来说,
[手机便携]
arm启动过程点滴
今天在电脑里翻腾我的笔记,发现这篇和不错,但是不记得是自己写的还是别人的了,就算是别人的吧也要和大家分享一下,感谢原作者的辛勤劳动! 基于ARM的芯片多数为复杂的片上系统,这种复杂系统里的多数硬件模块都是可配置的,需要由软件来设置其需要的工作状态。因此在用户的应用程序之前,需要由专门的一段代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言。一般通用的内容包括: 中断向量表 初始化存储器系统 初始化堆栈 初始化有特殊要求的断口,设备 初始化用户程序执行环境 改变处理器模式 呼叫主应用程序 1. 中断向量表 ARM要求中断向量表必须放置在从0地址开始,连续8X4字节的空间内
[单片机]
ARM-Linux开发与MCU开发比较
1.ARM-Linux应用开发和单片机开发的不同 这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM芯片上进行应用开发,不采用操作系统,也称为裸机编程,这种开发方式主要应用于一些低端的ARM芯片上,其开发过程非常类似单片机,这里不多叙述。还有一种是在ARM芯片上运行操作系统,对于硬件的操作需要编写相应的驱动程序,应用开发则是基于操作系统的,这种方式的嵌入式应用开发与单片机开发差异较大。ARM-Linux应用开发和单片机的开发主要有以下几点不同: 应用开发环境的硬件设备不同 单片机:开发板、仿真器(调试器)、USB线; ARM-Linux:开发板、网线、串口线、SD卡; 对于ARM-Linux
[单片机]
ARM Linux内核驱动异常定位方法分析反汇编方式
最近在搞Atmel 的SAM9x25平台,Linux系统,用于工业设备。这也是我首次参与工业设备的研发。在调试Atmel SAM9x25的Linux串口设备的时候,发现无论是读还是写,都会产生异常。相关的异常信息如下: ================================================================================================================== Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 *
[单片机]
推动5G和未来物联网发展,Arm推出全新基础设施平台
Arm 推出两款全新完整基础设施级平台,不仅能加快产品上市速度,并针对5G时代云端到边缘的应用提供优化的设计点 针对7纳米工艺技术优化的Arm Neoverse N1平台,在各种关键云端工作负载可实现2.5倍的性能提升 Arm Neoverse E1平台为高效吞吐量平台,其吞吐量性能较前几代提升达2.7倍 Arm宣布推出两款全新Arm Neoverse平台,即Neoverse N1平台和E1平台,以高度的可扩展性、高吞吐量和性能,推动5G和未来物联网的发展,推动下一波基础设施平台转型。 去年10月,Arm推出Arm Neoverse,为创建万亿联网设备的世界而打造云端到边缘的基础设施。此后,整个Arm生态系统见
[物联网]
arm驱动linux内核时钟
《 linux内核时钟》涉及内核驱动函数四个,内核结构体一个,分析了内核驱动函数一个;可参考的相关应用程序模板或内核驱动模板一个,可参考的相关应用程序模板或内核驱动一个 一、内核定时器 意义:内核定时器是软件意义上的定时器,最终依赖定时器来实现。时钟中断处理程序会唤起Timer_softirq软中断,运行当前处理器上到期的所有定时器。 二、linux设备驱动编程 linux内核提供一组函数,时钟数据结构;这组函数和数据结构使驱动工程师不用关心具体的软件定时器究竟对应着怎样的内核和硬件行为。 三、数据结构和函数: 1)数据结构 结构体一)Linux在include/linux/timer.h头文件中定义了数据结构timer_list来
[单片机]
自制廉价的Arm9 开发平台
摘要:基于Arm9内核的单片机,由于其低廉的价格与优越的性能,已经被广泛的应用于各种消费类电子产品中。掌握Arm9单片机的开发技能已经成为嵌入式系统开发者的迫切要求。但由于市面上的Arm9开发板价格不菲,使不少想学习Arm9开发技术的朋友望而却步,其中有一大部分是各大高校的学生。本文阐述了改造ipTIME的IP0422路由器,使其成为VxWorks和Linux的Arm9开发平台的过程。整个过程简单易行,同时花费在150元以内,是嵌入式系统开发爱好者不错的选择。 1 改造系统的选取 要动手改造Arm9开发系统,首先要选取一款进行改造的产品。现在基于Arm9内核的单片机被广泛的应用于家用路由器和手机当中,因而这两类产品可以作为我
[单片机]
自制廉价的<font color='red'>Arm</font>9 开发平台
ARM处理器的寄存器介绍
在ARM体系中通常有以下3种方式控制程序的执行流程: **在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节。整个过程是按顺序执行。 **跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作同时,保存子程 序的返回地址;BX指令在执行跳转操作同时,根据目标地址为可以将程序切换到Thumb状态;BLX指令执行3个操作,跳转到目标地址处执行,保存子程序的返回 地址,根据目标地址为可以将程序切换到Thumb状态。 **当异常中断发生时,系统执行完当前指令
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved