当前位置: 首页 > news >正文

ARM芯片架构之调试访问端口(DAP)

ARM CoreSight™ SoC-400

调试访问端口(Debug Access Port, DAP)说明

具体寄存器字段、位定义及长段原文请参考官方英文手册。


1 DAP 概述

Debug Access Port (DAP) 是 SoC 调试系统的核心组成部分,用于将外部调试器连接到片上资源。
关键特性

  • 统一的调试入口,可通过 JTAGSerial Wire Debug (SWD) 接口。
  • 调试端口(DP) 和一个或多个 访问端口(AP) 组成。
  • 支持 AXI、AHB、APB 等多种 AMBA 总线访问。
  • 可跨多电源域、异步时钟域,实现低功耗设计。

典型应用

  • 在芯片上下载/调试程序
  • 访问片上存储器和外设寄存器
  • 系统级跟踪和断点
    在这里插入图片描述

2 SWJ-DP(Serial Wire / JTAG Debug Port)

SWJ-DP 既可以作为 JTAG-DP,也可以作为 SW-DP 工作,并能自动检测和切换模式。

主要功能

  • 模式切换:上电后可通过特定序列在 JTAG 与 SWD 之间切换。
  • 可配置 IR 长度:4 位或 8 位 JTAG 指令寄存器。
  • 电源管理握手:提供 cdbgpwrupreq、csyspwrupreq 等信号,与系统电源域协同。
    在这里插入图片描述

关键接口:

信号描述
SWCLK / TCK时钟输入(SWD 或 JTAG)
SWDIO / TMS数据输入/输出或模式选择
TDIJTAG 输入
TDOJTAG 输出
nRESET目标芯片复位控制
nTRST可选的 JTAG 复位信号

2. 1架构与组成

SWJ-DP 实际上是一个调试访问端口(DAP,Debug Access Port)的变体,通常包括以下子模块:

  1. DP 控制逻辑

    • 管理调试器访问状态。
    • 支持 SWD 和 JTAG 切换。
    • 控制访问优先级和锁定状态。
  2. 寄存器接口

    • CTRL/STAT 寄存器:DP 的全局控制和状态监控。
    • SELECT 寄存器:选择要访问的 AP(Access Port)和 bank。
    • RDBUFF 寄存器:读缓冲,保证连续访问一致性。
  3. AP 访问桥

    • 支持 AHB/APB 互连访问。
    • 提供对 SoC 内存和外设的访问能力。

2.3. 关键寄存器

以下是 SWJ-DP 常用寄存器及功能描述:

寄存器偏移功能说明
DPIDR0x00设备 ID 寄存器,包含 SWJ-DP 的版本信息
CTRL/STAT0x04控制和状态寄存器,管理 DP 锁定、错误标志、调试器占用
SELECT0x08选择当前要访问的 AP 和 bank
RDBUFF0x0C读缓冲寄存器,确保多次访问数据一致性
RESEND / ABORT0x0C/0x10中止操作或重新发送请求

CTRL/STAT 寄存器字段示例:

名称功能
0CDBGPWRUPREQ请求调试电源启动
1CDBGPWRUPACK调试电源启动确认
2CSYSPWRUPREQ系统电源请求
3CSYSPWRUPACK系统电源启动确认
4MASKLANE屏蔽访问线错误
5STICKYERR错误标志,保持直至清除
6ORUNERR总线访问超时错误
7WDATAERR写数据错误

2.4. 协议接口

SWJ-DP 支持两种访问协议:

2.4.1 SWD(Serial Wire Debug)
  • 仅需两条信号线:SWCLK 和 SWDIO。
  • 支持单调调试访问,适合低引脚设计。
  • 数据传输使用序列化读写请求,DP 控制访问 AP。
.2 4.2 JTAG
  • 使用标准 4-5 pin 接口:TCK、TMS、TDI、TDO、可选 nTRST。
  • 提供 TAP 状态机控制访问。
  • 适合传统调试工具和 FPGA/JTAG 仿真场景。

2.5. 调试访问流程

  1. 初始化 DP

    • 配置 CTRL/STAT,确认调试电源开启。
    • 检查 DP 锁定状态,确保调试器可以访问。
  2. 选择 AP 和 bank

    • 写 SELECT 寄存器,确定要访问的外设或内存空间。
  3. 发起读写操作

    • 写入数据或读缓冲寄存器。
    • 监控 STICKYERR、ORUNERR 等错误标志。
  4. 完成访问

    • 使用 ABORT 或 RESEND 清理状态。
    • 可释放 DP 以允许其他调试器访问。

