JTAG调试原理-课件_第1页
JTAG调试原理-课件_第2页
JTAG调试原理-课件_第3页
JTAG调试原理-课件_第4页
JTAG调试原理-课件_第5页
已阅读5页,还剩49页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JTAG调试原理JTAG调试原理ppt课件2021/3/261JTAG调试原理JTAG调试原理ppt课件2021/3/2JTAG调试原理ppt课件2021/3/262JTAG调试原理ppt课件2021/3/262目录一、JTAG基本知识 1.1、什么是JTAG

1.2、JTAG的作用

1.3、

JTAG调试结构二、JTAG的工作原理 2.1、两个重要概念:边界扫描和TAP 2.2、JTAG的状态机 2.3、ARM7TDMI内核结构 2.4、JTAG扫描链结构及工作过程 2.5、EmbeddedICE-RTLogic的结构 2.6、EmbeddedICE的断点/观察点设置三、JTAG常用指令JTAG调试原理ppt课件2021/3/263目录一、JTAG基本知识JTAG调试原理ppt课件2021一、JTAG基本知识1.1、什么是JTAG

JTAG是JointTestActionGroup(联合测试行动组)的缩写,是IEEE1149.1标准。

1.2、JTAG的作用

使得IC芯片固定在PCB版上,只通过边界扫描便可以被测试。1.3、JTAG调试结构JTAG调试原理ppt课件2021/3/264一、JTAG基本知识1.1、什么是JTAGJTAG调试JTAG调试原理ppt课件2021/3/265JTAG调试原理ppt课件2021/3/265(1)、DEBUG主控制器:运行有ARM公司或是第三方提供的调试软件的PC机。如:ARM公司提供的ADS、LINUX下的arm-elf-gdb等。通过这些调试软件,可以发送高级调试命令,如:设置/取消断点,读写MEMORY,单步跟踪,全速运行等。JTAG调试原理ppt课件2021/3/266JTAG调试原理ppt课件2021/3/266(2)、协议转换器(Protocolconverter)负责将Debug主控端发出的高级ARM调试命令转换为底层的ARMJTAG调试命令。Debug主控端和协议转换器间的介质可以有很多种,如:Earthnet、USB,串口,并口等。Debug主控端和协议转换器间的通信协议可以是ARM公司的ANGEL标准,也可以是第三方自定义的标准。典型的协议转换器有:ARM公司的Multi-ICE,H-JTAG,JLink等。

JTAG调试原理ppt课件2021/3/267(2)、协议转换器(Protocolconverter)H-JTAG运行界面JTAG调试原理ppt课件2021/3/268H-JTAG运行界面JTAG调试原理ppt课件2021/3J-Link的运行界面JTAG调试原理ppt课件2021/3/269J-Link的运行界面JTAG调试原理ppt课件2021/(3)、调试目标机系统的调试对象。典型的ARM7TDMI内核的调试结构:JTAG调试原理ppt课件2021/3/2610(3)、调试目标机JTAG调试原理ppt课件2021/3/二、JTAG的工作原理2.1、两个重要概念:边界扫描和TAP(1)边界扫描(Boundary-Scan):

基本思想:在靠近芯片输入/输出管脚上增加一个移位寄存器单元(边界扫描寄存器)。正常状态下,边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何的影响。

JTAG调试原理ppt课件2021/3/2611二、JTAG的工作原理JTAG调试原理ppt课件2021/

调试状态下,边界扫描寄存器将芯片和外的输入输出隔离开,通过这些边界扫描寄存器可以实现对芯片输入输出信号的控制。具体控制过程如下:

①

、输入管脚:通过与之相连的边界扫描寄存器把信号(数据)加载到该管脚中去。

②、输出管脚:通过与之相连的边界扫描寄存器“捕获”该管脚上的输出信号。JTAG调试原理ppt课件2021/3/2612JTAG调试原理ppt课件2021/注意:

芯片输入输出管脚上的边界扫描寄存器单元可以相互连接起来,在芯片周围形成一个边界扫描链。该链可以实现串行的输入输出,通过相应的时钟信号和控制信号,可方便的观察和控制在调试状态下的芯片。JTAG调试原理ppt课件2021/3/2613注意:JTAG调试原理ppt课件2021/3/2613(2)、TAP(TestAccessPort)

TAP是一个通用的端口,利用它可以访问芯片提供的所有DR和IR。对整个TAP的控制是通过TAPController来完成的。

TAP包括5个信号接口:◆TCK(TestClockInput)

JTAG时钟信号位。标准强制要求

