第一章 简介
该章介绍的内容包括:ARM调试接口架构并总结在实现ARM调试接口时需要的设计方案;基于JTAG-DP对Debug接口的访问,描述与系统连接的DAP寄存器,展示寄存器如何存在不同级别的调试接口模型。该章包含如下内容:
* ARM调试接口第五版本(ADIv5:The ARM Debug Interface version 5)
* ARM调试接口功能
* ARM调试接口第五版本的实现细则
* 对外接口-调试端口(DP:Debug Port)
* 资源接口-访问端口(APs:Access Ports)
* 设计选项和实现案例
1.1 ARM调试接口第五版本概述
ADIv5主要指的是ADIv5.0,但是v5.1和其他v5.x也包含在内。
ADIv5属于ARM调试接口第五个大版本
所有之前的版本都是基于IEEE 1149.1 JTAG 接口,但是都用于访问ARM处理器内核和嵌入式追踪单元(ETM):
** 调试接口版本1、版本2 **应用在ARM7TDMI和ARM9系列处理器内核上
** 调试接口版本3 **
在ARM10处理器家族引入
** ADIv4 **
不像之前一直是将ADI接入到ARM处理器内核,ADIv4是第一个将ADI接入ARM架构的版本。ARM建议ADIv4用在ARMv6架构上。
ADIv5移除了ADI和ARM处理器内核的连接,实现的其中一个功能就是ADIv5可以访问任何兼容ADIv5特性的调试组件。关于ADIv5对资源的访问由具体资源决定,而不是由ADI决定。
相比较上个版本ADIv5有三个主要的改进
+ ADIv5接口可以访问一个设备更多的地址范围
+ ADI可以是独立于具体资源,用于提高一些实现的重复利用,当然,这些分离不是必须的。
+ 使用ADIv5抽象,允许依旧使用以前的工具软件,例如“debuggers”
调试接口版本1到版本4要求使用的物理接口为IEEE 1149.1 JTAG接口标准。ADIv5定义了两个可以选择的物理接口
- IEEE 1149.1 JTAG 接口
- 管脚数较少的串行调试接口
ADIv5的主要部件被划分成两个主要的架构:- 访问端口(AP:Access Port)架构
- 调试端口(DP:Debug Port)架构
1.1.1 ADIv5的版本信息
ADI 的v5.1和v5.2是对于ADIv5向后兼容的扩展,在引入版本ADIv5.1时,ADIv5被描述为ADIv5.0
*************** 注意 *************
ADIv5.1最初只是一个对于ADIv5版本的补充,ARM IHI 0031B是第一个集成描述ADIv5.0、ADIv5.1和ADIv5.2的发布版本。
ADIv5.0特性
- 两个调试端口,JTAG-DP和SW-DP
- 两个访问端口,:
> * JTAG-AP,用于访问传统的JTAG
> * MEM-AP,用于访问内存和经过内存映射的组件- 访问端口特征模型
- 对绑定到MEM-AP上的组件的发现机制
ADIv5.1增加的特性
ADIv5.1形成并定义了调试端口(DP:Debug Port)的版本号
- ADIv5.0定义的JTAG_DP编程器模型作为调试端口架构版本0(DPv0)
- ADIv5.0定义的SW-DP编程器模型作为调试端口架构版本1(DPv1)
ADIv5.1也增加了- AP特征模型扩展
- 针对AMBA总线协议,标准化了MEM-AP的实现
- 在调试端口架构版本1中支持JTAG
- 最小化调试端口扩展
- 调试端口架构版本2(DPv2)
- 多协议互通
- 串行调试协议版本2,提供了多点能力翻译不好这句,不懂原意 a multi-drop capability
接下来的小节将会给出更多ADIv5.1在ADIv5基础上增加的信息
多协议互通
ADIv5.1引入了多协议互通扩展- SWD和JTAG协议的轻易转换
- 休眠状态,用于协议之间的交互
串行调试协议扩展
ADIv5.1引入了串行调试协议版本2,用来扩展串行调试协议,增加了Multi-drop capability.
小型化调试端口扩展
小型化调试端口(MINDP)是一个简化版的调试端口扩展,用更少的管脚实现ADI
ADIv5.2新增特性
ADIv5.2包含: