#include <nitro/mi.h>
void MI_DmaFill32( u32 dmaNo,
void* dest,
u32 data,
u32 size );
void MI_DmaFill32_SetUp( u32 dmaNo,
void* dest,
u32 data,
u32 size );
void MI_DmaFill16( u32 dmaNo,
void* dest,
u16 data,
u32 size );
void MI_DmaFill16_SetUp( u32 dmaNo,
void* dest,
u16 data,
u32 size );
void MI_DmaFill32Async( u32 dmaNo,
void* dest,
u32 data,
u32 size,
MIDmaCallback callback,
void* arg );
void MI_DmaFill32Async_SetUp( u32 dmaNo,
void* dest,
u32 data,
u32 size,
MIDmaCallback callback,
void* arg );
void MI_DmaFill16Async( u32 dmaNo,
void* dest,
u16 data,
u32 size,
MIDmaCallback callback,
void* arg );
void MI_DmaFill16Async_SetUp( u32 dmaNo,
void* dest,
u16 data,
u32 size,
MIDmaCallback callback,
void* arg );
dmaNo | DMA channel used. |
dest | The transfer destination address. |
data | The data that will be transferred |
size | Transfer size. |
callback | Callback when DMA ends. |
arg | Callback argument when DMA ends. |
None.
Uses DMA to fill memory with the specified data.
The *_SetUp
functions only configure the given settings without actually performing DMA. To actually start DMA, call the MI_DmaRestart
function.
The MI_DmaFill16*
functions fill memory with the specified data in 16-bit units. You must 2-byte align the transfer destination address. The MI_DmaFill32*
functions fill memory with the specified data in 32-bit units. The transfer destination address must be 4-byte aligned.
MI_DmaFill16()
and MI_DmaFill32()
wait within the function until DMA completes. MI_DmaFill16Async*()
and MI_DmaFill32Async*()
call the callback function when DMA ends. The callback, callback
, is a MIDmaCallback
type (a void
type function that takes one void*
argument). callback
is called from the system DMA interrupt handler and therefore is called while interrupts are prohibited.
See the section titled "DMA Controller Bugs" in the reference for the MI_DmaCopy
function.
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.))In addition, the HW_DMA_CLEAR_DATA_BUF
region is used for fill. This region is occupied by shared memory for the TEG board but is mapped to the IO registers for TS.
MI_DmaCopy*
MI_DmaClear*
MI_DmaSend*
MI_CpuFill*
MI_DmaRestart
2009/11/30 Changed the data argument used with functions for handling 16-bit data from u32 to u16.
2009/11/20 Added a description of bugs in the DMA controller.
2007/10/31 Added _SetUp()
.
2005/03/08 Standardized the notation used for the term "interrupt" in Japanese.
2004/12/22 Added a description of calling the callback.
2003/12/01 Initial version.
CONFIDENTIAL