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.

TMS320F28035: Interrupt somehow get disabled

Part Number: TMS320F28035

Hi Experts,

My customer finds that their interrupt would occasionally get disabled. 

What they see is that the function in the ISR does not work any more. After connecting to the device in the failure state, they find the back ground is still running but INTM is set to 1 and IER is set to all zero. 

1782898326.jpg

After manully setting INTM and IER to correct values, the ISR works normally again.

They are not using interrupt nesting.

In this case, what may cause the INTM and IER to be disabled? Is there any method that can capture when these two register is set to unexpected values?

Regards,

Hang

  • Hi Hang,

    Each time an interrupt is taken by the CPU, the IER and INTM will be pushed to the stack and cleared automatically by hardware during context save. Then during context restore, the IER and INTM will be automatically popped from the stack. 

    I would they suggest they try a hardware watchpoint on the IER and INTM register to halt whenever a value of zero is written, however it may get triggered by the above process. They can still try this though - I'm not sure if it will trigger from writes done by a context restore.

    Another suggestion would be to poll the IER and INTM register periodically throughout the code in the background loop. Since there is no nesting enabled, at no point in the background loop should these registers be cleared. If the (cleared) condition is met, they can add an ESTOP0 and see relatively where in the background loop this is happening. 

    Best Regards,

    Delaney