4

PCに接続されたPCIExpressデバイスのテストにWindriverJungoを使用しています。8/16/32/64ビットモードでメモリの読み取り/書き込みが可能で、ボードの応答は非常に良好です。しかし、私の疑問は、PCI Expressの仕様によれば、128バイトから4096バイトまでのTLPパケットを送信できるということです。ドライバーを使用してこの転送を実現するにはどうすればよいですか。現在、8バイト(64ビットモード)のデータのみを転送します。送信するデータを増やすと、データが8バイトのパケットに分割されて送信されます。私の疑問を解消し、WindowsまたはLinuxでのPCIExpressの他のドライバーオプションを提案してください。

4

2 に答える 2

2

DMA ではなく、PIO 読み書きを試みています。PIO 読み取り/書き込み TLP は、パケット内にダブルワード長のデータのみを持ちます。バースト データ転送 (データは最大 4096 バイトですが、マザーボードのチップセットによっておそらく 128 バイトに制限されます) の場合、PC から PCIE ではなく、PCIE デバイスから PC への読み取り/書き込みを開始する必要があります。

于 2013-04-25T20:22:27.067 に答える
0

以前は windriver を使用して PCIE FPGA キットと通信していましたが、プログラムが指定する任意のペイロード (128 ~ 4K) で問題なく動作します。BAR の場所に書き込む方法かもしれません。データを同じ BAR アドレスの場所に送信しているか、別の BAR アドレスの場所に送信しているかを確認してください。

于 2013-03-21T04:22:55.127 に答える