File tree Expand file tree Collapse file tree 10 files changed +131
-7
lines changed
targets/TARGET_STM/TARGET_STM32F4
TARGET_UBLOX_EVK_ODIN_W2/device Expand file tree Collapse file tree 10 files changed +131
-7
lines changed Original file line number Diff line number Diff line change 80
80
81
81
#include "stm32f4xx.h"
82
82
#include "hal_tick.h"
83
+ #include "nvic_addr.h"
83
84
84
85
#if !defined (HSE_VALUE )
85
86
#define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz */
@@ -218,7 +219,7 @@ void SystemInit(void)
218
219
#ifdef VECT_TAB_SRAM
219
220
SCB -> VTOR = SRAM_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal SRAM */
220
221
#else
221
- SCB -> VTOR = FLASH_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal FLASH */
222
+ SCB -> VTOR = NVIC_FLASH_VECTOR_ADDRESS ; /* Vector Table Relocation in Internal FLASH */
222
223
#endif
223
224
224
225
/* 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 (0x20000000) // Vectors positioned at start of RAM
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
Original file line number Diff line number Diff line change 15
15
* limitations under the License.
16
16
*/
17
17
#include "stm32f4xx.h"
18
+ #include "nvic_addr.h"
18
19
19
20
/*!< Uncomment the following line if you need to relocate your vector Table in
20
21
Internal SRAM. */
@@ -37,6 +38,6 @@ void SystemInitPre(void)
37
38
#ifdef VECT_TAB_SRAM
38
39
SCB -> VTOR = SRAM_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal SRAM */
39
40
#else
40
- SCB -> VTOR = FLASH_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal FLASH */
41
+ SCB -> VTOR = NVIC_FLASH_VECTOR_ADDRESS ; /* Vector Table Relocation in Internal FLASH */
41
42
#endif
42
43
}
Original file line number Diff line number Diff line change 80
80
81
81
#include "stm32f4xx.h"
82
82
#include "hal_tick.h"
83
+ #include "nvic_addr.h"
83
84
84
85
#if !defined (HSE_VALUE )
85
86
#define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz */
@@ -218,7 +219,7 @@ void SystemInit(void)
218
219
#ifdef VECT_TAB_SRAM
219
220
SCB -> VTOR = SRAM_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal SRAM */
220
221
#else
221
- SCB -> VTOR = FLASH_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal FLASH */
222
+ SCB -> VTOR = NVIC_FLASH_VECTOR_ADDRESS ; /* Vector Table Relocation in Internal FLASH */
222
223
#endif
223
224
224
225
/* 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 (0x20000000) // Vectors positioned at start of RAM
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
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 (0x20000000) // Vectors positioned at start of RAM
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
Original file line number Diff line number Diff line change 80
80
81
81
#include "stm32f4xx.h"
82
82
#include "hal_tick.h"
83
+ #include "nvic_addr.h"
83
84
84
85
#if !defined (HSE_VALUE )
85
86
#define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz */
@@ -218,7 +219,7 @@ void SystemInit(void)
218
219
#ifdef VECT_TAB_SRAM
219
220
SCB -> VTOR = SRAM_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal SRAM */
220
221
#else
221
- SCB -> VTOR = FLASH_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal FLASH */
222
+ SCB -> VTOR = NVIC_FLASH_VECTOR_ADDRESS ; /* Vector Table Relocation in Internal FLASH */
222
223
#endif
223
224
224
225
/* Configure the Cube driver */
You can’t perform that action at this time.
0 commit comments