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
}\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
--- /dev/null
+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
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
}\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
#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
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
*/\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
--- /dev/null
+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
--- /dev/null
+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
*/\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
--- /dev/null
+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
*/\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
*/\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
* 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
*/\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
#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