Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Usb QEMU PCI内存映射I/O_Usb_Qemu_Pci - Fatal编程技术网

Usb QEMU PCI内存映射I/O

Usb QEMU PCI内存映射I/O,usb,qemu,pci,Usb,Qemu,Pci,我试图理解USB PCI MMIO,我使用QEMU作为游戏平台 以下设备位于我的虚拟机上 00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) (prog-if 00 [UHCI]) Subsystem: Red Hat, Inc. QEMU Virtual Machine Flags: bus master, fast devsel, late

我试图理解USB PCI MMIO,我使用QEMU作为游戏平台

以下设备位于我的虚拟机上

00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) (prog-if 00 [UHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 16
    I/O ports at c0a0 [size=32]
    Kernel driver in use: uhci_hcd

00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) (prog-if 00 [UHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 17
    I/O ports at c0c0 [size=32]
    Kernel driver in use: uhci_hcd

00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) (prog-if 00 [UHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 18
    I/O ports at c0e0 [size=32]
    Kernel driver in use: uhci_hcd

00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) (prog-if 20 [EHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 19
    Memory at fc072000 (32-bit, non-prefetchable) [size=4K]
    Kernel driver in use: ehci-pci
以及以下代码

int fd = open("/sys/devices/pci0000:00/0000:00:1d.7/resource0", O_RDWR | O_SYNC);
int mmio = mmap(0, 0x100, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
iopl(3);
outl(0, 0xc0a0);
如果我不包括
outl(0,0xc0a0)似乎对MMIO地址空间的任何写入都不会触发任何事件

希望尝试并理解
outl(0,0xc0a0)的确切含义实现。

outl()
写入数据。在您的代码中,除了
outl()

如果您想了解更多关于
outl
的内部信息,请使用gdb并对其进行反汇编

outl()
写入数据。在您的代码中,除了
outl()

如果您想了解更多关于
outl
的内部信息,请使用gdb并对其进行反汇编