@@ -1095,12 +1095,28 @@ __attribute__( ( weak ) ) void vPortSetupTimerInterrupt( void )
1095
1095
1096
1096
static void prvSetupMPU ( void )
1097
1097
{
1098
- extern uint32_t __privileged_functions_start__ [];
1099
- extern uint32_t __privileged_functions_end__ [];
1100
- extern uint32_t __FLASH_segment_start__ [];
1101
- extern uint32_t __FLASH_segment_end__ [];
1102
- extern uint32_t __privileged_data_start__ [];
1103
- extern uint32_t __privileged_data_end__ [];
1098
+ #if defined( __ARMCC_VERSION )
1099
+
1100
+ /* Declaration when these variable are defined in code instead of being
1101
+ * exported from linker scripts. */
1102
+ extern uint32_t * __privileged_functions_start__ ;
1103
+ extern uint32_t * __privileged_functions_end__ ;
1104
+ extern uint32_t * __FLASH_segment_start__ ;
1105
+ extern uint32_t * __FLASH_segment_end__ ;
1106
+ extern uint32_t * __privileged_data_start__ ;
1107
+ extern uint32_t * __privileged_data_end__ ;
1108
+ #else
1109
+ /* Declaration when these variable are exported from linker scripts. */
1110
+ extern uint32_t __privileged_functions_start__ [];
1111
+ extern uint32_t __privileged_functions_end__ [];
1112
+ extern uint32_t __FLASH_segment_start__ [];
1113
+ extern uint32_t __FLASH_segment_end__ [];
1114
+ extern uint32_t __privileged_data_start__ [];
1115
+ extern uint32_t __privileged_data_end__ [];
1116
+ #endif /* if defined( __ARMCC_VERSION ) */
1117
+
1118
+ /* Ensure that the device has the expected MPU type */
1119
+ configASSERT ( portMPU_TYPE_REG == portEXPECTED_MPU_TYPE_VALUE );
1104
1120
1105
1121
/* Check the expected MPU is present. */
1106
1122
if ( portMPU_TYPE_REG == portEXPECTED_MPU_TYPE_VALUE )
@@ -1229,10 +1245,22 @@ void vPortStoreTaskMPUSettings( xMPU_SETTINGS * xMPUSettings,
1229
1245
StackType_t * pxBottomOfStack ,
1230
1246
uint32_t ulStackDepth )
1231
1247
{
1232
- extern uint32_t __SRAM_segment_start__ [];
1233
- extern uint32_t __SRAM_segment_end__ [];
1234
- extern uint32_t __privileged_data_start__ [];
1235
- extern uint32_t __privileged_data_end__ [];
1248
+ #if defined( __ARMCC_VERSION )
1249
+
1250
+ /* Declaration when these variable are defined in code instead of being
1251
+ * exported from linker scripts. */
1252
+ extern uint32_t * __SRAM_segment_start__ ;
1253
+ extern uint32_t * __SRAM_segment_end__ ;
1254
+ extern uint32_t * __privileged_data_start__ ;
1255
+ extern uint32_t * __privileged_data_end__ ;
1256
+ #else
1257
+ /* Declaration when these variable are exported from linker scripts. */
1258
+ extern uint32_t __SRAM_segment_start__ [];
1259
+ extern uint32_t __SRAM_segment_end__ [];
1260
+ extern uint32_t __privileged_data_start__ [];
1261
+ extern uint32_t __privileged_data_end__ [];
1262
+ #endif /* if defined( __ARMCC_VERSION ) */
1263
+
1236
1264
int32_t lIndex ;
1237
1265
uint32_t ul ;
1238
1266
0 commit comments