UDMA

1. 简介

微直接内存访问(UDMA)控制器作为一种硬件方案,可在外围设备/内存与内存(PA-M2M/M2M)之间实现无需CPU干预的直接数据传输,旨在在需要传输大数据块时减轻 CPU 的负担。

2. 主要特性

UMMA 的主要特性如下:

  • 支持8个内存到内存通道(M2M),并具备软件可配置优先级。

  • 支持8个外围通道用于外围设备与内存的传输(PA-M2M)。

  • 支持6种(外围紧密耦合)PER类型的内存-外围设备传输模式(P2M)。

  • 支持突发1-16次传输访问模式(仅M2M)。

  • 支持可配置数据宽度8、16、32、64、128位用于内存访问(取决于数据总线宽度)。

  • 支持固定或递增的地址生成算法。

  • 支持内存到内存连续传输模式或可配置重复N次的传输模式。

  • 支持独立设置源地址和目标地址基址,支持按字节、半字或字对齐。

  • 支持任意传输块大小,范围在(32M-1)字节之间。

注意:

  • 具体支持的通道数依赖硬件RTL的配置。

  • 依赖硬件RTL的配置,数据宽度可支持8、16、32、64、128、256、512位。

3. 功能描述

  • DMA 顶部有两个主内部总线接口(写总线和读总线)用于访问内存。

  • DMA 配置编程通过另一个专用的从寄存器总线进行。

  • PER 类型(外设到内存/内存到外设)传输采用外设请求/DMA 响应风格。也就是说,CPU 或 SoC 上的任何其他主设备在适当的内存位置准备好感兴趣的数据(或在接收数据场景下有足够的内存空间),可以通过编程相应的外设 TX/RX 使能位来启动 DMA 传输,前提是所有其他配置寄存器(如基地址、传输大小等)已正确配置。

  • 支持最多 8 个内存到内存传输通道,可以通过编程 DMA 控制器内的相应配置和控制位来实现。内存到内存传输通道之间的优先级可在四个级别上软件配置:Plow、Pmed、Phigh 和 Puhigh。在多个内存到内存传输具有相同优先级设置的情况下,通道号决定最终优先级(编号越低优先级越高)。

  • 通过配置专用的链表地址 (LLA) 寄存器可以轻松启用链表模式。在整个链表传输过程的每个节点上都支持重复类型的传输模式。但是,连续传输模式不允许与链表传输模式同时工作,更多详细信息见 LLA 寄存器描述。

  • 除了常规的内存到内存传输外,还支持另一种涉及外设的数据传输类型。在此模式下,源或目标具有外设属性(外设到内存)。必须首先正确配置相应的 DMA 通道,例如传输大小、源地址、目标地址和数据大小。一旦通道启用,DMA 会确认外设发起的每个请求,在此期间进行一次数据传输(字节、半字、字)。

  • 为避免一种类型的 DMA 传输(内存到内存或外设到内存)持续占用物理总线接口,当两种类型的传输并行运行时,采用循环仲裁方案。

  • UDMA 应用框图如图 3.1 所示

UDMA 应用框图如图

图 3.1: UDMA 应用框图

4. 中断

控制器为每种 uDMA 数据传输提供 3 组中断。中断源也可以通过 DMA_CHX_IRQ_EN、DMA_PA_CHX_IRQ_EN 和 DMA_PCHX_IRQ_EN 寄存器单独启用或禁用。

设置相应的寄存器位以启用/禁用相应的中断。在以下事件上生成不同的中断:

  • 用于数据传输的通道访问错误中断

  • 用于一个 TSIZE 的通道半传输中断

  • 用于一个 TSIZE 的通道全传输中断

  • 用于加载链接配置寄存器的通道访问错误中断

  • 用于整个链表的通道全传输中断

  • PA 类型通道访问错误中断

  • PA 类型通道半传输中断

  • PA 类型通道全传输中断

  • Tx 通道访问错误中断

  • Tx 通道半传输中断

  • Tx 通道全传输中断

  • Rx 通道访问错误中断

  • Rx 通道半传输中断

  • Rx 通道全传输中断

  • CMD 通道访问错误中断

  • CMD 通道半传输中断

  • CMD 通道全传输中断

表 4.1 展示了 uDMA 中断请求。

表 4.1:uDMA 中断请求

中断事件

事件标志

使能控制位

访问错误中断

RSP_ERR_IRQ_STAT

RSP_ERR_IRQ_EN

半传输中断

HTRANS_IRQ_STAT

HTRANS_IRQ_EN

全传输中断

FTRANS_IRQ_STAT

FTRANS_IRQ_EN

加载链接配置寄存器的通道访问错误中断

LLA_ERR_IRQ_STAT

LLA_ERR_IRQ_EN

链表的通道全传输中断

LLA_FTRANS_IRQ_STAT

LLA_FTRANS_IRQ_EN

PA 类型通道访问错误中断

RSP_ERR_IRQ_STAT

RSP_ERR_IRQ_EN

PA 类型通道半传输中断

HTRANS_IRQ_STAT

HTRANS_IRQ_EN

PA 类型通道全传输中断

FTRANS_IRQ_STAT

FTRANS_IRQ_EN

Tx 通道访问错误中断

RSP_ERR_IRQ_STAT

RSP_ERR_IRQ_EN

Tx 通道半传输中断

HTRANS_IRQ_STAT

HTRANS_IRQ_EN

Tx 通道全传输中断

FTRANS_IRQ_STAT

FTRANS_IRQ_EN

Rx 通道访问错误中断

RSP_ERR_IRQ_STAT

RSP_ERR_IRQ_EN

Rx 通道半传输中断

HTRANS_IRQ_STAT

HTRANS_IRQ_EN

Rx 通道全传输中断

FTRANS_IRQ_STAT

FTRANS_IRQ_EN

CMD 通道访问错误中断

RSP_ERR_IRQ_STAT

RSP_ERR_IRQ_EN

CMD 通道半传输中断

HTRANS_IRQ_STAT

HTRANS_IRQ_EN

CMD 通道全传输中断

FTRANS_IRQ_STAT

FTRANS_IRQ_EN

5. UDMA 寄存器

UDMA 中的寄存器及其相应偏移量如表 5.1 所示。

表 5.1:UDMA 寄存器偏移地址表

偏移量

寄存器名称

功能描述

0x0

DMA_CFG_PCTRL

时钟门控寄存器(仅当在 RTL 级别配置了外设支持时存在)

0x4

DMA_CFG_EVENT

事件 ID 寄存器(仅当在 RTL 级别配置了外设支持时存在)

0x8

DMA_CH0_CFG_MSRCADDR

通道 0 源数据基地址低32位寄存器

0xC

DMA_CH0_CFG_MDSTADDR

通道 0 目标数据基地址低32位寄存器

0x10

DMA_CH0_CFG_MCTRL

通道 0 内存到内存控制寄存器

0x14

DMA_CH0_CFG_MRPT

通道 0 传输重复次数寄存器

0x18

DMA_CH0_CFG_MSIZE

传输大小寄存器

0x1C

DMA_CH0_CFG_MSRCADDR_H

通道 0 高于 32 位的源数据基地址寄存器

0x20

DMA_CH0_CFG_MDSTADDR_H

通道 0 高于 32 位的目标数据基地址寄存器

0x24

DMA_CH0_CFG_MRAU

通道 0 重复地址更新值寄存器,链表模式配置

0x28

DMA_CH0_CFG_MLLA

通道 0 链表地址低32位寄存器

0x2C

DMA_CH0_CFG_MLLA_H

通道 0 高于 32 位的链表地址寄存器

0x30

DMA_CH1_CFG_MSRCADDR

通道 1 源数据基地址低32位寄存器

0x34

DMA_CH1_CFG_MDSTADDR

通道 1 目标数据基地址低32位寄存器

0x38

DMA_CH1_CFG_MCTRL

通道 1 内存到内存控制寄存器

0x3C

DMA_CH1_CFG_MRPT

通道 1 传输重复次数寄存器

0x40

DMA_CH1_CFG_MSIZE

通道 1 传输大小寄存器

0x44

DMA_CH1_CFG_MSRCADDR_H

通道 1 高于 32 位的源数据基地址寄存器

0x48

DMA_CH1_CFG_MDSTADDR_H

通道 1 高于 32 位的目标数据基地址寄存器

0x4C

DMA_CH1_CFG_MRAU

通道 1 重复地址更新值寄存器,链表模式配置

0x50

DMA_CH1_CFG_MLLA

通道 1 链表地址低32位寄存器

0x54

DMA_CH1_CFG_MLLA_H

通道 1 高于 32 位的链表地址寄存器

0x58

DMA_CH2_CFG_MSRCADDR

通道 2 源数据基地址低32位寄存器

0x5C

DMA_CH2_CFG_MDSTADDR

通道 2 目标数据基地址低32位寄存器

0x60

DMA_CH2_CFG_MCTRL

通道 2 内存到内存控制寄存器

0x64

DMA_CH2_CFG_MRPT

通道 2 传输重复次数寄存器

0x68

DMA_CH2_CFG_MSIZE

通道 2 传输大小寄存器

0x6C

DMA_CH2_CFG_MSRCADDR_H

通道 2 高于 32 位的源数据基地址寄存器

0x70

DMA_CH2_CFG_MDSTADDR_H

通道 2 高于 32 位的目标数据基地址寄存器

0x74

DMA_CH2_CFG_MRAU

通道 2 重复地址更新值寄存器,链表模式配置

0x78

DMA_CH2_CFG_MLLA

通道 2 链表地址低32位寄存器

0x7C

DMA_CH2_CFG_MLLA_H

通道 2 高于 32 位的链表地址寄存器

0x80

DMA_CH3_CFG_MSRCADDR

通道 3 源数据基地址低32位寄存器

0x84

DMA_CH3_CFG_MDSTADDR

通道 3 目标数据基地址低32位寄存器

0x88

DMA_CH3_CFG_MCTRL

通道 3 内存到内存控制寄存器

0x8C

DMA_CH3_CFG_MRPT

通道 3 传输重复次数寄存器

0x90

DMA_CH3_CFG_MSIZE

通道 3 传输大小寄存器

0x94

DMA_CH3_CFG_MSRCADDR_H

通道 3 高于 32 位的源数据基地址寄存器

0x98

DMA_CH3_CFG_MDSTADDR_H

通道 3 高于 32 位的目标数据基地址寄存器

0x9C

DMA_CH3_CFG_MRAU

通道 3 重复地址更新值寄存器,链表模式配置

0xA0

DMA_CH3_CFG_MLLA

通道 3 链表地址低32位寄存器

0xA4

DMA_CH3_CFG_MLLA_H

通道 3 高于 32 位的链表地址寄存器

0xA8

DMA_CH4_CFG_MSRCADDR

通道 4 源数据基地址低32位寄存器

0xAC

DMA_CH4_CFG_MDSTADDR

通道 4 目标数据基地址低32位寄存器

0xB0

DMA_CH4_CFG_MCTRL

通道 4 内存到内存控制寄存器

0xB4

DMA_CH4_CFG_MRPT

通道 4 传输重复次数寄存器

0xB8

DMA_CH4_CFG_MSIZE

通道 4 传输大小寄存器

0xBC

DMA_CH4_CFG_MSRCADDR_H

通道 4 高于 32 位的源数据基地址寄存器

0xC0

DMA_CH4_CFG_MDSTADDR_H

通道 4 高于 32 位的目标数据基地址寄存器

0xC4

DMA_CH4_CFG_MRAU

通道 4 重复地址更新值寄存器,链表模式配置

0xC8

DMA_CH4_CFG_MLLA

通道 4 链表地址低32位寄存器

0xCC

DMA_CH4_CFG_MLLA_H

通道 4 高于 32 位的链表地址寄存器

0xD0

DMA_CH5_CFG_MSRCADDR

通道 5 源数据基地址低32位寄存器

0xD4

DMA_CH5_CFG_MDSTADDR

通道 5 目标数据基地址低32位寄存器

0xD8

DMA_CH5_CFG_MCTRL

通道 5 内存到内存控制寄存器

0xDC

DMA_CH5_CFG_MRPT

通道 5 传输重复次数寄存器

0xE0

DMA_CH5_CFG_MSIZE

通道 5 传输大小寄存器

0xE4

DMA_CH5_CFG_MSRCADDR_H

通道 5 高于 32 位的源数据基地址寄存器

0xE8

DMA_CH5_CFG_MDSTADDR_H

通道 5 高于 32 位的目标数据基地址寄存器

0xEC

DMA_CH5_CFG_MRAU

通道 5 重复地址更新值寄存器,链表模式配置

0xF0

DMA_CH5_CFG_MLLA

通道 5 链表地址低32位寄存器

0xF4

DMA_CH5_CFG_MLLA_H

通道 5 高于 32 位的链表地址寄存器

0xF8

DMA_CH6_CFG_MSRCADDR

通道 6 源数据基地址低32位寄存器

0xFC

DMA_CH6_CFG_MDSTADDR

通道 6 目标数据基地址低32位寄存器

0x100

DMA_CH6_CFG_MCTRL

通道 6 内存到内存控制寄存器

0x104

DMA_CH6_CFG_MRPT

通道 6 传输重复次数寄存器

0x108

DMA_CH6_CFG_MSIZE

通道 6 传输大小寄存器

0x10C

DMA_CH6_CFG_MSRCADDR_H

通道 6 高于 32 位的源数据基地址寄存器

0x110

DMA_CH6_CFG_MDSTADDR_H

通道 6 高于 32 位的目标数据基地址寄存器

0x114

DMA_CH6_CFG_MRAU

通道 6 重复地址更新值寄存器,链表模式配置

0x118

DMA_CH6_CFG_MLLA

通道 6 链表地址低32位寄存器

0x11C

DMA_CH6_CFG_MLLA_H

通道 6 高于 32 位的链表地址寄存器

0x120

DMA_CH7_CFG_MSRCADDR

通道 7 源数据基地址低32位寄存器

0x124

DMA_CH7_CFG_MDSTADDR

通道 7 目标数据基地址低32位寄存器

0x128

DMA_CH7_CFG_MCTRL

通道 7 内存到内存控制寄存器

0x12C

DMA_CH7_CFG_MRPT

通道 7 传输重复次数寄存器

0x130

DMA_CH7_CFG_MSIZE

通道 7 传输大小寄存器

0x134

DMA_CH7_CFG_MSRCADDR_H

通道 7 高于 32 位的源数据基地址寄存器

0x138

DMA_CH7_CFG_MDSTADDR_H

通道 7 高于 32 位的目标数据基地址寄存器

0x13C

DMA_CH7_CFG_MRAU

通道 7 重复地址更新值寄存器,链表模式配置

0x140

DMA_CH7_CFG_MLLA

通道 7 链表地址低32位寄存器

0x144

DMA_CH7_CFG_MLLA_H

通道 7 高于 32 位的链表地址寄存器

0x400

DMA_PA_CH0_CFG_MSRCADDR

通道 0 源数据基地址寄存器(PA类型)

0x404

DMA_PA_CH0_CFG_MDSTADDR

通道 0 目标数据基地址寄存器(PA类型)

0x408

DMA_PA_CH0_CFG_MCTRL

通道 0 PA 类型内存到内存控制寄存器

0x40C

DMA_PA_CH0_CFG_MSIZE

通道 0 传输大小寄存器(PA类型)

0x410

DMA_PA_CH0_CFG_MSRCADDR_H

通道 0 高于 32 位的源数据基地址寄存器(PA类型)

0x414

DMA_PA_CH0_CFG_MDSTADDR_H

通道 0 高于 32 位的目标数据基地址寄存器(PA类型)

0x418

DMA_PA_CH1_CFG_MSRCADDR

通道 1 源数据基地址寄存器(PA类型)

0x41C

DMA_PA_CH1_CFG_MDSTADDR

通道 1 目标数据基地址寄存器(PA类型)

0x420

DMA_PA_CH1_CFG_MCTRL

通道 1 PA 类型内存到内存控制寄存器

0x424

DMA_PA_CH1_CFG_MSIZE

通道 1 传输大小寄存器(PA类型)

0x428

DMA_PA_CH1_CFG_MSRCADDR_H

通道 1 高于 32 位的源数据基地址寄存器(PA类型)

0x42C

DMA_PA_CH1_CFG_MDSTADDR_H

通道 1 高于 32 位的目标数据基地址寄存器(PA类型)

0x430

DMA_PA_CH2_CFG_MSRCADDR

通道 2 源数据基地址寄存器(PA类型)

0x434

DMA_PA_CH2_CFG_MDSTADDR

通道 2 目标数据基地址寄存器(PA类型)

0x438

DMA_PA_CH2_CFG_MCTRL

通道 2 PA 类型内存到内存控制寄存器

0x43C

DMA_PA_CH2_CFG_MSIZE

通道 2 传输大小寄存器(PA类型)

0x440

DMA_PA_CH2_CFG_MSRCADDR_H

通道 2 高于 32 位的源数据基地址寄存器(PA类型)

0x444

DMA_PA_CH2_CFG_MDSTADDR_H

通道 2 高于 32 位的目标数据基地址寄存器(PA类型)

0x448

DMA_PA_CH3_CFG_MSRCADDR

通道 3 源数据基地址寄存器(PA类型)

0x44C

DMA_PA_CH3_CFG_MDSTADDR

通道 3 目标数据基地址寄存器(PA类型)

0x450

DMA_PA_CH3_CFG_MCTRL

通道 3 PA 类型内存到内存控制寄存器

0x454

DMA_PA_CH3_CFG_MSIZE

通道 3 传输大小寄存器(PA类型)

0x458

DMA_PA_CH3_CFG_MSRCADDR_H

通道 3 高于 32 位的源数据基地址寄存器(PA类型)

0x45C

DMA_PA_CH3_CFG_MDSTADDR_H

通道 3 高于 32 位的目标数据基地址寄存器(PA类型)

0x460

DMA_PA_CH4_CFG_MSRCADDR

通道 4 源数据基地址寄存器(PA类型)

0x464

DMA_PA_CH4_CFG_MDSTADDR

通道 4 目标数据基地址寄存器(PA类型)

0x468

DMA_PA_CH4_CFG_MCTRL

通道 4 PA 类型内存到内存控制寄存器

0x46C

DMA_PA_CH4_CFG_MSIZE

通道 4 传输大小寄存器(PA类型)

0x470

DMA_PA_CH4_CFG_MSRCADDR_H

通道 4 高于 32 位的源数据基地址寄存器(PA类型)

0x474

DMA_PA_CH4_CFG_MDSTADDR_H

通道 4 高于 32 位的目标数据基地址寄存器(PA类型)

0x478

DMA_PA_CH5_CFG_MSRCADDR

通道 5 源数据基地址寄存器(PA类型)

0x47C

DMA_PA_CH5_CFG_MDSTADDR

通道 5 目标数据基地址寄存器(PA类型)

0x480

DMA_PA_CH5_CFG_MCTRL

通道 5 PA 类型内存到内存控制寄存器

0x484

DMA_PA_CH5_CFG_MSIZE

通道 5 传输大小寄存器(PA类型)

0x488

DMA_PA_CH5_CFG_MSRCADDR_H

通道 5 高于 32 位的源数据基地址寄存器(PA类型)

0x48C

DMA_PA_CH5_CFG_MDSTADDR_H

通道 5 高于 32 位的目标数据基地址寄存器(PA类型)

0x490

DMA_PA_CH6_CFG_MSRCADDR

通道 6 源数据基地址寄存器(PA类型)

0x494

DMA_PA_CH6_CFG_MDSTADDR

通道 6 目标数据基地址寄存器(PA类型)

0x498

DMA_PA_CH6_CFG_MCTRL

通道 6 PA 类型内存到内存控制寄存器

0x49C

DMA_PA_CH6_CFG_MSIZE

通道 6 传输大小寄存器(PA类型)

0x4A0

DMA_PA_CH6_CFG_MSRCADDR_H

通道 6 高于 32 位的源数据基地址寄存器(PA类型)

0x4A4

DMA_PA_CH6_CFG_MDSTADDR_H

通道 6 高于 32 位的目标数据基地址寄存器(PA类型)

0x4A8

DMA_PA_CH7_CFG_MSRCADDR

通道 7 源数据基地址寄存器(PA类型)

0x4AC

DMA_PA_CH7_CFG_MDSTADDR

通道 7 目标数据基地址寄存器(PA类型)

0x4B0

DMA_PA_CH7_CFG_MCTRL

通道 7 PA 类型内存到内存控制寄存器

0x4B4

DMA_PA_CH7_CFG_MSIZE

通道 7 传输大小寄存器(PA类型)

0x4B8

DMA_PA_CH7_CFG_MSRCADDR_H

通道 7 高于 32 位的源数据基地址寄存器(PA类型)

0x4BC

DMA_PA_CH7_CFG_MDSTADDR_H

通道 7 高于 32 位的目标数据基地址寄存器(PA类型)

0x800

DMA_CH0_IRQ_EN

M2M 通道0中断使能寄存器

0x804

DMA_CH0_IRQ_STAT

M2M 通道0中断状态标志寄存器

0x808

DMA_CH0_IRQ_CLR

M2M 通道0中断清除状态寄存器

0x80C

DMA_CH1_IRQ_EN

M2M 通道1中断使能寄存器

0x810

DMA_CH1_IRQ_STAT

M2M 通道1中断状态标志寄存器

0x814

DMA_CH1_IRQ_CLR

M2M 通道1中断清除状态寄存器

0x818

DMA_CH2_IRQ_EN

M2M 通道2中断使能寄存器

0x81C

DMA_CH2_IRQ_STAT

M2M 通道2中断状态标志寄存器

0x820

DMA_CH2_IRQ_CLR

M2M 通道2中断清除状态寄存器

0x824

DMA_CH3_IRQ_EN

M2M 通道3中断使能寄存器

0x828

DMA_CH3_IRQ_STAT

M2M 通道3中断状态标志寄存器

0x82C

DMA_CH3_IRQ_CLR

M2M 通道3中断清除状态寄存器

0x830

DMA_CH4_IRQ_EN

M2M 通道4中断使能寄存器

0x834

DMA_CH4_IRQ_STAT

M2M 通道4中断状态标志寄存器

0x838

DMA_CH4_IRQ_CLR

M2M 通道4中断清除状态寄存器

0x83C

DMA_CH5_IRQ_EN

M2M 通道5中断使能寄存器

0x840

DMA_CH5_IRQ_STAT

M2M 通道5中断状态标志寄存器

0x844

DMA_CH5_IRQ_CLR

M2M 通道5中断清除状态寄存器

0x848

DMA_CH6_IRQ_EN

M2M 通道6中断使能寄存器

0x84C

DMA_CH6_IRQ_STAT

M2M 通道6中断状态标志寄存器

0x850

DMA_CH6_IRQ_CLR

M2M 通道6中断清除状态寄存器

0x854

DMA_CH7_IRQ_EN

M2M 通道7中断使能寄存器

0x858

DMA_CH7_IRQ_STAT

M2M 通道7中断状态标志寄存器

0x85C

DMA_CH7_IRQ_CLR

M2M 通道7中断清除状态寄存器

0xA00

DMA_PA_CH0_IRQ_EN

PA 类型通道0中断使能寄存器

0xA04

DMA_PA_CH0_IRQ_STAT

PA 类型通道0中断状态标志寄存器

0xA08

DMA_PA_CH0_IRQ_CLR

PA 类型通道0中断清除状态寄存器

0xA0C

DMA_PA_CH1_IRQ_EN

PA 类型通道 1 中断使能寄存器

0xA10

DMA_PA_CH1_IRQ_STAT

PA 类型通道 1 中断状态标志寄存器

0xA14

DMA_PA_CH1_IRQ_CLR

PA 类型通道 1 中断清除状态寄存器

0xA18

DMA_PA_CH2_IRQ_EN

PA 类型通道 2 中断使能寄存器

0xA1C

DMA_PA_CH2_IRQ_STAT

PA 类型通道 2 中断状态标志寄存器

0xA20

DMA_PA_CH2_IRQ_CLR

PA 类型通道 2 中断清除状态寄存器

0xA24

DMA_PA_CH3_IRQ_EN

PA 类型通道 3 中断使能寄存器

0xA28

DMA_PA_CH3_IRQ_STAT

PA 类型通道 3 中断状态标志寄存器

0xA2C

DMA_PA_CH3_IRQ_CLR

PA 类型通道 3 中断清除状态寄存器

0xA30

DMA_PA_CH4_IRQ_EN

PA 类型通道 4 中断使能寄存器

0xA34

DMA_PA_CH4_IRQ_STAT

PA 类型通道 4 中断状态标志寄存器

0xA38

DMA_PA_CH4_IRQ_CLR

PA 类型通道 4 中断清除状态寄存器

0xA3C

DMA_PA_CH5_IRQ_EN

PA 类型通道 5 中断使能寄存器

0xA40

DMA_PA_CH5_IRQ_STAT

PA 类型通道 5 中断状态标志寄存器

0xA44

DMA_PA_CH5_IRQ_CLR

PA 类型通道 5 中断清除状态寄存器

0xA48

DMA_PA_CH6_IRQ_EN

PA 类型通道 6 中断使能寄存器

0xA4C

DMA_PA_CH6_IRQ_STAT

PA 类型通道 6 中断状态标志寄存器

0xA50

DMA_PA_CH6_IRQ_CLR

PA 类型通道 6 中断清除状态寄存器

0xA54

DMA_PA_CH7_IRQ_EN

PA 类型通道 7 中断使能寄存器

0xA58

DMA_PA_CH7_IRQ_STAT

PA 类型通道 7 中断状态标志寄存器

0xA5C

DMA_PA_CH7_IRQ_CLR

PA 类型通道 7 中断清除状态寄存器

0xC00

DMA_PCH0_IRQ_EN

P2M通道 0 中断使能寄存器

0xC04

DMA_PCH0_IRQ_STAT

P2M通道 0 中断状态标志寄存器

0xC08

DMA_PCH0_IRQ_CLR