2.6. 注意事项

  • SWJ-DP 可在 SWD 和 JTAG 模式间切换,但切换前必须确保总线处于空闲状态。
  • 错误标志必须在后续访问前清除,否则会阻塞访问。
  • 调试电源和系统电源状态必须正确设置,否则 AP 访问可能失败。
  • SWJ-DP 的引脚与目标芯片设计相关,需要注意拉高/拉低电平配置。

3 DAPBUS Interconnect

DAPBUS 是 DP 与各 AP 之间的内部互连总线。

  • 特点:组合逻辑互连、单电源域。
  • 配置:支持 1–32 个主接口,易于扩展。
  • 用途:实现来自不同 AP 的并发访问和仲裁。

4 DAPBUS Asynchronous Bridge

  • 作用:在两个异步时钟域之间传输调试数据。
  • 低功耗接口 (LPI):支持跨电源域的电源管理。
  • 配置模式:可作为纯主接口、纯从接口或完整桥接模块。

5 DAPBUS Synchronous Bridge

  • 功能:在不同但同步的时钟域之间传输数据。
  • 特点
    • 支持 1:1、1:n、n:1 等同步模式。
    • 可选寄存器切片(前向、反向或完整)以简化时序收敛。
    • 可选低功耗接口 (LPI)。

6 JTAG-AP

JTAG Access Port 提供 JTAG 主接口,用于驱动芯片内部 JTAG 链。

  • 允许调试器直接访问多个 TAP 控制器。
  • 支持多路并行 JTAG 端口。
  • 常见信号包括 cstck、cstms、cstdo、cstdi 等。
    在这里插入图片描述

7 AXI-AP

AXI Access Port 是一个 AXI4 主接口,可让调试器发起 AXI 事务以访问系统存储器。

主要特性

  • 32/64 位地址与数据宽度可配置。
  • 支持 ACE-Lite 事务(ReadOnce、WriteUnique 等)。
  • 仅支持对齐访问,不支持乱序和写数据交织。

AXI-AP (AXI Access Port) 是 CoreSight Debug Access Port (DAP) 的一种访问端口,用于让外部调试器通过 AXI4 总线访问片上系统存储器和外设。
它遵循 ARM ADIv5 规范,并实现 AMBA AXI4 主接口。


7.1. 主要功能

  • 调试访问
    允许外部调试工具在处理器停止或运行时直接读写系统内存、外设寄存器。
  • 宽总线支持
    32 位或 64 位地址宽度可配置;数据总线支持 32、64、128 位等实现。
  • 非侵入式操作
    通过 DAP 访问系统总线,不干扰正常的处理器执行流程。
  • 多电源域/时钟域
    可与 DAPBUS 异步桥或低功耗接口配合,实现跨电源域调试。

7.2. 接口信号示例

信号方向说明
ACLKInputAXI 总线时钟
ARESETnInputAXI 总线复位,低有效
AWADDROutput写地址总线
AWPROTOutput写保护属性(安全/非安全、特权/用户等)
AWVALIDOutput写地址有效指示
WDATAOutput写数据总线
WSTRBOutput写字节选通
WVALIDOutput写数据有效指示
BREADYOutput写响应准备
ARADDROutput读地址总线
ARPROTOutput读保护属性
ARVALIDOutput读地址有效指示
RREADYOutput读数据准备
RDATAInput读数据
RRESPInput读响应

:具体位宽和信号集合可能因实现而异,上表为典型 AXI4-Lite/AXI4 接口示例。


7.3. 事务类型与限制

  • 支持的访问
    • 单次读写(Single Transfer)
    • 增量型突发传输(Incrementing Burst)
  • 不支持的访问
    • 乱序(Out-of-Order)
    • 未对齐访问
    • 数据交织写(Write Interleave)

7.4. 调试寄存器概览

AXI-AP 通过一组内存映射寄存器与 DAP 通信。典型寄存器包括:

寄存器地址偏移描述
CSW0x00控制与状态字,用于设置访问大小、自动增量等
TAR0x04传输地址寄存器,指定访问目标地址
DRW0x0C数据读写寄存器
CFG0xF4配置寄存器,用于选择 AXI 属性、域等

具体寄存器字段请参考对应的 SoC 或 IP 提供商文档。

