diff options
author | Jay Monkman <jtm@smoothsmoothie.com> | 2006-06-03 03:14:07 +0000 |
---|---|---|
committer | Jay Monkman <jtm@smoothsmoothie.com> | 2006-06-03 03:14:07 +0000 |
commit | 7afe5a2fe01b2edf7d1db5bc684e6b9ba7cb1a82 (patch) | |
tree | d5e98dd64e2485864d66952d7fdc0a8d148ffb3a /c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_asm.S | |
parent | 2006-06-02 Jay Monkman (diff) | |
download | rtems-7afe5a2fe01b2edf7d1db5bc684e6b9ba7cb1a82.tar.bz2 |
2006-06-02 Jay Monkman
* at91rm9200/irq/bsp_irq_init.c, mc9328mxl/clock/clockdrv.c,
mc9328mxl/irq/bsp_irq_asm.S, mc9328mxl/irq/bsp_irq_init.c,
mc9328mxl/irq/irq.c, mc9328mxl/irq/irq.h,
s3c2400/irq/bsp_irq_init.c: Changed interrupt handling
to use shared rtems_irq_connect_data struct.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_asm.S | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_asm.S b/c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_asm.S index e2636c0db6..7ee0fde848 100644 --- a/c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_asm.S +++ b/c/src/lib/libcpu/arm/mc9328mxl/irq/bsp_irq_asm.S @@ -31,13 +31,15 @@ ExecuteITHandler : /* find the ISR's address based on the vector */ ldr r0, =bsp_vector_table - ldr r0, [r0, r1, LSL #2] /* Read the address */ - + mov r1, r1, LSL #3 /* Shift vector to get offset into table */ + add r1, r0, r1 /* r1 has address of vector entry */ + ldr r0, [r1, #4] /* Get the data pointer */ + ldr r1, [r1] /* Get the vector */ stmdb sp!,{lr} ldr lr, =IRQ_return /* prepare the return from handler */ - mov pc, r0 /* EXECUTE INT HANDLER */ + mov pc, r1 /* EXECUTE INT HANDLER */ IRQ_return: ldmia sp!,{lr} |