Interrupt Controller Module
MCF52235 ColdFire® Integrated Microcontroller Reference Manual, Rev. 6
Freescale Semiconductor
15-2
to the beginning of a specific exception service routine. In particular, vectors 64–255 of the exception
vector table are reserved for user interrupt service routines. The first 64 exception vectors are reserved for
the processor to manage reset, error conditions (access, address), arithmetic faults, system calls, etc. After
the interrupt vector number has been retrieved, the processor continues by creating a stack frame in
memory. For ColdFire, all exception stack frames are 2 longwords in length and contain 32 bits of vector
and status register data, along with the 32-bit program counter value of the instruction that was interrupted
(see
Section 3.3.3.1, “Exception Stack Frame Definition,”
for more information on the stack frame
format).
After the exception stack frame is stored in memory, the processor accesses the 32-bit pointer from the
exception vector table using the vector number as the offset, and then jumps to that address to begin
execution of the service routine. After the status register is stored in the exception stack frame, the SR[I]
mask field is set to the level of the interrupt being acknowledged, effectively masking that level and all
lower values while in the service routine.
For this device, the processing of the interrupt acknowledge cycle is fundamentally different than previous
68K/ColdFire cores. In the new approach, all IACK cycles are directly managed by the interrupt controller,
so the requesting peripheral device is not accessed during IACK. As a result, the interrupt request must be
explicitly cleared in the peripheral during the interrupt service routine. For more information, see
Section 15.1.1.3, “Interrupt Vector Determination
Unlike the M68000 family, all ColdFire processors guarantee that the first instruction of the service routine
is executed before sampling for interrupts is resumed. By making this initial instruction a load of the SR,
interrupts can be safely disabled if required.
During the execution of the service routine, the appropriate actions must be performed on the peripheral
to negate the interrupt request.
For more information on exception processing, perform a keyword search at
http://www.freescale.com/coldfire
for “CFPRM,” then click the
CFPRM: ColdFire Family Programmer’s
Reference Manual
link in the list of search results.
15.1.1
Interrupt Controller Theory of Operation
To support the interrupt architecture of the 68K/ColdFire programming model, the combined 63 interrupt
sources are organized as 7 levels, with each level supporting up to 9 prioritized requests. Consider the
priority structure within a single interrupt level (from highest to lowest priority) as shown in
.
Table 15-1. Interrupt Priority Within a Level
ICR[2:0]
Priority
Interrupt
Sources
111
7 (Highest)
8–63
110
6
8–63
101
5
8–63
100
4
8–63
—
Fixed Midpoint Priority
1–7
Because
of
an
order
from
the
United
States
International
Trade
Commission,
BGA-packaged
product
lines
and
part
numbers
indicated
here
currently
are
not
available
from
Freescale
for
import
or
sale
in
the
United
States
prior
to
September
2010:MCF52234CVM60,
MCF52235CVM60