一、JTAG的基本知识
二、ARM的JTAG调试结构
(1)Debug主控(Host)通常是运行有ARM公司或者第三方提供的调试软件的PC机,常用的调试软件有ARMSDT中的ARM Debug for Windows(ADW)、Linux下的arm-elf-gdb等。通过这些调试软件,可以发送高级的ARM调试命令,如设置断点、读写存储器、单步跟踪、全速运行等。
(2)协议转换器(Protocol Converter)负责转换Debug主控端发出的高级ARM调试命令为底层的和ARM内核通信的JTAG命令。Debug主控端和协议转换器之间的介质可以有很多种,比如以太网、USB、RS-232、并口等。Debug主控端和协议转换器之间的通信协议最典型的就是ARM公司提供的Angel标准,也可以是第三方厂家自己定义的标准。关于Angel的协议,可参考ARMSDT和ADS的相关文档。典型的协议转换器有:ARM公司的MulTI-ICE、Abatron公司的BDI、aiji公司的OpenlCE32、EPI公司的Jeeni等。
(3)ARM7TDMI的JTAG宏单元(Macrocell)主要包括3条JTAG扫描链(Scan Chain) 和1个JTAG的控制TAP状态机。
三、ARM7TDMI内核的JTAG扫描链结构
ARM7TDMI内核的JTAG扫描链结构主要包括3条JTAG扫描链:Scan Chain0、Scan Chain 1、Scan Chain2。
四、ARM7TDMI中通过JTAG对外设的访问
作为ARM典型的调试手段,JTAG除了可以设置ARM的断点以外,还可以对ARM的内核进行控制,从而实现对外围设备的读/写(比如下载程序到RAM或者FLASH空间)。通常在ARM7TDMI处理器中,JTAG对ARM外围设备的访问是通过对JTAG扫描链1的控制实现的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)