◆TMS(TestModeSelect)测试模式选择,通过该信号控制JTAG状态机的状态。TMS在TCK的上升沿有效。标准强制要求JTAG调试原理ppt课件2021/3/2614(2)、TAP(TestAccessPort)JTAG调◆TDI(TestDataInput)数据输入口。所有要输入到特定寄存器的数据都是通过TDI口一位一位串行输入的(TCK驱动)。标准里强制要求◆TDO(TestDataOutput)数据输出口。所有要从特定的寄存器中输出的数据都是通过TDO口串行的一位一位输出的(TCK驱动)。标准里强制要求◆TRST(TestResetInput)JTAG复位信号。标准里是可选的JTAG调试原理ppt课件2021/3/2615◆TDI(TestDataInput)JTAG调试原理2.2、JTAG的状态机TAP共有16个状态机,如下图所示:每一个状态都有其相应的功能。箭头表示了所有可能的状态转换流程。状态的转换是由TMS控制的。JTAG调试原理ppt课件2021/3/26162.2、JTAG的状态机TAP共有16个状JTAG调试原理ppt课件2021/3/2617JTAG调试原理ppt课件2021/3/26172.3、ARM7TDMI内核结构ARM7TDMI处理器结构框图:JTAG调试原理ppt课件2021/3/26182.3、ARM7TDMI内核结构ARM7TDMI处理器结构框ARM7TDMI处理器包括三大部分:◆ARMCPUMainProcessorLogic

包括了对调试的硬件支持◆EmbeddedICE-RTLogic

包括一组寄存器和比较器,用来产生调试异常,设置断点和观察点。◆TAPController

通过JTAG接口来控制和操作扫描链JTAG调试原理ppt课件2021/3/2619ARM7TDMI处理器包括三大部分:JTAG调试原理ppt

ARM7TDMI还提供了3个附加的信号:

DBGRQ:调试请求,通过把DBGREQ置“1”,可以迫使ARM7TDMI进入调试状态

DBGACK:调试确认,通过DBGACK,可以判断当前ARM7TDMI是否在调试状态BREAKPT:断点信号,这个信号是输入到ARM7TDMI处理器内核的JTAG调试原理ppt课件2021/3/2620ARM7TDMI还提供了3个附加的信号:JTAG调试原2.4、JTAG扫描链结构及工作过程ARM7TDMI的框图提供了3条扫描链:◆ScanChain0113个扫描单元,包括ARM所有的I/O,地址/数据总线和输入/输出控制信号。此链很复杂,不易控制,但包含信息丰富,可通过它得到ARM7TDMI内核的所有信息。◆ScanChain133个扫描单元,包括数据总线和一个断点控制信号。JTAG调试原理ppt课件2021/3/26212.4、JTAG扫描链结构及工作过程ARM7TDMI的框图提◆ScanChain238个扫描单元,通过控制EmbeddedICE宏单元,实现对ARM进行指令的断点、观察点的控制。其实还有个ScanChain3,ARM7TDMI可以访问外部的边界扫描链。只不过很少用,在此不做介绍。想了解可以看ARM7TDMI手册。JTAG调试原理ppt课件2021/3/2622◆ScanChain2JTAG调试原理ppt课件202一个典型的JTAG链:JTAG调试原理ppt课件2021/3/2623一个典型的JTAG链:JTAG调试原理ppt课件2021/JTAG扫描链的工作过程JTAG调试原理ppt课件2021/3/2624JTAG扫描链的工作过程JTAG调试原理ppt课件2021JTAG调试原理ppt课件2021/3/2625JTAG调试原理ppt课件2021/3/2625JTAG调试原理ppt课件2021/3/2626JTAG调试原理ppt课件2021/3/2626JTAG调试原理ppt课件2021/3/2627JTAG调试原理ppt课件2021/3/2627JTAG调试原理ppt课件2021/3/2628JTAG调试原理ppt课件2021/3/2628JTAG调试原理ppt课件2021/3/2629JTAG调试原理ppt课件2021/3/26292.5、EmbeddedICE-RTLogic的结构通过对EmbeddedICE控制,以及通过对EmbeddedICE中寄存器的读取,可以获得ARM内核的状态,为程序设置断点观察点以及读取Debug通信通道(DCC)。这里的断点用来标识某个地址上的一条指令,而观察点用来观察某个地址上的数据变化,所以这二者是有区别的。DCC用来完成主调试器和目标机间的信息发送。JTAG调试原理ppt课件2021/3/26302.5、EmbeddedICE-RTLogic的结构EmbeddedICE的结构如下:JTAG调试原理ppt课件2021/3/2631EmbeddedICE的结构如下:JTAG调试原理ppt课EmbeddedICE的长度是38位,包括:◆32位数据◆5位地址,访问EmbeddedICE中的寄存器◆1个读写控制位EmbeddedICE的寄存器主要包括Debug状态和控制寄存器,Debug通信寄存器和断点设置相关的寄存器,如下图所示:JTAG调试原理ppt课件2021/3/2632EmbeddedICE的长度是38位,包括:JTAG调试原理EmbeddedICE的寄存器JTAG调试原理ppt课件2021/3/2633EmbeddedICE的寄存器JTAG调试原理ppt课件2EmbeddedICE寄存器格式及含义DebugControlRegister格式:DBGACK:用来控制DBGACK信号的值DBGRQ:是调试请求信号,通过将该信号置“1”,可以强制ARM7TDMI暂停当前的指令,进入调试状态INTDIS:用来控制中断SBZ/RAZ:任何时候都必须被置“0”JTAG调试原理ppt课件2021/3/2634EmbeddedICE寄存器格式及含义DebugContrMonitorModeEnable:用来控制是否进入Monitor模式EmbeddedICE-RTDisable:用来控制整个EmbeddedICE-RT,是启用还是禁用DebugStatusRegister格式:DBGACK:用来标识当前系统是否处于调试状态。‘1’,表示进入;‘0’,表示未进入。JTAG调试原理ppt课件2021/3/2635MonitorModeEnable:用来控制是否进入MoDBGRQ:用来标识DBGRQ信号的当前状态IFEN:用来标识系统的中断控制状态:启用 还是禁用cgenL:用来判断当前对调试器在调试状态下 对内存的访问是否完成TBIT:该位用来判断ARM7TDMI是从ARM 状态还是THUMB状态进入到调试状 态的JTAG调试原理ppt课件2021/3/2636JTAG调试原理ppt课件2021/3/2636AbortStatusRegister格式:

