DMA如何实际运作是我所知道的理论; - http://en.wikipedia.org/wiki/Direct_memory_access
但在编程我们如何管理它?
我正在使用RPI&期待使用DMA实现以下操作 假设我想使用SPI读取SD卡---- TX读取数据---到USART。
我是否必须为数据传输编写例程&给他们dma或它是DMA tx& rx频道?
用于它的linux内部是什么?
有些专家可以说明在这方面应采取的步骤。我是DMA programming.lin
的新手答案 0 :(得分:0)
您可以查看Raspberrypi SoC硬件规格。 http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
Broadcom DMA支持SPI TX / RX和SD主机接口。这意味着它至少可以支持设备到内存(我不确定broadcom SoC是否支持设备到设备DMA)。
不同的SoC具有不同的DMA配置方式。 例如,它只需要在一些简单的DMA引擎上分配源地址,递增/递减(长度),目标地址,递增/递减(长度),计数器和中断。 完成DMA传输后,将触发中断。
粗略回顾Broadcom的SoC。 它有其他选择,例如:WAITS,PERMAP。 我不是Broadcom SoC专家,也许您可以使用默认值来配置它。