summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-01-13 14:07:41 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-01-19 08:36:19 +0100
commit76a51c6841209ac1447a72f90f2729bf22ffc7d4 (patch)
tree1582b7718ce838a1241d2cd3f45909c81cb5786c
parentbsps/arm: Use common ARMv7-M bsp_reset() (diff)
downloadrtems-76a51c6841209ac1447a72f90f2729bf22ffc7d4.tar.bz2
bsps/arm: Copy vector table only if necessary
-rw-r--r--c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c b/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c
index 6ad948226e..53ab5138f9 100644
--- a/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c
+++ b/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c
@@ -42,11 +42,13 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
ARMV7M_Exception_handler *vector_table =
(ARMV7M_Exception_handler *) bsp_vector_table_begin;
- memcpy(
- vector_table,
- bsp_start_vector_table_begin,
- (size_t) bsp_vector_table_size
- );
+ if (bsp_vector_table_begin != bsp_start_vector_table_begin) {
+ memcpy(
+ vector_table,
+ bsp_start_vector_table_begin,
+ (size_t) bsp_vector_table_size
+ );
+ }
for (i = BSP_INTERRUPT_VECTOR_MIN; i <= BSP_INTERRUPT_VECTOR_MAX; ++i) {
vector_table [ARMV7M_VECTOR_IRQ(i)] = _ARMV7M_NVIC_Interrupt_dispatch;