跳转至

DMA

概述

直接存储器访问(DMA)方式,是一种完全由硬件执行 I/O 交换的工作方式。在这种方式中,直接存储器访问控制器(DMAC)直接在存储器和外设、外设和外设、存储器和存储器之间进行数据传输,减少处理器的干涉和开销。

DMA(Directory Memory Access)方式一般用于高速传输成组的数据。DMAC(Directory Memory Access Controller)在收到 DMA 传输请求后根据 CPU 对通道的配置启动总线主控制器,向存储器和外设发出地址和控制信号,对传输数据的个数计数,并且以中断方式向 CPU 报告传输操作的结束或错误。

功能描述

DMA 控制器有如下特点:

  • 支持单 MASTER,支持 4 通道,每个通道可配置用于一种单向传输。

  • 支持 UART0/UART1/UART2/SPI/QSPI/I2S 硬握手通道,可通过配置设为传输的源端请求或目的端请求。

  • 支持四种方向的搬移场景:

  • MEMORY 到 MEMORY。

  • 外设到外设。

  • 外设到 MEMORY。

  • MEMORY 到外设。

  • DMA 通道优先级固定,优先级从高到低对应的通道号依次为 0~3 。

  • DMAC 通道 0 ~ 通道 3 中各包含 1 个 16×32bit 的 FIFO。

  • 支持总线位宽为 32bit 的 AHB 总线接口;支持一组 AHB SLAVE 接口和一组 AHB MASTER 接口。

  • 外设可使用单次传输(single)和连续传输(burst)2种DMA请求。

  • 支持软件控制的 DMA 请求。

  • 支持源地址和目的地址可分别配置为自动递增或不递增,递增步长取决于传输位宽。

  • 支持分别配置源端和目的端的传输位宽:8/16/32bit。

  • 支持链表 DMA 传输。

  • 提供1个可屏蔽电平中断输出,中断可清除。

  • 支持 DMA 错误和 DMA 传输完成中断屏蔽前后状态查询,及两者的组合中断状态查询。

工作方式

DMA 初始化配置步骤如下:

步骤 1 读 DMAC_EN_CHNS[en_chns],获取空闲的通道编号 ch_num,以通道 0 为例。

步骤 2 写 DMAC_CONFIG[dmac_en]为 0x1,使能 DMAC。

步骤 3 写 DMAC_CHN_CONTROL_0[dmac_chn_en_0]为 0x0,关闭通道 0 使能。

步骤 4 如果需要通过软请求方式进行 DMA 搬数,则需要根据表 1 中的保留编号配置 DMAC_BURST_REQ[burst_req]、DMAC_SINGLE_REQ[single_req]。

说明

如果通过硬请求方式进行 DMA 搬数或传输方向为 MEMORY 到 MEMORY,则忽略此步骤。

表6-14 DMA 请求接口信号描述

外设编号外设端口功能描述
0reserved保留。
1uart0_txUART0 的发送信号。
2uart0_rxUART0 的接收信号。
3uart1_txUART1 的发送信号。
4uart1_rxUART1 的接收信号。
5uart2_txUART2 的发送信号。
6uart2_rxUART2 的接收信号。
7spi_txSPI 的发送信号。
8spi_rxSPI 的接收信号。
9qspi_txQSPI 的发送信号。
10qspi_rxQSPI 的接收信号。
11i2s_txI2S 的发送信号。
12i2s_rxI2S 的接收信号。
13~15reserved保留。

步骤 5 配置通道 0 的源地址 DMAC_S_ADDR_0[dmac_s_addr_0] 和目的地址 DMAC_D_ADDR_0[dmac_d_addr_0]。

步骤 6 根据具体需求配置 DMA 通道 0 控制寄存器 DMAC_CHN_CONTROL_0,例如传输位宽、传输长度、Burst 长度等。

步骤 7 如果需要进行链表传输,则配置链式地址 DMAC_LLI_0[dmac_lli_0]。

步骤 8 根据具体需求配置 DMA 通道 0 配置寄存器 DMAC_CHN_CONTROL_0:

  • 写[dmac_flow_ctl_0],配置流控和传输类型。

  • 写[dmac_d_peripheral_0],配置目的设备,配置值为表1中的外设编号。

  • 写[dmac_s_peripheral_0],配置源设备,配置值为表1中的外设编号。

  • 写[dmac_int_tc_0],配置完成中断屏蔽位。

  • 写[dmac_int_en_0],配置错误中断屏蔽位。

  • 写[dmac_chn_en_0]为 0x1,启动通道 0。

