Hi All, I'm using the TMS320C6415 with code composer 2.2 and CSL. I try to setup a EDMA transfer but it does not seems to work. The problem is that the dma 'done interrupt' does not occured. Function 'Edma_Interrupt' is called when interrupt 8 occures (but int8 does not). Below you see my test source code. The CPU sets the event so I do not use a hardware event. When I step through this code and execute "EDMA_setChannel(hEdma0);" I see at the debugger that the event set register (ESRL) does not set. So I can't trigger an event to start the EDMA. Even when I write directly to the register "Write32(0x01A0FFFC,0x00000800);" it won't work. What is wrong here?----------- Source code-------------------------------- void Edma_Transfer(void) { EDMA_Handle hEdma0; IRQ_reset(IRQ_EVT_EDMAINT); EDMA_clearPram(0x00000000); hEdma0A_open(EDMA_CHA_GPINT3, EDMA_OPEN_RESET); EDMA_configArgs(hEdma0, EDMA_OPT_RMK( EDMA_OPT_PRI_MEDIUM, EDMA_OPT_ESIZE_16BIT, EDMA_OPT_2DS_NO, EDMA_OPT_SUM_NONE, EDMA_OPT_2DD_NO, EDMA_OPT_DUM_NONE, EDMA_OPT_TCINT_YES, EDMA_OPT_TCC_OF(11), EDMA_OPT_TCCM_DEFAULT, EDMA_OPT_ATCINT_DEFAULT, EDMA_OPT_ATCC_DEFAULT, EDMA_OPT_PDTS_DEFAULT, EDMA_OPT_PDTD_DEFAULT, EDMA_OPT_LINK_NO, EDMA_OPT_FS_NO ), EDMA_SRC_RMK((UInt32_t)EdmaOutBuffer), EDMA_CNT_RMK( EDMA_CNT_FRMCNT_DEFAULT, EDMA_CNT_ELECNT_OF(8) ), EDMA_DST_RMK((UInt32_t)EdmaInBuffer), EDMA_IDX_RMK(0,1), EDMA_RLD_RMK(0,0) ); IRQ_enable(IRQ_EVT_EDMAINT); EDMA_intEnable(EDMA_CHA_GPINT3); EDMA_enableChannel(hEdma0); EDMA_setChannel(hEdma0); while(!TransferDone); TransferDoneSE; EDMA_close(hEdma0); } interrupt void Edma_Interrupt(void) { TransferDone=TRUE; }Regards, Philippe |