4

我正在使用 Windriver Jungo 测试连接到我的 PC 的 PCI Express 设备。我可以在 8/16/32/64 位模式下读/写内存,并且板子响应非常好。但我怀疑的是,根据 PCI Express 规范,我们可以发送一个从 128 字节到 4096 字节的 TLP 数据包。如何使用驱动程序实现此传输。现在它只传输 8 字节(64 位模式)数据。如果我要发送更多数据,那么它将数据拆分为 8 字节数据包,然后发送。请清除我的疑问并建议 Windows 或 Linux 中 PCI Express 的任何其他驱动程序选项?

4

2 回答 2

2

您正在尝试 PIO 读写,而不是 DMA。PIO 读/写 TLP 在数据包中只有双字长度数据。对于突发数据传输(数据高达 4096 字节,但可能会被主板芯片组限制为 128 字节),您必须启动从 PCIE 设备到 PC 的读/写,而不是从 PC 到 PCIE。

于 2013-04-25T20:22:27.067 回答
0

我之前使用 windriver 与 PCIE FPGA 套件通信,它适用于程序指定的任何有效负载(128-4K)。这可能是您写入 BAR 位置的方式。检查您是否将数据发送到相同的 BAR 地址位置或不同的 BAR 地址位置。

于 2013-03-21T04:22:55.127 回答