ARM芯片架构之DAP:AXI-AP 技术详解 - 实践

news/2025/10/3 21:49:57/文章来源:https://www.cnblogs.com/slgkaifa/p/19125059

ARM芯片架构之DAP:AXI-AP 技术详解 - 实践

1. AXI-AP 概述

AXI-AP(AXI Access Port)建立了MEM-AP架构,用于直接连接到AXI内存系统。通过合适的桥接组件,也可以连接到其他内存系统。

2. 时钟与复位

2.1 时钟域配置

AXI-AP在单一时钟域运行,该时钟必须同时用于DAPBUS接口和AXI接口。

2.2 复位特性

AXI-AP的时钟和复位信号包括:

  • ​clk​​:时钟信号

  • ​resetn​​:低电平奏效复位信号,异步断言,同步解除

​复位影响​​:

  • 复位时整个AXI-AP模块被重置,事务历史丢失

  • ARM不建议在AXI传输过程中断言复位,但AXI-AP允许此操作(需知会丢失所有事务历史)

3. 特性接口

AXI-AP包含三个主要总线接口:

  • ​DAPBUS从接口​​:连接到DAPBUS互连

  • ​认证从接口​

  • ​AXI4主接口​

4. AXI-AP核心特性

4.1 特性列表

特性

说明

AXI4接口承受

-

自动递增TAR

-

停滞访问

-

访问大小

8、16、32或64位

字节序

小端格式

错误响应

-

打包传输

-

ROM表指针寄存器

-

长地址支持

-

5. 传输中止与错误处理

5.1 DAP传输中止

当DP通过DAPBUS接口发出中止时:

  • AXI-AP立即完成其DAPBUS从接口上的事务

  • ​不取消​​正在进行的AXI传输

5.2 错误响应机制

5.2.1 AXI发起的错误响应
  • AXI主接口接收的错误响应在传输完成时传播到DAP总线

  • 64位数据传输需要两次DAP总线访问:

    • ​读取​​:DAP总线的第一次读取请求在AXI接口上发送读取请求

    • ​写入​​:只有在DAP总线上收到两次写入请求后,才在AXI接口上发送写入访问

​错误响应分配​​:

  • 读取请求的错误响应针对DAP总线的第一次读取请求

  • 写入请求的错误响应针对DAP总线的第二次写入请求

5.2.2 AP发起的错误响应

​中止后的AXI-AP写入​​:

  • DP发起中止操作后,倘若外部传输仍挂起(TrInProg位保持高电平),所有对AXI-AP的写入都返回可忽略的错误响应

  • 在系统传输完成且TrInProg位设置为0之前,AXI-AP写入持续返回错误

​64位AXI读取后的AXI-AP读取​​:

  • DAP总线的读取请求必须访问BDx寄存器对的两个寄存器,且必须先访问编号较低的寄存器

  • 对于DRW,需要两次写入请求才能从AXI接口获取完整的64位字

  • 所有其他访问(如读取后跟写入到相同或不同寄存器)都会向DP返回错误响应

5.2.3 特殊情况处理

​64位写入序列中断后的写入​​:

  • DAP接口的写入请求必须访问BDx寄存器对的两个寄存器,且必须先访问编号较低的寄存器

  • 对于DRW,需要两次写入请求才能在AXI接口上构建64位数据包作为写入数据

  • 所有其他访问(如写入后跟另一个读取-写入到不同寄存器)返回错误响应

​示例​​:

  • 访问DRW后,DAP总线的下一次访问必须是写入DRW,任何其他访问返回错误响应

  • 写入BD1,任何其他访问返回错误响应就是访问BD0后,下一次访问必须

​中止的AXI屏障事务​​:

  • 能够中止尚未完成的屏障事务

  • 生成中止请求时,DAPBUS事务在下一个周期完成,但CSW.TrInPrg位保持设置,表示AXI接口正忙等待事务完成

  • AXI接口忙时,对DRW或BDx寄存器的读取-写入请求(导致AXI接口上的事务)会使AXI-AP向DP返回错误响应

5.2.4 AXI和AP发起的错误响应区分

倘若DAPBUS从接口上给出错误响应且CSW寄存器中的TrInProg为低电平,错误来自:

  • 系统错误响应(假如dbgen和spiden允许启动传输)

  • AXI-AP错误响应(假如dbgen和spiden不允许传输)

表 AXI和AP发起的错误响应区别:

如果给出错误响应且TrInProg为高电平,则错误来自访问端口错误响应。此种情况只能在启动中止后系统传输未完成时发生。

6. AXI传输特性

6.1 主要特性

AMBA4 AXI兼容主端口支持的特性:

  • 仅支持单次传输突发

  • 按发出顺序一次处理一个事务

  • 不支持乱序事务

  • 不发出多个未搞定地址

6.2 传输参数详细说明

​突发长度​​:

  • ARLEN[3:0]和AWLEN[3:0]始终为0b0000(单次传输)

  • 打包的8位或16位传输在AXI接口上被视为单个突发长度为一次的传输

