summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-20 13:15:35 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-20 13:15:35 +0000
commit4c4974e81f1d8cfcc2677be528144a8e68466873 (patch)
tree51d47e76eedd1168bd35fba51d56024077427bd9 /c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
parent2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-4c4974e81f1d8cfcc2677be528144a8e68466873.tar.bz2
2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
* make/custom/lpc32xx.inc, make/custom/lpc32xx_mzx_boot_int.cfg, startup/linkcmds.lpc32xx_mzx_boot_int: New files. * Makefile.am, configure.ac, preinstall.am, include/bsp.h, include/bspopts.h.in, include/lpc32xx.h, irq/irq.c, make/custom/lpc32xx_phycore.cfg, startup/bspstart.c, startup/bspstarthooks.c: Changes throughout.
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc32xx/irq/irq.c')
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/irq/irq.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c b/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
index 9a569c4a76..4ea1c1cc1c 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
+++ b/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
@@ -308,12 +308,18 @@ void lpc32xx_set_exception_handler(
)
{
if ((unsigned) exception < MAX_EXCEPTIONS) {
- uint32_t *table = (uint32_t *) bsp_section_vector_begin + MAX_EXCEPTIONS;
+ #ifndef LPC32XX_DISABLE_MMU
+ uint32_t *table = (uint32_t *) bsp_section_vector_begin + MAX_EXCEPTIONS;
+ #else
+ uint32_t *table = (uint32_t *) bsp_section_start_begin + MAX_EXCEPTIONS;
+ #endif
table [exception] = (uint32_t) handler;
- rtems_cache_flush_multiple_data_lines(NULL, 64);
- rtems_cache_invalidate_multiple_data_lines(NULL, 64);
+ #ifndef LPC32XX_DISABLE_MMU
+ rtems_cache_flush_multiple_data_lines(table, 64);
+ rtems_cache_invalidate_multiple_instruction_lines(NULL, 64);
+ #endif
}
}