我正在使用Windriver Jungo测试连接到PC的PCI Express设备。我能够以8/16/32/64位模式读/写存储器,并且电路板响应非常好。但我怀疑的是,根据PCI express规范,我们可以发送一个128字节到4096字节的TLP数据包。如何使用驱动程序实现此传输。现在它只传输8字节(64位模式)数据。如果我发送更多数据,则将数据拆分为8byte数据包,然后发送。请清除我的疑问,并在Windows或Linux中为PCI Express建议任何其他驱动程序选项?
答案 0 :(得分:1)
您正在尝试PIO读写,而不是DMA。 PIO读/写TLP在数据包中只有双字长度数据。对于突发数据传输(其数据最多为4096字节,但主板芯片组可能限制为128字节),您必须启动从PCIE设备到PC的读/写操作,而不是从PC到PCIE。
答案 1 :(得分:0)
之前我使用过windriver与PCIE FPGA套件进行通信,它可以在程序指定的任何有效负载(128-4K)下正常工作。这可能是您写入BAR位置的方式。检查您是将数据发送到相同的BAR地址位置还是不同的BAR地址位置。