SPRUIY2 November 2024 F29H850TU , F29H859TU-Q1
Nesting is supported at the hardware level in the C29x CPU. At the CPU interrupt level, nesting is possible amongst the three non-reset interrupt lines (NMIn, RTINTn, INTn). Interrupt lines can nest inside the ISR of lower priority interrupt lines. So an NMI can nest within RTINT or INT. RTINT can nest within INT. INT cannot nest in other interrupt lines. However, additional nesting within interrupt types RTINT and INT is possible using the PIPE module.
A detailed look at the nesting available on the C29x CPU is explained below (along with the expanded abilities afforded by the PIPE module).
NMI: No interrupt (including other NMIs) can nest within an NMI that is currently running. Anytime the ISTS.NMIF flag is set (indicating that a NMI event has been registered), the NMI is taken and the ATOMIC counter is reset.
RTINT: NMIs always nest within RTINT. This nesting cannot be stopped with the ATOMIC instruction. Using the PIPE module, higher priority RTINTs can nest within lower priority RTINTs. The ATOMIC instruction can delay entry of a nested RTINT until the ATOMIC counter expires.
INT: NMIs always nest within INT. This nesting cannot be stopped with the ATOMIC instruction. RTINTs always nest within INT, but the ATOMIC instruction can delay entry of a nested RTINT until the ATOMIC counter expires. Using the PIPE module, higher priority INTs can nest within lower priority INTs. The ATOMIC instruction can delay entry of a nested INT (or RTINT) until the ATOMIC counter expires.