diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG/device/cmsis_nvic.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG/device/cmsis_nvic.c deleted file mode 100644 index b238daa743..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG/device/cmsis_nvic.c +++ /dev/null @@ -1,47 +0,0 @@ -/* mbed Microcontroller Library - cmsis_nvic for EFM32 - * Copyright (c) 2011 ARM Limited. All rights reserved. - * - * CMSIS-style functionality to support dynamic vectors - */ -#include "cmsis_nvic.h" - -#if (defined (__GNUC__) && (!defined(__CC_ARM))) -extern uint32_t __start_vector_table__; // Dynamic vector positioning in GCC -#endif - -#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM -#define NVIC_FLASH_VECTOR_ADDRESS (0x0) // Initial vector position in flash - -void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - uint32_t i; - - // Copy and switch to dynamic vectors if the first time called - // For GCC, use dynamic vector table placement since otherwise we run into an alignment conflict -#if (defined (__GNUC__) && (!defined(__CC_ARM))) - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(&__start_vector_table__); - for (i=0; iVTOR = (uint32_t)(&__start_vector_table__); - } - // Other compilers don't matter as much... -#else - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(NVIC_RAM_VECTOR_ADDRESS); - for (i=0; iVTOR = (uint32_t)(NVIC_RAM_VECTOR_ADDRESS); - } -#endif - vectors[IRQn + 16] = vector; -} - -uint32_t __NVIC_GetVector(IRQn_Type IRQn) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - return vectors[IRQn + 16]; -} diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG/device/cmsis.h b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG/device/cmsis.h deleted file mode 100644 index 21b74182e4..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG/device/cmsis.h +++ /dev/null @@ -1,13 +0,0 @@ -/* mbed Microcontroller Library - CMSIS - * Copyright (C) 2009-2011 ARM Limited. All rights reserved. - * - * A generic CMSIS include header, pulling in EFM32 specifics - */ - -#ifndef MBED_CMSIS_H -#define MBED_CMSIS_H - -#include "em_device.h" -#include "cmsis_nvic.h" - -#endif diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG/device/cmsis.h b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG/device/cmsis.h deleted file mode 100644 index 21b74182e4..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG/device/cmsis.h +++ /dev/null @@ -1,13 +0,0 @@ -/* mbed Microcontroller Library - CMSIS - * Copyright (C) 2009-2011 ARM Limited. All rights reserved. - * - * A generic CMSIS include header, pulling in EFM32 specifics - */ - -#ifndef MBED_CMSIS_H -#define MBED_CMSIS_H - -#include "em_device.h" -#include "cmsis_nvic.h" - -#endif diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG/device/cmsis_nvic.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG/device/cmsis_nvic.c deleted file mode 100644 index 1170f85a31..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG/device/cmsis_nvic.c +++ /dev/null @@ -1,47 +0,0 @@ -/* mbed Microcontroller Library - cmsis_nvic for EFM32 - * Copyright (c) 2011 ARM Limited. All rights reserved. - * - * CMSIS-style functionality to support dynamic vectors - */ -#include "cmsis_nvic.h" - -#if (defined (__GNUC__) && (!defined(__CC_ARM))) -extern uint32_t __start_vector_table__; // Dynamic vector positioning in GCC -#endif - -#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM -#define NVIC_FLASH_VECTOR_ADDRESS (0x0) // Initial vector position in flash - -void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - uint32_t i; - - // Copy and switch to dynamic vectors if the first time called - // For GCC, use dynamic vector table placement since otherwise we run into an alignment conflict -#if (defined (__GNUC__) && (!defined(__CC_ARM))) - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(&__start_vector_table__); - for (i=0; iVTOR = (uint32_t)(&__start_vector_table__); - } - // Other compilers don't matter as much... -#else - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(NVIC_RAM_VECTOR_ADDRESS); - for (i=0; iVTOR = (uint32_t)(NVIC_RAM_VECTOR_ADDRESS); - } -#endif - vectors[IRQn + 16] = vector; -} - -uint32_t NVIC_GetVector(IRQn_Type IRQn) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - return vectors[IRQn + 16]; -} diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG/device/cmsis.h b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG/device/cmsis.h deleted file mode 100644 index 21b74182e4..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG/device/cmsis.h +++ /dev/null @@ -1,13 +0,0 @@ -/* mbed Microcontroller Library - CMSIS - * Copyright (C) 2009-2011 ARM Limited. All rights reserved. - * - * A generic CMSIS include header, pulling in EFM32 specifics - */ - -#ifndef MBED_CMSIS_H -#define MBED_CMSIS_H - -#include "em_device.h" -#include "cmsis_nvic.h" - -#endif diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG/device/cmsis_nvic.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG/device/cmsis_nvic.c deleted file mode 100644 index 1170f85a31..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG/device/cmsis_nvic.c +++ /dev/null @@ -1,47 +0,0 @@ -/* mbed Microcontroller Library - cmsis_nvic for EFM32 - * Copyright (c) 2011 ARM Limited. All rights reserved. - * - * CMSIS-style functionality to support dynamic vectors - */ -#include "cmsis_nvic.h" - -#if (defined (__GNUC__) && (!defined(__CC_ARM))) -extern uint32_t __start_vector_table__; // Dynamic vector positioning in GCC -#endif - -#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM -#define NVIC_FLASH_VECTOR_ADDRESS (0x0) // Initial vector position in flash - -void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - uint32_t i; - - // Copy and switch to dynamic vectors if the first time called - // For GCC, use dynamic vector table placement since otherwise we run into an alignment conflict -#if (defined (__GNUC__) && (!defined(__CC_ARM))) - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(&__start_vector_table__); - for (i=0; iVTOR = (uint32_t)(&__start_vector_table__); - } - // Other compilers don't matter as much... -#else - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(NVIC_RAM_VECTOR_ADDRESS); - for (i=0; iVTOR = (uint32_t)(NVIC_RAM_VECTOR_ADDRESS); - } -#endif - vectors[IRQn + 16] = vector; -} - -uint32_t NVIC_GetVector(IRQn_Type IRQn) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - return vectors[IRQn + 16]; -} diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG/device/cmsis.h b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG/device/cmsis.h deleted file mode 100644 index 21b74182e4..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG/device/cmsis.h +++ /dev/null @@ -1,13 +0,0 @@ -/* mbed Microcontroller Library - CMSIS - * Copyright (C) 2009-2011 ARM Limited. All rights reserved. - * - * A generic CMSIS include header, pulling in EFM32 specifics - */ - -#ifndef MBED_CMSIS_H -#define MBED_CMSIS_H - -#include "em_device.h" -#include "cmsis_nvic.h" - -#endif diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG/device/cmsis_nvic.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG/device/cmsis_nvic.c deleted file mode 100644 index 1170f85a31..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG/device/cmsis_nvic.c +++ /dev/null @@ -1,47 +0,0 @@ -/* mbed Microcontroller Library - cmsis_nvic for EFM32 - * Copyright (c) 2011 ARM Limited. All rights reserved. - * - * CMSIS-style functionality to support dynamic vectors - */ -#include "cmsis_nvic.h" - -#if (defined (__GNUC__) && (!defined(__CC_ARM))) -extern uint32_t __start_vector_table__; // Dynamic vector positioning in GCC -#endif - -#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM -#define NVIC_FLASH_VECTOR_ADDRESS (0x0) // Initial vector position in flash - -void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - uint32_t i; - - // Copy and switch to dynamic vectors if the first time called - // For GCC, use dynamic vector table placement since otherwise we run into an alignment conflict -#if (defined (__GNUC__) && (!defined(__CC_ARM))) - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(&__start_vector_table__); - for (i=0; iVTOR = (uint32_t)(&__start_vector_table__); - } - // Other compilers don't matter as much... -#else - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(NVIC_RAM_VECTOR_ADDRESS); - for (i=0; iVTOR = (uint32_t)(NVIC_RAM_VECTOR_ADDRESS); - } -#endif - vectors[IRQn + 16] = vector; -} - -uint32_t NVIC_GetVector(IRQn_Type IRQn) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - return vectors[IRQn + 16]; -} diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG/device/cmsis.h b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG/device/cmsis.h deleted file mode 100644 index 21b74182e4..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG/device/cmsis.h +++ /dev/null @@ -1,13 +0,0 @@ -/* mbed Microcontroller Library - CMSIS - * Copyright (C) 2009-2011 ARM Limited. All rights reserved. - * - * A generic CMSIS include header, pulling in EFM32 specifics - */ - -#ifndef MBED_CMSIS_H -#define MBED_CMSIS_H - -#include "em_device.h" -#include "cmsis_nvic.h" - -#endif diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG/device/cmsis_nvic.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG/device/cmsis_nvic.c deleted file mode 100644 index 1170f85a31..0000000000 --- a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG/device/cmsis_nvic.c +++ /dev/null @@ -1,47 +0,0 @@ -/* mbed Microcontroller Library - cmsis_nvic for EFM32 - * Copyright (c) 2011 ARM Limited. All rights reserved. - * - * CMSIS-style functionality to support dynamic vectors - */ -#include "cmsis_nvic.h" - -#if (defined (__GNUC__) && (!defined(__CC_ARM))) -extern uint32_t __start_vector_table__; // Dynamic vector positioning in GCC -#endif - -#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM -#define NVIC_FLASH_VECTOR_ADDRESS (0x0) // Initial vector position in flash - -void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - uint32_t i; - - // Copy and switch to dynamic vectors if the first time called - // For GCC, use dynamic vector table placement since otherwise we run into an alignment conflict -#if (defined (__GNUC__) && (!defined(__CC_ARM))) - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(&__start_vector_table__); - for (i=0; iVTOR = (uint32_t)(&__start_vector_table__); - } - // Other compilers don't matter as much... -#else - if (SCB->VTOR == NVIC_FLASH_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)(NVIC_RAM_VECTOR_ADDRESS); - for (i=0; iVTOR = (uint32_t)(NVIC_RAM_VECTOR_ADDRESS); - } -#endif - vectors[IRQn + 16] = vector; -} - -uint32_t NVIC_GetVector(IRQn_Type IRQn) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - return vectors[IRQn + 16]; -} diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG/device/cmsis.h b/targets/TARGET_Silicon_Labs/TARGET_EFM32/common/cmsis.h similarity index 100% rename from targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG/device/cmsis.h rename to targets/TARGET_Silicon_Labs/TARGET_EFM32/common/cmsis.h diff --git a/targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG/device/cmsis_nvic.c b/targets/TARGET_Silicon_Labs/TARGET_EFM32/common/cmsis_nvic.c similarity index 100% rename from targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG/device/cmsis_nvic.c rename to targets/TARGET_Silicon_Labs/TARGET_EFM32/common/cmsis_nvic.c