【ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍】

news2024/11/17 3:51:22

文章目录

    • 1.1 Debug Access Port
    • 1.2 Access Port
      • 1.2.1 IDR 寄存器
    • 1.3 Mem-APs 介绍
      • 1.3.1 Debug 寄存器访问模型
      • 1.3.2 APs 中寄存器的介绍

1.1 Debug Access Port

外部 Debugger(DS-5/Trace32) 会通过JTAG接口或者SWD接口和DAP相连:
在这里插入图片描述

JITAG 一般是5个pin:TCK, nTRST(可选), TDI, TDO, TMS
SWD 是两个pin: SWCLKTCK 和 SWDIOTMS(既可以作为JTAG接口TMS接口又可以作为SWD的数据接口)

下图可以看到在DP中有 SWD DP和 JTAG DP,一共两种,中间会有一个选择器(SWD/JTAG select)。
在这里插入图片描述

图 1-1

SW-DP 的连接方式是通过 一个时钟线,一个双向的数据线;
SWJ-DP的连接方式是通过五根线:
在这里插入图片描述

表 1-1

那么DP如何判断当前连接的是哪种协议呢
答:SWD 和 JTAG会复用TMS信号线,外部通过TMS发送一定的序列到SWJ-DP,然后再由DP再去根据序列号进行判断,当前传输是JTAG方式还是SWD方式。

1.2 Access Port

ADIv6 specifications 对AP的定义有几点要求:

  • 必须有 Identification Register, ADIv5同样要求必须有 IDR寄存器,其偏移地址为0xFC, 并且是AP 寄存器地址空间的最后一个寄存器;ADIv5 规定如果IDR寄存器的值为0,那么表示没有AP存在。
  • 任何AP都必须支持DP的访问;
  • 所有的AP reserved 寄存器都必须是 RES0
  • ABORT 机制是可选的

ADI 支持多个APs,最简单的ADI 只有一个AP,这个AP可以是MEM-AP 或者 JTAG-AP。
ADIs 可以有以下几种情况的AP搭配:

  • MEM-AP和JTAG-AP 都有
  • 只有MEM-APs
  • 只有 JTAG-APs

1.2.1 IDR 寄存器

在ADIv5中 IDR 寄存器的定义如下,分为6个域。
在这里插入图片描述
bits[31:17] 主要用来显示版本号和公司信息;
bits[16:13] 定义AP所属的类,有以下几种情况:

  • 0b0000 No defined class
  • 0b0001 COM Access Port(Component AP)
  • 0b1000 Memory Access Port

bits[16:13]、bits[7:4]和bits[3:0] 一块定义了AP的类型信息:
在这里插入图片描述

1.3 Mem-APs 介绍

1.3.1 Debug 寄存器访问模型

coresight 组件中的寄存器通常会当做外设映射到系统空间,一般会占用4KB的地址空间,当然可以是4KB倍数的地址空间。
对于ARMv8和ARMv9 这种空间粒度的大小可以达到64KB。

ROM Table 可以被看做一组特殊的 debug 寄存器,通常也会占用4KB的地址空间,如果系统中只有一个debug组件连接到AP,这个时候 ROM Table 是可选的,也即硬件可以不实现ROM Table,如果系统中debug 组件的个数超过1个,那么ROM Table 必须实现。

APs 出来的接口可以是 Debug APB,AXI,AHB( 或者JTAG)。
在这里插入图片描述

Coresight 图 1-2

  • APB Access Port(APB-AP): 一般用于Cortex-A或者Cortex-R Coresight 组件的访问,通常A/R系列会有一个Debug APB的接口;
  • AHB Access Port(AHB-AP): Cortex-M系列的 Debug 接口通常是AHB 接口;
  • AXI Access Port(AXI-AP): 挂载在系统 memory bus上,可以直接访问到系统memory,比如DDR,SRAM等;
  • JTAG Access Port(JTAG-AP): 对 JTAG 设备的访问。这个是兼容以前较早的ARM处理器,如ARM9; 这些较早的处理器内部是用 JTAG 来调试的。但是现在的ARM处理器,已经不用这种方式,统一用 memory-mapped 方式进行调试。

1.3.2 APs 中寄存器的介绍

一个 DAP 可以包括多个AP,AP 受 DP 的控制, 只有对 AP 的访问,才可以转化成 memory-mapped 总线,对 SoC 的内部资源进行访问。

根据 TMS 信号线 DP 区分完外部传入的是JTAG还是SWD之后,会去访问 DP 中的 DPACC或者APACC这两个寄存器中的一个 (不管是JTAG还是SWD都是可以访问这个寄存器)。如果访问的是DPACC,那么访问的将是访问DP的一些寄存器;如果访问的是APACC那么,后面将会接着访问AP的一些寄存器。

AP 里面主要有如下几个寄存器:

  • CSW(Control/Status Word):用于配置和控制memory interface的transfer;
  • TAR(Transfer Address):用于装载当前transfer的地址;
  • DRW(Data Read/Write):装载要transfer的数据,如果是读取操作,直接读取这个寄存器即可。
  • ROM(Debug ROM Address):装载rom table地址的寄存器;
  • IDR(Identification Register):显示当前版本号及memory interface 的类型,如APB-AP,AXI-AP等。

