SPRUIY2 November 2024 F29H850TU , F29H859TU-Q1
The INT (low-priority interrupt) is the lowest-priority interrupt line, and receives signals driven by an interrupt expansion and aggregation unit (the PIPE module for most C29x CPU systems). This interrupt line is typically used for lower priority operations and task schedulers.
INT sources are able to be masked, and the INT line can also be blocked/disabled by user code using the DSTS.INTE enable bit. If DSTS.INTE is enabled, then any interrupts received on the INT line are directly passed to the CPU for prioritization. Priority is then decided among the interrupts on the NMI or RTINT lines. To prevent an RTINT interrupt from nesting within a INT interrupt, the ATOMIC instruction can be used for a finite number of instruction packets.
On entering a INT ISR, further INTs are automatically disabled using the DSTS.INTE bit. To allow nesting, enable interrupts using the ENINT instruction. There also exists a DISINT instruction for disabling the INT line again.
The C29x CPU also provides a special INT called as Supervisor Interrupt. Supervisor Interrupt is essentially an INT which can override the DSTS.INTE setting. For example, Supervisor Interrupt can be a certain task monitor interrupt which requires the interrupt to not get blocked by erroneous setting of the DSTS.INTE.
The PIPE module provides external interrupt aggregation and arbitration for the RTINT and INT lines. This allows for many signals to be categorized as "real-time interrupts" ("RTINT") or "low-priority interrupts" ("INT"), and then prioritized before passing to the CPU's RTINT or INT interrupt line.
The PIPE effectively multiplexes the single INT CPU interrupt line to be able to receive from multiple incoming INT interrupts in the appropriate order.
The module allows for enabling and disabling of INT signals before the signals reach the INT line of the CPU. The module also allows nesting capability amongst other interrupts categorized as INT or RTINT. See the F29H85x and F29P58x Real-Time Microcontrollers Technical Reference Manual for details on the PIPE module features.
Unlike the NMI or RTINT interrupt lines, the INT line uses the standard software stack for context save and restore. Only one of the multiple available CPU stacks can be used for INT. This is configured by the INTSP register in the external PIPE module. If an INT vector points to the wrong LINK which is associated with a different STACK (security-assigned stack), then an NMI fault is generated.
If the current stack pointer is not pointing to the INTSP, then any pending INT remains pending until the stack pointer points to the selected INTSP stack.