2013-09-26 104 views
0

我正在嘗試編寫在用戶空間中運行的PCI設備驅動程序。不是我的想法,客戶想要什麼。目標是一個嵌入式Linux板,永遠不會超過一個用戶。我是一名經驗豐富的C程序員,並且熟悉Linux,對Linux驅動程序開發不熟悉。Linux用戶空間PCI驅動程序

這真的是設備驅動程序還是圖書館?我是否需要使用典型的調用pci_register_driver等,或者我可以使用fopen訪問設備,並使用mmap和ioperm來實現它?

中斷將使用MSI模型完成。還需要處理DMA傳輸。該設備將流式傳輸大量數據給用戶。

在這個問題上沒有太多的信息,LDD3只用了幾頁,沒有其他的東西可以在這裏找到。

在此先感謝!

回答

1

如果沒有驅動程序處理PCI卡,如果只需要端口訪問,則可以使用ioperm(或iopl - 取決於地址)訪問它。

沒有內核模式驅動程序,使用DMA和中斷是絕對不可能的。

通過谷歌我發現了一些關於像「通用內核模式驅動程序」,允許編寫用戶模式驅動程序(包括DMA和中斷)的文字。

您應該詢問您的客戶在Linux板上安裝了哪種用於訪問PCI卡的內核模式驅動程序。

+0

謝謝你的回答。我發現可以鏈接到用戶程序的libpci-dev軟件包,它確實提供了一些有限的功能。但正如你所說,DMA和中斷處理缺失。開發pci庫幾乎只是讓你讀/寫pci配置寄存器。 –

相關問題