2013-09-26 101 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配置寄存器。 –

相关问题