P2M通道 0 中断清除状态寄存器

0xC0C

DMA_PCH1_IRQ_EN

P2M通道 1 中断使能寄存器

0xC10

DMA_PCH1_IRQ_STAT

P2M通道 1 中断状态标志寄存器

0xC14

DMA_PCH1_IRQ_CLR

P2M通道 1 中断清除状态寄存器

0xC18

DMA_PCH2_IRQ_EN

P2M通道 2 中断使能寄存器

0xC1C

DMA_PCH2_IRQ_STAT

P2M通道 2 中断状态标志寄存器

0xC20

DMA_PCH2_IRQ_CLR

P2M通道 2 中断清除状态寄存器

0xC24

DMA_PCH3_IRQ_EN

P2M通道 3 中断使能寄存器

0xC28

DMA_PCH3_IRQ_STAT

P2M通道 3 中断状态标志寄存器

0xC2C

DMA_PCH3_IRQ_CLR

P2M通道 3 中断清除状态寄存器

0xC30

DMA_PCH4_IRQ_EN

P2M通道 4 中断使能寄存器

0xC34

DMA_PCH4_IRQ_STAT

P2M通道 4 中断状态标志寄存器

0xC38

DMA_PCH4_IRQ_CLR

P2M通道 4 中断清除状态寄存器

0xC3C

DMA_PCH5_IRQ_EN

P2M通道 5 中断使能寄存器

0xC40

DMA_PCH5_IRQ_STAT

P2M通道 5 中断状态标志寄存器

0xC44

DMA_PCH5_IRQ_CLR

P2M通道 5 中断清除状态寄存器

0xFFC

DMA_VERSION

uDMA 版本寄存器

DMA_CFG_PCTRL

地址偏移:0x0

表 5.2:DMA_CFG_PCTRL 寄存器格式

字段

位

访问

复位值

描述

pctrl_cg

31:0

RW

0x0

uDMA 关联外设的时钟门控使能

DMA_CFG_EVENT

地址偏移:0x4

表 5.3:DMA_CFG_EVENT 寄存器格式

字段

位

访问

复位值

描述

EVT0

7:0

RW

0xFF

ID 匹配这些位的外部事件将作为 event0 转发给外设

EVT1

15:8

RW

0xFF

ID 匹配这些位的外部事件将作为 event1 转发给外设

EVT2

23:16

RW

0xFF

ID 匹配这些位的外部事件将作为 event2 转发给外设

EVT0

31:24

RW

0xFF

ID 匹配这些位的外部事件将作为 event3 转发给外设

DMA_CHi_CFG_MSRCADDR

地址偏移:0x8 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.4:DMA_CHi_CFG_MSRCADDR 寄存器格式

字段

位

访问

复位值

描述

SRC_BASE

31:0

RW

0x0

内存到内存传输的源数据块基地址

DMA_CHi_CFG_MDSTADDR

地址偏移:0xC + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.5:DMA_CHi_CFG_MDSTADDR 寄存器格式

字段

位

访问

复位值

描述

DST_BASE

31:0

RW

0x0

内存到内存传输的目标内存块基地址

DMA_CHi_CFG_MCTRL

地址偏移:0x10 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.6:DMA_CHi_CFG_MCTRL 寄存器格式

字段

位

访问

复位值

描述

TRANS_EN

0

RW

0x0

  • DMA 传输使能,置位该位将启动内存到内存 DMA 传输,可以通过软件清除,传输将在当前突发完成后停止。

  • 当传输完成或发生传输错误响应时,硬件也会清除该位,当前传输将被中止。

  • 1’b0: DMA 传输禁用

  • 1’b1: DMA 传输使能

TRANS_STAT

1

RO

0x0

  • 传输类型状态,该位准确反映实际通道状态:TRANS_EN为1 不能保证通道处于活动状态,因为其他更高优先级的通道可能仍有正在进行的传输,该通道只能排队等待进一步处理;

  • 只有当该通道实际正在进行传输时,软件才能读取到 ‘1’。

  • 1’b0: 不能保证通道处于活动状态

  • 1’b1: 该通道实际正在进行传输

OUTS_CTRL_EN

2

RW

0x0

  • 传输未完成控制。

  • 1’b0: DMA 传输未完成数限制为内部 DATA FIFO 深度的一半以确保正确功能

  • 1’b1: DMA 传输未完成数最多可达 64 个总线事务

  • 注意:将此位设置为 1 会使 DMA 数据传输引擎忽略外部读/写总线相互依赖性。这可能导致潜在的死锁,即由于读通道数据不足而无法启动读操作,同时写事务无法完成。建议此位仅用于测试目的。

保留

4:3

/

0x0

/

BST_BND

5

RW

0x0

  • 突发边界控制,定义 DMA 突发传输边界跨越选项。

  • 1’b0: DMA 突发传输不能跨越 1k 边界地址

  • 1’b1: DMA 突发传输可以跨越 1k 边界地址但不能跨越 4k

TRANS_MODE

7:6

RW

0x0

  • 传输模式选择。

  • 2’b00: 单次模式传输

  • 2’b01: 连续模式传输

  • 2’b10: 传输重复模式,传输以相同的传输配置继续 N 次(在传输重复次数寄存器中定义)

  • 2’b11: 保留

PRIORITY

9:8

RW

0x0

  • 内存到内存传输的优先级,多个 M2M 通道启用时的内存到内存传输优先级。

  • 2’b00: 低

  • 2’b01: 中

  • 2’b10: 高

  • 2’b11: 超高

保留

11:10

/

0x0

/

MDNA

12

RW

0x0

  • 传输数据到目标内存的下一个地址生成算法。

  • 1’b0: 递增地址模式

  • 1’b1: 固定地址模式,起始目标地址强制对齐

MSNA

13

RW

0x0

  • 从源内存获取数据的下一个地址生成算法。

  • 1’b0: 递增地址模式

  • 1’b1: 固定地址模式,起始源地址强制对齐

保留

15:14

/

0x0

/

MDWIDTH

18:16

RW

0x0

  • 传输数据到目标的传输宽度。

  • 3’b000: 8位

  • 3’b001: 16位

  • 3’b010: 32位

  • 3’b011: 64位

  • 3’b100: 128位

  • 3’b101: 256位

  • 3’b110: 512位

  • 其他: 保留

保留

20:19

/

0x0

/

MSWIDTH

23:21

RW

0x0

  • 从源获取数据的传输宽度。

  • 3’b000: 8位

  • 3’b001: 16位

  • 3’b010: 32位

  • 3’b011: 64位

  • 3’b100: 128位

  • 3’b101: 256位

  • 3’b110: 512位

  • 其他: 保留

