2012-02-11 6 views
1

私はDMAを実装する必要があるLinuxにデバイスドライバを書いています。LinuxでDMAにアクセスする方法

pci_alloc_consistent()を呼び出してDMAのバッファを割り当てることができることは明らかです。しかし、これらのバッファにどのようにコマンドをユーザーレベルから書き込むことができますか?

タスクには特定のレジスタに値を書き込む作業が含まれていますが、これらはどのようにDMAコマンドを使用して実装されていますか?

+0

ユーザーレベルとは、ユーザー空間を意味しますか?一般的なユーザー空間を利用できるアプローチはありますが、DMAハードウェアの可視性はありません。 – stsquad

答えて

1

私はあなたがGNU Cライブラリを介してアクセスできるI/O操作を通じてDMAで書き込むことができると信じています。 iopermやioplなどのシステムコールを使用し、DMAレジスタにアクセスするにはルートとして実行する必要があります。少なくとも、DMAアクセスに使用されるIO空間へのアクセスをどのように得るか。私は完全に質問に答えることはできませんが、うまくいけば、これは良い方向にあなたを指しています。