Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

8.7.5.2. DMA 受信チャネル

alt_dma_rxchan 構造体

typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; struct alt_dma_txchan_dev_s { alt_llist llist; const char * name; int( * space)(alt_dma_txchan dma); int( * send)(alt_dma_txchan dma, const void * from, alt_u32 len, alt_txchan_done * done, void * handle); int( * ioctl)(alt_dma_txchan dma, int req, void * arg); };

prepare() 関数を定義する必要があります。ioctl フィールドが null に設定されている場合、alt_dma_rxchan_ioctl() を呼び出すと、このデバイスに対して -ENOTTY が返されます。

alt_dma_rxchan 構造体のインスタンスを作成した後、デバイスドライバーを HAL システムに登録して、次の関数を呼び出して使用できるようにする必要があります。

int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev)

入力引数 dev は、登録するデバイスです。戻り値は、成功した場合は 0、デバイスを登録できない場合は負になります。

表 34.  alt_dma_rxchan 構造体のフィールド
フィールド 説明
llist この関数は内部使用のためのものであり、常に ALT_LLIST_ENTRY の値に設定する必要があります。
name alt_dma_rxchan_open() の呼び出しでこのチャネルを参照する名前です。name は、system.h で定義されているデバイスの名前です。
depth 任意の時点で保留中にできる受信リクエストの総数です。
prepare アプリケーション API 関数 alt_dma_rxchan_prepare() の呼び出しの結果として呼び出される関数へのポインターです。この関数は、DMA デバイスに受信リクエストをポストします。alt_dma_rxchan_prepare() に渡されるパラメーターは、prepare() に直接渡されます。パラメーターと戻り値の説明については、HAL API リファレンスのセクションを参照してください。
ioctl() これは、デバイス固有の I/O コントロールを提供する関数です。デバイスがサポートする可能性のある一般的なオプションのリストについては sys/alt_dma_dev.h を参照してください。