gasilvis wrote on Sunday, April 19, 2009:
Could someone explain how the interrupts work in the demo project for the ARM7 LPC2000 IAR project?
From the cstart.s:
ldr pc,[pc,#+24] ;; Reset
ldr pc,[pc,#+24] ;; Undefined instructions
;; ldr pc,[pc,#+24] ;; Software interrupt (SWI/SVC)
b vPortYieldProcessor
ldr pc,[pc,#+24] ;; Prefetch abort
ldr pc,[pc,#+24] ;; Data abort
__vector_0x14
DC32 0 ;; RESERVED
ldr pc, [PC, #-0xFF0] ;; IRQ
ldr pc,[pc,#+24] ;; FIQ
The SWI interrupt calls vPortYieldProcessor.
What does the IRQ interrupt call? Does the "ldr pc, [PC, #-0xFF0] " also invoke the vPortYieldProcessor?
I don’t see how the TIMER0 interrupt and its calls to vPortPreemptiveTickEntry get called. Where is IRQ_Handler?
Is IRQ being routed to the SWI interrupt in order to get on the SVC_STACK?
If you have insight into this and can explain the strategy, I’d be obliged.
George