该寄存器的长度为1,来判断一个异常的产生的原因:断点触发?观察点触发?还是一个真的异常?JTAG调试原理ppt课件2021/3/2637AbortStatusRegister格式:JTAG调实例1:用ScanChain2设置DebugControl

Register1)、选择扫描链2,将其连接到TDI,TDO之间。具体过程如下:

通过TAP将SCAN_N指令写入到指令寄存器当中去,

TAP状态转换如下:RUN-TEST/IDLE→SELECT-DR-SCAN→SELECT-IR-SCAN→CAPTURE-IR→SHIFT-IR→EXIT1-IR→UPDATE-IR→

RUN-TEST/IDLE,在SHIFT-IR状态下,将SCAN_N通过TDI写到指令寄存器中去;接下来,访问被SCAN_N指令连接到TDIJTAG调试原理ppt课件2021/3/2638实例1:用ScanChain2设置DebugCont

和TDO之间的扫描链选择寄存器,通过将2写入到扫描链选择寄存器当中去,以将扫描链2连接到TDI和TDO之间。将2写入扫描链选择寄存器的状态转换如下:

RUN-TEST/IDLE

→SELECT-DR-SCAN

→CAPTURE-DR→SHIFT-DR→EXIT1-DR

→UPDATE-DR→RUN-TEST/IDLE

在SHIFT-DR状态下,将数值2通过TDI写到扫描链选择寄存器当中去。2)、将ScanChain2置为内测试模式

用INTEST指令实现该操作,指令写入与SCAN_N指令的过程类似JTAG调试原理ppt课件2021/3/2639和TDO之间的扫描链选择寄存器,通过将2写入到扫描链选3)、写DebugControlRegister

假设要将DebugControlRegister的6位全部置“1”,按照扫描链2的格式,需要写入到扫描链2第序列应该为:

1,00000,0000,0000,0000,0000,0000,0000,0011,1111‘1’表示写操作,‘00000’标识的是DebugControlRegister的地址,中间32位是要写入到DebugControlRegister的数据。因DebugControlRegister长度为6,所以只有低6位的数据序列‘111111’有效。JTAG调试原理ppt课件2021/3/26403)、写DebugControlRegisterJTAG

将上面长度为38位的序列写入到扫描链2中,TAP状态转换过程如下:

RUN-TEST/IDLE→SELECT-DR-SCAN→CAPTURE-DR→SHIFT-DR→EXIT1-DR→UPDATE-DR→RUN-TEST/IDLE

在SHIFT-DR状态下,通过38个TCK时钟驱动,就可以将上面的序列串行输入到扫描练2当中去。在回到RUN-TEST/IDLE状态后,DebugControlRegister的值就会被改写为111111。JTAG调试原理ppt课件2021/3/2641JTAG调试原理ppt课件2021/3EmbeddedICE有两个WtchPoint单元。下面介绍一下WatchPoint寄存器的使用:

