File tree Expand file tree Collapse file tree 4 files changed +45
-3
lines changed
targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG Expand file tree Collapse file tree 4 files changed +45
-3
lines changed Original file line number Diff line number Diff line change 84
84
85
85
#include "stm32l4xx.h"
86
86
#include "hal_tick.h"
87
+ #include "nvic_addr.h"
87
88
88
89
#if !defined (HSE_VALUE )
89
90
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
@@ -215,7 +216,7 @@ void SystemInit(void)
215
216
#ifdef VECT_TAB_SRAM
216
217
SCB -> VTOR = SRAM_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal SRAM */
217
218
#else
218
- SCB -> VTOR = FLASH_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal FLASH */
219
+ SCB -> VTOR = NVIC_FLASH_VECTOR_ADDRESS ; /* Vector Table Relocation in Internal FLASH */
219
220
#endif
220
221
221
222
/* Configure the Cube driver */
Original file line number Diff line number Diff line change 84
84
85
85
#include "stm32l4xx.h"
86
86
#include "hal_tick.h"
87
+ #include "nvic_addr.h"
87
88
88
89
#if !defined (HSE_VALUE )
89
90
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
@@ -215,7 +216,7 @@ void SystemInit(void)
215
216
#ifdef VECT_TAB_SRAM
216
217
SCB -> VTOR = SRAM_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal SRAM */
217
218
#else
218
- SCB -> VTOR = FLASH_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal FLASH */
219
+ SCB -> VTOR = NVIC_FLASH_VECTOR_ADDRESS ; ; /* Vector Table Relocation in Internal FLASH */
219
220
#endif
220
221
221
222
/* Configure the Cube driver */
Original file line number Diff line number Diff line change 29
29
*******************************************************************************
30
30
*/
31
31
#include "cmsis_nvic.h"
32
+ #include "nvic_addr.h"
32
33
33
34
#define NVIC_RAM_VECTOR_ADDRESS (0x10000000) // Vectors positioned at start of SRAM2
34
- #define NVIC_FLASH_VECTOR_ADDRESS (0x08000000) // Initial vector position in flash
35
35
36
36
void NVIC_SetVector (IRQn_Type IRQn , uint32_t vector ) {
37
37
uint32_t * vectors = (uint32_t * )SCB -> VTOR ;
Original file line number Diff line number Diff line change
1
+ /* mbed Microcontroller Library
2
+ * Copyright (c) 2017-2017 ARM Limited
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ #ifndef NVIC_ADDR_H
17
+ #define NVIC_ADDR_H
18
+
19
+ #ifdef __cplusplus
20
+ extern "C" {
21
+ #endif
22
+
23
+ #if defined(__ICCARM__ )
24
+ #pragma section=".intvec"
25
+ #define NVIC_FLASH_VECTOR_ADDRESS ((uint32_t)__section_begin(".intvec"))
26
+ #elif defined(__CC_ARM )
27
+ extern uint32_t Load$$LR$$LR_IROM1$$Base [];
28
+ #define NVIC_FLASH_VECTOR_ADDRESS ((uint32_t)Load$$LR$$LR_IROM1$$Base)
29
+ #elif defined(__GNUC__ )
30
+ extern uint32_t g_pfnVectors [];
31
+ #define NVIC_FLASH_VECTOR_ADDRESS ((uint32_t)g_pfnVectors)
32
+ #else
33
+ #error "Flash vector address not set for this toolchain"
34
+ #endif
35
+
36
+ #ifdef __cplusplus
37
+ }
38
+ #endif
39
+
40
+ #endif
You can’t perform that action at this time.
0 commit comments