【ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 1】

文章目录

    • 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 指令如下:
【ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 1】_第1张图片

表 1-1

如上图,IR 指令的宽度可以是4bits 也可以是8bits。

1.1.1 DPACC and APACC 寄存器

对于DP和AP中寄存器的访问是通过 DPACC和APACC寄存器进行的,它们都是35bits的寄存器。
【ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 1】_第2张图片

图 1-1

DPACC和APACC有着相同的组成格式,如下图,DP 会使用 DPACC中的A[3:2] 选择访问哪个DP的寄存器,RnW(bits[1:0])的值为0,Data[31:0] 装要写入寄存器的值,如果是读操作的话,也是从Data[31:0]中获取值。

对于APACC 寄存器,其Data[31:0] 用于写入要写入target 寄存器的值,如果是读操作那么Data[31:0]存着要读取target 寄存器的值,A[7:4]用于选择某个bank 组,A[3:2]用于选择bank中的某一个寄存器,一个bank中包含4个AP寄存器。
【ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 1】_第3张图片

图 1-2

1.1.2 DP SELECT 寄存器

如图1-2所示,在ADIv5中,对于AP寄存器的方式可以有两种方式,其中的一种即是通过DP中的SELECT寄存器来选择对 AP 寄存器的访问。
【ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 1】_第4张图片

图 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偏移:
【ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 1】_第5张图片

  • 在写操作的情况下,banked data 寄存器可以装入要写入对应memory地址的值;
  • 在读操作的情况下,banked data 寄存器存放这要从memory读取的数据。

上一篇:ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍
下一篇:ARM Coresight 系列文章 3.1 - ARM Coresight DP 对 AP 的访问 2

你可能感兴趣的:(#,ARM,Coresight,系列,arm,coresight,DPACC,APACC,APB-AP,SOC-400,SOC-600)