Hi
I am trying to use the QDMA on the c6713 to copy a small array from IRAM to SDRAM, but I cannot get it to work.
The reason I am using QDMA is that once my HW is ready the destination will be moved to an external memory address.
My source look like this
/*Global declaration of source and destination buffers*/
_NEAR Uint16 qdma_test_buffer_src[4] = {1, 2, 3, 4}; /* placed in IRAM */
Uint16 qdma_test_buffer_dst[4] = {0, 0, 0, 0}; /* placed in SDRAM */
/* EDMA_Config TestQDMA */
EDMA_Config TestQDMA = {
EDMA_OPT_RMK(
EDMA_OPT_PRI_HIGH,
EDMA_OPT_ESIZE_16BIT,
EDMA_OPT_2DS_NO,
EDMA_OPT_SUM_INC,
EDMA_OPT_2DD_NO,
EDMA_OPT_DUM_INC,
EDMA_OPT_TCINT_NO,
EDMA_OPT_TCC_OF(0),
EDMA_OPT_LINK_NO,
EDMA_OPT_FS_NO
),
EDMA_SRC_OF((Uint32) qdma_test_buffer_src),/* Source address register */
EDMA_CNT_OF(4), /* Transfer count parameter */
EDMA_DST_OF((Uint32) qdma_test_buffer_dst), /* Destination address parameter */
EDMA_IDX_OF(0x00000000), /* Index parameter */
EDMA_RLD_OF(0x00000000) /* Count reload/link parameter */
};
/*
* ======== cslCfgInit() ========
*/
void cslCfgInit()
{
EDMA_qdmaConfig(&TestQDMA);
}
int main()
{
CSL_init();
cslCfgInit();
Framework_Init(ApplLibInit, FALSE, PROCESSOR_FDSP); /* start of DSPBIOS */
}
I have a breakpoint i main after I call cslCfgInit() and in the emulator I can see that qdma_test_buffer_dst is still zero.
In the Emulator I can see that the EDMA handle TestQDMA is setup with the right source, destination and count, and the option field is also as expected.

Does anybody know what I am doing wrong?
Thanks
Jens Biltoft