软件版本介绍
目前APP_DRV为V1_2版本,实现外设模块DMA传输模式的分离,传输接口分为轮询方式传输接口 、中断方式传输接口和DMA方式传输接口,分别为app_xxx_transmit_sync、app_xxx_transmit_async和app_xxx_dma_transmit_async。APP_DRV V1_2版本降低代码耦合性,减少了固件大小,同时API操作更灵活。
以UART为例,下表显示实现外设模块DMA传输模式的分离,增加了DMA模式设置、传输和控制等相关接口,在进行DMA模式传输时需调用这些接口。
API | 芯片 | |||
---|---|---|---|---|
GR551x | GR5526 | GR5x25 | ||
UART |
app_uart_init | Y | Y | Y |
app_uart_deinit | Y | Y | Y | |
app_uart_transmit_async | Y | Y | Y | |
app_uart_transmit_sync | Y | Y | Y | |
app_uart_receive_async | Y | Y | Y | |
app_uart_receive_sync | Y | Y | Y | |
app_uart_transmit_sem_sync | Y | Y | Y | |
app_uart_receive_sem_sync | Y | Y | Y | |
app_uart_flush | Y | Y | Y | |
app_uart_abort | Y | Y | Y | |
app_uart_abort_transmit | Y | Y | Y | |
app_uart_abort_receive | Y | Y | Y | |
app_uart_get_handle | Y | Y | Y | |
app_uart_dma_init | Y | Y | Y | |
app_uart_dma_deinit | Y | Y | Y | |
app_uart_dma_transmit_async | Y | Y | Y | |
app_uart_dma_receive_async | Y | Y | Y | |
app_uart_transmit_dma_sg_llp | N | Y | Y | |
app_uart_receive_dma_sg_llp | N | Y | Y |
Note:
表 1中“Y”表示支持;“N”表示不支持。下文表格中同理。
以UART为例,下图展示UART实现DMA传输的流程,在使用DMA方式进行传输,首先需要调用app_uart_dma_init进行DMA初始化,即可使用DMA方式传输接口app_uart_dma_transmit_async进行数据的传输。