テクニカル ドキュメント #77



Doc ID: 77
製品: WinDriver
Version:  --

ある PCI カードから他のカードへ Direct Block 転送をどのように実行しますか?

両方のカードを検出しレジストします (WD_PciScanCards()、WD_PciGetCardInfo() および WD_CardRegister() 関数を使用)。
どちらからのカードを PCI DMA Master Capable にする必要があります。Slave カードの物理アドレスでそれをプログラムします。スレーブ カードの WD_PciGetCardInfo() で設定された pciCard.Card.Item[i].I.Mem.dwPhysicalAddr を使用することによって、このアドレスを取得できます。

[詳細は WinDriver のユーザー マニュアルを参照してください]。

DMA 実行のサンプルは、たとえば、Scatter/Gather DMA の場合、サンプル コード ページ (または WinDriver\plx\9054\lib ディレクトリ以下) の "P9054_LIB.C" で、または、連続バッファDMA の場合、WinDriver\amcc\lib\amcclib.c です。