Programmer’s Model

 

 

 

Start

 

 

 

 

TRUE

!VE VIC

 

 

 

 

handshake

 

 

 

 

 

complete

 

 

 

 

FALSE

 

 

 

 

 

!((nFIQF)

 

 

 

VE==1

 

 

&&

 

FALSE

 

 

 

(nIRQI))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TRUE

FALSE

 

TRUE

 

 

Start handshake with VIC

 

!(nFIQF)

 

FALSE

 

SPSR_irq = CPSR

 

 

 

 

 

 

 

TRUE

 

 

 

LR_irq = RA+4

 

 

 

 

CPSR[4:0] = IRQ mode

 

 

SPSR_fiq = CPSR

 

 

 

 

 

 

 

 

 

 

LR_fiq = RA+4

 

 

 

CPSR[5] = TE

 

 

 

 

 

 

 

 

CPSR[4:0] = FIQ mode

 

 

 

CPSR[7] = 1

 

 

 

 

 

 

 

 

CPSR[5] = TE

 

V==1

FALSE

VE==1

 

 

 

 

 

 

CPSR[7] = 1, CPSR[6] = 1

 

 

 

 

 

 

 

 

 

 

TRUE

 

 

 

 

 

 

 

FALSE

 

V==1

 

 

 

Is VIC ready to

 

 

TRUE

FALSE

 

provide handler

 

 

 

 

 

 

 

 

 

 

address?

 

TRUE

FALSE

 

 

 

TRUE

 

 

 

 

 

 

PC[31:0] =

PC[31:0] =

PC[31:0] =

PC[31:0] =

PC[31:0] = Handler address

 

provided by VIC

 

0xFFFF001C

0x0000001C

0xFFFF0018

0x00000018

 

 

Acknowledge address to VIC

 

 

 

 

Figure 2-5 Interrupt entry sequence

For information on the I and F bits that Figure 2-5shows, see Program status registers on page 2-10.For information on the V and VE bits that Figure 2-5shows, see c1, System Control Register on page 4-35.

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

2-21

ID013010

Non-Confidential, Unrestricted Access

 

Page 67
Image 67
ARM R4F, r1p3 manual Interrupt entry sequence