このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。
17.6.2.4. バッファーサイズの計算
DMAは、送信および受信記述子のサイズフィールドを更新しません。DMAは、記述子のステータスフィールド (RDESおよびTDES) のみを更新します。ドライバーはサイズの計算を行う必要があります。
送信DMAは、TDES1のバッファー・サイズ・フィールドで示されているサイズに等しいバイト数をMACに転送します。記述子が1番目としてマークされている (TDES1のFSビットが設定されている) 場合、DMAは、バッファーからの最初の転送をフレームの開始としてマークします。記述子が最後としてマークされている場合 (TDES1のLSビット)、DMAは、そのデータバッファーからの最後の転送を、MTLへのフレームの終わりとしてマークします。
受信DMAは、バッファーがフルになるまで、もしくはMTLからフレームの終わりを受信するまで、データをバッファーに転送します。記述子が最後 (RDES0のLSビット) としてマークされていない場合、記述子の対応するバッファーはフルです。また、バッファー内の有効なデータの量は、その記述子のFSビットが設定されている場合、そのバッファー・サイズ・フィールドからデータ・バッファー・ポインターのオフセットを引くことで正確に示されます。データ・バッファー・ポインターがデータバス幅にアライメントされている場合、オフセットは0です。記述子が最後としてマークされている場合に、バッファーがフルではないことがあります (バッファーのサイズはRDES1で示されます)。この最終バッファー内の有効なデータの量を計算するには、ドライバーでフレーム長 (RDES0のFLビット [29:16]) を読み出し、このフレームの先行するバッファーの合計バッファーサイズを引く必要があります。受信DMAは常に、次のフレームの開始を新しい記述子で転送します。