Chapter 9 Interrupt Controller (INTC)
MPC5602P Microcontroller Reference Manual, Rev. 4
218
Freescale Semiconductor
9.6.1.2
Software configurable interrupt requests
An interrupt request is triggered by software by writing a ‘1’ to a SET
x
bit in
INTC_SSCIR0_3–INTC_SSCIR4_7. This write sets the corresponding flag bit, CLR
x
, resulting in the
interrupt request. The interrupt request is cleared by writing a ‘1’ to the CLR
x
bit.
The time from the write to the SET
x
bit to the time that the INTC starts to drive the interrupt request to the
processor is four clocks.
9.6.1.3
Unique vector for each interrupt request source
Each peripheral and software configurable interrupt request is assigned a hardwired unique 9-bit vector.
Software configurable interrupts 0–7 are assigned vectors 0–7 respectively. The peripheral interrupt
requests are assigned vectors 8 to as high as needed to include all the peripheral interrupt requests. The
peripheral interrupt request input ports at the boundary of the INTC block are assigned specific hardwired
vectors within the INTC (see
9.6.2
Priority management
The asserted interrupt requests are compared to each other based on their PRI
x
Select Registers (INTC_PSR0_3–INTC_PSR220_221). The result is compared to PRI in the associated
INTC_CPR. The results of those comparisons manage the priority of the ISR executed by the associated
processor. The associated LIFO also assists in managing that priority.
9.6.2.1
Current priority and preemption
The priority arbitrator, selector, encoder, and comparator subblocks shown in
compare the priority of the asserted
interrupt requests to the current priority. If the priority of any asserted peripheral or software configurable interrupt request is
higher than the current priority for a given processor, then the interrupt request to the processor is asserted. Also, a unique vector
for the preempting peripheral or software settable interrupt request is generated for INTC interrupt acknowledge register
(INTC_IACKR), and if in hardware vector mode, for the interrupt vector provided to the processor.
9.6.2.1.1
Priority arbitrator subblock
The priority arbitrator subblock for each processor compares all the priorities of all of the asserted interrupt
requests assigned to that processor, both peripheral and software configurable. The output of the priority
arbitrator subblock is the highest of those priorities assigned to a given processor. Also, any interrupt
requests that have this highest priority are output as asserted interrupt requests to the associated request
selector subblock.
9.6.2.1.2
Request selector subblock
If only one interrupt request from the associated priority arbitrator subblock is asserted, then it is passed
as asserted to the associated vector encoder subblock. If multiple interrupt requests from the associated
priority arbitrator subblock are asserted, only the one with the lowest vector passes as asserted to the
associated vector encoder subblock. The lower vector is chosen regardless of the time order of the
assertions of the peripheral or software configurable interrupt requests.