步骤 9 若 DMAC_CHN_CONTROL_0[dmac_int_tc_0]未屏蔽,则当 DMA 通道 0 传输完成后上报完成中断,或轮询读取 DMAC_ORI_INT_ST[ori_int_trans_st]查询完成状态。

----结束

寄存器概览

AHB_DMA_RB 寄存器概览如表 6-18 所示。

表6-15 AHB_DMA_RB 寄存器概览(基址是 0x4A000000)

偏移地址名称描述
0x0004DMAC_INT_ST中断状态寄存器。
0x0008DMAC_INT_CLR传输中断寄存器。
0x000CDMAC_ORI_INT_ST原始中断状态寄存器。
0x0010DMAC_EN_CHNS通道使能查询寄存器。
0x0014DMAC_BURST_REQBURST 软件配置寄存器。
0x0018DMAC_SINGLE_REQSINGLE 软件配置寄存器。
0x001CDMAC_CONFIG配置寄存器。
0x0020DMAC_SYNC同步寄存器。
0x0100DMAC_LLI_0通道 0 链表寄存器。
0x0120DMAC_LLI_1通道 1 链表寄存器。
0x0140DMAC_LLI_2通道 2 链表寄存器。
0x0160DMAC_LLI_3通道 3 链表寄存器。
0x0110DMAC_S_ADDR_0通道 0 源地址寄存器。
0x0130DMAC_S_ADDR_1通道 1 源地址寄存器。
0x0150DMAC_S_ADDR_2通道 2 源地址寄存器。
0x0170DMAC_S_ADDR_3通道 3 源地址寄存器。
0x0104DMAC_D_ADDR_0通道 0 目的地址寄存器。
0x0124DMAC_D_ADDR_1通道 1 目的地址寄存器。
0x0144DMAC_D_ADDR_2通道 2 目的地址寄存器。
0x0164DMAC_D_ADDR_3通道 3 目的地址寄存器。
0x0114DMAC_CHN_CONTR OL_0通道 0 控制寄存器。
0x0134DMAC_CHN_CONTR OL_1通道 1 控制寄存器。
0x0154DMAC_CHN_CONTR OL_2通道 2 控制寄存器。
0x0174DMAC_CHN_CONTR OL_3通道 3 控制寄存器。
0x0108DMAC_CHN_CONFIG_0通道 0 配置寄存器。
0x0128DMAC_CHN_CONFIG_1通道 1 配置寄存器。
0x0148DMAC_CHN_CONFIG_2通道 2 配置寄存器。
0x0168DMAC_CHN_CONFIG_3通道 3 配置寄存器。

寄存器描述

DMAC_INT_ST

DMAC_INT_ST 为中断状态寄存器。

说明

本 IP 仅支持 4 通道,i=0'3 有效,i=4'7 无效。

Offset Address: 0x0004 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
[31:24]ROreserved保留。0x00
[23:16]ROint_err_sti=0~7int_err_st[i]=:
• 1'b0:通道i未产生错误中断(经过中断屏蔽);int_err_st[i]=
• 1'b1:通道i产生错误中断(经过中断屏蔽)。
0x00
[15:8]ROint_trans_sti=0~7int_trans_st[i]=:
• 1'b0:通道i未产生传输中断(经过中断屏蔽);int_trans_st[i]=
• 1'b1:通道i产生传输中断(经过中断屏蔽)。
0x00
[7:0]ROint_sti=0~7int_st[i]=:
• 1'b0:通道i未产生中断(经过中断屏蔽);int_st[i]=
• 1'b1:通道i产生中断(经过中断屏蔽)。
0x00

DMAC_INT_CLR

DMAC_INT_CLR 为传输中断寄存器。

说明

本 IP 仅支持 4 通道,i=0'3 有效,i=4'7 无效。

Offset Address: 0x0008 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
[31:16]ROreserved保留。0x0000
[15:8]RWint_err_clri=0~7int_err_clr[i]=:
• 1'b0:不清除通道i的错误中断;int_err_clr[i]=
• 1'b1:清除通道i的错误中断。
0x00
[7:0]RWint_trans_clri=0~7int_trans_clr[i]=:
• 1'b0:不清除通道i的传输中断;int_trans_clr[i]=
• 1'b1:清除通道i的传输中断。
0x00