MDBURST

27:24

RW

0x0

  • 传输数据到目标内存的突发中的传输次数。

  • 4’b0000: 1 次传输

  • 4’b0001: 2 次传输

  • 4’b0010: 3 次传输

  • 4’b0011: 4 次传输

  • 4’b0100: 5 次传输

  • 4’b0101: 6 次传输

  • 4’b0110: 7 次传输

  • 4’b0111: 8 次传输

  • 4’b1000: 9 次传输

  • 4’b1001: 10 次传输

  • 4’b1010: 11 次传输

  • 4’b1011: 12 次传输

  • 4’b1100: 13 次传输

  • 4’b1101: 14 次传输

  • 4’b1110: 15 次传输

  • 4’b1111: 16 次传输

MSBURST

31:28

RW

0x0

  • 从源内存传输数据的突发中的传输次数。

  • 4’b0000: 1 次传输

  • 4’b0001: 2 次传输

  • 4’b0010: 3 次传输

  • 4’b0011: 4 次传输

  • 4’b0100: 5 次传输

  • 4’b0101: 6 次传输

  • 4’b0110: 7 次传输

  • 4’b0111: 8 次传输

  • 4’b1000: 9 次传输

  • 4’b1001: 10 次传输

  • 4’b1010: 11 次传输

  • 4’b1011: 12 次传输

  • 4’b1100: 13 次传输

  • 4’b1101: 14 次传输

  • 4’b1110: 15 次传输

  • 4’b1111: 16 次传输

注意: 只有在所有其他配置位正确配置后,才能设置 TRANS_EN 字段。

DMA_CHi_CFG_MRPT

地址偏移:0x14 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.7:DMA_CHi_CFG_MRPT 寄存器格式

字段

位

访问

复位值

描述

TRANS_RPT

11:0

RW

0x0

当 DMA_CFG_MCTRL.trans_mode 配置为传输重复模式时,此字段定义重复循环次数,且在启动 DMA 传输之前不允许配置为 0

RPT_IRQ_EN

12

RW

0x0

  • 重复模式期间最后一次数据迭代的中断使能

  • 1’b0: 每次重复传输迭代都会触发全/半传输中断

  • 1’b1: 只有最后一次数据迭代才能触发全/半传输中断

保留

15:13

/

0x0

内存到内存传输的目标内存块基地址

RPT_SAUM

16

RW

0x0

  • 重复传输模式下的源地址更新模式

  • 1’b0: 下一次传输迭代的源地址通过当前源地址寄存器值加上 RSAU 的值获得

  • 1’b1: 下一次传输迭代的源地址通过当前源地址寄存器值减去 RSAU 的值获得

RPT_DAUM

17

RW

0x0

  • 重复传输模式下的目标地址更新模式

  • 1’b0: 下一次传输迭代的目标地址通过当前目标地址寄存器值加上 RDAU 的值获得

  • 1’b1: 下一次传输迭代的目标地址通过当前目标地址寄存器值减去 RDAU 的值获得

保留

31:18

/

0x0

/

DMA_CHi_CFG_MSIZE

地址偏移:0x18 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.8:DMA_CHi_CFG_MSIZE 寄存器格式

字段

位

访问

复位值

描述

TSIZE

24:0

RW

0x0

  • 一次 DMA 传输的字节数。启动传输时不允许配置为 ‘0’,否则在 DMA 传输期间可能导致意外结果。这些位指示待传输的剩余字节数

  • 如果 DMA_CFG_MCTRL.trans_mode 配置为 ‘b01 或 ‘b10(即连续或重复模式),在当前传输完成时,它会自动重新加载为其原始值以进行新的传输。

  • DMA 传输错误可能会将寄存器冻结到最后一次成功传输的值,但对于下一个新的传输,它将重新开始并自动记录正确的剩余数据数量

保留

31:25

/

0x0

/

DMA_Chi_CFG_MSRCADDR_H

地址偏移:0x1C + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.9:DMA_Chi_CFG_MSRCADDR_H 寄存器格式

字段

位

访问

复位值

描述

SRC_BASE_H

15:0

RW

0x0

内存到内存传输的源数据块基地址的高位

保留

31:16

/

0x0

/

注意: 当地址宽度大于 32 时,此寄存器可用。

DMA_Chi_CFG_MDSTADDR_H

地址偏移:0x20 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.10:DMA_Chi_CFG_MDSTADDR_H 寄存器格式

字段

位

访问

复位值

描述

DST_BASE_H

15:0

RW

0x0

内存到内存传输的目标内存块基地址的高位

保留

31:16

/

0x0

/

注意: 当地址宽度大于 32 时,此寄存器可用。

DMA_Chi_CFG_MRAU

地址偏移:0x24 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.11:DMA_Chi_CFG_MRAU 寄存器格式

字段

位

访问

复位值

描述

RSAU

15:0

RW

0x0

  • 重复模式下,上一次重复传输迭代后的源地址更新值

  • RPT_SAUM为 1 时,下一次传输迭代的源地址通过当前源地址寄存器值加上 RSAU 的值获得

  • RPT_SAUM为 0 时,下一次传输迭代的源地址通过当前源地址寄存器值减去 RSAU 的值获得

RDAU

31:16

RW

0x0

  • 重复模式下,上一次重复传输迭代后的目标地址更新值

  • RPT_DAUM为 1 时,下一次传输迭代的目标地址通过当前目标地址寄存器值加上 RDAU 的值获得

  • RPT_DAUM为 0 时,下一次传输迭代的目标地址通过当前目标地址寄存器值减去 RDAU 的值获得

DMA_Chi_CFG_MLLA

地址偏移:0x28 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.12:DMA_Chi_CFG_MLLA 寄存器格式

字段

位

访问

复位值

描述

LLA

31:0

RW

0x0

  • 链表地址低32位

  • 在(重复的)M2M 传输结束时,通道配置寄存器(MSRCADDR, MDSTADDR, MCTRL, MRPT, MSIZE, MSRCADDR_H, MDSTADDR_H, MRAU, MLLA 和 MLLA_H 本身)将从该寄存器值指定地址的内存位置加载。

  • 加载的配置寄存器内容必须位于连续的地址空间,不像 MSIZE 和 MRAU 的地址在 DMA 总线宽度低于(或等于)32 位时有 8 字节的间隔(MSRCADDR_H, MDSTADDR_H)。

  • 如果此 LLA 寄存器的值为 0,并且达到传输结束,则配置寄存器不会更新。

  • 当软件使用 LLA 为非零值(启用链表)触发连续模式数据传输时,在软件编程通道使能位终止连续数据传输且整个通道传输完成后,链表模式将被忽略。

  • 类似地,当通过加载 LLA 关联的配置寄存器检测到连续传输模式时,正在进行的链表传输将停止。此寄存器的值必须字对齐,以便正确加载配置寄存器,否则可能导致不正确的数据传输。