​突发大小​​:

  • 支持8位、16位、32位、64位

​突发类型​​:

  • ARBURST和AWBURST信号始终为0b01

  • 在单次传输上下文中,突发类型无实际意义

​原子访问​​:

  • 仅支持正常访问

  • ARLOCK和AWLOCK信号始终为0b00

6.3 地址对齐要求

​不承受未对齐访问​​,地址必须根据传输大小对齐:

​对齐规则​​:

  • 16位传输:半字对齐

  • 32位传输:字对齐

  • 64位传输:双字对齐

​具体示例​​:

  • ​16位半字传输​​:

    • 基地址0x01被对齐,AxADDR[7:0] = 0x00

    • 基地址0x02被保留,AxADDR[7:0] = 0x02

  • ​32位字传输​​:

    • 基地址0x01到0x03被对齐,AxADDR[7:0] = 0x00

    • 基地址0x04被保留,AxADDR[7:0] = 0x04

  • ​64位双字传输​​:

    • 基地址0x04被对齐,AxADDR[7:0] = 0x00

    • 基地址0x08被保留,AxADDR[7:0] = 0x08

7. 打包传输

7.1 基本概念

  • DAPBUS接口是32位数据总线,但可根据CSW寄存器中的大小字段形成8位或16位传输

  • CSW寄存器中的AddrInc字段允许优化DAPBUS使用,减少DAP访问次数

  • 若是启动打包传输,则自动启用地址递增

  • 多个传输在顺序地址中执行,地址增量大小基于传输大小

7.2 传输示例

​非打包16位写入​​:

  • 基地址0x2,CSW[2:0] = 0b001,CSW[5:4] = 0b01

  • WDATA[31:16]从DRW寄存器的[31:16]位写入

​非打包8位读取​​:

  • 基地址0x1,CSW[2:0] = 0b000,CSW[5:4] = 0b01

  • RDATA[31:16]和RDATA[7:0]为零,RDATA[15:8]包含读取数据

​打包字节写入​​:

  • 基地址0x2,CSW[2:0] = 0b000,CSW[5:4] = 0b10

  • 发起四次写入传输,发送数据顺序:

    1. WDATA[23:16]从DRW[23:16]到AWADDR[31:0] = 0x000000002

    2. WDATA[31:24]从DRW[31:24]到AWADDR[31:0] = 0x000000003

    3. WDATA[7:0]从DRW[7:0]到AWADDR[31:0] = 0x000000004

    4. WDATA[15:8]从DRW[15:8]到AWADDR[31:0] = 0x000000005

​打包半字读取​​:

  • 基地址0x2,CSW[2:0] = 0b001,CSW[5:4] = 0b10

  • 发起两次读取传输:

    1. RDATA[31:16]从ARADDR[31:0] = 0x000000002存储到DRW[31:16]

    2. RDATA[15:0]从ARADDR[31:0] = 0x000000004存储到DRW[15:0]

7.3 DAPREADY信号行为

  • AXI-AP仅在所有来自AXI接口的打包传输完成时才置DAPREADY为高电平

  • 倘若当前传输中止或当前传输收到ERROR响应,AXI-AP不完成后续打包传输,并在当前打包传输后立即返回DAPREADY高电平

8. AxCACHE与AxDOMAIN管用组合

下表显示了AxCACHE和AxDOMAIN值的有用组合:

AxCACHE[3:0]

访问类型

AxDOMAIN

域类型

有效性

0000

设备

00

非共享

0000

设备

01

内共享

0000

设备

10

外共享

0000

设备

11

系统

0010

非可缓存

00

非共享

启用

0010

非可缓存

01

内共享

启用

0010

非可缓存

10

外共享

启用

0010

非可缓存

11

系统

0011

非可缓存

00

非共享

启用

0011

非可缓存

01

内共享

启用

0011

非可缓存

10

外共享

启用

0011

非可缓存

11

系统

010x

-

-

-

100x

-

-

-

110x

-

-

-

011x

写通

00

非共享

011x

写通

01

内共享

011x

写通

10

外共享

011x

写通

11

系统

101x

写回

00

非共享

101x

写回

01

内共享

101x

写回

10

外共享

101x

写回

11

系统

111x

写回

00

非共享

111x

写回

01

内共享

111x

写回

10

外共享

111x

写回

11

系统

9. 技术要点总结

AXI-AP作为连接DAPBUS与AXI架构的关键组件,提供了灵活的存储器访问能力。其关键技术特点包括:

  1. ​单时钟域设计​​:简化时序分析,提高系统稳定性

  2. ​完善的错误处理机制​​:支撑多种错误场景的检测和处理

  3. ​严格的传输规范​​:确保数据传输的可靠性和一致性

  4. ​灵活的打包传输​​:优化小尺寸数据访问效率

  5. ​明确的内存访问规则​​:包括地址对齐要求和传输大小支持

