1 interrupt controller theory of operation, 1 interrupt controller theory of operation -2 – Freescale Semiconductor ColdFire MCF52210 User Manual

Page 212

Advertising
background image

Interrupt Controller Module

MCF52211 ColdFire® Integrated Microcontroller Reference Manual, Rev. 2

14-2

Freescale Semiconductor

fetched data provides an index into the exception vector table, which contains 256 addresses, each pointing
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 14.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, see the ColdFire Programmer’s Reference Manual at

http://www.freescale.com/coldfire

.

14.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 14-1

.

Table 14-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

Advertising
This manual is related to the following products: