![Freescale Semiconductor MPC5632M Manual Download Page 428](http://html.mh-extra.com/html/freescale-semiconductor/mpc5632m/mpc5632m_manual_2330659428.webp)
MPC563XM Reference Manual, Rev. 1
428
Freescale Semiconductor
Preliminary—Subject to Change Without Notice
14.6.2.2
LIFO
The LIFO stores the preempted PRI values from the associated INTC_CPR_PRC0 or INTC_CPR_PRC1.
Therefore, because these priorities are stacked within the INTC, if interrupts need to be enabled during the
ISR, at the beginning of the interrupt exception handler the PRI value in the associated INTC_CPR_PRC0
or INTC_CPR_PRC1 does not need to be loaded from the associated INTC_CPR_PRC0 or
INTC_CPR_PRC1 and stored onto the context stack. Likewise at the end of the interrupt exception
handler, the priority does not need to be loaded from the context stack and stored into the associated
INTC_CPR_PRC0 or INTC_CPR_PRC1.
The PRI value in the associated INTC_CPR_PRC0 or INTC_CPR_PRC1 is pushed onto the LIFO when
the associated INTC_IACKR_PRC0 or INTC_IACKR_PRC1 is read in software vector mode or the
interrupt acknowledge signal from the associated processor is asserted in hardware vector mode. The
priority is popped into PRI in the associated INTC_CPR_PRC0 or INTC_CPR_PRC1 whenever the
associated INTC_EOIR_PRC0 or INTC_EOIR_PRC1 is written. An exception case in hardware vector
mode to this behavior is described in
Section 14.3.1.2, “Hardware Vector Mode
”.
Although the INTC supports 16 priorities, an ISR executing with PRI in the INTC_CPR_PRC0 or
INTC_CPR_PRC1 equal to 15 will not be preempted. Therefore, the LIFO supports the stacking of 15
priorities. However, the LIFO is only 14 entries deep. An entry for a priority of 0 is not needed because of
how pushing onto a full LIFO and popping an empty LIFO are treated. If the LIFO is pushed 15 or more
times than it is popped, the priorities first pushed are overwritten. A priority of 0 would be an overwritten
priority. However, the LIFO will pop ‘0’s if it is popped more times than it is pushed. Therefore, although
a priority of 0 was overwritten, it is regenerated with the popping of an empty LIFO.
The LIFO is not memory mapped, even in debug mode or factory test mode.
14.6.3
Handshaking with Processor
14.6.3.1
Software Vector Mode Handshaking
14.6.3.1.1
Acknowledging Interrupt Request to Processor
The software vector mode handshaking can be used with processors that only support an interrupt request
to them, or processors that support both just an interrupt request to them or an interrupt request and
interrupt vector to them. The software vector mode handshaking even supports processors which always
expect an interrupt vector with the interrupt request to them. Refer to
.
A timing diagram of the interrupt request and acknowledge handshaking in software vector mode, along
with the handshaking near the end of the interrupt exception handler, is shown in
. The INTC
examines the peripheral and software setable interrupt requests. When it finds an asserted peripheral or
software setable interrupt request with a higher priority than PRI in the associated
Current Priority Register for Processor 0 (INTC_CPR_PRC0)
” or
Section 14.5.5, “INTC Current Priority
Register for Processor 1 (INTC_CPR_PRC1)
”, it asserts the interrupt request to the associated processor.
The INTVEC field in the associated
Section 14.5.6, “INTC Interrupt Acknowledge Register for Processor
Section 14.5.7, “INTC Interrupt Acknowledge Register for processor 1
” is updated with the preempting interrupt request’s vector when the interrupt