DMA
介绍DMA控制器的配置和dma-slave使用dma的方法
模块介绍
DMA(Direct Memory Access),是一种无需CPU直接控制传输,通过硬件为source和destination之间开辟一条传输数据的通路的方法。 本模块为DMA-controller,即DMAmaster,负责连接dma-channel和完成数据搬运。
功能介绍
通过DMA框架和K1 dma控制器驱动,实现了内存到内存,内存到外设,外设到内存三种传输方向。并实现了内存搬运,散列表传输和环形buffer的传输。
源码结构介绍
dma控制器驱动代码在drivers/dma目录下:
drivers/dma
|--dmaengine.c dmaengine.h #内核dma框架代码
|--dmatest.c #内核dma测试代码
|--mmp_pdma_k1x.c #k1 dma控制器驱动
关键特性
特性
支持内存到内存,内存到外设,外设到内存传输 16路channel可用 burst数支持8 16 32 64 每个传输描述符最大支持8191B传输
性能参数
dma进行内存到内存方向的数据搬运的极限速度为220MB/s
测试方法:可使用dmatest.c进行测试,具体工具使用方法见debug章节