2012-02-11 61 views
1

我在Linux下編寫設備驅動程序,我需要實現DMA如何訪問DMA在Linux中

顯然,DMA緩衝區可以通過向pci_alloc_consistent()呼叫分配。但是,我們如何從用戶級別向這些緩衝區寫入命令?

任務包括寫值特定的寄存器,如何實現這些使用DMA命令?

+0

當你說用戶級別,你從用戶空間的意思。雖然您可以採取一些方法,但通常用戶空間不具有DMA硬件的可見性。 – stsquad 2012-02-15 13:07:20

回答

1

我相信你可以通過I/O操作寫入DMA,你可以通過GNU C庫訪問它。您必須使用系統調用(如ioperm或iopl)並以root用戶身份運行以訪問DMA寄存器。至少這是如何獲得可用於DMA訪問的IO空間的訪問權限。雖然我可能不會完全回答這個問題,但希望這能指出你的方向。