diff options
Diffstat (limited to 'c/src/lib/libcpu/arm/lpc22xx/irq/bsp_irq_asm.S')
-rw-r--r-- | c/src/lib/libcpu/arm/lpc22xx/irq/bsp_irq_asm.S | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/c/src/lib/libcpu/arm/lpc22xx/irq/bsp_irq_asm.S b/c/src/lib/libcpu/arm/lpc22xx/irq/bsp_irq_asm.S deleted file mode 100644 index 4aa7ea4698..0000000000 --- a/c/src/lib/libcpu/arm/lpc22xx/irq/bsp_irq_asm.S +++ /dev/null @@ -1,57 +0,0 @@ -/* - * LPC22XX/LPC21xx Intererrupt handler - * - * Modified by Ray <rayx.cn@gmail.com> 2006 from Jay Monkman's code - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ -#define __asm__ - -/* - * BSP specific interrupt handler for INT or FIQ. In here - * you do determine which interrupt happened and call its - * handler. - * Called from ISR_Handler, It is better to write in C function - */ - .globl bsp_interrupt_dispatch -bsp_interrupt_dispatch : -#ifdef __thumb__ - .code 16 -#endif - -/* - * Look at interrupt status register to determine source. - * From source, determine offset into expanded vector table - * and load handler address into r0. - */ - - ldr r0, =0xFFFFF030 /* Read the vector number */ - ldr r0, [r0] -#ifdef __thumb__ - push {lr} - ldr r2, =IRQ_return /* prepare the return from handler */ - mov lr, r2 -#else - stmdb sp!,{lr} - ldr lr, =IRQ_return /* prepare the return from handler */ -#endif - - - /*C code will be called*/ - mov pc, r0 /* EXECUTE INT HANDLER */ - - /* - * C code may come back from Thumb if --thumb-interwork flag is False - * Add some veneer to make sure that code back to ARM - */ -IRQ_return: -#ifdef __thumb__ - pop {r1} - bx r1 -#else - ldmia sp!,{r1} - mov pc, r1 -#endif - |