7.5. 调试场景示例

  1. 内存读取

    1. 调试器写 TAR 为目标地址。
    2. 设置 CSW 访问大小(如 32 位)并触发读操作。
    3. 从 DRW 读取数据。
  2. 内存写入

    1. 写 TAR 为目标地址。
    2. 向 DRW 写入数据,DAP 自动经 AXI 总线完成写事务。

7.6. 设计注意事项

  • 时钟域跨越:若 DAP 和系统 AXI 总线位于不同的时钟域,需要使用异步桥。
  • 安全属性:利用 AXI PROT 信号区分安全与非安全访问,以配合 TrustZone。
  • 性能影响:在大规模调试访问中可能影响系统带宽,应合理规划。

8 AHB-AP

AHB Access Port 作为 AHB-Lite 主接口工作。

  • 兼容 AMBA 2 AHB 和 TrustZone 扩展。
  • 限制:不支持突发、排他或非对齐访问。
  • 典型用途:访问共享内存、外设寄存器。

AHB-AP (AHB Access Port) 是 CoreSight DAP(Debug Access Port)的一种访问端口,用于让外部调试器通过 AMBA AHB-Lite 总线访问 SoC 的系统资源。


8.1. 功能概述

  • 外部调试访问
    允许调试器在处理器暂停或运行时直接读写片上存储器、外设寄存器。
  • 符合 ADIv5 规范
    与 ARM Debug Interface v5 配套使用。
  • 主机角色
    作为 AHB-Lite 主设备发起读写事务,而不是被动从设备。
  • 跨电源/时钟域
    可与 DAPBUS 异步桥和低功耗接口 (LPI) 配合,适用于多电源域 SoC。

8.2. 接口信号示例

信号方向描述
HCLKInputAHB 总线时钟
HRESETnInputAHB 复位,低有效
HADDROutput地址总线(通常 32 位,可扩展)
HWDATAOutput写数据总线
HRDATAInput读数据总线
HWRITEOutput传输方向:1 = 写,0 = 读
HSIZEOutput访问大小(8/16/32 位)
HTRANSOutput传输类型(IDLE / NONSEQ)
HBURSTOutput突发类型(AHB-AP 常用 SINGLE)
HPROTOutput保护属性(特权/用户、安全/非安全等)
HREADYInput从设备准备就绪信号
HRESPInput从设备响应(OKAY/ERROR/RETRY/SPLIT)

实际实现的位宽和信号集合可能因芯片而异,上表为典型 AHB-Lite 接口示例。


8.3. 访问能力与限制

  • 支持的访问
    • 单次读写(Single Transfer)
    • 增量型突发(Incrementing Burst,通常限制为 4/8 beat)
  • 限制
    • 不支持非对齐访问
    • 不支持排他访问(Exclusive Access)
    • 不支持交织或乱序事务

8.4. 主要寄存器(通过 DAP 访问)

寄存器偏移描述
CSW0x00Control/Status Word:设置访问大小、自动增量等
TAR0x04Transfer Address Register:目标地址
DRW0x0CData Read/Write:读写数据通道
CFG0xF4Configuration:选择安全属性、调试域等

具体字段定义请参考对应 SoC 或 IP 提供商的文档。


8.5. 调试操作示例

内存读取
  1. 调试器写 TAR 为目标地址。
  2. 配置 CSW(访问大小、是否自动递增)。
  3. 读取 DRW 获取数据。
内存写入
  1. 调试器写 TAR 为目标地址。
  2. 将数据写入 DRW,AHB-AP 自动发起写事务。

8.6. 设计注意事项

  • 时钟域跨越
    如 DAP 与系统 AHB 时钟不同,需搭配异步桥以确保数据可靠。
  • 安全/特权属性
    利用 HPROT 与 TrustZone 配合实现安全访问。
  • 性能影响
    大规模调试访问可能暂时占用总线带宽,需要在系统设计中考虑仲裁策略。

9 APB-AP

APB Access Port 负责访问 CoreSight 调试 APB 总线。

  • 固定 32 位数据宽度。
  • 支持 PADDR31 信号,用于区分外部调试器访问和片上调试软件访问。

APB-AP (APB Access Port) 是 ARM CoreSight DAP(Debug Access Port)的一种访问端口。
它提供 AMBA APB3 主接口,让外部调试器能够访问片上的 Debug APB 总线,用于控制和配置各种 CoreSight 组件(如 ETM、CTI、Funnel 等)。