AP出来后 memory interface(memory interface都是有地址的)可以是AXI、AHB 或者APB,memory interface 会将地址配在TAR寄存器中,将数据配置在DRW寄存器中。AP会根据对上面三个寄存器的操作来产生 bus interface 的 transfer。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA每日一练(1)

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? import java.util.Scanner;/*…

【ElasticSearch】数据聚合语法与Java实现

文章目录 1、聚合的分类2、DSL实现bucket聚合3、DSL实现Metrics 聚合4、RestClient实现聚合5、需求:返回过滤条件的信息6、带过滤条件的聚合 1、聚合的分类 聚合(aggregations)可以实现对文档数据的统计、分析、运算。(类比MySQL…

如何记牢托福口语考试的关键词?

一般情况下,托福独立口语一类问题是自由回答间题(Free-choice Response),如:If you could have any job in the world, what would it be? Use details to support your. response;另一类是选择类问题(Paired-choice Response),如…

BERT论文解读及实现(一)

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 1 论文解读 1.1 模型概览 There are two steps in our framework: pre-training and fine-tuning. bert由预训练模型微调模型组成。 ① pre-training, the model is trained on unlabele…

前端Vue入门-day01

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Vue 快速上手 Vue 概念 创建实例 插值表达式 响应式特性 开发者工具 Vue 指令 v-show v-if …

【Spring Boot】第一个Spring Boot项目:helloworld

第一个Spring Boot项目:helloworld 本节从简单的helloworld程序开始介绍创建Spring Boot项目的方法和流程,以及Spring Boot项目结构,最后介绍项目中非常重要的pom.xml文件。 1.创建Spring Boot项目 有两种方式来构建Spring Boot项目的基础…

【1++的C++初阶】之string

👍作者主页:进击的1 🤩 专栏链接:【1的C初阶】 文章目录 一,浅谈string类二,string 类常用接口2.1 string的构造2.2 string类对象的容量操作2.3 string类对象的访问及遍历操作2.4 string类对象的修改操作2.…

Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

Python 有趣的模块之pynupt ——通过pynput控制鼠标和键盘 文章目录 Python 有趣的模块之pynupt ——通过pynput控制鼠标和键盘1️⃣简介2️⃣鼠标控制与移动3️⃣键盘控制与输入4️⃣结语📢 1️⃣简介 🚀🚀🚀学会控制鼠标和键盘是…

Mongodb连接数据库

1.初始化 npm init 2.安装mongoose npm i mongoose 3.导入mongoose const mongooserequire("mongoose") 4.连接mongodb服务 mongoose.connect("mongodb://127.0.0.1:27017/user") 说明:mongodb是协议,user是数据库,如果没有会自动创…

经OPA运放后,读取电压出错

问题: 在焊接完两块板子上传程序测试时,程序上传完成,有一块板子在使用OPA读取电压时,在未插入电阻情况下,电压读取是正确的,在插入50K电压后,电压值应该是之前的两倍,但是电压变化…

unittest单元测试2

目录 unittest框架解析 构建测试套件 用例的执行顺序 unittest断言 HTML报告生成 异常捕捉与错误截图 数据驱动 🎁更多干货 完整版文档下载方式: unittest框架解析 unittest 是python 的单元测试框架,unittest 单元测试提供了创建测…

怎么把CAJ转换成PDF文件格式?分享这两个方法!

随着互联网的发展,中国知网(CNKI)已成为许多学术研究人员和学生们获取文献资料的重要来源。在CNKI上,常见的文件格式是CAJ(China Academic Journals)。然而,由于个人喜好或特定需求,我们有时会希望将这些CA…

PDF文档转化为HTML网页格式怎么操作?分享这三个方法给大家!

PDF文档作为一种常见的文档格式,广泛应用于各个领域。然而,如果您想将PDF文档直接发布到网站上,或是想在网页上进行展示,您可能需要将PDF转化为HTML格式。在此,我为大家介绍三种将PDF转化为HTML格式的方法。 方法一&am…

mysql语句练习题,创建表create ,枚举中文字符集设置,修改(update)

作业: 1.创建表: 创建员工表employee,字段如下: id(员工编号),name(员工名字),gender(员工性别),salary(员工薪…

d3dx9_43.dll丢失怎么解决(分享三个解决方法)

d3dx9_43.dll是一个Microsoft DirectX的动态链接库文件,它包含了一系列用于图形、音频和输入的功能和接口。它是DirectX 9的一部分,用于提供游戏和其他图形应用程序所需的图形和声音效果。如果计算机中d3dx9_43.dll丢失,会造成很多游戏无法打…

opencv图片根据规则改变颜色

解析 1. 读入图片 2.通道分离 3.像素值在【100,200】之间,赋值128。大于200赋值255,小于100赋值0。 源码 import cv2 img_raw_path"past/unet-test_result0-0-1-0.png" img_rawcv2.imread(img_raw_path) (r,g,b)cv2.split(img_…

运动控制介绍

运动控制介绍 1 介绍1.1 概述1.2 运动控制的基本架构1.3 常见的控制功能1.4 运动控制研究的问题分类位置变化问题周期式旋转速度变化问题 1.5 知识体系1.6 路径规划 和 轨迹规划区别与联系1.7 运动控制系统 2 《运动控制系统》[班华 李长友 主编] 摘要1 绪论1.1 运动控制研究的…

信息系统项目管理师(第四版)教材精读思维导图-第二章信息技术发展

请参阅我的另一篇文章,综合介绍软考高项: 信息系统项目管理师(软考高项)备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 思维导图源文件下载: https://download.csdn.net/download/hanjingjava/88023847 …

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试 在开发 SpringBoot 应用程序时,我们通常需要与数据库进行交互。为了确保我们的应用程序在生产环境中可以正常工作,我们需要进行数据库集成测试,以测试我们的应用程序是否能…

非线性规划快速入门和练习题集

目录 定义 标准形式 练习题1 练习题2 练习题3 定义 当目标函数或者约束条件中含有非1次项的时候,会出现非线性函数的规划。 标准形式 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 其中f(x)是标准函数,A,b,Ae…