DMA_CHi_CFG_MLLA_H

地址偏移:0x2C + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.13:DMA_CHi_CFG_MLLA_H 寄存器格式

字段

位

访问

复位值

描述

LLA_H

15:0

RW

0x0

  • 链表地址高位,该寄存器与 MLLA 结合使用,构成内存到内存传输的完整 LLA 地址

保留

31:16

/

0x0

/

注意: 当地址宽度大于 32 时,此寄存器可用。

DMA_PA_CHi_CFG_MSRCADDR

地址偏移:0x400 + 24 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.14:DMA_PA_CHi_CFG_MSRCADDR 寄存器格式

字段

位

访问

复位值

描述

SRC_BASE

31:0

RW

0x0

PA-MEM 传输的源数据块基地址

DMA_PA_CHi_CFG_MDSTADDR

地址偏移:0x404 + 24 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.15:DMA_PA_CHi_CFG_MDSTADDR 寄存器格式

字段

位

访问

复位值

描述

DST_BASE

31:0

RW

0x0

PA-MEM 传输的目标内存块基地址

DMA_PA_CHi_CFG_MCTRL

地址偏移:0x408 + 24 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.16:DMA_PA_CHi_CFG_MCTRL 寄存器格式

字段

位

访问

复位值

描述

TRANS_EN

0

RW

0x0

  • DMA 传输使能,置位该位将启动内存到内存 DMA 传输,可以通过软件清除,传输将在当前突发完成后停止。当传输完成或发生传输错误响应时,硬件也会清除该位,当前传输将被中止。

  • 1’b0: DMA 传输禁用

  • 1’b1: DMA 传输使能

保留

5:1

/

0x0

/

TRANS_MODE

7:6

RW

0x0

  • 传输模式选择。

  • 2’b00: 单次模式传输

  • 2’b01: 连续模式传输

  • 2’b10: 保留

  • 2’b11: 保留

保留

11:8

/

0x0

/

MDNA

12

RW

0x0

  • 传输数据到目标内存的下一个地址生成算法。

  • 1’b0: 递增地址模式

  • 1’b1: 固定地址模式,起始目标地址强制对齐

MSNA

13

RW

0x0

  • 从源内存获取数据的下一个地址生成算法。

  • 1’b0: 递增地址模式

  • 1’b1: 固定地址模式,起始源地址强制对齐

保留

15:14

/

0x0

/

MWIDTH

18:16

RW

0x0

  • 传输宽度,源和目标传输使用相同的宽度。

  • 3’b000: 8位

  • 3’b001: 16位

  • 3’b010: 32位

  • 其他: 保留

保留

23:19

/

0x0

/

TRANS_PER_SEL

26:24

RW

0x0

外设映射选择,根据sdk生成的头文件来配置外设对应的映射通道。

保留

31:27

/

0x0

/

注意: TRANS_EN 字段只有在所有其他配置位都正确配置后才能设置

DMA_PA_CH0_CFG_MSIZE

地址偏移:0x40C + 24 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.17:DMA_PA_CH0_CFG_MSIZE 寄存器格式

字段

位

访问

复位值

描述

TSIZE

24:0

RW

0x0

  • 一次 DMA 传输的字节数。启动传输时不允许配置为 ‘0’,否则在 DMA 传输期间可能导致意外结果。这些位指示待传输的剩余字节数

  • 如果 DMA_PA_CHx_CFG_MCTRL.trans_mode 配置为连续模式,在当前传输完成时,它会自动重新加载为其原始值以进行新的传输。

  • DMA 传输错误可能会将寄存器冻结到最后一次成功传输的值,但对于下一个新的传输,它将重新开始并自动记录正确的剩余数据数量

保留

31:25

/

0x0

/

注意: TSIZE 字段只能是 PA-MEM 控制器寄存器中 mwidth 字段值的整数倍

DMA_PA_Chi_CFG_MSRCADDR_H

地址偏移:0x410 + 24 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.18:DMA_PA_Chi_CFG_MSRCADDR_H 寄存器格式

字段

位

访问

复位值

描述

SRC_BASE_H

15:0

RW

0x0

PA-MEM 传输的源数据块基地址的高位

保留

31:16

/

0x0

/

注意: 当地址宽度大于 32 时,此寄存器可用。

DMA_PA_Chi_CFG_MDSTADDR_H

地址偏移:0x20 + 0x28 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.19:DMA_PA_Chi_CFG_MDSTADDR_H 寄存器格式

字段

位

访问

复位值

描述

DST_BASE_H

15:0

RW

0x0

PA-MEM 传输的目标内存块基地址的高位

保留

31:16

/

0x0

/

注意: 当地址宽度大于 32 时,此寄存器可用。

DMA_CHi_IRQ_EN

地址偏移:0x800 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.20:DMA_CHi_IRQ_EN 寄存器格式

字段

位

访问

复位值

描述

FTRANS_IRQ_EN

0

RW

0x0

通道 i 在 TSIZE 数据上的全传输中断使能

HTRANS_IRQ_EN

1

RW

0x0

通道 i 在 TSIZE 数据上的半传输中断使能

RSP_ERR_IRQ_EN

2

RW

0x0

通道 i DMA 访问错误中断使能

LLA_ERR_IRQ_EN

3

RW

0x0

通道 i 链接寄存器访问错误中断使能

LLA_FTRANS_IRQ_EN

4

RW

0x0

通道 i 在链表模式下的全传输中断使能

保留

31:5

/

0x0

/

DMA_CHi_IRQ_STAT

地址偏移:0x804 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.21:DMA_CHi_IRQ_STAT 寄存器格式

字段

位

访问

复位值

描述

FTRANS_IRQ_STAT

0

RO

0x0

通道 i 在 TSIZE 数据上的全传输中断状态标志

HTRANS_IRQ_STAT

1

RO

0x0

通道 i 在 TSIZE 数据上的半传输中断状态标志

RSP_ERR_IRQ_STAT

2

RO

0x0

通道 i DMA 访问错误中断状态标志

LLA_ERR_IRQ_STAT

3

RO

0x0

通道 i 链接寄存器访问错误中断状态标志

LLA_FTRANS_IRQ_STAT

4

RO

0x0

通道 i 在链表模式下的全传输中断状态标志

保留

31:5

/

0x0

/

DMA_CHi_IRQ_CLR

地址偏移:0x808 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.22:DMA_CHi_IRQ_CLR 寄存器格式

