

#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割り込みを発生します。
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 初版