DSP里面QDMA配置,代码如下:
#define DM81XX_EDMA3_CC_BASE (0x49000000)
#define DM81XX_EDMA3_QCHMAP0 (DM81XX_EDMA3_CC_BASE + 0x0200)
#define DM81XX_EDMA3_PARAM_BASE (DM81XX_EDMA3_CC_BASE + 0x4000)
#define OPT (0x00)
#define SRC (0x04)
#define A_B_CNT (0x08)
#define DST (0x0C)
#define SRC_DST_BIDX (0x10)
#define LINK_BCNTRLD (0x14)
#define SRC_DST_CIDX (0x18)
#define CCNT (0x1C)
volatile unsigned int PaRAMEntryAddr = DM81XX_EDMA3_PARAM_BASE + (chId * 0x20);
volatile unsigned int qchmapChId = DM81XX_EDMA3_QCHMAP0 + (chId * 4);
*((volatile unsigned int *) DM81XX_EDMA3_QEESR) |= (1 << chId);
*((volatile unsigned int *) qchmapChId) = (chId << 5) | 0x1C;
*((volatile unsigned int *) (PaRAMEntryAddr + OPT)) = 0x00100008;
*((volatile unsigned int *) (PaRAMEntryAddr + SRC)) = srcAddr;
*((volatile unsigned int *) (PaRAMEntryAddr + A_B_CNT)) = (qdmaHeight << 16) | (qdmaWidth);
*((volatile unsigned int *) (PaRAMEntryAddr + DST)) = dstAddr;
*((volatile unsigned int *) (PaRAMEntryAddr + SRC_DST_BIDX)) = (dstLineOffset << 16) | (srcLineOffset);
*((volatile unsigned int *) (PaRAMEntryAddr + LINK_BCNTRLD)) = (0 << 16) | 0xFFFF;
*((volatile unsigned int *) (PaRAMEntryAddr + SRC_DST_CIDX)) = (0 << 16) | 0;
*((volatile unsigned int *) (PaRAMEntryAddr + CCNT)) = 1;
这样设置,调用之后,并未触发DMA,请问是哪里配置错了吗?