This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP-L137 EDMA3 Interrupt Problem

Other Parts Discussed in Thread: OMAP-L137

I'm writing a program that data are transferred from memory to McASP via EDMA3. On the completion of each transmission, an interrupt is triggered to notify CPU.

Now I can transfer the data to McASP, but CPU cannot receive the interrupt request. So the ISR is not executed.

The paramSets of EDMA3 are as follows:

    paramRegs.OPT = 0x00102000; //TCINTEN=1, TCC=2
    paramRegs.SRC = (Uint32)&sinetable[0]; //source address
    paramRegs.A_B_CNT = 0x00300004; //BCNT=48,ACNT=4
    paramRegs.DST = 0x01D06000; //Destination(McASP1) Address
    paramRegs.SRC_DST_BIDX = 0x00000004;
    paramRegs.LINK_BCNTRLD = 0x00304FE0;
    paramRegs.SRC_DST_CIDX = 0;
    paramRegs.CCNT = 0x00000001;

I use DSP/BIOS to configure the interrupt selector and hardware interrupt. I use INT8 and the interrupt selection number is 8 according to the interrupt event map of OMAP-L137/C6747.

I've also initialize the interrupt of CPU as follows:

    CSR = 1;
    ICR = 0xFFF0;
    IER |= 0x0102;
    _enable_interrupts();

However, the ISR cannot be executed. In debugging mode, I can see the corresponding bit of IPR of EDMA3CC is asserted. But EVTFLAGn registers of INTC module remains the same.

What else should I do to enable the EDMA3 interrupt to CPU?