MI_DmaClear*

構文

#include <nitro/mi.h>

void MI_DmaClear32( u32 dmaNo,
          void* dest,
          u32 size );


void MI_DmaClear32_SetUp( u32 dmaNo,
          void* dest,
          u32 size );


void MI_DmaClear16( u32 dmaNo,
          void* dest,
          u32 size );


void MI_DmaClear16_SetUp( u32 dmaNo,
          void* dest,
          u32 size );


void MI_DmaClear32Async( u32 dmaNo,
          void* dest,
          u32 size,
          MIDmaCallback callback,
          void* arg );


void MI_DmaClear32Async_SetUp( u32 dmaNo,
          void* dest,
          u32 size,
          MIDmaCallback callback,
          void* arg );


void MI_DmaClear16Async( u32 dmaNo,
          void* dest,
          u32 size,
          MIDmaCallback callback,
          void* arg );


void MI_DmaClear16Async_SetUp( u32 dmaNo,
          void* dest,
          u32 size,
          MIDmaCallback callback,
          void* arg );

引数

dmaNo 使用DMAチャンネル
dest クリア先アドレス
size クリアサイズ
callback DMA終了時のコールバック
arg DMA終了時のコールバック引数

返り値

なし。

説明

DMA を用いてメモリをゼロクリアします。

*_SetUp() は実際にはDMAを行なわず、その設定のみを行います。実際のDMA開始は MI_DmaRestart() を呼んで下さい。

MI_DmaClear16() , MI_DmaClear16Async() は 16ビット単位でメモリを0で埋めます。クリア先アドレスは2バイトアラインメントする必要があります。
MI_DmaClear32() , MI_DmaClear32Async() は 32ビット単位でメモリを0で埋めます。クリア先アドレスは4バイトアラインメントする必要があります。

MI_DmaClear16(), MI_DmaClear32() はDMAの終了を関数内で待ちます。
MI_DmaClear16Async(), MI_DmaClear32Async() は、DMA終了時にコールバックを呼びます。コールバック callback は MIDmaCallback 型 ( void* 引数1つを取る void 型関数 ) です。callback は システムのDMA割り込みハンドラ内から呼び出されますので、割り込み禁止状態で呼び出されます。

内部動作

MI_DmaFill*() を呼んでいます。

参照

MI_DmaCopy*, MI_DmaFill*, MI_DmaSend*, MI_CpuClear*, MI_DmaRestart

履歴

2007/10/31 _SetUp() 追加
2005/03/08 用語統一 [割込み] → [割り込み]
2004/12/22 callback の呼び出しについての記述を追加
2003/12/01 初版