这些特性使AXI-AP在嵌入式调试和架构开发中具有重要价值,为芯片设计提供了可靠的内存访问解决方案。

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

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

相关文章

备案中的网站名称重庆百度搜索排名优化

Python实战:打造自定义随机验证码生成器 在许多网站中,验证码作为一种安全机制被广泛采用,用于验证用户身份、防止自动化攻击和确保数据安全。本篇教程将带领您一步步使用Python创建一个功能齐全的随机验证码生成器。我们将通过导入必要的库…

详细介绍:代码世界的“数字刑侦”:深入解析代码审计实战

详细介绍:代码世界的“数字刑侦”:深入解析代码审计实战pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

三霍尔BLDC如何测量Hall同步角度(需要示波器)

现在电机转子位置估计的研究有两种主流技术路线——一种是无传感器,另一种就是采用低分辨率传感器估计高精度位置。当时我(知乎:土豆泥)本科毕业答辩做的就是霍尔传感器。其实可以看到,近几年业界越来越多的FOC驱…

完整教程:K8s学习笔记(十) Deployment 副本控制器

完整教程:K8s学习笔记(十) Deployment 副本控制器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

湖南建设信息网站做手机版网站和做app差别

接口测试虽然作为版本的一环,但是也是有一套完整的体系,有接口的功能测试、性能测试、安全测试;同时,由于接口的特性,接口的自动化低成本高收益的,使用一些开源工具或一些轻量级的方法,在测试用…

QBXT2025S刷题 Day2

今天的题目 \(rk38\) T1 这道题想了 \(1h\) 差不多。 这道题其实可以直接转化成选一个点,把覆盖着这个点线段全部删掉,使得左右两边都有线段。 可以维护每个点被多少个区间覆盖,左面有多少个区间,右面有多少个区间…

个人主页网址

https://www.cnblogs.com/gutianle

建设项目环境影响评价公示网站wordpress添加干扰代码

数据可视化是将复杂数据转化为易于理解的图表和图形的过程,帮助我们发现趋势、关联和模式。同时数据可视化也是数字孪生的基础,本文小编带大家用最简单的话语为大家讲解怎么制作一个数据可视化大屏,接下来跟随小编的思路走起来~ 1.数据收集和…

离型剂技术支持东莞网站建设php 移动网站开发

1025. 反转链表 (25) 时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6…

甘肃省工程建设信息官方网站宣传片拍摄构思

伺服放大器功能提升 伺服放大器MELSERVO-JET系列为进一步优化了独家控制引擎的高性能伺服放大器。 可通过与支持CC-LinK IE TSN的运动控制器的同步通信,进行高 速、高精度的运动控制。 除了旋转型伺服电机以外,还支持线性伺服电机。MR-JET-G-N1支持EtherCAT。 旋转型伺服电机 …

Vue之刷新页面会触发的生命周期函数

刷新页面时不会触发组件的 onUnmount 事件。 因为刷新页面会直接销毁整个页面的 DOM 树和内存中的组件实例,属于“强制清空”,而非组件正常从 DOM 树中卸载的流程。 而 onUnmount 的核心是“组件正常卸载(如路由切换…

深入解析:App Store 上架完整流程解析,iOS 应用发布步骤、ipa 文件上传工具、TestFlight 测试与苹果审核经验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

傅里叶的一生

傅里叶的一生https://www.bilibili.com/video/BV1u7411s7Hi/ 傅里叶1807年发表《热的传播》论文,提出用三角函数级数表示物体温度分布,但因数学家反对延迟发表。1811年该研究获巴黎科学院大奖,1822年出版《热的解析…

Dos命令学习(新手)

打开CMD的方式Win键+R 输入cmd打开控制台 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口 开始菜单,打开命令提示符 资源管理器的地址栏前面加上cmd路径常用Dos命令 #盘符切换:盘符+回车 #查看…

如何做外围网站的代理wordpress首页调用文章页图片

Windows 10启用Hyper-V 官网教程PowerShell 启用 Hyper-V启用 Hyper-V 角色 我们知道VMware是创建虚拟机的好工具,那Windows平台上有没有虚拟工具呢? 今天我们要讲解的就是Windows才入局的虚拟工具:Hyper-V 官网教程 https://learn.microsof…

苹果im虚拟机协议群发系统,苹果imessage推信软件,苹果iMessage自动群发协议–持续更新中...

一、电脑版虚拟机苹果系统(Mac OS)上实现imessage群发: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“…

吴恩达深度学习课程一:神经网络和深度学习 第一周:深度学习简介

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

实用指南:AI Agent开发平台如何设计?核心架构与工作流实战案例详解

实用指南:AI Agent开发平台如何设计?核心架构与工作流实战案例详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

防重复提交的实现

实现防重复提交 1.按钮置灰和恢复(触发函数时应马上置灰,再执行其他逻辑,最后恢复按钮状态,否则容易在执行函数的置灰语句前再次触发函数,可以使用try-finally结构对函数进行改造) 2.前端对请求进行缓存(实现请…