#define portPRIVILEGED_EXECUTION_START_ADDRESS ( 0UL )\r
#define portMPU_REGION_VALID ( 0x10UL )\r
#define portMPU_REGION_ENABLE ( 0x01UL )\r
-#define portPERIPHERALS_START_ADDRESS 0x40000000UL\r
-#define portPERIPHERALS_END_ADDRESS 0x5FFFFFFFUL\r
+#define portPERIPHERALS_START_ADDRESS 0x40000000UL\r
+#define portPERIPHERALS_END_ADDRESS 0x5FFFFFFFUL\r
\r
/* Constants required to access and manipulate the SysTick. */\r
#define portNVIC_SYSTICK_CLK ( 0x00000004UL )\r
* C portion of the SVC handler. The SVC handler is split between an asm entry\r
* and a C wrapper for simplicity of coding and maintenance.\r
*/\r
-static void prvSVCHandler( unsigned long *pulRegisters ) __attribute__ ((optimize("3"))) PRIVILEGED_FUNCTION;\r
+static void prvSVCHandler( unsigned long *pulRegisters ) __attribute__(( noinline )) PRIVILEGED_FUNCTION;\r
\r
/*-----------------------------------------------------------*/\r
\r
" mrs r0, psp \n"\r
#endif\r
" b prvSVCHandler \n"\r
+ :::"r0"\r
);\r
\r
/* This will never get executed, but is required to prevent prvSVCHandler\r
" mrs r1, control \n" /* Obtain current control value. */\r
" bic r1, #1 \n" /* Set privilege bit. */\r
" msr control, r1 \n" /* Write back new control value. */\r
+ :::"r1"\r
);\r
break;\r
\r
#define portNUM_CONFIGURABLE_REGIONS ( ( portLAST_CONFIGURABLE_REGION - portFIRST_CONFIGURABLE_REGION ) + 1 )\r
#define portTOTAL_NUM_REGIONS ( portNUM_CONFIGURABLE_REGIONS + 1 ) /* Plus one to make space for the stack region. */\r
\r
-#define portSWITCH_TO_USER_MODE() __asm volatile ( " mrs r0, control \n orr r0, #1 \n msr control, r0 " )\r
+#define portSWITCH_TO_USER_MODE() __asm volatile ( " mrs r0, control \n orr r0, #1 \n msr control, r0 " :::"r0" )\r
\r
typedef struct MPU_REGION_REGISTERS\r
{\r