nds/dma.h


マクロ定義

#define DMA0_SRC   (*(vuint32*)0x040000B0)
#define DMA0_DEST   (*(vuint32*)0x040000B4)
#define DMA0_CR   (*(vuint32*)0x040000B8)
#define DMA1_SRC   (*(vuint32*)0x040000BC)
#define DMA1_DEST   (*(vuint32*)0x040000C0)
#define DMA1_CR   (*(vuint32*)0x040000C4)
#define DMA2_SRC   (*(vuint32*)0x040000C8)
#define DMA2_DEST   (*(vuint32*)0x040000CC)
#define DMA2_CR   (*(vuint32*)0x040000D0)
#define DMA3_SRC   (*(vuint32*)0x040000D4)
#define DMA3_DEST   (*(vuint32*)0x040000D8)
#define DMA3_CR   (*(vuint32*)0x040000DC)
#define DMA_SRC(n)   (*(vuint32*)(0x040000B0+(n*12)))
#define DMA_DEST(n)   (*(vuint32*)(0x040000B4+(n*12)))
#define DMA_CR(n)   (*(vuint32*)(0x040000B8+(n*12)))
#define DMA_ENABLE   BIT(31)
#define DMA_BUSY   BIT(31)
#define DMA_IRQ_REQ   BIT(30)
#define DMA_START_NOW   0
#define DMA_START_CARD   (5<<27)
#define DMA_START_VBL   BIT(27)
#define DMA_16_BIT   0
#define DMA_32_BIT   BIT(26)
#define DMA_REPEAT   BIT(25)
#define DMA_SRC_INC   (0)
#define DMA_SRC_DEC   BIT(23)
#define DMA_SRC_FIX   BIT(24)
#define DMA_DST_INC   (0)
#define DMA_DST_DEC   BIT(21)
#define DMA_DST_FIX   BIT(22)
#define DMA_DST_RESET   (3<<21)
#define DMA_COPY_WORDS   (DMA_ENABLE | DMA_32_BIT | DMA_START_NOW)
#define DMA_COPY_HALFWORDS   (DMA_ENABLE | DMA_16_BIT | DMA_START_NOW)
#define DMA_FIFO   (DMA_ENABLE | DMA_32_BIT | DMA_DST_FIX | DMA_START_FIFO)

関数

static void dmaCopyWords (uint8 channel, const void *src, void *dest, uint32 size)
static void dmaCopyHalfWords (uint8 channel, const void *src, void *dest, uint32 size)
static void dmaCopy (const void *source, void *dest, uint32 size)
static void dmaCopyWordsAsynch (uint8 channel, const void *src, void *dest, uint32 size)
static void dmaCopyHalfWordsAsynch (uint8 channel, const void *src, void *dest, uint32 size)
static void dmaCopyAsynch (const void *source, void *dest, uint32 size)
static void dmaFillWords (const void *src, void *dest, uint32 size)
static void dmaFillHalfWords (const void *src, void *dest, uint32 size)
static int dmaBusy (uint8 channel)

マクロ定義

#define DMA0_CR   (*(vuint32*)0x040000B8)

#define DMA0_DEST   (*(vuint32*)0x040000B4)

#define DMA0_SRC   (*(vuint32*)0x040000B0)

#define DMA1_CR   (*(vuint32*)0x040000C4)

#define DMA1_DEST   (*(vuint32*)0x040000C0)

#define DMA1_SRC   (*(vuint32*)0x040000BC)

#define DMA2_CR   (*(vuint32*)0x040000D0)

#define DMA2_DEST   (*(vuint32*)0x040000CC)

#define DMA2_SRC   (*(vuint32*)0x040000C8)

#define DMA3_CR   (*(vuint32*)0x040000DC)

#define DMA3_DEST   (*(vuint32*)0x040000D8)

#define DMA3_SRC   (*(vuint32*)0x040000D4)

#define DMA_16_BIT   0

#define DMA_32_BIT   BIT(26)

#define DMA_BUSY   BIT(31)

#define DMA_COPY_HALFWORDS   (DMA_ENABLE | DMA_16_BIT | DMA_START_NOW)

#define DMA_COPY_WORDS   (DMA_ENABLE | DMA_32_BIT | DMA_START_NOW)

#define DMA_CR (  )     (*(vuint32*)(0x040000B8+(n*12)))

#define DMA_DEST (  )     (*(vuint32*)(0x040000B4+(n*12)))

