]> git.sur5r.net Git - freertos/commitdiff
Add instructions on building the Cortex-M33 secure and non secure projects into the...
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 20 Feb 2019 17:55:59 +0000 (17:55 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 20 Feb 2019 17:55:59 +0000 (17:55 +0000)
Enable configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES setting to be used in statically allocated systems.

git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2639 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

15 files changed:
FreeRTOS/Demo/CORTEX_MPU_M33F_Simulator_Keil_GCC/NonSecure/main_ns.c
FreeRTOS/Demo/CORTEX_MPU_M33F_Simulator_Keil_GCC/ReadMe.txt [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_MPU_M33F_Simulator_Keil_GCC/Secure/main_s.c
FreeRTOS/Demo/WIN32-MSVC/FreeRTOSConfig.h
FreeRTOS/Demo/WIN32-MSVC/main.c
FreeRTOS/Source/include/FreeRTOS.h
FreeRTOS/Source/portable/ARMv8M/ReadMe.txt [new file with mode: 0644]
FreeRTOS/Source/portable/ARMv8M/non_secure/ReadMe.txt [new file with mode: 0644]
FreeRTOS/Source/portable/ARMv8M/non_secure/portmacro.h
FreeRTOS/Source/portable/ARMv8M/secure/ReadMe.txt [new file with mode: 0644]
FreeRTOS/Source/portable/GCC/ARM_CM33/non_secure/portmacro.h
FreeRTOS/Source/portable/GCC/ARM_CM33_NTZ/non_secure/portmacro.h
FreeRTOS/Source/portable/IAR/ARM_CM33/non_secure/port.c
FreeRTOS/Source/portable/IAR/ARM_CM33/non_secure/portmacro.h
FreeRTOS/Source/portable/IAR/ARM_CM33_NTZ/non_secure/portmacro.h

index faffb007dadfebeffbb48eb26cfc0ccdc124ae38..6faa97b3188ad05c669ab651903dd56dfb96bf19 100644 (file)
@@ -65,6 +65,38 @@ const uint32_t * __unprivileged_sram_end__                   = ( uint32_t * ) ( 0x20220000 - 0x1
 static void prvCreateTasks( void );\r
 /*-----------------------------------------------------------*/\r
 \r
+/*\r
+       Instructions to Build and Run:\r
+        - The Keil multi-project workspace FreeRTOSDemo.uvmpw contains projects for\r
+          both the secure project, and non secure project.\r
+        - Set the FreeRTOSDemo_s project as Active - Right click on\r
+          "Project: FreeRTOSDemo_s" and select "Set as Active Project".\r
+        - Build the FreeRTOSDemo_s project using "Project --> Build" or by pressing\r
+          F7.\r
+        - Set the FreeRTOSDemo_ns project as Active – Right click on\r
+          "Project: FreeRTOSDemo_ns" and select "Set as Active Project".\r
+        - Build the FreeRTOSDemo_ns project using "Project --> Build" or by\r
+          pressing "F7".\r
+        - Start Debug Session using "Debug -> Start/Stop Debug Session" or by\r
+          pressing "Ctrl+F5".\r
+*/\r
+\r
+/* Non-Secure main. */\r
+int main( void )\r
+{\r
+       /* Create tasks. */\r
+       prvCreateTasks();\r
+\r
+       /* Start scheduler. */\r
+       vTaskStartScheduler();\r
+\r
+       /* Should not reach here as the scheduler is already started. */\r
+       for( ; ; )\r
+       {\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
 static void prvCreateTasks( void )\r
 {\r
        /* Create tasks for the MPU Demo. */\r
@@ -84,22 +116,6 @@ void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-/* Non-Secure main. */\r
-int main( void )\r
-{\r
-       /* Create tasks. */\r
-       prvCreateTasks();\r
-\r
-       /* Start scheduler. */\r
-       vTaskStartScheduler();\r
-\r
-       /* Should not reach here as the schedular is already started. */\r
-       for( ; ; )\r
-       {\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
 /* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an\r
  * implementation of vApplicationGetIdleTaskMemory() to provide the memory that\r
  * is used by the Idle task. */\r
diff --git a/FreeRTOS/Demo/CORTEX_MPU_M33F_Simulator_Keil_GCC/ReadMe.txt b/FreeRTOS/Demo/CORTEX_MPU_M33F_Simulator_Keil_GCC/ReadMe.txt
new file mode 100644 (file)
index 0000000..42ab96b
--- /dev/null
@@ -0,0 +1,8 @@
+Instructions to Build and Run:\r
+ - The Keil multi-project workspace FreeRTOSDemo.uvmpw contains projects for both the secure project, and non secure project.\r
+ - Set the FreeRTOSDemo_s project as Active - Right click on "Project: FreeRTOSDemo_s" and select "Set as Active Project".\r
+ - Build the FreeRTOSDemo_s project using "Project --> Build" or by pressing F7.\r
+ - Set the FreeRTOSDemo_ns project as Active – Right click on "Project: FreeRTOSDemo_ns" and select "Set as Active Project".\r
+ - Build the FreeRTOSDemo_ns project using "Project --> Build" or by pressing "F7".\r
+ - Start Debug Session using "Debug -> Start/Stop Debug Session" or by pressing "Ctrl+F5".\r
+\r
index b3e6c56760f0f9eb153adde3272dbdd9dc2a6683..72b81131c9c6228ca82a8462aad06f3e025ad1f2 100644 (file)
@@ -44,6 +44,36 @@ typedef void ( *NonSecureResetHandler_t )    ( void ) __attribute__( ( cmse_nonsecu
 void BootNonSecure( uint32_t ulNonSecureStartAddress );\r
 /*-----------------------------------------------------------*/\r
 \r
+/*\r
+       Instructions to Build and Run:\r
+        - The Keil multi-project workspace FreeRTOSDemo.uvmpw contains projects for\r
+          both the secure project, and non secure project.\r
+        - Set the FreeRTOSDemo_s project as Active - Right click on\r
+          "Project: FreeRTOSDemo_s" and select "Set as Active Project".\r
+        - Build the FreeRTOSDemo_s project using "Project --> Build" or by pressing\r
+          F7.\r
+        - Set the FreeRTOSDemo_ns project as Active – Right click on\r
+          "Project: FreeRTOSDemo_ns" and select "Set as Active Project".\r
+        - Build the FreeRTOSDemo_ns project using "Project --> Build" or by\r
+          pressing "F7".\r
+        - Start Debug Session using "Debug -> Start/Stop Debug Session" or by\r
+          pressing "Ctrl+F5".\r
+*/\r
+\r
+/* Secure main() */\r
+int main( void )\r
+{\r
+       /* Boot the non-secure code. */\r
+       BootNonSecure( mainNONSECURE_APP_START_ADDRESS );\r
+\r
+       /* Non-secure software does not return, this code is not executed. */\r
+       for( ; ; )\r
+       {\r
+               /* Should not reach here. */\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
 void BootNonSecure( uint32_t ulNonSecureStartAddress )\r
 {\r
        NonSecureResetHandler_t pxNonSecureResetHandler;\r
@@ -64,16 +94,3 @@ void BootNonSecure( uint32_t ulNonSecureStartAddress )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-/* Secure main() */\r
-int main( void )\r
-{\r
-       /* Boot the non-secure code. */\r
-       BootNonSecure( mainNONSECURE_APP_START_ADDRESS );\r
-\r
-       /* Non-secure software does not return, this code is not executed. */\r
-       for( ; ; )\r
-       {\r
-               /* Should not reach here. */\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
index 976d980e72f2b1c6a48e1d287271b99503eb6626..a23b311f3121fc85bda89b54d1c2987197ab16c7 100644 (file)
@@ -47,7 +47,7 @@
 #define configUSE_DAEMON_TASK_STARTUP_HOOK             1\r
 #define configTICK_RATE_HZ                                             ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */\r
 #define configMINIMAL_STACK_SIZE                               ( ( unsigned short ) 70 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the win32 thread. */\r
-#define configTOTAL_HEAP_SIZE                                  ( ( size_t ) ( 45 * 1024 ) )\r
+#define configTOTAL_HEAP_SIZE                                  ( ( size_t ) ( 52 * 1024 ) )\r
 #define configMAX_TASK_NAME_LEN                                        ( 12 )\r
 #define configUSE_TRACE_FACILITY                               1\r
 #define configUSE_16_BIT_TICKS                                 0\r
index 73917d2d5d8bfeaef24dd08ef0508313940dfe79..02df03820b3e04200b1e9a06f0f44989bef3cd52 100644 (file)
@@ -75,9 +75,9 @@ that make up the total heap.  heap_5 is only used for test and example purposes
 as this demo could easily create one large heap region instead of multiple\r
 smaller heap regions - in which case heap_4.c would be the more appropriate\r
 choice.  See http://www.freertos.org/a00111.html for an explanation. */\r
-#define mainREGION_1_SIZE      7201\r
+#define mainREGION_1_SIZE      8201\r
 #define mainREGION_2_SIZE      29905\r
-#define mainREGION_3_SIZE      6407\r
+#define mainREGION_3_SIZE      7607\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
index 6e3deed52dc4dd3cc4c1e29aea7b05392048b05e..3afd3bb241089f0c190a5edda837ba8c4dc9decf 100644 (file)
@@ -1039,25 +1039,40 @@ the Secure Side only. */
  */\r
 struct xSTATIC_LIST_ITEM\r
 {\r
-       TickType_t xDummy1;\r
-       void *pvDummy2[ 4 ];\r
+       #if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )\r
+               TickType_t xDummy1;\r
+       #endif\r
+       TickType_t xDummy2;\r
+       void *pvDummy3[ 4 ];\r
+       #if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )\r
+               TickType_t xDummy4;\r
+       #endif\r
 };\r
 typedef struct xSTATIC_LIST_ITEM StaticListItem_t;\r
 \r
 /* See the comments above the struct xSTATIC_LIST_ITEM definition. */\r
 struct xSTATIC_MINI_LIST_ITEM\r
 {\r
-       TickType_t xDummy1;\r
-       void *pvDummy2[ 2 ];\r
+       #if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )\r
+               TickType_t xDummy1;\r
+       #endif\r
+       TickType_t xDummy2;\r
+       void *pvDummy3[ 2 ];\r
 };\r
 typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t;\r
 \r
 /* See the comments above the struct xSTATIC_LIST_ITEM definition. */\r
 typedef struct xSTATIC_LIST\r
 {\r
-       UBaseType_t uxDummy1;\r
-       void *pvDummy2;\r
-       StaticMiniListItem_t xDummy3;\r
+       #if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )\r
+               TickType_t xDummy1;\r
+       #endif\r
+       UBaseType_t uxDummy2;\r
+       void *pvDummy3;\r
+       StaticMiniListItem_t xDummy4;\r
+       #if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )\r
+               TickType_t xDummy5;\r
+       #endif\r
 } StaticList_t;\r
 \r
 /*\r
diff --git a/FreeRTOS/Source/portable/ARMv8M/ReadMe.txt b/FreeRTOS/Source/portable/ARMv8M/ReadMe.txt
new file mode 100644 (file)
index 0000000..4ac3bad
--- /dev/null
@@ -0,0 +1,10 @@
+This directory tree contains the master copy of the FreeeRTOS Cortex-M33 port.\r
+Do not use the files located here!  These file are copied into separate\r
+FreeRTOS/Source/portable/[compiler]/ARM_CM33_NNN directories prior to each\r
+FreeRTOS release.\r
+\r
+If your Cortex-M33 application uses TrustZone then use the files from the\r
+FreeRTOS/Source/portable/[compiler]/ARM_CM33 directories.\r
+\r
+If you Cortex-M33 application is not going to use TrustZone then use the files\r
+from the FreeRTOS/Source/portable/[compiler]/ARM_CM33_NTZ directories.\r
diff --git a/FreeRTOS/Source/portable/ARMv8M/non_secure/ReadMe.txt b/FreeRTOS/Source/portable/ARMv8M/non_secure/ReadMe.txt
new file mode 100644 (file)
index 0000000..4ac3bad
--- /dev/null
@@ -0,0 +1,10 @@
+This directory tree contains the master copy of the FreeeRTOS Cortex-M33 port.\r
+Do not use the files located here!  These file are copied into separate\r
+FreeRTOS/Source/portable/[compiler]/ARM_CM33_NNN directories prior to each\r
+FreeRTOS release.\r
+\r
+If your Cortex-M33 application uses TrustZone then use the files from the\r
+FreeRTOS/Source/portable/[compiler]/ARM_CM33 directories.\r
+\r
+If you Cortex-M33 application is not going to use TrustZone then use the files\r
+from the FreeRTOS/Source/portable/[compiler]/ARM_CM33_NTZ directories.\r
index 4bd9a6f50534c197b1c057132245fa7ec44378a5..5042570709dd70abfea133b9b0c779a1254d0e7c 100644 (file)
@@ -43,16 +43,17 @@ extern "C" {
  */\r
 \r
 #ifndef configENABLE_FPU\r
-       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.  Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.\r
 #endif /* configENABLE_FPU */\r
 \r
 #ifndef configENABLE_MPU\r
-       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.  Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.\r
 #endif /* configENABLE_MPU */\r
 \r
 #ifndef configENABLE_TRUSTZONE\r
-       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.  Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.\r
 #endif /* configENABLE_TRUSTZONE */\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /**\r
diff --git a/FreeRTOS/Source/portable/ARMv8M/secure/ReadMe.txt b/FreeRTOS/Source/portable/ARMv8M/secure/ReadMe.txt
new file mode 100644 (file)
index 0000000..4ac3bad
--- /dev/null
@@ -0,0 +1,10 @@
+This directory tree contains the master copy of the FreeeRTOS Cortex-M33 port.\r
+Do not use the files located here!  These file are copied into separate\r
+FreeRTOS/Source/portable/[compiler]/ARM_CM33_NNN directories prior to each\r
+FreeRTOS release.\r
+\r
+If your Cortex-M33 application uses TrustZone then use the files from the\r
+FreeRTOS/Source/portable/[compiler]/ARM_CM33 directories.\r
+\r
+If you Cortex-M33 application is not going to use TrustZone then use the files\r
+from the FreeRTOS/Source/portable/[compiler]/ARM_CM33_NTZ directories.\r
index 4bd9a6f50534c197b1c057132245fa7ec44378a5..5042570709dd70abfea133b9b0c779a1254d0e7c 100644 (file)
@@ -43,16 +43,17 @@ extern "C" {
  */\r
 \r
 #ifndef configENABLE_FPU\r
-       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.  Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.\r
 #endif /* configENABLE_FPU */\r
 \r
 #ifndef configENABLE_MPU\r
-       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.  Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.\r
 #endif /* configENABLE_MPU */\r
 \r
 #ifndef configENABLE_TRUSTZONE\r
-       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.  Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.\r
 #endif /* configENABLE_TRUSTZONE */\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /**\r
index 4bd9a6f50534c197b1c057132245fa7ec44378a5..5042570709dd70abfea133b9b0c779a1254d0e7c 100644 (file)
@@ -43,16 +43,17 @@ extern "C" {
  */\r
 \r
 #ifndef configENABLE_FPU\r
-       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.  Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.\r
 #endif /* configENABLE_FPU */\r
 \r
 #ifndef configENABLE_MPU\r
-       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.  Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.\r
 #endif /* configENABLE_MPU */\r
 \r
 #ifndef configENABLE_TRUSTZONE\r
-       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.  Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.\r
 #endif /* configENABLE_TRUSTZONE */\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /**\r
index 9d92290500c4da48b1ab892139194a30c68163cb..57c5e23bb90fb24d115b17847a71c732162123ac 100644 (file)
@@ -64,7 +64,7 @@
  *             configRUN_FREERTOS_SECURE_ONLY = 0 and configENABLE_TRUSTZONE = 0\r
  */\r
 #if( ( configRUN_FREERTOS_SECURE_ONLY == 1 ) && ( configENABLE_TRUSTZONE == 1 ) )\r
-       #error Trust Zone needs to be disabled in order to run FreeRTOS on the Secure Side.\r
+       #error TrustZone needs to be disabled in order to run FreeRTOS on the Secure Side.\r
 #endif\r
 /*-----------------------------------------------------------*/\r
 \r
index 4bd9a6f50534c197b1c057132245fa7ec44378a5..a5242006e890d715ec62727fed153a6833cbf8f0 100644 (file)
@@ -43,15 +43,15 @@ extern "C" {
  */\r
 \r
 #ifndef configENABLE_FPU\r
-       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.  Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.\r
 #endif /* configENABLE_FPU */\r
 \r
 #ifndef configENABLE_MPU\r
-       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.  Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.\r
 #endif /* configENABLE_MPU */\r
 \r
 #ifndef configENABLE_TRUSTZONE\r
-       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.  Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.\r
 #endif /* configENABLE_TRUSTZONE */\r
 /*-----------------------------------------------------------*/\r
 \r
index 4bd9a6f50534c197b1c057132245fa7ec44378a5..a5242006e890d715ec62727fed153a6833cbf8f0 100644 (file)
@@ -43,15 +43,15 @@ extern "C" {
  */\r
 \r
 #ifndef configENABLE_FPU\r
-       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_FPU must be defined in FreeRTOSConfig.h.  Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.\r
 #endif /* configENABLE_FPU */\r
 \r
 #ifndef configENABLE_MPU\r
-       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_MPU must be defined in FreeRTOSConfig.h.  Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.\r
 #endif /* configENABLE_MPU */\r
 \r
 #ifndef configENABLE_TRUSTZONE\r
-       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.\r
+       #error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.  Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.\r
 #endif /* configENABLE_TRUSTZONE */\r
 /*-----------------------------------------------------------*/\r
 \r