0

DMAが実際にどのように機能するかは、私が知っている理論です;-- http://en.wikipedia.org/wiki/Direct_memory_access

しかし、プログラミングでは、それをどのように管理しなければならないのでしょうか?

私は RPI を使用しており、DMA を使用して次の操作を実装することを楽しみにしています。
SPI ---- TX 読み取りデータ --- USART を使用して SD カードから読み取りたいとします。

データ転送用のルーチンを作成して dma に渡す必要がありますか、それとも DMA tx & rx チャネルによって処理されますか?

それに使用するLinuxの内部構造は何ですか?

この点に関して、何人かの専門家がどのような手順に従うべきかを教えていただけますか。私はDMAプログラミングが初めてです.lin

4

1 に答える 1

0

RaspberrypiSoCハードウェア仕様を確認できます。 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。私はBroadcomSoCの専門家ではありません。おそらく、デフォルト値を使用して構成できます。

于 2012-12-04T08:42:14.647 に答える