DMAC_ORI_INT_ST

DMAC_ORI_INT_ST 为原始中断状态寄存器。

说明

本 IP 仅支持 4 通道,i=0'3 有效,i=4'7 无效。

Offset Address: 0x000C Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:16ROreserved保留。0x0000
15:8ROori_int_err_sti=0~7ori_int_err_st[i]=:
• 1'b0:通道i未产生错误中断(未经中断屏蔽);ori_int_err_st[i]=
• 1'b1:通道i产生错误中断(未经中断屏蔽)。
0x00
7:0ROori_int_trans_sti=0~7ori_int_trans_st[i]=:
• 1'b0:通道i未产生传输中断(未经中断屏蔽);ori_int_trans_st[i]=
• 1'b1:通道i产生传输中断(未经中断屏蔽)。
0x00

DMAC_EN_CHNS

DMAC_EN_CHNS 为通道使能查询寄存器。

说明

本 IP 仅支持 4 通道,i=0'3 有效,i=4'7 无效。

Offset Address: 0x0010 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:8ROreserved保留。0x000000
7:0ROen_chnsi=0~7en_chns[i]=:
• 1'b0:通道i未使能;en_chns[i]=
• 1'b1:通道i使能。
0x00

DMAC_BURST_REQ

DMAC_BURST_REQ 为 BURST 软件配置寄存器。

Offset Address: 0x0014 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:16RWburst_reqi=0~15burst_req[i]=:
• 1'b0:无影响;burst_req[i]=
• 1'b1:产生DMA burst传输请求,当传输结束时该寄存器中的相应位被清零。
0x0000
15:0RWlast_burst_reqi=0~15last_burst_req[i]=:
• 1'b0:无影响;last_burst_req[i]=
• 1'b1:产生DMA last burst传输请求,当传输结束时该寄存器中的相应位被清零。
0x0000

DMAC_SINGLE_REQ

DMAC_SINGLE_REQ 为 SINGLE 软件配置寄存器。

Offset Address: 0x0018 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:16RWsingle_reqi=0~15single_req[i]=:
• 1'b0:无影响single_req[i]=
• 1'b1:产生DMA single传输请求,当传输结束时该寄存器中的相应位被清零
0x0000
15:0RWlast_single_reqi=0~15last_single_req[i]=:
• 1'b0:无影响last_single_req[i]=
• 1'b1:产生DMA last single传输请求,当传输结束时该寄存器中的相应位被清零
0x0000

DMAC_CONFIG

DMAC_CONFIG 为配置寄存器。

说明

本 IP 仅支持单 master,master2 配置无效。

Offset Address: 0x001C Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:3ROreserved保留。0x00000000
2RWdmac_m2Master 2 endianness 配置位。0: little endian 模式:
1: big endian 模式。
0x0
1RWdmac_m1Master 1 endianness 配置位。0: little endian 模式:
1: big endian 模式。
0x0
0RWdmac_enDMAC 使能。0: 禁止 DMAC:
1: 使能 DMAC。
0x0

DMAC_SYNC

DMAC_SYNC 为同步寄存器。

Offset Address: 0x0020 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:16ROreserved保留。0x0000
15:0RWdamc_sync控制是否需要对请求线进行同步。0:使能对应外设的DMA请求信号同步逻辑:
1:禁止对应外设的DMA请求信号同步逻辑。
0x0000

DMAC_LLI_0

DMAC_LLI_0 为通道 0 链表寄存器。

说明

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0100 Total Reset Value: 0x00000000

表6-16 Table9
DMAC_LLI_0 Register Field Description

BitsAccessNameDescriptionReset
31:2RWdmac_lli_0链式地址[31:2]0x00000000
1ROreserved保留。0x0
0RWdmac_lm_0用于载入下一个链表结点的Master。0: Master1:
1: Master2。
0x0

DMAC_LLI_1

DMAC_LLI_为通道 1 链表寄存器。

说明

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0120 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:2RWdmac_lli_1链式地址[31:2]0x00000000
1ROreserved保留。0x0
0RWdmac_lm_1用于载入下一个链表结点的 Master。0:Master1:
1:Master2。
0x0

