mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 21:41: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 );
|
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 )
|
static void prvCreateTasks( void )
|
||||||
{
|
{
|
||||||
/* Create tasks for the MPU Demo. */
|
/* 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
|
/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
|
||||||
* implementation of vApplicationGetIdleTaskMemory() to provide the memory that
|
* implementation of vApplicationGetIdleTaskMemory() to provide the memory that
|
||||||
* is used by the Idle task. */
|
* 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 );
|
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 )
|
void BootNonSecure( uint32_t ulNonSecureStartAddress )
|
||||||
{
|
{
|
||||||
NonSecureResetHandler_t pxNonSecureResetHandler;
|
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 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 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 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 configMAX_TASK_NAME_LEN ( 12 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
#define configUSE_16_BIT_TICKS 0
|
#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
|
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
|
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. */
|
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_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
|
struct xSTATIC_LIST_ITEM
|
||||||
{
|
{
|
||||||
|
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||||
TickType_t xDummy1;
|
TickType_t xDummy1;
|
||||||
void *pvDummy2[ 4 ];
|
#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;
|
typedef struct xSTATIC_LIST_ITEM StaticListItem_t;
|
||||||
|
|
||||||
/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
|
/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
|
||||||
struct xSTATIC_MINI_LIST_ITEM
|
struct xSTATIC_MINI_LIST_ITEM
|
||||||
{
|
{
|
||||||
|
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||||
TickType_t xDummy1;
|
TickType_t xDummy1;
|
||||||
void *pvDummy2[ 2 ];
|
#endif
|
||||||
|
TickType_t xDummy2;
|
||||||
|
void *pvDummy3[ 2 ];
|
||||||
};
|
};
|
||||||
typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t;
|
typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t;
|
||||||
|
|
||||||
/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
|
/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
|
||||||
typedef struct xSTATIC_LIST
|
typedef struct xSTATIC_LIST
|
||||||
{
|
{
|
||||||
UBaseType_t uxDummy1;
|
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||||
void *pvDummy2;
|
TickType_t xDummy1;
|
||||||
StaticMiniListItem_t xDummy3;
|
#endif
|
||||||
|
UBaseType_t uxDummy2;
|
||||||
|
void *pvDummy3;
|
||||||
|
StaticMiniListItem_t xDummy4;
|
||||||
|
#if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
|
||||||
|
TickType_t xDummy5;
|
||||||
|
#endif
|
||||||
} StaticList_t;
|
} 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
|
#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 */
|
#endif /* configENABLE_FPU */
|
||||||
|
|
||||||
#ifndef configENABLE_MPU
|
#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 */
|
#endif /* configENABLE_MPU */
|
||||||
|
|
||||||
#ifndef configENABLE_TRUSTZONE
|
#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 */
|
#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
|
#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 */
|
#endif /* configENABLE_FPU */
|
||||||
|
|
||||||
#ifndef configENABLE_MPU
|
#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 */
|
#endif /* configENABLE_MPU */
|
||||||
|
|
||||||
#ifndef configENABLE_TRUSTZONE
|
#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 */
|
#endif /* configENABLE_TRUSTZONE */
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -43,16 +43,17 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef configENABLE_FPU
|
#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 */
|
#endif /* configENABLE_FPU */
|
||||||
|
|
||||||
#ifndef configENABLE_MPU
|
#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 */
|
#endif /* configENABLE_MPU */
|
||||||
|
|
||||||
#ifndef configENABLE_TRUSTZONE
|
#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 */
|
#endif /* configENABLE_TRUSTZONE */
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
* configRUN_FREERTOS_SECURE_ONLY = 0 and configENABLE_TRUSTZONE = 0
|
* configRUN_FREERTOS_SECURE_ONLY = 0 and configENABLE_TRUSTZONE = 0
|
||||||
*/
|
*/
|
||||||
#if( ( configRUN_FREERTOS_SECURE_ONLY == 1 ) && ( configENABLE_TRUSTZONE == 1 ) )
|
#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
|
#endif
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -43,15 +43,15 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef configENABLE_FPU
|
#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 */
|
#endif /* configENABLE_FPU */
|
||||||
|
|
||||||
#ifndef configENABLE_MPU
|
#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 */
|
#endif /* configENABLE_MPU */
|
||||||
|
|
||||||
#ifndef configENABLE_TRUSTZONE
|
#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 */
|
#endif /* configENABLE_TRUSTZONE */
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -43,15 +43,15 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef configENABLE_FPU
|
#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 */
|
#endif /* configENABLE_FPU */
|
||||||
|
|
||||||
#ifndef configENABLE_MPU
|
#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 */
|
#endif /* configENABLE_MPU */
|
||||||
|
|
||||||
#ifndef configENABLE_TRUSTZONE
|
#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 */
|
#endif /* configENABLE_TRUSTZONE */
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue