MI_HBlankDmaCopy*

Syntax

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

Arguments

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

Return Values

None.

Description

Uses DMA to copy a H-Blank. When a H-Blank starts, DMA starts.

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

The MI_HBlankDmaCopy32If and MI_HBlankDmaCopy16If functions generate DMA interrupts when DMA terminates.


DMA Controller Bugs

See the section titled "DMA Controller Bugs" in the reference for the MI_DmaCopy function.

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.))

See Also

MI_DmaCopy*
MI_SetMainMemoryPriority

Revision History

2009/11/20 Added a description of bugs for the DMA controller.
2004/08/26 Explained that access rights to main memory during DMA use are set to ARM9 priority.
2003/12/01 Initial version.


CONFIDENTIAL