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.

Problem with interrupt (DSK6455 )



Hello 
I have a problem with interrupt.

I copied data from memory to memory by EDMA (I use LLD library). 
It worked fine. But now I create a new project. One of my processes used EDMA and when I copied it from the old project to the new one an unexpected problem appeared. 

When I copied data from memory to memory, data was copied but interrupt was not occurred. 

I decided to check EVTFLAG2.bit8 (Event 72). 

Interrupt handler must be executed when transaction is finished. But no one interrupt was occurred. I checked IER register and I checked DSP/BIOS configuration. 

ios.HWI.instance("HWI_INT9").interruptSelectNumber = 2; 
INTMUX2.INTSEL9=2 (second Event combiner)
IER.9 = enable. 


MEVTFLAG2.bit8 (Event 72) is always set when transaction is finished. 

But IFR.bit9 isn't set and I don't know why.

Can anybody help me? 

  • It is great that you got the EDMA project working in the first project. Your easiest path will be to find out what is different between the two configurations rather than trying to figure out what is wrong with the new one by itself.

    I am not familiar with the direct DSP/BIOS configuration commands, I have always used the GUI. But you should be able to compare the .tcf files between the working project and the failing project.

    To make sure the problem is not in the EDMA setup, make sure in CCS that the IPR/IPRH bit is getting set when the transfer is complete, and make sure the IER/IERH bit is set to enable the interrupt to reach the DSP INTC logic.

    Let's start with this much and see how far you get in your debug.

  • Did you make sure to enable the ECM and unmask the event you wish to use?

    bios.ECM.ENABLE = 1;
    bios.ECM.instance("EVENT72").unmask = 1;

    If the EDMA is generating the interrupt but the DSP never receives it you need to double-check all of 'gates' in the interrupt path to find out where the interrupt event is stalling.

  • I have found my mistake.

    It doesn't work when I execute EVM_init function from lyrtechs Board Support Package (I use lytech EVM 6457)