DMA_SG,//散射-聚集(Scatter-Gather)传输DMA_PRIVATE,//私有的DMA传输DMA_ASYNC_TX,//异步传输DMA_SLAVE,//DMA控制器设备功能,必有DMA_CYCLIC,//循环DMA传输DMA_INTERLEAVE,//交错DMA传输/*last transaction type for creation of the capabilities mask*/DMA_TX_TYPE_END, }; 此节以audio使用DMA_CYCLIC举例...
应用程序必须设置缓冲区地址和长度字段以启动相应通道中的传输。 (2)、Scatter/Gather模式:允许在单个DMA事务中将数据传输到多个存储区域传输数据。 (3)、Cyclic DMA模式: 四、AXI DMA参数与接口分析 1、接口分析: (1)、M_AXI_MM2S:DMA的读通道,从DDR中读取数据。受Enable Read Channel控制,表现为M_AXI_MM2S。
(1)、Direct Register模式:用于在MM2S和S2MM通道上执行简单的DMA传输,小的FPGA资源少。有两个通道:一个从Device到DMA,另一个从DMA到Device。应用程序必须设置缓冲区地址和长度字段以启动相应通道中的传输。 (2)、Scatter/Gather模式:允许在单个DMA事务中将数据传输到多个存储区域传输数据。 (3)、Cyclic DMA模式: ...
应用程序必须设置缓冲区地址和长度字段以启动相应通道中的传输。 (2)、Scatter/Gather模式:允许在单个DMA事务中将数据传输到多个存储区域传输数据。 (3)、Cyclic DMA模式: 四、AXI DMA参数与接口分析 1、接口分析: (1)、M_AXI_MM2S:DMA的读通道,从DDR中读取数据。受Enable Read Channel控制,表现为M_AXI_MM2S。
1:cyclic, 用dma_alloc_coherent分配两段dma 内存空间, 一段做src, 一段做dst. 调用DMA controller接口来将src中的数据往dst中拷贝。因为DMA操作的是物理内地址上连续的内存空间,dma_alloc_coherent分配不了太大的连续物理地址空间,所以,仅仅能实现小批量数据的M2M拷贝。
(2)、Scatter/Gather模式:允许在单个DMA事务中将数据传输到多个存储区域传输数据。 (3)、Cyclic DMA模式: 四、AXI DMA参数与接口分析 1、接口分析: (1)、M_AXI_MM2S:DMA的读通道,从DDR中读取数据。受Enable Read Channel控制,表现为M_AXI_MM2S。
DMA_CYCLIC, DMA_INTERLEAVE,/*last transaction type for creation of the capabilities mask*/DMA_TX_TYPE_END, }; 2. struct dma_slave_config含有DMA传输所需要的参数 structdma_slave_config {enumdma_transfer_direction direction;/*传输方向,DMA_MEM_TO_MEM、DMA_MEM_TO_DEV等*/dma_addr_t src_addr...
AXI DMA 提供 3 种模式,分别是 Direct Register 模式、 Scatter/Gather 模式和 Cyclic DMA 模式,这里我们简单的介绍下常用的 Direct Register 模式和 Scatter/Gather 模式。 Direct Register DMA 模式也就是 Simple DMA。 Direct Register 模式提供了一种配置,用于在 MM2S 和S2MM 通道上执行简单的 DMA 传输,这需...
申请一个DMA channel,当filter_fn为NULL时函数只是简单的返回第一个满足mask参数的通道,对于slave和cyclic通道强烈推荐使用以获取一个特定的DMA通道 void dma_release_channel(struct dma_chan *chan) 释放通道 int dmaengine_slave_config(struct dma_chan *chan, struct dam_slave_config *config) ...
struct dma_async_tx_descriptor *dmaengine_prep_dma_cyclic( struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len, size_t period_len, enum dma_data_direction direction);可进行不连续的、交叉的DMA传输,通常用在图像处理、显示等场景中:struct dma_async_tx_descriptor *dmaengine_prep_...