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.

TMS570LS3137: Disabling specific interrupts temporarily during background loop execution

Part Number: TMS570LS3137

Hello,

I have a question regarding the interrupt handling:

I would like to only disable a specific interrupt ttemporarily e.g. rti compare 0  during the execution of a function which is happening in a background loop e.g. main method.

Are there some alternatives how to proceed with that issue?

Should I use VIM register to mask out that specific interrupt or  can I easily use the ClearInt Register of the RTI interface to disable the corresponding interrupt line temporarily till my function has executed to enable it again afterwards ?

I mean globally I could easily disable all interrupts during this function context but this is something I would like to avoid.

It is also important that you dont't miss any pending interrupt from this interface as the interrupt IRQ line still remains essential for the applicaiton.

It should just "sleep" while cricital code sections are executed. Once this critical code section is left, in case any pending interrupt from the masked IRQ is available it should fire the coressponding IRQ line.

I have read the document for nested interrupts on the Hercules platform but this document specifies more the handling during pure interrupt context execution.

Is there something I can reuse or simplifiy in order to achieve the behavior described above ?

  • Hi Krax,

    can I easily use the ClearInt Register of the RTI interface to disable the corresponding interrupt line temporarily till my function has executed to enable it again afterwards ?

    Yes, you can use the APIs generated by HAL to disable and enable the RTI interrupt:

    /* Requirements : HL_SR84 */
    void rtiDisableNotification(uint32 notification)
    {

       ...

    }

    and

    void rtiEnableNotification(uint32 notification)
    {

      ...
    }