9.1 功能概述

  • 调试总线桥接

    • 通过 DAP 将外部调试器与 SoC 内部的 APB 总线连接。
    • 实现 CoreSight 模块的寄存器读写,而无需干扰处理器运行。
  • 32 位固定数据宽度

    • 读写事务均为单次 32 位传输。
    • 访问简单、低延迟,适合寄存器级调试。
  • 符合 ADIv5 规范

    • 与其他 Access Port 一样通过标准 DAP 总线访问和配置。

9.2. 接口信号示例

信号方向描述
PCLKInputAPB 总线时钟
PRESETnInputAPB 总线复位,低有效
PADDROutput32 位地址总线
PWDATAOutput32 位写数据总线
PRDATAInput32 位读数据总线
PWRITEOutput1 = 写操作,0 = 读操作
PSELOutput片选信号
PENABLEOutput访问阶段使能信号
PREADYInput从设备准备就绪
PSLVERRInput从设备错误指示

上表为标准 AMBA APB3 接口信号,具体位宽可随实现微调。


9.3. 访问流程

  1. 写访问

    • 调试器向 TAR(Transfer Address Register)写入目标地址。
    • 将数据写入 DRW(Data Read/Write),APB-AP 通过 APB 发起写事务。
  2. 读访问

    • 写入 TAR 为目标寄存器地址。
    • 读取 DRW 获得从设备返回的数据。

9.4. 主要寄存器(通过 DAP 访问)

寄存器偏移描述
CSW0x00Control/Status Word:配置访问大小(固定 32 位)、自动增量等
TAR0x04Transfer Address Register:目标寄存器地址
DRW0x0CData Read/Write:实际数据读写通道
CFG0xF4Configuration:配置安全属性、调试域等

具体字段与位定义请参考芯片或 IP 提供商的详细文档。


9.5. 特性与限制

  • 固定 32 位数据宽度:不支持 8/16 位访问。
  • 单周期访问:所有事务为单拍 (single transfer)。
  • 调试器专用:常用于配置 ETM、CTI、TPIU、Funnel 等 CoreSight 模块。

9. 6. 设计与使用注意事项

  • 低功耗设计
    • APB-AP 可与 DAPBUS 异步桥搭配,在 SoC 分电源域时仍可访问。
  • 安全属性
    • 通过配置寄存器选择 Secure/Non-secure 访问,以配合 TrustZone 架构。
  • 带宽与性能
    • 由于 APB 本身为低带宽协议,适合配置寄存器而非大规模数据传输。

http://www.dtcms.com/a/423008.html

相关文章:

  • 企业门户网站管理办法ceo是什么意思是什么职位
  • Java SE “核心类:String/Integer/Object”面试清单(含超通俗生活案例与深度理解)
  • ChatGPT From Zero To Hero - LLM学习笔记(一)
  • 县城网站怎么做英文网页
  • ASP.NET Core 10.0 的主要变化
  • 广州市公司网站建设品牌广州建设网站是什么样的
  • 电感损耗计算方法梳理
  • openEuler - 初探Chrony时间同步服务
  • 【C语言代码】大小写转换
  • 网站开发 程序开发阶段建设公众号官方网站
  • 泰安市建设信息网站哈尔滨通用建设工程有限公司
  • 3dgs项目详解 :convert.py
  • 大模型落地实践指南:从技术路径到企业级解决方案
  • 2004 年真题配套词汇单词笔记(考研真相)
  • Java面经(22届考研-华oD)
  • VS Code 使用 Chrome DevTools MCP 实现浏览器自动化
  • MySQL笔记---内置函数
  • 紫外UV固化太阳光模拟器的原理
  • 南京网站建设哪家好简洁 网站模板
  • react 初体验
  • 南华 NHXJ-02 汽车悬架检验台:技术特性与实操应用指南
  • 鄂湘赣新能源汽车产业质量技术创新联合体成立大会暨汽车网络安全标准专题培训会在汉圆满召开
  • 物联网智能安防系统
  • 洗头竖鞋带名片改良授权做网站不贵高端产品网站建设
  • 软考 系统架构设计师系列知识点之杂项集萃(160)
  • 汕头网站建设推广电子商务网站流程图
  • Axure教程:用中继器制作高亮搜索效果
  • WSL2 子系统启用 SSH 并使用 MobaXterm 连接
  • Oracle EBS ERP之报表开发—嵌入Web中的报表预览、报表打印
  • 网站上传可以通过wordpress作者 页面