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

news/2024/7/5 1:48:26

文章目录

    • 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

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

1.1.1 DPACC and APACC 寄存器

对于DP和AP中寄存器的访问是通过 DPACC和APACC寄存器进行的,它们都是35bits的寄存器。
在这里插入图片描述

图 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寄存器。
在这里插入图片描述

图 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) 介绍


http://www.niftyadmin.cn/n/3649547.html

相关文章

华为鸿蒙系统应用开发工具介绍 DevEco Studio

简单介绍华为鸿蒙系统应用开发工具 DevEco Studio的安装和使用 据说12月份鸿蒙系统会推出手机的SDK哦,作为一名普通的开发者,表示非常期待。 一、HUAWEI DevEco Studio 介绍 HUAWEI DevEco Studio 是华为消费者业务为开发者提供的集成开发环境&#xf…

go语言结构体数组定义_在Go中定义结构

go语言结构体数组定义介绍 (Introduction) Building abstractions around concrete details is the greatest tool that a programming language can give to a developer. Structs allow Go developers to describe the world in which a Go program operates. Instead of rea…

[Java] 利用xpdf库获取pdf文件的指定范围文本内容

[Java] 利用xpdf库获取pdf文件的指定范围文本内容编写者日期关键词郑昀ultrapower2005-8-2Java PDF xpdf读取PDF文件的某一部分文本内容,可以使用开源项目xpdf。从Java中调用xpdf,我们参照了《Java抽取Word,PDF的四种武器》文章最后提到的办法…

项目管理构建工具Maven的自定义安装

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 M…

[Java] 利用Axis库调用C#的Web Service

[Java] 利用Axis库调用C#的Web Service编写者日期关键词郑昀ultrapower2005-8-2Java Web Service Axis C#试图从Java调用C#编写的Web Service,借用了王咏刚的wsCaller源代码中DynamicInvoker类。开始不清楚DynamicInvoker类的portName的含义,望文生义&am…

angular使用高德地图_使用传单在Angular中构建地图,第1部分:生成地图

angular使用高德地图Leaflet is an awesome JavaScript library for creating maps. It comes packed with nice features and is extremely mobile-friendly. Let’s see how we can integrate Leaflet into our Angular app. Leaflet是一个很棒JavaScript库,用于创…

拒绝加班!今天是1024程序员节!

这一天,致敬所有的程序开发者。 1024程序员节是广大程序员的共同节日。1024是2的十次方,二进制计数的基本计量单位之一。针对程序员经常周末加班与工作日熬夜的情况,部分互联网机构倡议每年的10月24日为1024程序员节,在这一天建议…

图片的压缩的几种方法

首先该文章是总结, 不是原创, 是通过看网上其他大神的文章和自己的一些实践总结出来的. 一.图片的存在形式 1.文件形式(即以二进制形式存在于硬盘上) 2.流的形式(即以二进制形式存在于内存中) 3.Bitmap形式这三种形式的区别: 文件形式和流的形式对图片体积大小并没有影响,也就…