I tried to configure two EDMA channels (EDMA10 and EDMA 11) on OMAP-L138 DSP processor. Both EDMA channels are manually triggered one after other (EDMA 10 is triggered first, when the transfer is completed, EDMA 11 is started). The problem is, after EDMA channels run two times, Two channels get stuck. Below is the configuration code, which I modified based on the example code of quickStartOMAPL1x_rCSL. I need the help.
Thanks,
-Bruce
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
EDMA 10:
// Clear Event Registers
CSL_FINST(edma3ccRegs->ECR, EDMA3CC_ECR_REG, MASK);
CSL_FINST(edma3ccRegs->SECR, EDMA3CC_SECR_REG, MASK);
// Enable Channel 10 to DSP (Region 1)
CSL_FINST(edma3ccRegs->DRA[CSL_EDMA3_REGION_1].DRAE,
EDMA3CC_DRAE_E10, ENABLE);
// Assign Channel 10 to Queue 0
CSL_FINST(edma3ccRegs->DMAQNUM[1], EDMA3CC_DMAQNUM_E2, Q0);
// Initialize Traansfer PaRAM
init_PaRAM_event_channel_10();
// Enable Interrupts for Channel 10
CSL_FINST(edma3ccRegs->IESR, EDMA3CC_IESR_I10, SET);
EDMA 11:
// Clear Event Registers
//CSL_FINST(edma3ccRegs->ECR, EDMA3CC_ECR_REG, MASK);
//CSL_FINST(edma3ccRegs->SECR, EDMA3CC_SECR_REG, MASK);
// Enable Channel 11 to DSP (Region 1)
CSL_FINST(edma3ccRegs->DRA[CSL_EDMA3_REGION_1].DRAE,
EDMA3CC_DRAE_E11, ENABLE);
// Assign Channel 11 to Queue 0
CSL_FINST(edma3ccRegs->DMAQNUM[2], EDMA3CC_DMAQNUM_E3, Q0);
// Initialize Traansfer PaRAM
init_PaRAM_event_channel_B();
// Enable Interrupts for Channel 11
CSL_FINST(edma3ccRegs->IESR, EDMA3CC_IESR_I11, SET);