原文链接:https://zhidao.baidu.com/question/157494872.html
调试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测试工具对内部节点进行测试和调试