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.

MSP430FR5969: nested interrupt , issue when 2 nested

Part Number: MSP430FR5969

Hi everybody , 

I have an app  with 3 different interrupt sources   who can happen to be nested .   I followed apps  and did nesting and it works perfectly when  I have 1 interrupt   nested  in another ( 1 level )  everything runs

smooth .  issue happens  when I have  2 nesting   : in this case  first interrupt  ( in my case DMA ) ,  after the two nesting  I can see  I exit all routine but this  DMA  first interrupt is no more serve in the program ...

apparently all flags etc are set properly  after exiting the 2 levels  but  DMA interrupt is no more served .

please  what can I check ? what can be wrong ?   I tried to have a larger STACK but no solution yet .

do you have a  2 level interrupt example on this machine I can chek  and use ?

any idea is welcome 

thank you 

BR
Carlo

  • Generally, the CPU doesn't know whether interrupts are nested (GIE=1 within an ISR) or not, so the first assumption is that it's something in your software. Can you post that?

    I'm not sure I understand your symptom. From your description:

    1) DMA ISR is entered, and it sets GIE=1

    2) Device B interrupts the DMA ISR, and it sets GIE=1

    3) Device C interrupts Device B's ISR

    at which point is it that 

    a) ISRs return C->B->main, i.e. Device B's ISR doesn't return to the DMA ISR?

    or

    b) ISRs return C->B->DMA->main, but after that the DMAIE is (effectively) disabled?

  • Hi Bruce , 

    we are in case B ,  apparently  using emulator  everything seems OK ( DMAIE is @ 1 )    but  it is not served ...any idea ?

    what to check  ?   

    thank you 

    BR
    Carlo

  • Are GIE=1 and (relevant) DMAIFG=1?

    I've seen cases where the debugger appears to disable interrupts when "Step"-ping. Try setting a breakpoint on the next statement and "Run"-ning.

**Attention** This is a public forum