Interrupt Controller (INTC)
MPC5510 Microcontroller Family Reference Manual, Rev. 1
Freescale Semiconductor
9-25
Preliminary
time the request rate doubles. ISRs with request rates around 1 ms would share a priority, ISRs with request
rates around 500
μ
s would share a priority, ISRs with request rates around 250
μ
s would share a priority,
etc. With this approach, a range of ISR request rates of 2
16
could be included, regardless of the number of
ISRs.
Reducing the number of priorities reduces the processor’s ability to meet its deadlines. However, reducing
the number of priorities can reduce the size and latency through the interrupt controller. It also allows
easier management of ISRs with similar deadlines that share a resource. They do not need to use the PCP
to access the shared resource.
9.5.7
Software Settable Interrupt Requests
The software settable interrupt requests can be used in two ways. They can be used to schedule a lower
priority portion of an ISR and they may also be used by processors to interrupt other processors in a
multiple processor system.
9.5.7.1
Scheduling a Lower Priority Portion of an ISR
A portion of an ISR needs to be executed at the PRI
n
value in INTC_PSR0_3–INTC_PSR292_293, which
becomes the PRI value in either INTC_CPR_PRC0 or INTC_CPR_PRC1 with the interrupt acknowledge.
The ISR, however, can have a portion that does not need to be executed at this higher priority. Therefore,
executing the later portion that does not need to be executed at this higher priority can prevent the
execution of ISRs which do not have a higher priority than the earlier portion of the ISR but do have a
higher priority than what the later portion of the ISR needs. This preemptive scheduling inefficiency
reduces the processor’s ability to meet its deadlines.
One option is for the ISR to complete the earlier higher priority portion, but then schedule through the
RTOS a task to execute the later lower priority portion. However, some RTOSs can require a large amount
of time for an ISR to schedule a task. Therefore, a second option is for the ISR, after completing the higher
priority portion, to set a SETn
bit in INTC_SSCIR0_3–INTC_SSCIR4_7.
”
Writing a 1 to SETn causes a
software settable interrupt request. This software settable interrupt request will usually have a lower PRI
n
value in the INTC_PSR
n
_
n
and will not cause preemptive scheduling inefficiencies. After generating a
software settable interrupt request, the higher priority ISR completes. The lower priority ISR is scheduled
according to its priority. Execution of the higher priority ISR is not resumed after the completion of the
lower priority ISR.
9.5.7.2
Scheduling an ISR on Another Processor
Because the SETn bits in the INTC_SSCIR
n
_
n
are memory mapped, processors in multiple-processor
systems can schedule ISRs on the other processors. One application is that one processor wants to
command another processor to perform a piece of work and the initiating processor does not need to use
the results of that work. If the initiating processor is concerned that the processor executing the software
settable ISR has not completed the work before asking it to again execute the ISR, it can check if the
corresponding CLRn bit in INTC_SSCIR
n
_
n
is asserted before again writing a 1 to the SETn bit.
Another application is the sharing of a block of data. For example, a first processor has completed
accessing a block of data and wants a second processor to then access it. Furthermore, after the second