文章目录
- 1.1 DP 中相关寄存器的介绍
- 1.1.1 DPACC and APACC 寄存器
- 1.1.2 DP SELECT 寄存器
- 1.1.3 AP CSW寄存器
- 1.1.4 AP TAR 寄存器
- 1.1.5 AP DRW寄存器
- 1.1.6 AP Banked Data registers
1.1 DP 中相关寄存器的介绍
如果DAP接入的是JTAG接口,那么将会通过APACC寄存器来访问系统的debug 资源,会通过DPACC访问DAP的内部资源,如DP中的一些寄存器的访问。
DAP 需要实现以下内容来支持 JTAG的访问:
- DBGTAPSM, Debug TAP State Machine, Debug TAP 状态机,用于控制JTAG-DP的操作;
- IR scan chain and IR instructions, 用于接收和转换JTAG发过来的信息;
- 一些数据寄存器,也就是DP中的一些寄存器或者AP中的一些寄存器。
JTAG-DP会将 JTAG发送过来的一些信息转换为对应IR指令,ARM 标准 IR 指令如下:
表 1-1
1.1.1 DPACC and APACC 寄存器
对于DP和AP中寄存器的访问是通过 DPACC和APACC寄存器进行的,它们都是35bits的寄存器。
图 1-1
对于APACC 寄存器,其Data[31:0] 用于写入要写入target 寄存器的值,如果是读操作那么Data[31:0]存着要读取target 寄存器的值,A[7:4]用于选择某个bank 组,A[3:2]用于选择bank中的某一个寄存器,一个bank中包含4个AP寄存器。
图 1-2
1.1.2 DP SELECT 寄存器
如图1-2所示,在ADIv5中,对于AP寄存器的方式可以有两种方式,其中的一种即是通过DP中的SELECT寄存器来选择对 AP 寄存器的访问。
图 1-3
我们知道DAP 中支持多个 AP,而每次只能对一个AP进行访问。因为需要对 AP 进行编号,编号的值就在 APSEL位域 中。因为这个bits[31:24]位域有8位,因此 DAP 中可以最多有256个AP。
bits[7:4]: 用于选择 16 个 bank 寄存器组中的一组,其作用相当于APACC寄存器的A[7:4]域;
bits[3:0] 用于选择一个DP bank寄存器组的某一组。
1.1.3 AP CSW寄存器
见:ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍
1.1.4 AP TAR 寄存器
见:ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍
1.1.5 AP DRW寄存器
见:ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍
1.1.6 AP Banked Data registers
banked data 寄存器一共有4个:BD0-BD3, 它们直接映射到memory地址空间,地址开始于 TAR寄存器中的地址 加上 0x10偏移:
- 在写操作的情况下,banked data 寄存器可以装入要写入对应memory地址的值;
- 在读操作的情况下,banked data 寄存器存放这要从memory读取的数据。
上一篇:ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