Motorola MPC8260 User Manual

Page of 1006
4-24
MPC8260 PowerQUICC II UserÕs Manual
MOTOROLA
Part II. ConÞguration and Reset
The SIVEC can be read as either a byte, half word, or a word. When read as a byte, a branch
table can be used in which each entry contains one instruction (branch). When read as a half
word, each entry can contain a full routine of up to 256 instructions. The interrupt code is
deÞned such that its two lsbs are zeroes, allowing indexing into the table, as shown in
Figure 4-19.
Figure 4-19. Interrupt Table Handling Example
Note that the MPC8260 differs from previous MPC8xx implementations in that when an
interrupt request occurs, SIVEC can be read. If there are multiple interrupt sources, SIVEC
latches the highest priority interrupt. Note that the value of SIVEC cannot change while it
is being read. 
4.3.1.7  SIU External Interrupt Control Register (SIEXR)
Each deÞned bit in the SIU external interrupt control register (SIEXR), shown in
Figure 4-20, determines whether the corresponding port C line asserts an interrupt request
upon either a high-to-low change or any change on the pin. External interrupts can come
from port C (PC[0-15]). 
BASE
b Routine1
b Routine2
b Routine3
b Routine4
BASE + n
BASE + 4
BASE + 8
BASE + C
BASE +10
BASE
1st Instruction of Routine1
1st Instruction of Routine2
1st Instruction of Routine3
1st Instruction of Routine4
BASE + n
BASE + 400
BASE + 800
BASE + C00
BASE +1000
INTR: ¥ ¥ ¥
Save state
R3 <- @ SIVEC
R4 <-- Base of branch table
¥ ¥ ¥
lbz
add
mtspr
bctr
RX, R3 (0)      
# load as byte
RX, RX, R4
CTR, RX
INTR: ¥ ¥ ¥
Save state
R3 <- @ SIVEC
R4 <-- Base of branch table
¥ ¥ ¥
lhz
add
mtspr
bctr
RX, R3 (0)      
# load as half
RX, RX, R4
CTR, RX