108
108
*/
109
109
110
110
/************************* Miscellaneous Configuration ************************/
111
- /*!< Uncomment the following line if you need to relocate your vector Table in
112
- Internal SRAM. */
113
- /* #define VECT_TAB_SRAM */
114
111
#ifndef VECT_TAB_OFFSET
115
- #define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
116
- This value must be a multiple of 0x200. */
112
+ #define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
113
+ This value must be a multiple of 0x200. */
114
+ #else
115
+ #define USER_VECT_TAB_ADDRESS
117
116
#endif
117
+
118
+ /* Note: Following vector table addresses must be defined in line with linker
119
+ configuration. */
120
+ /*!< Define USER_VECT_TAB_ADDRESS if you need to relocate the vector table
121
+ anywhere in Flash or Sram, else the vector table is kept at the automatic
122
+ remap of boot address selected */
123
+ #if defined(USER_VECT_TAB_ADDRESS )
124
+ /*!< Define VECT_TAB_SRAM if you need to relocate your vector Table
125
+ in Sram else user remap will be done in Flash. */
126
+ #if defined(VECT_TAB_SRAM )
127
+ #define VECT_TAB_BASE_ADDRESS SRAM1_BASE /*!< Vector Table base address field.
128
+ This value must be a multiple of 0x200. */
129
+ #else
130
+ #define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field.
131
+ This value must be a multiple of 0x200. */
132
+ #endif /* VECT_TAB_SRAM */
133
+ #endif /* USER_VECT_TAB_ADDRESS */
134
+
118
135
/******************************************************************************/
119
136
/**
120
137
* @}
169
186
170
187
void SystemInit (void )
171
188
{
189
+ #if defined(USER_VECT_TAB_ADDRESS )
190
+ /* Configure the Vector Table location -------------------------------------*/
191
+ SCB -> VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET ;
192
+ #endif
193
+
172
194
/* FPU settings ------------------------------------------------------------*/
173
- #if (__FPU_PRESENT == 1 ) && (__FPU_USED == 1 )
174
- SCB -> CPACR |= ((3UL << 10 * 2 )|(3UL << 11 * 2 )); /* set CP10 and CP11 Full Access */
175
- #endif
195
+ #if (__FPU_PRESENT == 1 ) && (__FPU_USED == 1 )
196
+ SCB -> CPACR |= ((3UL << 20U )|(3UL << 22U )); /* set CP10 and CP11 Full Access */
197
+ #endif
176
198
177
199
/* Reset the RCC clock configuration to the default reset state ------------*/
178
200
/* Set MSION bit */
@@ -192,13 +214,6 @@ void SystemInit(void)
192
214
193
215
/* Disable all interrupts */
194
216
RCC -> CIER = 0x00000000U ;
195
-
196
- /* Configure the Vector Table location add offset address ------------------*/
197
- #ifdef VECT_TAB_SRAM
198
- SCB -> VTOR = SRAM_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal SRAM */
199
- #else
200
- SCB -> VTOR = FLASH_BASE | VECT_TAB_OFFSET ; /* Vector Table Relocation in Internal FLASH */
201
- #endif
202
217
}
203
218
204
219
/**
0 commit comments