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:
Richard Barry 2019-02-20 17:55:59 +00:00
parent ceeff14524
commit 8b6ab5f197
15 changed files with 144 additions and 55 deletions

View file

@ -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. */

View file

@ -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".

View file

@ -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. */
}
}
/*-----------------------------------------------------------*/

View file

@ -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

View 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
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
/*-----------------------------------------------------------*/