结构体
app_dma_params_t
结构体定义如下:
| 成员 | 描述 | 取值 |
|---|---|---|
|
dma_regs_t *p_instance |
DMA实例 |
该参数的取值可以是下列值中的任意一个: GR5526/GR5x25:
GR551x/GR533x:
|
|
dma_channel_t channel_number |
DMA通道 |
该参数的取值可以是下列值中的任意一个: GR5526/GR5x25:
GR533x:
GR551x:
说明: 不采用链式传输方式,每个通道一次最大搬运长度为4095拍。 |
|
dma_init_t init |
DMA配置 |
参考dma_init_t结构体 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_dma.h。
各Bluetooth LE芯片中DMA支持的外设如下表,外设在使用DMA传输方式时,需要根据下表选择支持的DMA实例。其中xx_M表示仅可作Master端,xx_S表示仅可作Slave端。
| 芯片 | DMA0 | DMA1 |
|---|---|---|
| GR551x | QSPI0_M | / |
| QSPI1_M | / | |
| SPI_M | / | |
| SPI_S | / | |
| UART0 | / | |
| UART1 | / | |
| I2C0 | / | |
| I2C1 | / | |
| I2S_M | / | |
| I2S_S | / | |
| ADC | / | |
|
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 | / | |
| GR5x25 | QSPI0_M | QSPI1_M |
| QSPI1_M | QSPI2_M | |
| SPI_M | SPI_M | |
| SPI_S | DSPI_M | |
| UART0 | UART0 | |
| UART1 | UART3 | |
| UART2 | I2S_M | |
| UART3 | I2S_S | |
| I2C2 | PDM | |
| I2C3 | I2C0 | |
| ADC | I2C1 | |
| GR533x | SPI_M | / |
| SPI_S | / | |
| UART0 | / | |
| UART1 | / | |
| I2C0 | / | |
| I2C1 | / | |
| ADC | / | |
| PWM0 | / |
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 |
目的端回写状态值 |
0x0 ~ 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。