mirror of https://github.com/ARMmbed/mbed-os.git
[STM32F0_all] remove the global variable and use SYSCFG register instead
parent
5784d29fd2
commit
c59167c196
|
@ -33,19 +33,16 @@
|
|||
#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM
|
||||
#define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
|
||||
|
||||
int NVIC_vtor_remap = 0; // To keep track that the vectors remap is done
|
||||
|
||||
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
|
||||
int i;
|
||||
|
||||
// Copy and switch to dynamic vectors if first time called
|
||||
if (NVIC_vtor_remap == 0) {
|
||||
if ((SYSCFG->CFGR1 & SYSCFG_CFGR1_MEM_MODE) != SYSCFG_CFGR1_MEM_MODE) {
|
||||
uint32_t *old_vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS;
|
||||
for (i = 0; i < NVIC_NUM_VECTORS; i++) {
|
||||
*((uint32_t *)(NVIC_RAM_VECTOR_ADDRESS + (i*4))) = old_vectors[i];
|
||||
}
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE; // Embedded SRAM mapped at 0x00000000
|
||||
NVIC_vtor_remap = 1; // The vectors remap is done
|
||||
}
|
||||
|
||||
// Set the vector
|
||||
|
|
|
@ -160,7 +160,6 @@ uint8_t SetSysClock_PLL_HSI(void);
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern int NVIC_vtor_remap;
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system.
|
||||
|
@ -229,7 +228,6 @@ void SystemInit(void)
|
|||
|
||||
/* Configure the Cube driver */
|
||||
SystemCoreClock = 8000000; // At this stage the HSI is used as system clock
|
||||
NVIC_vtor_remap = 0; // Because it is not cleared the first time we enter in NVIC_SetVector()
|
||||
HAL_Init();
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
|
|
|
@ -33,19 +33,17 @@
|
|||
#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM
|
||||
#define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
|
||||
|
||||
int NVIC_vtor_remap = 0; // To keep track that the vectors remap is done
|
||||
|
||||
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
|
||||
int i;
|
||||
|
||||
// Copy and switch to dynamic vectors if first time called
|
||||
if (NVIC_vtor_remap == 0) {
|
||||
if ((SYSCFG->CFGR1 & SYSCFG_CFGR1_MEM_MODE) != SYSCFG_CFGR1_MEM_MODE) {
|
||||
uint32_t *old_vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS;
|
||||
for (i = 0; i < NVIC_NUM_VECTORS; i++) {
|
||||
*((uint32_t *)(NVIC_RAM_VECTOR_ADDRESS + (i*4))) = old_vectors[i];
|
||||
}
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE; // Embedded SRAM mapped at 0x00000000
|
||||
NVIC_vtor_remap = 1; // The vectors remap is done
|
||||
}
|
||||
|
||||
// Set the vector
|
||||
|
|
|
@ -161,7 +161,6 @@ uint8_t SetSysClock_PLL_HSI(void);
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern int NVIC_vtor_remap;
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system.
|
||||
|
@ -230,7 +229,6 @@ void SystemInit(void)
|
|||
|
||||
/* Configure the Cube driver */
|
||||
SystemCoreClock = 8000000; // At this stage the HSI is used as system clock
|
||||
NVIC_vtor_remap = 0; // Because it is not cleared the first time we enter in NVIC_SetVector()
|
||||
HAL_Init();
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
|
|
|
@ -33,19 +33,17 @@
|
|||
#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM
|
||||
#define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
|
||||
|
||||
int NVIC_vtor_remap = 0; // To keep track that the vectors remap is done
|
||||
|
||||
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
|
||||
int i;
|
||||
|
||||
// Copy and switch to dynamic vectors if first time called
|
||||
if (NVIC_vtor_remap == 0) {
|
||||
if ((SYSCFG->CFGR1 & SYSCFG_CFGR1_MEM_MODE) != SYSCFG_CFGR1_MEM_MODE) {
|
||||
uint32_t *old_vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS;
|
||||
for (i = 0; i < NVIC_NUM_VECTORS; i++) {
|
||||
*((uint32_t *)(NVIC_RAM_VECTOR_ADDRESS + (i*4))) = old_vectors[i];
|
||||
}
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE; // Embedded SRAM mapped at 0x00000000
|
||||
NVIC_vtor_remap = 1; // The vectors remap is done
|
||||
}
|
||||
|
||||
// Set the vector
|
||||
|
|
|
@ -161,7 +161,6 @@ uint8_t SetSysClock_PLL_HSI(void);
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern int NVIC_vtor_remap;
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system.
|
||||
|
@ -230,7 +229,6 @@ void SystemInit(void)
|
|||
|
||||
/* Configure the Cube driver */
|
||||
SystemCoreClock = 8000000; // At this stage the HSI is used as system clock
|
||||
NVIC_vtor_remap = 0; // Because it is not cleared the first time we enter in NVIC_SetVector()
|
||||
HAL_Init();
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
|
|
|
@ -33,19 +33,17 @@
|
|||
#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM
|
||||
#define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
|
||||
|
||||
int NVIC_vtor_remap = 0; // To keep track that the vectors remap is done
|
||||
|
||||
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
|
||||
int i;
|
||||
|
||||
// Copy and switch to dynamic vectors if first time called
|
||||
if (NVIC_vtor_remap == 0) {
|
||||
if ((SYSCFG->CFGR1 & SYSCFG_CFGR1_MEM_MODE) != SYSCFG_CFGR1_MEM_MODE) {
|
||||
uint32_t *old_vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS;
|
||||
for (i = 0; i < NVIC_NUM_VECTORS; i++) {
|
||||
*((uint32_t *)(NVIC_RAM_VECTOR_ADDRESS + (i*4))) = old_vectors[i];
|
||||
}
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE; // Embedded SRAM mapped at 0x00000000
|
||||
NVIC_vtor_remap = 1; // The vectors remap is done
|
||||
}
|
||||
|
||||
// Set the vector
|
||||
|
|
|
@ -161,7 +161,6 @@ uint8_t SetSysClock_PLL_HSI(void);
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern int NVIC_vtor_remap;
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system.
|
||||
|
@ -230,7 +229,6 @@ void SystemInit(void)
|
|||
|
||||
/* Configure the Cube driver */
|
||||
SystemCoreClock = 8000000; // At this stage the HSI is used as system clock
|
||||
NVIC_vtor_remap = 0; // Because it is not cleared the first time we enter in NVIC_SetVector()
|
||||
HAL_Init();
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
|
|
|
@ -33,19 +33,17 @@
|
|||
#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM
|
||||
#define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
|
||||
|
||||
int NVIC_vtor_remap = 0; // To keep track that the vectors remap is done
|
||||
|
||||
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
|
||||
int i;
|
||||
|
||||
// Copy and switch to dynamic vectors if first time called
|
||||
if (NVIC_vtor_remap == 0) {
|
||||
if ((SYSCFG->CFGR1 & SYSCFG_CFGR1_MEM_MODE) != SYSCFG_CFGR1_MEM_MODE) {
|
||||
uint32_t *old_vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS;
|
||||
for (i = 0; i < NVIC_NUM_VECTORS; i++) {
|
||||
*((uint32_t *)(NVIC_RAM_VECTOR_ADDRESS + (i*4))) = old_vectors[i];
|
||||
}
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE; // Embedded SRAM mapped at 0x00000000
|
||||
NVIC_vtor_remap = 1; // The vectors remap is done
|
||||
}
|
||||
|
||||
// Set the vector
|
||||
|
|
|
@ -161,7 +161,6 @@ uint8_t SetSysClock_PLL_HSI(void);
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern int NVIC_vtor_remap;
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system.
|
||||
|
@ -230,7 +229,6 @@ void SystemInit(void)
|
|||
|
||||
/* Configure the Cube driver */
|
||||
SystemCoreClock = 8000000; // At this stage the HSI is used as system clock
|
||||
NVIC_vtor_remap = 0; // Because it is not cleared the first time we enter in NVIC_SetVector()
|
||||
HAL_Init();
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
|
|
|
@ -33,19 +33,17 @@
|
|||
#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM
|
||||
#define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
|
||||
|
||||
int NVIC_vtor_remap = 0; // To keep track that the vectors remap is done
|
||||
|
||||
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
|
||||
int i;
|
||||
|
||||
// Copy and switch to dynamic vectors if first time called
|
||||
if (NVIC_vtor_remap == 0) {
|
||||
if ((SYSCFG->CFGR1 & SYSCFG_CFGR1_MEM_MODE) != SYSCFG_CFGR1_MEM_MODE) {
|
||||
uint32_t *old_vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS;
|
||||
for (i = 0; i < NVIC_NUM_VECTORS; i++) {
|
||||
*((uint32_t *)(NVIC_RAM_VECTOR_ADDRESS + (i*4))) = old_vectors[i];
|
||||
}
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE; // Embedded SRAM mapped at 0x00000000
|
||||
NVIC_vtor_remap = 1; // The vectors remap is done
|
||||
}
|
||||
|
||||
// Set the vector
|
||||
|
|
|
@ -161,8 +161,6 @@ uint8_t SetSysClock_PLL_HSI(void);
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern int NVIC_vtor_remap;
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system.
|
||||
* Initialize the default HSI clock source, vector table location and the PLL configuration is reset.
|
||||
|
@ -230,7 +228,6 @@ void SystemInit(void)
|
|||
|
||||
/* Configure the Cube driver */
|
||||
SystemCoreClock = 8000000; // At this stage the HSI is used as system clock
|
||||
NVIC_vtor_remap = 0; // Because it is not cleared the first time we enter in NVIC_SetVector()
|
||||
HAL_Init();
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
|
|
|
@ -33,19 +33,16 @@
|
|||
#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM
|
||||
#define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
|
||||
|
||||
int NVIC_vtor_remap = 0; // To keep track that the vectors remap is done
|
||||
|
||||
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
|
||||
int i;
|
||||
|
||||
// Copy and switch to dynamic vectors if first time called
|
||||
if (NVIC_vtor_remap == 0) {
|
||||
if ((SYSCFG->CFGR1 & SYSCFG_CFGR1_MEM_MODE) != SYSCFG_CFGR1_MEM_MODE) {
|
||||
uint32_t *old_vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS;
|
||||
for (i = 0; i < NVIC_NUM_VECTORS; i++) {
|
||||
*((uint32_t *)(NVIC_RAM_VECTOR_ADDRESS + (i*4))) = old_vectors[i];
|
||||
}
|
||||
SYSCFG->CFGR1 |= SYSCFG_CFGR1_MEM_MODE; // Embedded SRAM mapped at 0x00000000
|
||||
NVIC_vtor_remap = 1; // The vectors remap is done
|
||||
}
|
||||
|
||||
// Set the vector
|
||||
|
|
|
@ -161,8 +161,6 @@ uint8_t SetSysClock_PLL_HSI(void);
|
|||
* @{
|
||||
*/
|
||||
|
||||
extern int NVIC_vtor_remap;
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system.
|
||||
* Initialize the default HSI clock source, vector table location and the PLL configuration is reset.
|
||||
|
@ -230,7 +228,6 @@ void SystemInit(void)
|
|||
|
||||
/* Configure the Cube driver */
|
||||
SystemCoreClock = 8000000; // At this stage the HSI is used as system clock
|
||||
NVIC_vtor_remap = 0; // Because it is not cleared the first time we enter in NVIC_SetVector()
|
||||
HAL_Init();
|
||||
|
||||
/* Configure the System clock source, PLL Multiplier and Divider factors,
|
||||
|
|
Loading…
Reference in New Issue