gpt4 book ai didi

linux - PCIe Driver - 用户空间如何访问它?

转载 作者:IT王子 更新时间:2023-10-29 00:37:41 31 4
gpt4 key购买 nike

我正在为 Linux 编写一个 PCIe 驱动程序,目前没有 DMA,并且需要知道一旦从用户空间启用它后如何读取和写入 PCIe 设备。

在驱动程序中,我在 probe() 中执行基础操作:

pci_enable_device();
pci_request_regions();
pci_iomap();

但是我如何从用户空间访问这 block 内存进行读写呢?我是否将文件操作添加到我的 PCIe 驱动程序?来自 pci_iomap 的内存是否显示了用户空间代码可以调用的某个地方:

open('mapped memory location');
mmap(...);

如果有那么位置是什么?

注意:PCIe 设备不会插入任何 Linux 子系统,例如音频、以太网等。

最佳答案

如果你只想将内存从内核空间导出到用户空间并获得中断,请考虑 UIO driver .

有了它,所有的访问都将通过/dev/uioX 文件完成。您可以对其执行 mmap() 以导出内存,并且可以读取(使用阻塞读取)以“捕获”中断。

UIO 非常适合 PCIe,already is a driver在内核中。

关于linux - PCIe Driver - 用户空间如何访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35276634/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com