DMAC_LLI_2

DMAC_LLI_2 为通道 2 链表寄存器。

说明

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0140 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:2RWdmac_lli_2链式地址[31:2]0x00000000
1ROreserved保留。0x0
0RWdmac_lm_2用于载入下一个链表结点的 Master。0: Master1:
1: Master2。
0x0

DMAC_LLI_3

DMAC_LLI_3 为通道 3 链表寄存器。

说明

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0160 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:2RWdmac_lli_3链式地址[31:2]0x00000000
1ROreserved保留。0x0
0RWdmac_lm_3用于载入下一个链表结点的 Master。0:Master1:
1:Master2。
0x0

DMAC_S_ADDR_0

DMAC_S_ADDR_0 为通道 0 源地址寄存器。

Offset Address: 0x0110 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_s_addr_0DMAC 通道 0 源地址寄存器0x00000000

DMAC_S_ADDR_1

DMAC_S_ADDR_1 为通道 1 源地址寄存器。

Offset Address: 0x0130 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_s_addr_1DMAC 通道 1 源地址寄存器0x00000000

DMAC_S_ADDR_2

DMAC_S_ADDR_2 为通道 2 源地址寄存器。

Offset Address: 0x0150 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_s_addr_2DMAC 通道 2 源地址寄存器0x00000000

DMAC_S_ADDR_3

DMAC_S_ADDR_3 为通道 3 源地址寄存器。

Offset Address: 0x0170 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_s_addr_3DMAC 通道 3 源地址寄存器0x00000000

DMAC_D_ADDR_0

DMAC_D_ADDR_0 为通道 0 目的地址寄存器。

Offset Address: 0x0104 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_d_addr_0DMAC 通道 0 目的地址寄存器0x00000000

DMAC_D_ADDR_1

DMAC_D_ADDR_1 为通道 1 目的地址寄存器。

Offset Address: 0x0124 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_d_addr_1DMAC 通道 1 目的地址寄存器0x00000000

DMAC_D_ADDR_2

DMAC_D_ADDR_2 为通道 2 目的地址寄存器。

Offset Address: 0x0144 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_d_addr_2DMAC 通道 2 目的地址寄存器。0x00000000

DMAC_D_ADDR_3

DMAC_D_ADDR_3 为通道 3 目的地址寄存器。

Offset Address: 0x0164 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:0RWdmac_d_addr_3DMAC 通道 3 目的地址寄存器。0x00000000

DMAC_CHN_CONTROL_0

DMAC_CHN_CONTROL_0 为通道 0 控制寄存器。

说明

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0114 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31RWdmac_trans_int_0传输完成中断使能位。该位用于决定当前链表结点是否触发传输完成中断。0:当前链表结点不触发传输完成中断:
1:当前链表结点触发传输完成中断。
0x0
30:28RWdmac_prot_0master 发出的访问保护HPROT[2:0]信号。0x0
27RWdmac_d_inc_0目的地址递增。0:目的地址不递增:
1:目的地址每传一个数就递增一次。目的设备为外设时目的地址不递增
目的设备为存储器时目的地址递增。
0x0
26RWdmac_s_inc_0源地址递增。0:源地址不递增:
1:源地址每传一个数就递增一次。源设备为外设时源地址不递增
源设备为存储器时源地址递增。
0x0
25RWdmac_d_master_0设置访问目的设备的 master。0:使用 Master1 作为目的设备传输:
1: 使用 Master2 作为目的设备传输。
0x0
24RWdmac_s_master_0设置访问源设备的 master。0: 使用 Master1 作为源设备传输:
1: 使用 Master2 作为源设备传输。
0x0
23:21RWdmac_d_width_0目的设备传输位宽。000: Byte (8bit)001: Halfword (16bit)010: Word (32bit)0x0
20:18RWdmac_s_width_0源设备传输位宽。000: Byte (8bit)001: Halfword (16bit)010: Word (32bit)0x0
17:15RWdmac_d_bsize_0目的设备 burst 长度。000: 1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
14:12RWdmac_s_bsize_0源设备 burst 长度。000: 1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
11:0RWdmac_trans_size_0当DMAC是流控制器时,通过写该寄存器可设定DMA传输的长度。0x000

