LINUX - 用于数据传输的DMA - 从SPI---tx读取到usart - RPi



DMA的实际工作原理是我知道的理论;--http://en.wikipedia.org/wiki/Direct_memory_access

但是在编程中我们必须如何管理它?

我正在使用RPI,并期待使用DMA实现以下操作。
假设如果我想使用 SPI 从 SD 卡读取 ---- TX 读取数据---到 USART。

我是否必须编写例程进行数据传输并将它们提供给dma,或者它由DMA tx和rx通道处理?

使用什么Linux内部?

一些专家能否告诉在这方面要采取哪些步骤。我是DMA编程的新手。

您可以查看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 传输后,它将触发中断。

粗略回顾博通的SoC。它还有其他选项,例如:WAITS,PERMAP。我不是博通SoC专家,也许您可以使用默认值来配置它。

最新更新