mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Add instructions on building the Cortex-M33 secure and non secure projects into the comments of that project and into a readme.txt file.
Enable configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES setting to be used in statically allocated systems.
This commit is contained in:
parent
ceeff14524
commit
8b6ab5f197
|
@ -65,6 +65,38 @@ const uint32_t * __unprivileged_sram_end__ = ( uint32_t * ) ( 0x20220000 - 0x1
|
|||
static void prvCreateTasks( void );
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
Instructions to Build and Run:
|
||||
- The Keil multi-project workspace FreeRTOSDemo.uvmpw contains projects for
|
||||
both the secure project, and non secure project.
|
||||
- Set the FreeRTOSDemo_s project as Active - Right click on
|
||||
"Project: FreeRTOSDemo_s" and select "Set as Active Project".
|
||||
- Build the FreeRTOSDemo_s project using "Project --> Build" or by pressing
|
||||
F7.
|
||||
- Set the FreeRTOSDemo_ns project as Active – Right click on
|
||||
"Project: FreeRTOSDemo_ns" and select "Set as Active Project".
|
||||
- Build the FreeRTOSDemo_ns project using "Project --> Build" or by
|
||||
pressing "F7".
|
||||
- Start Debug Session using "Debug -> Start/Stop Debug Session" or by
|
||||
pressing "Ctrl+F5".
|
||||
*/
|
||||
|
||||
/* Non-Secure main. */
|
||||
int main( void )
|
||||
{
|
||||
/* Create tasks. */
|
||||
prvCreateTasks();
|
||||
|
||||
/* Start scheduler. */
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* Should not reach here as the scheduler is already started. */
|
||||
for( ; ; )
|
||||
{
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvCreateTasks( void )
|
||||
{
|
||||
/* Create tasks for the MPU Demo. */
|
||||
|
@ -84,22 +116,6 @@ void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName
|
|||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Non-Secure main. */
|
||||
int main( void )
|
||||
{
|
||||
/* Create tasks. */
|
||||
prvCreateTasks();
|
||||
|
||||
/* Start scheduler. */
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* Should not reach here as the schedular is already started. */
|
||||
for( ; ; )
|
||||
{
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
|
||||
* implementation of vApplicationGetIdleTaskMemory() to provide the memory that
|
||||
* is used by the Idle task. */
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
Instructions to Build and Run:
|
||||
- The Keil multi-project workspace FreeRTOSDemo.uvmpw contains projects for both the secure project, and non secure project.
|
||||
- Set the FreeRTOSDemo_s project as Active - Right click on "Project: FreeRTOSDemo_s" and select "Set as Active Project".
|
||||
- Build the FreeRTOSDemo_s project using "Project --> Build" or by pressing F7.
|
||||
- Set the FreeRTOSDemo_ns project as Active – Right click on "Project: FreeRTOSDemo_ns" and select "Set as Active Project".
|
||||
- Build the FreeRTOSDemo_ns project using "Project --> Build" or by pressing "F7".
|
||||
- Start Debug Session using "Debug -> Start/Stop Debug Session" or by pressing "Ctrl+F5".
|
||||
|
|
@ -44,6 +44,36 @@ typedef void ( *NonSecureResetHandler_t ) ( void ) __attribute__( ( cmse_nonsecu
|
|||
void BootNonSecure( uint32_t ulNonSecureStartAddress );
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
Instructions to Build and Run:
|
||||
- The Keil multi-project workspace FreeRTOSDemo.uvmpw contains projects for
|
||||
both the secure project, and non secure project.
|
||||
- Set the FreeRTOSDemo_s project as Active - Right click on
|
||||
"Project: FreeRTOSDemo_s" and select "Set as Active Project".
|
||||
- Build the FreeRTOSDemo_s project using "Project --> Build" or by pressing
|
||||
F7.
|
||||
- Set the FreeRTOSDemo_ns project as Active – Right click on
|
||||
"Project: FreeRTOSDemo_ns" and select "Set as Active Project".
|
||||
- Build the FreeRTOSDemo_ns project using "Project --> Build" or by
|
||||
pressing "F7".
|
||||
- Start Debug Session using "Debug -> Start/Stop Debug Session" or by
|
||||
pressing "Ctrl+F5".
|
||||
*/
|
||||
|
||||
/* Secure main() */
|
||||
int main( void )
|
||||
{
|
||||
/* Boot the non-secure code. */
|
||||
BootNonSecure( mainNONSECURE_APP_START_ADDRESS );
|
||||
|
||||
/* Non-secure software does not return, this code is not executed. */
|
||||
for( ; ; )
|
||||
{
|
||||
/* Should not reach here. */
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void BootNonSecure( uint32_t ulNonSecureStartAddress )
|
||||
{
|
||||
NonSecureResetHandler_t pxNonSecureResetHandler;
|
||||
|
@ -64,16 +94,3 @@ void BootNonSecure( uint32_t ulNonSecureStartAddress )
|
|||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Secure main() */
|
||||
int main( void )
|
||||
{
|
||||
/* Boot the non-secure code. */
|
||||
BootNonSecure( mainNONSECURE_APP_START_ADDRESS );
|
||||
|
||||
/* Non-secure software does not return, this code is not executed. */
|
||||
for( ; ; )
|
||||
{
|
||||
/* Should not reach here. */
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
#define configUSE_DAEMON_TASK_STARTUP_HOOK 1
|
||||
#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. */
|
||||
#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. */
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 45 * 1024 ) )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 52 * 1024 ) )
|
||||
#define configMAX_TASK_NAME_LEN ( 12 )
|
||||
#define configUSE_TRACE_FACILITY 1
|
||||
#define configUSE_16_BIT_TICKS 0
|
||||
|
|
|
@ -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
|
||||
smaller heap regions - in which case heap_4.c would be the more appropriate
|
||||
choice. See http://www.freertos.org/a00111.html for an explanation. */
|
||||
#define mainREGION_1_SIZE 7201
|
||||
#define mainREGION_1_SIZE 8201
|
||||
#define mainREGION_2_SIZE 29905
|
||||
#define mainREGION_3_SIZE 6407
|
||||
#define mainREGION_3_SIZE 7607
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -1039,25 +1039,40 @@ the Secure Side only. */
|
|||
*/
|
||||
struct xSTATIC_LIST_ITEM
|
||||
{
|
||||
TickType_t xDummy1;
|
||||
void *pvDummy2[ 4 ];
|
||||
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||
TickType_t xDummy1;
|
||||
#endif
|
||||
TickType_t xDummy2;
|
||||
void *pvDummy3[ 4 ];
|
||||
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||
TickType_t xDummy4;
|
||||
#endif
|
||||
};
|
||||
typedef struct xSTATIC_LIST_ITEM StaticListItem_t;
|
||||
|
||||
/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
|
||||
struct xSTATIC_MINI_LIST_ITEM
|
||||
{
|
||||
TickType_t xDummy1;
|
||||
void *pvDummy2[ 2 ];
|
||||
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||
TickType_t xDummy1;
|
||||
#endif
|
||||
TickType_t xDummy2;
|
||||
void *pvDummy3[ 2 ];
|
||||
};
|
||||
typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t;
|
||||
|
||||
/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
|
||||
typedef struct xSTATIC_LIST
|
||||
{
|
||||
UBaseType_t uxDummy1;
|
||||
void *pvDummy2;
|
||||
StaticMiniListItem_t xDummy3;
|
||||
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||
TickType_t xDummy1;
|
||||
#endif
|
||||
UBaseType_t uxDummy2;
|
||||
void *pvDummy3;
|
||||
StaticMiniListItem_t xDummy4;
|
||||
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||
TickType_t xDummy5;
|
||||
#endif
|
||||
} StaticList_t;
|
||||
|
||||
/*
|
||||
|
|
10
FreeRTOS/Source/portable/ARMv8M/ReadMe.txt
Normal file
10
FreeRTOS/Source/portable/ARMv8M/ReadMe.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
This directory tree contains the master copy of the FreeeRTOS Cortex-M33 port.
|
||||
Do not use the files located here! These file are copied into separate
|
||||
FreeRTOS/Source/portable/[compiler]/ARM_CM33_NNN directories prior to each
|
||||
FreeRTOS release.
|
||||
|
||||
If your Cortex-M33 application uses TrustZone then use the files from the
|
||||
FreeRTOS/Source/portable/[compiler]/ARM_CM33 directories.
|
||||
|
||||
If you Cortex-M33 application is not going to use TrustZone then use the files
|
||||
from the FreeRTOS/Source/portable/[compiler]/ARM_CM33_NTZ directories.
|
10
FreeRTOS/Source/portable/ARMv8M/non_secure/ReadMe.txt
Normal file
10
FreeRTOS/Source/portable/ARMv8M/non_secure/ReadMe.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
This directory tree contains the master copy of the FreeeRTOS Cortex-M33 port.
|
||||
Do not use the files located here! These file are copied into separate
|
||||
FreeRTOS/Source/portable/[compiler]/ARM_CM33_NNN directories prior to each
|
||||
FreeRTOS release.
|
||||
|
||||
If your Cortex-M33 application uses TrustZone then use the files from the
|
||||
FreeRTOS/Source/portable/[compiler]/ARM_CM33 directories.
|
||||
|
||||
If you Cortex-M33 application is not going to use TrustZone then use the files
|
||||
from the FreeRTOS/Source/portable/[compiler]/ARM_CM33_NTZ directories.
|
|
@ -43,16 +43,17 @@ extern "C" {
|
|||
*/
|
||||
|
||||
#ifndef configENABLE_FPU
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h. Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.
|
||||
#endif /* configENABLE_FPU */
|
||||
|
||||
#ifndef configENABLE_MPU
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h. Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.
|
||||
#endif /* configENABLE_MPU */
|
||||
|
||||
#ifndef configENABLE_TRUSTZONE
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h. Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.
|
||||
#endif /* configENABLE_TRUSTZONE */
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
|
|
10
FreeRTOS/Source/portable/ARMv8M/secure/ReadMe.txt
Normal file
10
FreeRTOS/Source/portable/ARMv8M/secure/ReadMe.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
This directory tree contains the master copy of the FreeeRTOS Cortex-M33 port.
|
||||
Do not use the files located here! These file are copied into separate
|
||||
FreeRTOS/Source/portable/[compiler]/ARM_CM33_NNN directories prior to each
|
||||
FreeRTOS release.
|
||||
|
||||
If your Cortex-M33 application uses TrustZone then use the files from the
|
||||
FreeRTOS/Source/portable/[compiler]/ARM_CM33 directories.
|
||||
|
||||
If you Cortex-M33 application is not going to use TrustZone then use the files
|
||||
from the FreeRTOS/Source/portable/[compiler]/ARM_CM33_NTZ directories.
|
|
@ -43,16 +43,17 @@ extern "C" {
|
|||
*/
|
||||
|
||||
#ifndef configENABLE_FPU
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h. Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.
|
||||
#endif /* configENABLE_FPU */
|
||||
|
||||
#ifndef configENABLE_MPU
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h. Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.
|
||||
#endif /* configENABLE_MPU */
|
||||
|
||||
#ifndef configENABLE_TRUSTZONE
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h. Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.
|
||||
#endif /* configENABLE_TRUSTZONE */
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
|
|
|
@ -43,16 +43,17 @@ extern "C" {
|
|||
*/
|
||||
|
||||
#ifndef configENABLE_FPU
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h. Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.
|
||||
#endif /* configENABLE_FPU */
|
||||
|
||||
#ifndef configENABLE_MPU
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h. Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.
|
||||
#endif /* configENABLE_MPU */
|
||||
|
||||
#ifndef configENABLE_TRUSTZONE
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h. Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.
|
||||
#endif /* configENABLE_TRUSTZONE */
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
* configRUN_FREERTOS_SECURE_ONLY = 0 and configENABLE_TRUSTZONE = 0
|
||||
*/
|
||||
#if( ( configRUN_FREERTOS_SECURE_ONLY == 1 ) && ( configENABLE_TRUSTZONE == 1 ) )
|
||||
#error Trust Zone needs to be disabled in order to run FreeRTOS on the Secure Side.
|
||||
#error TrustZone needs to be disabled in order to run FreeRTOS on the Secure Side.
|
||||
#endif
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -43,15 +43,15 @@ extern "C" {
|
|||
*/
|
||||
|
||||
#ifndef configENABLE_FPU
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h. Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.
|
||||
#endif /* configENABLE_FPU */
|
||||
|
||||
#ifndef configENABLE_MPU
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h. Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.
|
||||
#endif /* configENABLE_MPU */
|
||||
|
||||
#ifndef configENABLE_TRUSTZONE
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h. Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.
|
||||
#endif /* configENABLE_TRUSTZONE */
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -43,15 +43,15 @@ extern "C" {
|
|||
*/
|
||||
|
||||
#ifndef configENABLE_FPU
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_FPU must be defined in FreeRTOSConfig.h. Set configENABLE_FPU to 1 to enable the FPU or 0 to disable the FPU.
|
||||
#endif /* configENABLE_FPU */
|
||||
|
||||
#ifndef configENABLE_MPU
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_MPU must be defined in FreeRTOSConfig.h. Set configENABLE_MPU to 1 to enable the MPU or 0 to disable the MPU.
|
||||
#endif /* configENABLE_MPU */
|
||||
|
||||
#ifndef configENABLE_TRUSTZONE
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h.
|
||||
#error configENABLE_TRUSTZONE must be defined in FreeRTOSConfig.h. Set configENABLE_TRUSTZONE to 1 to enable TrustZone or 0 to disable TrustZone.
|
||||
#endif /* configENABLE_TRUSTZONE */
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
|
Loading…
Reference in a new issue