DMAC_CHN_CONTROL_1

DMAC_CHN_CONTROL_1 为通道 1 控制寄存器。

说明

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0134 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31RWdmac_trans_int_1传输完成中断使能位。该位用于决定当前链表结点是否触发传输完成中断。0:当前链表结点不触发传输完成中断:
1:当前链表结点触发传输完成中断。
0x0
30:28RWdmac_prot_1master 发出的访问保护 HPROT[2:0]信号。0x0
27RWdmac_d_inc_1目的地址递增。0:目的地址不递增:
1:目的地址每传一个数就递增一次。目的设备为外设时目的地址不递增
目的设备为存储器时目的地址递增。
0x0
26RWdmac_s_inc_1源地址递增。0:源地址不递增:
1:源地址每传一个数就递增一次。源设备为外设时源地址不递增
源设备为存储器时源地址递增。
0x0
25RWdmac_d_master_1设置访问目的设备的 master。0:使用 Master1 作为目的设备传输:
1:使用 Master2 作为目的设备传输。
0x0
24RWdmac_s_master_1设置访问源设备的 master。0:使用 Master1 作为源设备传输:
1:使用 Master2 作为源设备传输。
0x0
23:21RWdmac_d_width_1目的设备传输位宽。000:Byte (8bit)001:Halfword (16bit)010:Word (32bit)0x0
20:18RWdmac_s_width_1源设备传输位宽。000:Byte (8bit)001:Halfword (16bit)010:Word (32bit)0x0
17:15RWdmac_d_bsize_1目的设备 burst 长度。000:1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
14:12RWdmac_s_bsize_1源设备 burst 长度。000: 1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
11:0RWdmac_trans_size_1当 DMAC 是流控制器时,通过写该寄存器可设定 DMA 传输的长度。0x000

DMAC_CHN_CONTROL_2

DMAC_CHN_CONTROL_2 为通道 2 控制寄存器。

说明

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0154 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31RWdmac_trans_int_2传输完成中断使能位。该位用于决定当前链表结点是否触发传输完成中断。0:当前链表结点不触发传输完成中断:
1:当前链表结点触发传输完成中断。
0x0
30:28RWdmac_prot_2master 发出的访问保护 HPROT[2:0]信号。0x0
27RWdmac_d_inc_2目的地址递增。0:目的地址不递增:
1:目的地址每传一个数就递增一次。目的设备为外设时目的地址不递增
目的设备为存储器时目的地址递增。
0x0
26RWdmac_s_inc_2源地址递增。0:源地址不递增:
1:源地址每传一个数就递增一次。源设备为外设时源地址不递增
源设备为存储器时源地址递增。
0x0
25RWdmac_d_master_2设置访问目的设备的 master。0:使用 Master1 作为目的设备传输:
1:使用 Master2 作为目的设备传输。
0x0
24RWdmac_s_master_2设置访问源设备的 master。0:使用 Master1 作为源设备传输:
1:使用 Master2 作为源设备传输。
0x0
23:21RWdmac_d_width_2目的设备传输位宽。000: Byte (8bit)001: Halfword (16bit)010: Word (32bit)0x0
20:18RWdmac_s_width_2源设备传输位宽。000: Byte (8bit)001: Halfword (16bit)010: Word (32bit)0x0
17:15RWdmac_d_bsize_2目的设备 burst 长度。000: 1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
14:12RWdmac_s_bsize_2源设备 burst 长度。000: 1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
11:0RWdmac_trans_size_2当 DMAC 是流控制器时,通过写该寄存器可设定 DMA 传输的长度。0x000

DMAC_CHN_CONTROL_3

DMAC_CHN_CONTROL_3 为通道 3 控制寄存器。

说明:

本 IP 仅支持单 master,master2 相关配置无效。

