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.

How to map C6747 EDMA3 transfer complete interrupt to CPUINT

Now I want to map C6747 EDMA3 transfer complete interrupt to CPU INT8. I use the EDMA3 CHANNEL 1. 

After running my code, I have saw IPR=0x0002, but it hasn't generate the CPU INT8, so didn't run into the Interrupt Servicing code--“interrupt void EDMA3Interrupt(void)”.

Question: Is there any problem with my register settings? Please give me some suggestion. Thanks.

For EDMA3, I set the registers that are related to interrupt as follows,

1, TCINTEN=1,TCC=1;

2, edma3ccRegs->IESR =0x0002.

For INTC, I operate the registers as follows,

1, Map Event 8 to CPU INT8;   My code is,     "CSL_FINS(intcRegs->INTMUX2, INTC_INTMUX2_INTSEL8, CSL_INTC_EVENTID_EDMA3CC_INT1);"

2, Set ISTP to point to the vector table address.

3, Clear all interrupts,   ICR = 0xFFF0;

4,Enable the bits for non maskable interrupt and CPUINT8, IER |= 0x102;

5,Enable interrupts, set GIE bit.

  • Hi Lian,

    Have you enabled Event 1 in the DRAE1 register (Channel controller)? The DSP belongs to shadow region 1 for C6747 and the corresponding event should be enabled to allow the completion interrupt to interrupt the DSP.

    Hope this helps!

    -Kevin

  • Thanks for your help. Your reply is the solution to my problem.

    But I still have some doubt about the shadow region and the DRAE.

    Question 1:  I have seen the "cslr_edma3cc.h" in the  "C6747 cslr". And it have 4 DRA (CSL_Edma3ccDraRegs DRA[4]) . Just as you say,

    Kevin Scholz said:

    The DSP belongs to shadow region 1 for C6747 and the corresponding event should be enabled to allow the completion interrupt to interrupt the DSP.

    So I use the DRA[1].DRAE, what  are the other 3 DRA used for respectively?

    Question 2: What's the shadow region used for? Just for the Interrupt? How to set other registers in the following picture?

    I hope you can give me the answer. Thanks a lot. O(∩_∩)O~

     

  • The other shadow regions are for the ARM (Region 0) and the PRUs (Region 2/3).  You can use the shadow registers to share EDMA resources between the ARM, DSP, and the PRUs.  You are okay to continue using the global registers as well though.