diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-08-08 12:36:15 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-08-08 12:36:15 +0000 |
commit | 2a514e80d94a12cf36718751b7bbb2aab8a4ee81 (patch) | |
tree | 374162e798136c3bef616fa1ad4938ad8aa5bae4 /c | |
parent | 2011-08-08 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-2a514e80d94a12cf36718751b7bbb2aab8a4ee81.tar.bz2 |
2011-08-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
* irq/irq-dispatch.c: New file.
* irq/irq.c: Moved bsp_interrupt_dispatch() to new file.
* Makefile.am: Reflect change from above.
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/Makefile.am | 3 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c | 43 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/irq/irq.c | 36 |
4 files changed, 61 insertions, 27 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/ChangeLog b/c/src/lib/libbsp/arm/lpc24xx/ChangeLog index fd8a6ca235..ce714f281d 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/ChangeLog +++ b/c/src/lib/libbsp/arm/lpc24xx/ChangeLog @@ -1,3 +1,9 @@ +2011-08-08 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * irq/irq-dispatch.c: New file. + * irq/irq.c: Moved bsp_interrupt_dispatch() to new file. + * Makefile.am: Reflect change from above. + 2011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> * include/lpc24xx.h: Added ADC defines. diff --git a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am index b4f51c4190..52a755d9b8 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am +++ b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am @@ -103,7 +103,8 @@ libbsp_a_SOURCES += ../../shared/src/irq-generic.c \ ../../shared/src/irq-info.c \ ../../shared/src/irq-shell.c \ ../../shared/src/irq-server.c \ - irq/irq.c + irq/irq.c \ + irq/irq-dispatch.c # Console libbsp_a_SOURCES += ../../shared/console.c \ diff --git a/c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c b/c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c new file mode 100644 index 0000000000..7368ba66a4 --- /dev/null +++ b/c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c @@ -0,0 +1,43 @@ +/** + * @file + * + * @ingroup bsp_interrupt + * + * @brief LPC24XX interrupt support. + */ + +/* + * Copyright (c) 2008-2011 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#include <bsp.h> +#include <bsp/irq-generic.h> +#include <bsp/lpc24xx.h> + +void bsp_interrupt_dispatch(void) +{ + /* Read current vector number */ + rtems_vector_number vector = VICVectAddr; + + /* Enable interrupts in program status register */ + uint32_t psr = arm_status_irq_enable(); + + /* Dispatch interrupt handlers */ + bsp_interrupt_handler_dispatch(vector); + + /* Restore program status register */ + arm_status_restore(psr); + + /* Acknowledge interrupt */ + VICVectAddr = 0; +} diff --git a/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c b/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c index 82164000af..e00009652e 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c +++ b/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c @@ -7,15 +7,17 @@ */ /* - * Copyright (c) 2008, 2009 - * embedded brains GmbH - * Obere Lagerstr. 30 - * D-82178 Puchheim - * Germany - * rtems@embedded-brains.de + * Copyright (c) 2008-2011 embedded brains GmbH. All rights reserved. * - * The license and distribution terms for this file may be found in the file - * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE. + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. */ #include <bsp.h> @@ -48,24 +50,6 @@ unsigned lpc24xx_irq_get_priority(rtems_vector_number vector) } } -void bsp_interrupt_dispatch(void) -{ - /* Read current vector number */ - rtems_vector_number vector = VICVectAddr; - - /* Enable interrupts in program status register */ - uint32_t psr = arm_status_irq_enable(); - - /* Dispatch interrupt handlers */ - bsp_interrupt_handler_dispatch(vector); - - /* Restore program status register */ - arm_status_restore(psr); - - /* Acknowledge interrupt */ - VICVectAddr = 0; -} - rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) { VICIntEnable = 1U << vector; |