From 1f330aa369ca88670a504b28c4a29d7218a572f4 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 27 May 2014 12:26:43 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6966 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/ports/ARM/compilers/GCC/irq.s | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 os/common/ports/ARM/compilers/GCC/irq.s (limited to 'os/common/ports/ARM/compilers/GCC') diff --git a/os/common/ports/ARM/compilers/GCC/irq.s b/os/common/ports/ARM/compilers/GCC/irq.s new file mode 100644 index 000000000..8ad50ea36 --- /dev/null +++ b/os/common/ports/ARM/compilers/GCC/irq.s @@ -0,0 +1,48 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file ARM/compilers/GCC/irq.s + * @brief IRQ handling for ARM devices. + * + * @defgroup ARM_IRQ ARM IRQ Handling + * @{ + */ + +#if !defined(__DOXYGEN__) + + .section irq + .code 32 + .balign 4 + +/* + * IRQ entry point, note this code is always located at address 0x40, the + * IRQ controller data register offset must be calculated accordingly. + */ + .global IrqHandler +IrqHandler: + stmfd sp!, {r0-r3, r12, lr} + ldr r0, [pc, #ARM_IRQ_REGISTER_OFFSET] + ldr lr, =_port_irq_common + bx r0 + +#endif + +/** @} */ -- cgit v1.2.3