我试图了解 PCI Express 的工作原理,以便我可以编写一个 Windows 驱动程序,该驱动程序可以读取和写入没有板载内存的自定义 PCI Express 设备。
我理解 PCIE 配置空间中的基地址寄存器 (BAR) 保存 PCI Express 应响应/允许写入的内存地址。(这样理解正确吗?)
我的问题如下:
- 当谈到 PCIE 时,与物理地址相比,“总线特定地址”是什么?
- 何时以及如何向 BAR 填充地址?驱动程序是否负责分配内存并将地址写入外设 BAR?
- BAR 中的地址可以在运行时更改吗?
- 从外围设备向主机内存传输数据时是否使用 DMA?
我很感谢您的时间。
此致,