Tool/software:
In F29x, the PIPE module is quite different from PIE modules in F28x targets.
I am aware that the discussion in this question: F29H850TU: How to nest the same interrupt (e.g., INT_TIMER0) in the C29 core architecture? - C2000 microcontrollers forum - C2000︎ microcontrollers - TI E2E support forums says that cyclic nesting the same interrupt is not recommended.
I am not trying to nest the same interrupt within itself.
I just want to detect when another instance of the same interrupt has been triggered while the current interrupt's ISR is being executed.
Say, INT_TIMER0 interrupt has been configured to trigger every 1sec.
Now, suppose the ISR corresponding to it is taking more than 1 sec to execute, and before the ISR even finishes, INT_TIMER0 is triggered again after 1 sec.
Now, if that happens, how do I detect that another instance of the timer interrupt has occurred while the current interrupt ISR is being serviced?
The OVERFLOW_FLAG bit of this interrupt within the INT_CTL_L_y register appears to state in the TRM that it gets set to 1 whenever another instance of the same interrupt has been triggered, but I am unable to work with it as it gets set in the first ISR call itself and I cannot understand why.
The TRM of this processor does not explain much about the use of this flag bit and it also appears to have a dependency on the FLAG bit of the same register, which is not very clear, as I see in CCS that OVERFLOW_FLAG is getting set to 1 even though FLAG bit remains 0.
So, to summarize, my question is:
Can the OVERFLOW_FLAG bit be used to detect if the same timer interrupt has been triggered again while the current timer interrupt ISR is being executed?
If not, is there any other way to detect this, some CPU INT stack bit, or some way to use the INTSP register to detect this ISR task overrun?