EmbeddedICE的一个主要作用是可以在ARM程序中设置软件或硬件断点。在EmbeddedICE中,集成了一个比较器,负责把ARM处理器取指的地址A[31:0],数据D[31:0]以及一些控制信号与EmbeddedICE中WatchPoint寄存器中设置的数值相比较(具体说应该是进行与或运算),比较结果用来确定输出一个ARM断点(BreakPoint)信号。具体运算关系如下公式所描述:2.6、EmbeddedICE的断点/观察点设置JTAG调试原理ppt课件2021/3/2642EmbeddedICE有两个Wtch{Av[31:0],Cv[4:0]}XOR{A[31:0],C[4:0]}OR{Am[31:0],Cm[4:0]}==0xFFFFFFFF

当上述表达式值为真时,断点/观察点信号有效,ARM内核进入Debug模式。ARM中断点和观察点的设置首先介绍一下与之设置密切相关的WPControlValue/MaskRegister。WPControlValue/MaskRegister格式:JTAG调试原理ppt课件2021/3/2643{Av[31:0],Cv[4:0]}XOR{A[31:0WPControlValue/MaskRegister格式含义:ENABLE:如果该位置0的话,意味着断点触发条件永远不成立,也就是把全部断点都给disable掉了

RANGE:暂时不会用CHAIN:暂时不会用EXTERN:外部到EmbeddedICE-RT的输入,通过该输入,可以使得断点的触发依赖于一定的外部条件

nTRANS:用来判断是在用户态下还是非用户态下,用户态下:nTRANS=0,否则nTRANS=1JTAG调试原理ppt课件2021/3/2644WPControlValue/MaskRegisternOPC:检测当前的周期是取指令还是进行数据访问。nOPC=0,表示当前周期进行取指。nOPC=1,表示当前周期进行普通数据的访问。(该位用的较多)MAS[1:0]:和ARM7TDMI的MAS[1:0]信号进行比较,以探测当前总线的宽度是8位、16位还是32位

nRW:nRW=0,

当前的是读周期,nRW=1,当前的是写周期JTAG调试原理ppt课件2021/3/2645nOPC:检测当前的周期是取指令还是进行数据访问。nOPC断点设置的两种方式:1)、硬件断点:通过设置EmbeddedICE中的WP和地址相关的寄存器来实现的。通过该方式设置的断点数受到WP数目的限制。因ARM7TAMI中仅有两组WP,故最多可以设置两个断点。但是,硬件断点可在任何地方设置不受存储类型限制。JTAG调试原理ppt课件2021/3/2646断点设置的两种方式:JTAG调试原理ppt课件2021/3

2)、软件断点通过设置EmbeddedICE中的WP和数据相关的寄存器来实现的。分为两步:

(1)、将datavalue和datamask设为ARM的未定义指令,通常是一个特殊的32位数字,如:0xCDCDCDCD

(2)、在需要设置断点的地方将其内容替换

JTAG调试原理ppt课件2021/3/2647JTAG调试原理ppt课件2021/3/2647为(1)中的特殊数字。这样,一但程序运行到该位置,尝试从该位置取指令或者数据的时候,因为取得的数据值和WPDataValue寄存器的值相同,ARM7TDMI会暂停当前的运行,自动进入调试状态。由上所述,软件断点数目不受ARM内核中WP数目的限制。但是,软件断点是通过替换系统断点地址的指令实现的,所以,软件断点只能在可写的存储器空间中设置,如:RAM。而不能在FLASH,ROM中设置。JTAG调试原理ppt课件2021/3/2648为(1)中的特殊数字。这样,一但程序运行到该位置,尝试

总之,有两个WP的ARM7TDMI内核中,断点设置有如下情况:★2个硬件断点,没有软件断点。★1个硬件断点,任意个软件断点。★没有硬件断点,任意个软件断点。观察点设置:

将WPAddressValue寄存器的值设置为需要观察的地址,WPAddressMask寄存器的值设置为0x00000000。将WPDataMask寄存器的值设置为0xFFFFFFFF。同时nPOC=1。另外,JTAG调试原理ppt课件2021/3/2649总之,有两个WP的ARM7TDMI内核

WPDataValue/MaskRegister也用来设置观察点,用以观察某个地址的数据变化。每当系统访问(读/写)完被观察地址的数据的时候,ARM7TDMI就会进入调试状态,这样,我们就可以马上检查该地址上的数据。JTAG调试原理ppt课件2021/3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论