Offset Address: 0x0174 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31RWdmac_trans_int_3传输完成中断使能位。该位用于决定当前链表结点是否触发传输完成中断。0:当前链表结点不触发传输完成中断:
1:当前链表结点触发传输完成中断。
0x0
30:28RWdmac_prot_3master 发出的访问保护HPROT[2:0]信号。0x0
27RWdmac_d_inc_3目的地址递增。0:目的地址不递增:
1:目的地址每传一个数就递增一次。目的设备为外设时目的地址不递增
目的设备为存储器时目的地址递增。
0x0
26RWdmac_s_inc_3源地址递增。0:源地址不递增:
1:源地址每传一个数就递增一次。源设备为外设时源地址不递增
源设备为存储器时源地址递增。
0x0
25RWdmac_d_master_3设置访问目的设备的 master。0: 使用 Master1 作为目的设备传输:
1: 使用 Master2 作为目的设备传输。
0x0
24RWdmac_s_master_3设置访问源设备的 master。0: 使用 Master1 作为源设备传输:
1: 使用 Master2 作为源设备传输。
0x0
23:21RWdmac_d_width_3目的设备传输位宽。000: Byte (8bit)001: Halfword (16bit)010: Word (32bit)0x0
20:18RWdmac_s_width_3源设备传输位宽。000: Byte (8bit)001: Halfword (16bit)010: Word (32bit)0x0
17:15RWdmac_d_bsize_3目的设备 burst 长度。000: 1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
14:12RWdmac_s_bsize_3源设备 burst 长度000: 1001: 4010: 8011: 16100: 32101: 64110: 128111: 2560x0
11:0RWdmac_trans_size_3当 DMAC 是流控制器时,通过写该寄存器可设定 DMA 传输的长度。0x000

DMAC_CHN_CONFIG_0

DMAC_CHN_CONFIG_0 为通道 0 配置寄存器。

Offset Address: 0x0108 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:17ROreserved保留。0x0000
16RWdmac_halt_0Halt位。0:允许DMA请求:
1:忽略后来的DMA请求,通道FIFO中的内容都被传完。
0x0
15ROdmac_active_0Active位。0:通道FIFO中没有数据:
1:通道FIFO中有数据。
0x0
14RWdmac_lock_0Lock位。0:禁止总线上 lock 传输:
1:使能总线上 lock 传输。
0x0
13RWdmac_int_tc_0传输完成中断屏蔽位。0:屏蔽本通道的传输完成中断:
1:不屏蔽本通道的传输完成中断。
0x0
12RWdmac_int_en_0错误中断屏蔽位。0:屏蔽本通道的错误中断:
1:不屏蔽本通道的错误中断。
0x0
11:9RWdmac_flow_ctl_0流控及传输类型字段。000:存储器至存储器DMAC:
001:存储器至外设 DMAC
010:外设至存储器 DMAC
011:源设备至目的设备DMAC
100:源设备至目的设备目的设备
101:存储器至外设目的设备
110:外设至存储器源设备
111:源设备至目的设备源设备。
0x0
8:5RWdmac_d_periphe ral_0目的设备。该字段用于选择一个外设请求信号作为本通道的DMA 目的设备的请求信号。如果 DMA 传输的目的设备是存储器则该字段被忽略。0x0
4:1RWdmac_s_periphe ral_0源设备。该字段用于选择一个外设请求信号作为本通道的DMA源设备的请求信号。如果DMA传输的源设备是存储器则该字段被忽略。0x0
0RWdmac_chn_en_0通道使能位。0:关闭通道:
1:启动通道。
0x0

DMAC_CHN_CONFIG_1

DMAC_CHN_CONFIG_1 为通道 1 配置寄存器。

Offset Address: 0x0128 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:17ROreserved保留。0x0000
16RWdmac_halt_1Halt 位。0: 允许 DMA 请求:
1: 忽略后来的 DMA 请求,通道 FIFO 中的内容都被传完。
0x0
15ROdmac_active_1Active 位。0: 通道 FIFO 中没有数据:
1: 通道 FIFO 中有数据。
0x0
14RWdmac_lock_1Lock 位。0: 禁止总线上 lock 传输:
1: 使能总线上 lock 传输。
0x0
13RWdmac_int_tc_1传输完成中断屏蔽位。0: 屏蔽本通道的传输完成中断:
1:不屏蔽本通道的传输完成中断。
0x0
12RWdmac_int_en_1错误中断屏蔽位。0:屏蔽本通道的错误中断:
1:不屏蔽本通道的错误中断。
0x0
11:9RWdmac_flow_ctl_1流控及传输类型字段。000:存储器至存储器DMAC:
001:存储器至外设DMAC
010:外设至存储器DMAC
011:源设备至目的设备DMAC
100:源设备至目的设备目的设备
101:存储器至外设目的设备
110:外设至存储器源设备
111:源设备至目的设备源设备。
0x0
8:5RWdmac_d_peripheral_1目的设备。该字段用于选择一个外设请求信号作为本通道的DMA目的设备的请求信号。如果DMA传输的目的设备是存储器则该字段被忽略。0x0
4:1RWdmac_s_peripheral_1源设备。该字段用于选择一个外设请求信号作为本通道的 DMA 源设备的请求信号。如果 DMA 传输的源设备是存储器则该字段被忽略。0x0
0RWdmac_chn_en_1通道使能位0:关闭通道:
1:启动通道。
0x0