#define DMA_DST_DEC   BIT(21)

#define DMA_DST_FIX   BIT(22)

#define DMA_DST_INC   (0)

#define DMA_DST_RESET   (3<<21)

#define DMA_ENABLE   BIT(31)

#define DMA_FIFO   (DMA_ENABLE | DMA_32_BIT | DMA_DST_FIX | DMA_START_FIFO)

#define DMA_IRQ_REQ   BIT(30)

#define DMA_REPEAT   BIT(25)

#define DMA_SRC (  )     (*(vuint32*)(0x040000B0+(n*12)))

#define DMA_SRC_DEC   BIT(23)

#define DMA_SRC_FIX   BIT(24)

#define DMA_SRC_INC   (0)

#define DMA_START_CARD   (5<<27)

#define DMA_START_NOW   0

#define DMA_START_VBL   BIT(27)


関数

static int dmaBusy ( uint8  channel  )  [inline, static]

00147                                          {
00148         return (DMA_CR(channel) & DMA_BUSY)>>31;
00149 }

static void dmaCopy ( const void *  source,
void *  dest,
uint32  size 
) [inline, static]

00107                                                                           {
00108         DMA_SRC(3) = (uint32)source;
00109         DMA_DEST(3) = (uint32)dest;
00110         DMA_CR(3) = DMA_COPY_HALFWORDS | (size>>1);
00111         while(DMA_CR(3) & DMA_BUSY);
00112 }

static void dmaCopyAsynch ( const void *  source,
void *  dest,
uint32  size 
) [inline, static]

00127                                                                                 {
00128         DMA_SRC(3) = (uint32)source;
00129         DMA_DEST(3) = (uint32)dest;
00130         DMA_CR(3) = DMA_COPY_HALFWORDS | (size>>1);
00131 }

static void dmaCopyHalfWords ( uint8  channel,
const void *  src,
void *  dest,
uint32  size 
) [inline, static]

00100                                                                                              {
00101         DMA_SRC(channel) = (uint32)src;
00102         DMA_DEST(channel) = (uint32)dest;
00103         DMA_CR(channel) = DMA_COPY_HALFWORDS | (size>>1);
00104         while(DMA_CR(channel) & DMA_BUSY);
00105 }

static void dmaCopyHalfWordsAsynch ( uint8  channel,
const void *  src,
void *  dest,
uint32  size 
) [inline, static]

00121                                                                                                    {
00122         DMA_SRC(channel) = (uint32)src;
00123         DMA_DEST(channel) = (uint32)dest;
00124         DMA_CR(channel) = DMA_COPY_HALFWORDS | (size>>1);
00125 }

static void dmaCopyWords ( uint8  channel,
const void *  src,
void *  dest,
uint32  size 
) [inline, static]

00093                                                                                          {
00094         DMA_SRC(channel) = (uint32)src;
00095         DMA_DEST(channel) = (uint32)dest;
00096         DMA_CR(channel) = DMA_COPY_WORDS | (size>>2);
00097         while(DMA_CR(channel) & DMA_BUSY);
00098 }

static void dmaCopyWordsAsynch ( uint8  channel,
const void *  src,
void *  dest,
uint32  size 
) [inline, static]

00114                                                                                                {
00115         DMA_SRC(channel) = (uint32)src;
00116         DMA_DEST(channel) = (uint32)dest;
00117         DMA_CR(channel) = DMA_COPY_WORDS | (size>>2);
00118 
00119 }

static void dmaFillHalfWords ( const void *  src,
void *  dest,
uint32  size 
) [inline, static]

00140                                                                                {
00141         DMA_SRC(3) = (uint32)src;
00142         DMA_DEST(3) = (uint32)dest;
00143         DMA_CR(3) = DMA_SRC_FIX | DMA_COPY_HALFWORDS | (size>>1);
00144         while(DMA_CR(3) & DMA_BUSY);
00145 }

static void dmaFillWords ( const void *  src,
void *  dest,
uint32  size 
) [inline, static]

00133                                                                            {
00134         DMA_SRC(3) = (uint32)src;
00135         DMA_DEST(3) = (uint32)dest;
00136         DMA_CR(3) = DMA_SRC_FIX | DMA_COPY_WORDS | (size>>2);
00137         while(DMA_CR(3) & DMA_BUSY);
00138 }


libnds(ARM7)に対してTue Jan 22 15:38:45 2008に生成されました。  doxygen 1.5.4