AN2109 Freescale Semiconductor / Motorola, AN2109 Datasheet - Page 33

no-image

AN2109

Manufacturer Part Number
AN2109
Description
MPC555 Interrupts
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
7.3.2.2 Example 2: Exception Service Routine for Interrupts
external_interrupt_exception:
.name "exceptions.s"
.import Rec_Buf
.section .abs.00000100
.section .abs.00000500
.text
.equ
.equ
.equ
.equ
stwu
stw
mfsrr0
stw
mfsrr1
stw
mtspr
mflr
stw
mfcr
stw
stw
stw
stw
lis
lbz
lis
ori
add
mtlr
blrl
lwz
lwz
lwz
lwz
mtcrf
lwz
mtlr
mtspr
lwz
mtsrr0
SC1SR, 0x30500c
r3
r3
r4,
r3,
b _start
b external_interrupt_exception
SIVEC, 0x2fc01c
SCI_BASE, 0x305000
SC1DR, 0x30500e
sp,
r3,
r3
r3,
r3
r3,
r3,
r5,
r6,
r3,
r3,
r4,
r4,
r4
r4,
r5,
r3,
r3
NRI, r3
r3,
EID, r3
r3,
r4,
0xff, r3
r3
r6,
Freescale Semiconductor, Inc.
-36 (sp)
8 (sp)
SIVEC@l (r3)
r4, IRQ_table@l
32 (sp)
36 (sp)
28 (sp)
20 (sp)
12 (sp)
24 (sp)
12 (sp)
16 (sp)
20 (sp)
28 (sp)
32 (sp)
36 (sp)
SIVEC@ha
IRQ_table@h
r3, r4
28 (sp)
For More Information On This Product,
Rev. 0, 26 July 2001
MPC555 Interrupts
Go to: www.freescale.com
; System reset exception, per crt0 file
; Register addresses
; STEP 1:
; Create stack frame and store back chain
; Save working register
; Get SRR0
; and save SRR0
; Get SRR1
; and save SRR1
; STEP 2:
; Set recoverable bit
; Now debugger breakpoints can be set
; STEP 3: SAVE OTHER APPROPRIATE CONTEXT
; Get LR
; and save LR
; Get CR
; and save CR
; Save R4 to R6
; STEP 4: DETERMINE INTERRUPT SOURCE
; Load higher 16 bits of SIVEC address
; Load Interrupt Code byte from SIVEC
; Interrupt Code will be jump tableindex
; Load interrupt jump table base address
; Add index to table base address
; Load result address to link register
; STEP 5: BRANCH TO INTERRUPT HANDLER
; Jump to Execution Routine (subroutine)
; (After returning here, restore context)
; STEP 6: RESTORE CONTEXT
; Restore gprs except R3
; Get CR
; and restore CR
; Get LR
; and restore LR
; Clear recoverable bit, MSR[RI]
; Note: breakpoints CANNOT be set
; from now thru the rfi instruction
; Get SRR0 from stack
; and restore SRR0
SAVE "MACHINE CONTEXT"
MAKE MSR[RI] RECOVERABLE
MOTOROLA
33

Related parts for AN2109