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.

AWR2944: RTI update interrupt don't work after run a few periods

Part Number: AWR2944

Hi,

I have found a strange issue for RTI interrupt. 

We are doing a stress test that reset mcu every 3s. 

Sometimes RTI update interrupt don't work after run a few periods, But CAN interrupt still work.

The following image is RTI register status that we read it via Lauterbach attached

RTI update interrrupt exeute 94 counters, then no longer enters the interrupt service function.

If you need more informations, let me know, 

Thank you.

BR,

Wu Bin

  • Hello Wu bian,

    Are you running the SDK code?
    Is this the only interrupt being processed? Can you disable all other interrupts and only run the RTI?

    Regards,
    Saswat Kumar

  • Hi Kumar,

    I have disable all interrupt after enter RTI interrupt.

    We have done one test : after RTI interrupt failure, clear RTI interrupt flag(RTIINTFLAG write 1) in other interrupt handle function , then RTI interrupt can work.

    Could yout share some conditions can cause this result?

    BR,

    Wu Bin

  • We have done other test: Add a break after clear interrupt flag in RTI interrupt serive function with XDS debug, then click run. Which alse caused RTI interrupt failure. We also write 1 to RTIINTFLAG register, then RTI interrupt alse can be resumed. My understanding is that interrupt should coutinue to enter if clearing interrupt flag fail. Isn't that so?

  • I have added a breakpoint in line 195. After break, run again, the RTI interrupt has not entered again.

    Then I start new debug and add the breakpoint in line 58 and clear the breakpoint of ClockP_timerClearOverflowInt(), then run again,  the RTI interrupt can enter again.

    So if the interrupt flag is cleared and the interrupt service function has not yet exited, the interrupt flag is set again, then the interrupt service function will never be called again. Why is this?

  • We will try to change interrupt type to pulse.

  • Hello Wu,

    You cannot modify the interrupt and change the levels, you will have to use what is advised in the TRM

    Regards,
    Saswat Kumar

  • Hello Saswat Kumar,

    We only want to make a test to check whether this issue was caused by the interruption(os_tick) not being handled in time.This result is that system can be run stably after change os_tick interrupt type from level to pulse.

    Could you share the reason the default type for os tick is level instead of pulse?  Why do you suggest not to modify it?  

    BR,

    Wu Bin

  • Hello Wu,

    So what might happen if you use a pulse triggered when it actually supposed to be a level is that, a pulse is self clearing.
    If it is designed for the level, it needs to be cleared in the ISR itself, whereas in pulse it being cleared on its own, which will lead to not proper servicing of the ISR as well.

    Regards,
    Saswat Kumar