DMAC_CHN_CONFIG_2

DMAC_CHN_CONFIG_2 为通道 2 配置寄存器。

Offset Address: 0x0148 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:17ROreserved保留。0x0000
16RWdmac_halt_2Halt位。0:允许DMA请求:
1:忽略后来的DMA请求,通道FIFO中的内容都被传完。
0x0
15ROdmac_active_2Active位。0:通道FIFO中没有数据:
1:通道FIFO中有数据。
0x0
14RWdmac_lock_2Lock位。0:禁止总线上lock传输:
1:使能总线上lock传输。
0x0
13RWdmac_int_tc_2传输完成中断屏蔽位。0:屏蔽本通道的传输完成中断:
1: 不屏蔽本通道的传输完成中断。
0x0
12RWdmac_int_en_2错误中断屏蔽位。0: 屏蔽本通道的错误中断:
1: 不屏蔽本通道的错误中断。
0x0
11:9RWdmac_flow_ctl_2流控及传输类型字段000: 存储器至存储器DMAC:
001: 存储器至外设DMAC
010: 外设至存储器DMAC
011: 源设备至目的设备DMAC
100: 源设备至目的设备目的设备
101: 存储器至外设目的设备
110: 外设至存储器源设备
111: 源设备至目的设备源设备。
0x0
8:5RWdmac_d_peripheral_2目的设备。该字段用于选择一个外设请求信号作为本通道的DMA目的设备的请求信号。如果DMA传输的目的设备是存储器则该字段被忽略。0x0
4:1RWdmac_s_peripheral_2源设备。该字段用于选择一个外设请求信号作为本通道的 DMA 源设备的请求信号。如果 DMA 传输的源设备是存储器则该字段被忽略。0x0
0RWdmac_chn_en_2通道使能位0:关闭通道:
1:启动通道。
0x0

DMAC_CHN_CONFIG_3

DMAC_CHN_CONFIG_3 为通道 3 配置寄存器。

Offset Address: 0x0168 Total Reset Value: 0x00000000

BitsAccessNameDescriptionReset
31:17ROreserved保留。0x0000
16RWdmac_halt_3Halt位。0:允许DMA请求:
1:忽略后来的DMA请求,通道FIFO中的内容都被传完。
0x0
15ROdmac_active_3Active位。0:通道FIFO中没有数据:
1:通道FIFO中有数据。
0x0
14RWdmac_lock_3Lock位。0:禁止总线上lock传输:
1:使能总线上lock传输。
0x0
13RWdmac_int_tc_3传输完成中断屏蔽位。0:屏蔽本通道的传输完成中断:
1:不屏蔽本通道的传输完成中断。
0x0
12RWdmac_int_en_3错误中断屏蔽位。0:屏蔽本通道的错误中断:
1:不屏蔽本通道的错误中断。
0x0
11:9RWdmac_flow_ctl_3流控及传输类型字段000:存储器至存储器DMAC:
001:存储器至外设DMAC
010:外设至存储器DMAC
011:源设备至目的设备DMAC
100:源设备至目的设备目的设备
101:存储器至外设目的设备
110:外设至存储器源设备
111:源设备至目的设备源设备。
0x0
8:5RWdmac_d_periphe ral_3目的设备。该字段用于选择一个外设请求信号作为本通道的DMA目的设备的请求信号。如果DMA传输的目的设备是存储器则该字段被忽略。0x0
4:1RWdmac_s_periphe ral_3源设备。该字段用于选择一个外设请求信号作为本通道的DMA源设备的请求信号。如果DMA传输的源设备是存储器则该字段被忽略。0x0
0RWdmac_chn_en_3通道使能位。0:关闭通道:
1:启动通道。
0x0