マクロ定義 | |
| #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 | ( | n | ) | (*(vuint32*)(0x040000B8+(n*12))) |
| #define DMA_DEST | ( | n | ) | (*(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 | ( | n | ) | (*(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] |
| static void dmaCopy | ( | const void * | source, | |
| void * | dest, | |||
| uint32 | size | |||
| ) | [inline, static] |
| static void dmaCopyAsynch | ( | const void * | source, | |
| void * | dest, | |||
| uint32 | size | |||
| ) | [inline, static] |
| 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 }
1.5.4