Hi all,
I am trying to understand the code below does jumping to an interrupt
handler:
- Upon receiving an IRQ interrupt, it jumps to the exception vector table
of IRQ (0x0000.0018)
-From that table, it jumps to the below sub routine:
IsrIRQ
sub sp,sp,#4 ;reserved for PC
stmfd sp!,{r8-r9}
ldr r9,=INTOFFSET
ldr r9,[r9]
ldr r8,=HandleEINT0
add r8,r8,r9,lsl #2
ldr r8,[r8]
str r8,[sp,#8]
ldmfd sp!,{r8-r9,pc}
I uses S3C2440. INTOFFSET is a register whose value indicates which
interrupt has been active, HandleEINT0 is the start address of interrupt
handler table located in DRAM
- I see that it calculates the address of the corresponding ISR for the
interrupt and stores to R8
But I do not see where it jumps to that ISR to serve the interrupt!!!!! (I
see it just push to the stack)
Do I miss something? Is the code correct (It is from a reference project)?
Thanks,
Huy

