MI_HBlankDmaCopy*

構文

#include <nitro/mi.h>

void MI_HBlankDmaCopy32( u32 dmaNo, const void* src, void* dest, u32 size );
void MI_HBlankDmaCopy16( u32 dmaNo, const void* src, void* dest, u32 size );

void MI_HBlankDmaCopy32If( u32 dmaNo, const void* src, void* dest, u32 size );
void MI_HBlankDmaCopy16If( u32 dmaNo, const void* src, void* dest, u32 size );

引数

dmaNo 使用DMAチャンネル
src 転送元アドレス
dest 転送先アドレス
size 転送サイズ

返り値

なし。

説明

DMAを用いてHブランクコピーを行います。Hブランクが起動したときDMAが起動します。

このモードを使用している場合、メインメモリへのアクセス権を 「ARM9 優先」にしてください。そうでない場合は、 ARM7 側からのメインメモリへのアクセスによる DMA の起動の遅延により、画面が崩れる可能性があります。アクセス権の優先の指定は MI_SetMainMemoryPriority() で行ないます。

MI_HBlankDmaCopy32If(), MI_HBlankDmaCopy16If() は、DMA終了時にDMA割り込みを発生します。


DMAコントローラの不具合

MI_DmaCopy() のリファレンス中の「DMAコントローラの不具合」を参照してください。

内部動作

IOレジスタのDMAnソースレジスタ(0x40000B0 + 12n)、DMAnデスティネーションレジスタ(0x40000B4 + 12n)、DMAnコントロールレジスタ(0x40000B8 + 12n)を使用します。( n は 使用するDMAチャンネルです。)

参照

MI_DmaCopy*, MI_SetMainMemoryPriority

履歴

2009/11/20 DMAコントローラの不具合について追記
2004/08/26 DMA 使用時にメインメモリへのアクセス権を「ARM9 優先」に設定することの記述追加
2003/12/01 初版