JTAG调试原理ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
调试命令转换为底层的ARM JTAG调试命 令。 Debug主控端和协议转换器间的介质 可以有很多种,如:Earthnet、USB,串口, 并口等。 Debug主控端和协议转换器间的 通信协议可以是ARM公司的ANGEL标准, 也可以是第三方自定义的标准。典型的协 议转换器有:ARM公司的Multi-ICE,HJTAG,JLink等。
JTAG调试原理
-
-பைடு நூலகம்
目录
一、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-RT Logic的结构 2.6、 EmbeddedICE的断点/观察点设置
DBGACK :调试确认,通过DBGACK,可 以判断当前ARM7TDMI是否在调试状态
BREAKPT :断点信号,这个信号是输入到 ARM7TDMI处理器内核的
-
2.4、JTAG扫描链结构及工作过程
ARM7TDMI的框图提供了3条扫描链: ◆Scan Chain 0
113个扫描单元,包括ARM所有的I/O,地 址/数据总线和输入/输出控制信号。此链很 复杂,不易控制,但包含信息丰富,可通 过它得到ARM7TDMI内核的所有信息。 ◆Scan Chain 1 33个扫描单元,包括数据总线和一个断点 控制信号。
三、 JTAG常用指令
-
一、JTAG基本知识
1.1、 什么是JTAG JTAG是Joint Test Action Group(联合测
试行动组)的缩写,是IEEE1149.1标准。
1.2 、 JTAG的作用 使得IC芯片固定在PCB版上,只通过边
界扫描便可以被测试。
1.3、 JTAG调试结构
-
-
-
H-JTAG运行界面
-
J-Link的运行界面
-
(3)、调试目标机 系统的调试对象。典型的ARM7TDMI
内核的调试结构:
-
二、JTAG的工作原理
2.1、两个重要概念:边界扫描和TAP (1)边界扫描(Boundary-Scan):
基本思想:在靠近芯片输入/输出管脚上 增加一个移位寄存器单元(边界扫描寄存 器)。
-
JTAG扫描链的工作过程
-
-
-
-
-
-
2.5、EmbeddedICE-RT Logic的结构
通过对EmbeddedICE控制,以及通过对 EmbeddedICE中寄存器的读取,可以获得ARM 内核的状态,为程序设置断点观察点以及读取 Debug通信通道(DCC)。
这里的断点用来标识某个地址上的一条指令, 而观察点用来观察某个地址上的数据变化,所以 这二者是有区别的。DCC用来完成主调试器和目 标机间的信息发送。
-
◆Scan Chain 2 38个扫描单元,通过控制EmbeddedICE宏 单元,实现对ARM进行指令的断点、观察 点的控制。
其实还有个Scan Chain 3,ARM7TDMI可 以访问外部的边界扫描链。只不过很少用, 在此不做介绍。想了解可以看ARM7TDMI 手册。
-
一个典型的JTAG链:
包括了对调试的硬件支持 ◆Embedded ICE-RT Logic
包括一组寄存器和比较器,用来产生调试 异常,设置断点和观察点。 ◆TAP Controller 通过JTAG接口来控制和操作扫描链
-
ARM7TDMI还提供了3个附加的信号: DBGRQ : 调试请求,通过把DBGREQ置 “1”,可以迫使ARM7TDMI进入调试状态
JTAG复位信号。标准里是可选的
-
2.2、JTAG的状态机
TAP共有16个状态机,如下图所示: 每一个状态都有其相应的功能。箭头表示了 所有可能的状态转换流程。状态的转换是 由TMS控制的。
-
-
2.3、ARM7TDMI内核结构
ARM7TDMI处理器结构框图:
-
ARM7TDMI处理器包括三大部分: ◆ARM CPU Main Processor Logic
(1)、DEBUG主控制器: 运行有ARM公司或是第三方提供的
调试软件的PC机。如:ARM公司提供的 ADS、LINUX下的arm-elf-gdb等。通过这 些调试软件,可以发送高级调试命令,如: 设置/取消断点,读写MEMORY,单步跟 踪,全速运行等。
-
(2)、协议转换器(Protocol converter) 负责将Debug主控端发出的高级ARM
正常状态下,边界扫描寄存器对芯片来 说是透明的,所以正常的运行不会受到任 何的影响。
-
调试状态下,边界扫描寄存器将芯片 和外的输入输出隔离开,通过这些边界扫 描寄存器可以实现对芯片输入输出信号的 控制。具体控制过程如下:
① 、输入管脚:通过与之相连的边界 扫描寄存器把信号(数据)加载到该管脚 中去。
TAP是一个通用的端口,利用它可以 访问芯片提供的所有DR和IR。对整个TAP 的控制是通过TAP Controller来完成的。
TAP包括5个信号接口:
◆TCK(Test Clock Input)
JTAG时钟信号位。标准强制要求
◆TMS(Test Mode Select)
测试模式选择,通过该信号控制 JTAG状态机的状态。TMS在TCK的上升沿 有效。标准强制要求 -
②、输出管脚:通过与之相连的边界扫 描 寄存器“捕获”该管脚上的输出信号。
-
注意: 芯片输入输出管脚上的边界扫描寄存器
单元可以相互连接起来,在芯片周围形成 一个边界扫描链。该链可以实现串行的输 入输出,通过相应的时钟信号和控制信号, 可方便的观察和控制在调试状态下的芯片。
-
(2)、TAP(Test Access Port)
◆TDI(Test Data Input) 数据输入口。所有要输入到特定寄存器
的数据都是通过TDI口一位一位串行输入的 (TCK驱动)。标准里强制要求 ◆TDO(Test Data Output)
数据输出口。所有要从特定的寄存器中 输出的数据都是通过TDO口串行的一位一 位输出的(TCK驱动)。标准里强制要求 ◆TRST(Test Reset Input)
JTAG调试原理
-
-பைடு நூலகம்
目录
一、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-RT Logic的结构 2.6、 EmbeddedICE的断点/观察点设置
DBGACK :调试确认,通过DBGACK,可 以判断当前ARM7TDMI是否在调试状态
BREAKPT :断点信号,这个信号是输入到 ARM7TDMI处理器内核的
-
2.4、JTAG扫描链结构及工作过程
ARM7TDMI的框图提供了3条扫描链: ◆Scan Chain 0
113个扫描单元,包括ARM所有的I/O,地 址/数据总线和输入/输出控制信号。此链很 复杂,不易控制,但包含信息丰富,可通 过它得到ARM7TDMI内核的所有信息。 ◆Scan Chain 1 33个扫描单元,包括数据总线和一个断点 控制信号。
三、 JTAG常用指令
-
一、JTAG基本知识
1.1、 什么是JTAG JTAG是Joint Test Action Group(联合测
试行动组)的缩写,是IEEE1149.1标准。
1.2 、 JTAG的作用 使得IC芯片固定在PCB版上,只通过边
界扫描便可以被测试。
1.3、 JTAG调试结构
-
-
-
H-JTAG运行界面
-
J-Link的运行界面
-
(3)、调试目标机 系统的调试对象。典型的ARM7TDMI
内核的调试结构:
-
二、JTAG的工作原理
2.1、两个重要概念:边界扫描和TAP (1)边界扫描(Boundary-Scan):
基本思想:在靠近芯片输入/输出管脚上 增加一个移位寄存器单元(边界扫描寄存 器)。
-
JTAG扫描链的工作过程
-
-
-
-
-
-
2.5、EmbeddedICE-RT Logic的结构
通过对EmbeddedICE控制,以及通过对 EmbeddedICE中寄存器的读取,可以获得ARM 内核的状态,为程序设置断点观察点以及读取 Debug通信通道(DCC)。
这里的断点用来标识某个地址上的一条指令, 而观察点用来观察某个地址上的数据变化,所以 这二者是有区别的。DCC用来完成主调试器和目 标机间的信息发送。
-
◆Scan Chain 2 38个扫描单元,通过控制EmbeddedICE宏 单元,实现对ARM进行指令的断点、观察 点的控制。
其实还有个Scan Chain 3,ARM7TDMI可 以访问外部的边界扫描链。只不过很少用, 在此不做介绍。想了解可以看ARM7TDMI 手册。
-
一个典型的JTAG链:
包括了对调试的硬件支持 ◆Embedded ICE-RT Logic
包括一组寄存器和比较器,用来产生调试 异常,设置断点和观察点。 ◆TAP Controller 通过JTAG接口来控制和操作扫描链
-
ARM7TDMI还提供了3个附加的信号: DBGRQ : 调试请求,通过把DBGREQ置 “1”,可以迫使ARM7TDMI进入调试状态
JTAG复位信号。标准里是可选的
-
2.2、JTAG的状态机
TAP共有16个状态机,如下图所示: 每一个状态都有其相应的功能。箭头表示了 所有可能的状态转换流程。状态的转换是 由TMS控制的。
-
-
2.3、ARM7TDMI内核结构
ARM7TDMI处理器结构框图:
-
ARM7TDMI处理器包括三大部分: ◆ARM CPU Main Processor Logic
(1)、DEBUG主控制器: 运行有ARM公司或是第三方提供的
调试软件的PC机。如:ARM公司提供的 ADS、LINUX下的arm-elf-gdb等。通过这 些调试软件,可以发送高级调试命令,如: 设置/取消断点,读写MEMORY,单步跟 踪,全速运行等。
-
(2)、协议转换器(Protocol converter) 负责将Debug主控端发出的高级ARM
正常状态下,边界扫描寄存器对芯片来 说是透明的,所以正常的运行不会受到任 何的影响。
-
调试状态下,边界扫描寄存器将芯片 和外的输入输出隔离开,通过这些边界扫 描寄存器可以实现对芯片输入输出信号的 控制。具体控制过程如下:
① 、输入管脚:通过与之相连的边界 扫描寄存器把信号(数据)加载到该管脚 中去。
TAP是一个通用的端口,利用它可以 访问芯片提供的所有DR和IR。对整个TAP 的控制是通过TAP Controller来完成的。
TAP包括5个信号接口:
◆TCK(Test Clock Input)
JTAG时钟信号位。标准强制要求
◆TMS(Test Mode Select)
测试模式选择,通过该信号控制 JTAG状态机的状态。TMS在TCK的上升沿 有效。标准强制要求 -
②、输出管脚:通过与之相连的边界扫 描 寄存器“捕获”该管脚上的输出信号。
-
注意: 芯片输入输出管脚上的边界扫描寄存器
单元可以相互连接起来,在芯片周围形成 一个边界扫描链。该链可以实现串行的输 入输出,通过相应的时钟信号和控制信号, 可方便的观察和控制在调试状态下的芯片。
-
(2)、TAP(Test Access Port)
◆TDI(Test Data Input) 数据输入口。所有要输入到特定寄存器
的数据都是通过TDI口一位一位串行输入的 (TCK驱动)。标准里强制要求 ◆TDO(Test Data Output)
数据输出口。所有要从特定的寄存器中 输出的数据都是通过TDO口串行的一位一 位输出的(TCK驱动)。标准里强制要求 ◆TRST(Test Reset Input)