インテルのみ表示可能 — GUID: iga1401397708039
Ixiasoft
インテルのみ表示可能 — GUID: iga1401397708039
Ixiasoft
29.4.1. HALシステム・ライブラリーのサポート
プログラムでHALデバイスドライバーを使用してDMAコントローラーにアクセスする場合、デバイスのレジスターに直接アクセスすると、ドライバーの正しい動作が妨げられます。
HAL DMAドライバーは、DMAプロセスの両端を提供します。ドライバーは、受信チャネル (alt_dma_rxchan) および送信チャネル (alt_dma_txchan) として登録されます。 Nios® II Software Developer’s Handbookには、HALシステム・ライブラリーとDMAデバイスの使用法の完全な詳細が記載されています。
ioctl() の操作
ioctl() 操作要求は受信チャネルと送信チャネルの両方に対して定義されます。これにより、DMAコントローラーのハードウェアに依存する側面を制御することができます。2つのioctl() 関数は、受信側のドライバーと送信側のドライバーに定義されており、それぞれalt_dma_rxchan_ioctl() およびalt_dma_txchan_ioctl() になります。次の表は、利用可能な操作を示しています。これらは送信チャネルと受信チャネルの両方に有効です。
要求 | 意味 |
---|---|
ALT_DMA_SET_MODE_8 | 8ビット単位でデータを転送します。パラメーターのargは無視されます。 |
ALT_DMA_SET_MODE_16 | 16ビット単位でデータを転送します。パラメーターのargは無視されます。 |
ALT_DMA_SET_MODE_32 | 32ビット単位でデータを転送します。パラメーターのargは無視されます。 |
ALT_DMA_SET_MODE_64 | 64ビット単位でデータを転送します。パラメーターのargは無視されます。 |
ALT_DMA_SET_MODE_128 | 128ビット単位でデータを転送します。パラメーターのargは無視されます。 |
ALT_DMA_RX_ONLY_ON (1) | DMAのレシーバーをストリーミング・モードに設定します。この場合、データは単一の位置から継続的に読み出されます。パラメーターのargは、読み出しが行われるアドレスを指定します。 |
ALT_DMA_RX_ONLY_OFF (1) | 受信チャネルのストリーミング・モードをオフにします。パラメーターのargは無視されます。 |
ALT_DMA_TX_ONLY_ON (1) | DMAのトランスミッターをストリーミング・モードに設定します。この場合、データは単一の位置に継続的に書き込まれます。パラメーターのargは、書き込みが行われるアドレスを指定します。 |
ALT_DMA_TX_ONLY_OFF (1) | 送信チャネルのストリーミング・モードをオフにします。パラメーターのargは無視されます。 |
注意
|
制限
現在、インテルが提供しているドライバーでは、64ビットおよび128ビットのDMAトランザクションをサポートしていません。
この関数はスレッドセーフではありません。複数のスレッドからDMAコントローラーにアクセスする場合は、セマフォーまたはミューテックスを使用して、いずれの場合もこの関数内で1つのスレッドのみが実行されるようにする必要があります。