Professional Documents
Culture Documents
Meetha.V.shenoy
2
Interrupts/ Address Entry F I
Exceptions Mode
Reset 0x 0000 0000 Supervisor 1 1
Undefined 0x 0000 0004 Undefined U 1
SWI 0x 0000 0008 Supervisor U 1
Pre-fetch 0x 0000 000C Abort U 1
Meetha.V.shenoy
3
Main Program
ADR r4,a
LDR r0,[r4]
LDR r4,[r2] FIQ
LDR r1,[r4]
ADD r3,r0,r1
r15 r14_fiq
CPSR SPSR_fiq
CPSR (Mode) - FIQ
Enters FIQ
Meetha.V.shenoy
4
r0
r1
r2
r3
r4
r5
r6
r7
Meetha.V.shenoy
r14
r15(PC) r14_fiq
CPSR
back-up
SPSR_FIQ SPSR_fiq
User FIQ 5
FIQ
• nFIQ pin –low
• Why FIQ – all high regs are banked – reduces int latencies
• ARM checks for low level at the end of each instruction
Meetha.V.shenoy
6
FIQ - actions
• Actions Taken on FIQ
• R14_fiq = Address of next inst to be executed +4
• SPSR_fiq = CPSR
Meetha.V.shenoy
• Exit From FIQ
• SUBS PC, R14,#4
7
IRQ
• nIRQ pin –low
Meetha.V.shenoy
• Exit From IRQ
• SUBS PC, R14,#4
8
Supervisor Mode
• Entry-SWI
• Actions Taken on SWI
• R14_svc = Address of SWI + 4
Meetha.V.shenoy
• Exit From Supervisor
• MOVS PC, R14
9
Undefined
• Inst than cannot be handled by ARM/co-processor
• Actions Taken on Undefined
• R14_und = Address of Instruction + 4
Meetha.V.shenoy
• Exit From Undefined
• MOVS PC, R14
10