MI_VBlankNDmaCopy*

構文

#include <twl/mi.h>

void MI_VBlankNDmaCopy( u32 ndmaNo,
                     const void *src,
              void *dest,

                     u32 size );
void MI_VBlankNDmaCopyAsync( u32 ndmaNo,
                     const void *src,
              void *dest,

                     u32 size,
              MINDmaCallback calback,
              void* arg );

引数

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

返り値

なし。

説明

新規DMAを用いてVブランクコピーを行います。Vブランクが発生したときにDMAが起動します。

新規DMAを用いてワード(4byte)単位でコピーを行います。転送元アドレス src、転送先アドレスdest は4バイトアラインメントする必要があります。転送サイズ size も4の倍数である必要があります。

MI_VBlankNDmaCopy() は Vブランク発生時にDMAを起動して終了します。MI_VBlankNDmaCopyAsync() は、Vブランク発生時にDMAを起動して、DMA終了時にコールバック callback を呼びます。コールバックは MINDmaCallback型 (void*引数1つを取る void型関数 ) です。callback はシステムの DMA割り込みハンドラ内から呼び出されますので、割り込み禁止状態で呼び出されます。

Async型のAPIの機能を引き出すにはその使用法を十分に理解する必要があります。

内部動作

新規DMAレジスタにアクセスします。

参照

MI_NDmaCopy

履歴

2007/10/04 初版