结构体
app_dma_params_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
dma_regs_t *p_instance |
DMA实例 |
该参数的取值可以是下列值中的任意一个: GR5526:
说明: GR551x无该参数 |
dma_channel_t channel_number |
DMA通道 |
该参数的取值可以是下列值中的任意一个: GR5526:
GR551x:
说明: 不采用链式传输方式,每个通道一次最大搬运长度为4095拍。 |
dma_init_t init |
DMA配置 |
参考dma_init_t结构体 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_dma.h。
GR5526中DMA支持的外设如下表,外设在使用DMA传输方式时,需要根据下表选择支持的DMA实例。其中xx_M表示仅可作Master端,xx_S表示仅可作Slave端。
芯片 | DMA0 | DMA1 |
---|---|---|
GR5526 |
QSPI0_M |
QSPI1_M |
QSPI1_M |
QSPI2_M |
|
OSPI_M |
OSPI_M |
|
SPI_M |
SPI_M |
|
SPI_S |
DSPI_M |
|
UART0 |
UART0 |
|
UART1 |
UART3 |
|
UART2 |
UART4 |
|
UART3 |
UART5 |
|
UART4 |
I2S_M |
|
I2C2 |
I2S_S |
|
I2C3 |
PDM |
|
I2C4 |
I2C0 |
|
I2C5 |
I2C1 |
|
ADC |
dma_init_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t src_request |
源端硬件请求信号线 |
0x0 ~ 0xF(默认0x0) |
uint32_t dst_request |
目的端硬件请求信号线 |
0x0 ~ 0xF(默认0x0) |
uint32_t direction |
数据传输方向 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t src_increment |
源端地址方式 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t dst_increment |
目的端地址方式 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t src_data_alignment |
源端数据传输位宽 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t dst_data_alignment |
目的端数据传输位宽 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t mode |
传输模式 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t priority |
优先级 |
该参数的取值可以是下列值中的任意一个:
|
详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_dma.h。
dma_sg_llp_config_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
dma_scatter_config_t scatter_config |
分散传输配置 |
参考dma_scatter_config_t结构体 |
dma_gather_config_t gather_config |
聚合传输配置 |
参考dma_gather_config_t结构体 |
dma_llp_config_t llp_config |
传输链表配置 |
参考dma_llp_config_t结构体 |
详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_dma.h。
dma_scatter_config_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t dst_scatter_en |
目的端分散使能 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t dst_dsi |
目的端分散间隔 |
0x0 ~ 0xFFFFF |
uint32_t dst_dsc |
目的端分散计数 |
0x0 ~ 0xFFF |
详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_dma.h。
dma_gather_config_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t src_gather_en |
源端聚合使能 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t src_sgi |
源端聚合间隔 |
0x0 ~ 0xFFFFF |
uint32_t src_sgc |
源端聚合计数 |
0x0 ~ 0xFFF |
详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_dma.h。
dma_llp_config_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t llp_src_en |
源端传输链表使能 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t llp_src_writeback |
源端回写状态值 |
0x0 ~ 0xFFFFFFFF |
uint32_t llp_dst_en |
目的端传输链表使能 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t llp_dst_writeback |
目的端回写 |
0xFFFFFFFF |
struct dma_block_config *head_lli |
传输链表头 |
参考dma_block_config结构体 |
详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_dma.h。
dma_block_config
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t src_address; |
源端地址 |
0x0 ~ 0xFFFFFFFF |
uint32_t dst_address |
目的端地址 |
0x0 ~ 0xFFFFFFFF |
struct dma_block_config *p_lli |
传输链表下一个节点地址 |
0x0 ~ 0xFFFFFFFF |
uint32_t CTL_L |
控制寄存器低32位配置 |
0x0 ~ 0xFFFFFFFF |
uint32_t CTL_H |
控制寄存器高32位配置 |
0x0 ~ 0xFFFFFFFF |
uint32_t src_status |
源端传输状态(回写) |
0x0 ~ 0xFFFFFFFF |
uint32_t dst_status |
目的端传输状态(回写) |
0x0 ~ 0xFFFFFFFF |
详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_dma.h。