]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/Common/mpu_wrappers.c
Add support for statically allocated memory protected tasks - previously only dynamic...
[freertos] / FreeRTOS / Source / portable / Common / mpu_wrappers.c
index 8a5115b78957185e44438f929e962e493169c431..0fae3c65c6c7db86fae1818c3882011860cbf27f 100644 (file)
@@ -96,15 +96,30 @@ extern BaseType_t xPortRaisePrivilege( void );
 \r
 /*-----------------------------------------------------------*/\r
 \r
-BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask )\r
-{\r
-BaseType_t xReturn;\r
-BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
+#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
+       BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask )\r
+       {\r
+       BaseType_t xReturn;\r
+       BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
 \r
-       xReturn = xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask );\r
-       vPortResetPrivilege( xRunningPrivileged );\r
-       return xReturn;\r
-}\r
+               xReturn = xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask );\r
+               vPortResetPrivilege( xRunningPrivileged );\r
+               return xReturn;\r
+       }\r
+#endif /* conifgSUPPORT_DYNAMIC_ALLOCATION */\r
+/*-----------------------------------------------------------*/\r
+\r
+#if( configSUPPORT_STATIC_ALLOCATION == 1 )\r
+       BaseType_t MPU_xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask )\r
+       {\r
+       BaseType_t xReturn;\r
+       BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
+\r
+               xReturn = xTaskCreateRestrictedStatic( pxTaskDefinition, pxCreatedTask );\r
+               vPortResetPrivilege( xRunningPrivileged );\r
+               return xReturn;\r
+       }\r
+#endif /* conifgSUPPORT_DYNAMIC_ALLOCATION */\r
 /*-----------------------------------------------------------*/\r
 \r
 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
@@ -337,7 +352,7 @@ BaseType_t xRunningPrivileged = xPortRaisePrivilege();
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
-#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) )\r
+#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )\r
        void MPU_vTaskList( char *pcWriteBuffer )\r
        {\r
        BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
@@ -348,7 +363,7 @@ BaseType_t xRunningPrivileged = xPortRaisePrivilege();
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
-#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) )\r
+#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )\r
        void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer )\r
        {\r
        BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
@@ -726,7 +741,7 @@ void * xReturn;
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
-#if ( configUSE_QUEUE_SETS == 1 )\r
+#if( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )\r
        QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength )\r
        {\r
        QueueSetHandle_t xReturn;\r
@@ -827,7 +842,6 @@ BaseType_t xRunningPrivileged = xPortRaisePrivilege();
 /*-----------------------------------------------------------*/\r
 \r
 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
-\r
        void *MPU_pvPortMalloc( size_t xSize )\r
        {\r
        void *pvReturn;\r
@@ -839,12 +853,10 @@ BaseType_t xRunningPrivileged = xPortRaisePrivilege();
 \r
                return pvReturn;\r
        }\r
-\r
 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */\r
 /*-----------------------------------------------------------*/\r
 \r
 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
-\r
        void MPU_vPortFree( void *pv )\r
        {\r
        BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
@@ -853,31 +865,34 @@ BaseType_t xRunningPrivileged = xPortRaisePrivilege();
 \r
                vPortResetPrivilege( xRunningPrivileged );\r
        }\r
-\r
 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */\r
 /*-----------------------------------------------------------*/\r
 \r
-void MPU_vPortInitialiseBlocks( void )\r
-{\r
-BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
+#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
+       void MPU_vPortInitialiseBlocks( void )\r
+       {\r
+       BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
 \r
-       vPortInitialiseBlocks();\r
+               vPortInitialiseBlocks();\r
 \r
-       vPortResetPrivilege( xRunningPrivileged );\r
-}\r
+               vPortResetPrivilege( xRunningPrivileged );\r
+       }\r
+#endif /* configSUPPORT_DYNAMIC_ALLOCATION */\r
 /*-----------------------------------------------------------*/\r
 \r
-size_t MPU_xPortGetFreeHeapSize( void )\r
-{\r
-size_t xReturn;\r
-BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
+#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )\r
+       size_t MPU_xPortGetFreeHeapSize( void )\r
+       {\r
+       size_t xReturn;\r
+       BaseType_t xRunningPrivileged = xPortRaisePrivilege();\r
 \r
-       xReturn = xPortGetFreeHeapSize();\r
+               xReturn = xPortGetFreeHeapSize();\r
 \r
-       vPortResetPrivilege( xRunningPrivileged );\r
+               vPortResetPrivilege( xRunningPrivileged );\r
 \r
-       return xReturn;\r
-}\r
+               return xReturn;\r
+       }\r
+#endif /* configSUPPORT_DYNAMIC_ALLOCATION */\r
 /*-----------------------------------------------------------*/\r
 \r
 #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )\r