字段

位

访问

复位值

描述

FTRANS_IRQ_CLR

0

WO

0x0

写 1 清除通道 i 在 TSIZE 数据上的全传输中断状态标志

HTRANS_IRQ_CLR

1

WO

0x0

写 1 清除通道 i 在 TSIZE 数据上的半传输中断状态标志

RSP_ERR_IRQ_CLR

2

WO

0x0

写 1 清除通道 i DMA 访问错误中断状态标志

LLA_ERR_IRQ_CLR

3

WO

0x0

写 1 清除通道 i 链接寄存器访问错误中断状态标志

LLA_FTRANS_IRQ_CLR

4

WO

0x0

写 1 清除通道 i 在链表模式下的全传输中断状态标志

保留

31:5

/

0x0

/

DMA_PA_CHi_IRQ_EN

地址偏移:0xA00 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.23:DMA_PA_CHi_IRQ_EN 寄存器格式

字段

位

访问

复位值

描述

FTRANS_IRQ_EN

0

RW

0x0

PA-MEM 通道 i 全传输中断使能

HTRANS_IRQ_EN

1

RW

0x0

PA-MEM 通道 i 半传输中断使能

RSP_ERR_IRQ_EN

2

RW

0x0

PA-MEM 通道 i DMA 访问错误中断使能

保留

31:3

/

0x0

/

DMA_PA_CHi_IRQ_STAT

地址偏移:0xA04 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.24:DMA_PA_CHi_IRQ_STAT 寄存器格式

字段

位

访问

复位值

描述

FTRANS_IRQ_STAT

0

RO

0x0

PA-MEM 通道 i 全传输中断状态标志

HTRANS_IRQ_STAT

1

RO

0x0

PA-MEM 通道 i 半传输中断状态标志

RSP_ERR_IRQ_STAT

2

RO

0x0

PA-MEM 通道 i DMA 访问错误中断状态标志

保留

31:3

/

0x0

/

DMA_PA_CHi_IRQ_CLR

地址偏移:0xA08 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.25:DMA_CHi_IRQ_CLR 寄存器格式

字段

位

访问

复位值

描述

FTRANS_IRQ_CLR

0

WO

0x0

写 1 清除 PA-MEM 通道 i 全传输中断状态标志

HTRANS_IRQ_CLR

1

WO

0x0

写 1 清除 PA-MEM 通道 i 半传输中断状态标志

RSP_ERR_IRQ_CLR

2

WO

0x0

写 1 清除 PA-MEM 通道 i DMA 访问错误中断状态标志

保留

31:3

/

0x0

/

DMA_PCHi_IRQ_EN

地址偏移:0xC00 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.26:DMA_PCHi_IRQ_EN 寄存器格式

字段

位

访问

复位值

描述

RX_FTRANS_IRQ_EN

0

RW

0x0

通道 i Rx 全传输中断使能

RX_HTRANS_IRQ_EN

1

RW

0x0

通道 i Rx 半传输中断使能

RX_RSP_ERR_IRQ_EN

2

RW

0x0

通道 i Rx DMA 访问错误中断使能

TX_FTRANS_IRQ_EN

3

RW

0x0

通道 i Tx 全传输中断使能

TX_HTRANS_IRQ_EN

4

RW

0x0

通道 i Tx 半传输中断使能

TX_RSP_ERR_IRQ_EN

5

RW

0x0

通道 Tx i DMA 访问错误中断使能

CMD_FTRANS_IRQ_EN

6

RW

0x0

通道 i CMD 全传输中断使能

CMD_HTRANS_IRQ_EN

7

RW

0x0

通道 i CMD 半传输中断使能

CMD_RSP_ERR_IRQ_EN

8

RW

0x0

通道 i CMD DMA 访问错误中断使能

保留

31:9

/

0x0

/

DMA_PCHi_IRQ_STAT

地址偏移:0xC04 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.27:DMA_PCHi_IRQ_STAT 寄存器格式

字段

位

访问

复位值

描述

RX_FTRANS_IRQ_STAT

0

RO

0x0

通道 i Rx 全传输中断标志

RX_HTRANS_IRQ_STAT

1

RO

0x0

通道 i Rx 半传输中断标志

RX_RSP_ERR_IRQ_STAT

2

RO

0x0

通道 i Rx DMA 访问错误中断标志

TX_FTRANS_IRQ_STAT

3

RO

0x0

通道 i Tx 全传输中断标志

TX_HTRANS_IRQ_STAT

4

RO

0x0

通道 i Tx 半传输中断标志

TX_RSP_ERR_IRQ_STAT

5

RO

0x0

通道 Tx i DMA 访问错误中断标志

CMD_FTRANS_IRQ_STAT

6

RO

0x0

通道 i CMD 全传输中断标志

CMD_HTRANS_IRQ_STAT

7

RO

0x0

通道 i CMD 半传输中断标志

CMD_RSP_ERR_IRQ_STAT

8

RO

0x0

通道 i CMD DMA 访问错误中断标志

保留

31:9

/

0x0

/

DMA_PCHi_IRQ_CLR

地址偏移:0xC08 + 12 * i,其中 “i” 是从 0 到 7 的通道索引

表 5.28:DMA_PCHi_IRQ_CLR 寄存器格式

字段

位

访问

复位值

描述

RX_FTRANS_IRQ_CLR

0

RO

0x0

写 1 清除通道 i Rx 全传输中断标志

RX_HTRANS_IRQ_CLR

1

RO

0x0

写 1 清除通道 i Rx 半传输中断标志

RX_RSP_ERR_IRQ_CLR

2

RO

0x0

写 1 清除通道 i Rx DMA 访问错误中断标志

TX_FTRANS_IRQ_CLR

3

RO

0x0

写 1 清除通道 i Tx 全传输中断标志

TX_HTRANS_IRQ_CLR

4

RO

0x0

写 1 清除通道 i Tx 半传输中断标志

TX_RSP_ERR_IRQ_CLR

5

RO

0x0

写 1 清除通道 Tx i DMA 访问错误中断标志

CMD_FTRANS_IRQ_CLR

6

RO

0x0

写 1 清除通道 i CMD 全传输中断标志

CMD_HTRANS_IRQ_CLR

7

RO

0x0

写 1 清除通道 i CMD 半传输中断标志

CMD_RSP_ERR_IRQ_CLR

8

RO

0x0

写 1 清除通道 i CMD DMA 访问错误中断标志

保留

31:9

/

0x0

/

DMA_VERSION

地址偏移:0xFFC

表 5.29:DMA_VERSION 寄存器格式

字段

位

访问

复位值

描述

ver

31:0

RO

0x00020400

dma 版本常量