一种嵌入式系统实现的JTAG调试器
[11-20 17:13:02] 来源:http://www.88dzw.com 嵌入式系统 阅读:8530次
文章摘要:ARM7TDMI 的调试状态和正常运行状态是有区别的。在正常运行状态下, ARM7TDMI由MCLK( MemoryClock)驱动, 正常运行。在调试状态下, ARM7TDMI的正常运行被打断, 并且和系统的其他部分隔离开来。可以通过扫描链插入特定的ARM/THUMB指令来读写ARM7TDMI的内部寄存器和修改内存的内容。在完成需要的操作后,可以用RESTART JTAG 指令让ARM7TDMI返回到正常运行状态,恢复原来的运行。 JTAG 调试器的嵌入式系统实现JTAG调试器硬件是以基于ARM7芯片的嵌入式系统实现的。该系统以带以太网接口的ARM芯片S3C4510B为核心处理器, 以μCl
一种嵌入式系统实现的JTAG调试器,标签:嵌入式系统开发,嵌入式开发,http://www.88dzw.comARM7TDMI 的调试状态和正常运行状态是有区别的。在正常运行状态下, ARM7TDMI由MCLK( MemoryClock)驱动, 正常运行。在调试状态下, ARM7TDMI的正常运行被打断, 并且和系统的其他部分隔离开来。可以通过扫描链插入特定的ARM/THUMB指令来读写ARM7TDMI的内部寄存器和修改内存的内容。在完成需要的操作后,可以用RESTART JTAG 指令让ARM7TDMI返回到正常运行状态,恢复原来的运行。
JTAG 调试器的嵌入式系统实现
JTAG调试器硬件是以基于ARM7芯片的嵌入式系统实现的。该系统以带以太网接口的ARM芯片S3C4510B为核心处理器, 以μClinux为嵌入式操作系统。JTAG调试器软件主要包括两部分: JTAG调试器与目标机的接口模块和与调试主机的接口模块。具体结构框图如图2 所示。

嵌入式系统设计
设计并制作标准的S3C4510B应用系统, 主要配置为2MBFLASH、16MBSDRAM、10/100Mbps 自适应以太网口、终端接口、并行I/O 接口等。利用S3C4510B 的通用I/O口中的P[4]、P[5]、P[6]、P[8]分别模拟JTAG标准中TAP的4个信号接口, 即TCK、TMS、TDI、TDO。
从软件上看, 需要将μClinux 操作系统移植到设计制作的基于S3C4510B的JTAG调试器硬件平台上, 以便开发基于网络的调试器软件。μCLinux是为没有内存管理单元(MMU)的处理器设计的一种嵌入式操作系统,它继承了桌面Linux的强大网络功能,其内核采用模块化的组织结构,通过增减内核模块的方式来增减系统的功能。
通常, 在PC机上通过并口模拟JTAG时序,也可以按照标准仿真器设计JTAG调试器。与上述方案不同,本设计采用开放源代码软件设计JTAG调试器应用软件,主要参考了Open- JTAG小组开发的通过PC机并口实现JTAG操作的软件jtager - 1.0.0,将其中对PC 机并口的操作改为对S3C4510B口线的操作,通过设置S3C4510B的通用I/O口模式寄存器IOPMOD 的值可将P[4]、P[5]、P[6]设置为输出模式,将P[8]设置为输入模式,然后通过编程设置I/O口数据寄存器IOPDATA的值,控制P[4]、P[5]、P[6]、P[8]的状态实现JTAG标准要求的时序。随后,根据ARM7TDMI调试特性,修改操作代码,增加通过网络的远程调试功能。
ARM7TDMI 的JTAG 指令实现
ARM7TDMI 的指令寄存器长度是4位, 通过TAP和JTAG接口, 可以把指令装载到指令寄存器中。在CAPTURE-IR状态下, 固定值B0001总是被装载到指令寄存器中。在SHIFT- IR状态下, 可以把ARM7TDMI支持的新指令从TDI串行输入,同时固定值B0001会从TDO 串行输出。通过输出的这个固定值,可以判断当前的操作是否正确。在UPDATE- IR状态下, 新输入的指令被装载到指令寄存器中。在回到RUN- TEST/IDLE状态后,新指令立即生效。
IDCODE和SCAN_N是ARM7TDMI调试中经常用到的JTAG命令。IDCODE命令的二进制代码是1110。IDCODE命令将Device Identification Code寄存器连接到TDI和TDO之间。Device Identification Code寄存器的长度是32 位,通过TAP可以读到ARM7TDMI的ID。SCAN_N命令的二进制代码是0010。ARM7TDMI提供了4 条扫描链,通过SCAN_N指令可以选择需要访问的扫描链。选择扫描链的过程是:先把SCAN_N指令装载到指令寄存器中,该指令会将长度为4位的扫描链选择寄存器连接到TDI和TDO之间;通过TAP状态的转移便可使选择的扫描链连接到TDI和TDO之间。
另外BYPASS、INTEST、RESTART等JTAG指令的实现方法与上面两条指令的实现方法类似。
嵌入式ICE- RT 逻辑实现
嵌入式ICE- RT是ARM处理器内部集成的在线仿真功能模块,通过JTAG调试接口与外界交互,其中包含的常用寄存器如表1所示。

Tag:嵌入式系统,嵌入式系统开发,嵌入式开发,嵌入式系统
《一种嵌入式系统实现的JTAG调试器》相关文章
- › 一种嵌入式系统实现的JTAG调试器
- 在百度中搜索相关文章:一种嵌入式系统实现的JTAG调试器
- 在谷歌中搜索相关文章:一种嵌入式系统实现的JTAG调试器
- 在soso中搜索相关文章:一种嵌入式系统实现的JTAG调试器
- 在搜狗中搜索相关文章:一种嵌入式系统实现的JTAG调试器
编辑推荐
分类导航
最新更新
热门排行