MI_HBlankDmaCopy*


C Specification

#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 );
    

Description

This function uses DMA to copy a H-Blank. When a H-Blank starts, DMA starts.

When using this mode, the access right to main memory should be set to "ARM9 Priority." Otherwise, the screen may not be displayed properly due to the delay that is caused by the startup of the DMA memory as ARM7 accesses the main memory. The access right priority can be specified with MI_SetMainMemoryPriority.

The functions void MI_HBlankDmaCopy32If() and void MI_HBlankDmaCopy16If() generate DMA interrupts when DMA terminates.

Internal Operation

Uses the following IO registers: DMAn source register (0x40000B0 + 12n), DMAn destination register (0x40000B4 + 12n), and DMAn control register (0x40000B8 + 12n). (n is the DMA channel used.)

Arguments

dmaNo DMA channel used
src Transfer source address
dest Transfer destination address
size Transfer size

Return Values

None

See Also

MI_DmaCopy*, MI_SetMainMemoryPriority

Revision History

10/18/2004 Added section to C Spec and text about DMA interrupts when ending DMA.
08/26/2004 Added description about the setting of the ARM9 priority to access the main memory when using the DMA memory.
12/01/2003 Initial version.