11/*
2- * FreeRTOS Kernel V10.1.1
3- * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+ * FreeRTOS Kernel V10.2.0
3+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
44 *
55 * Permission is hereby granted, free of charge, to any person obtaining a copy of
66 * this software and associated documentation files (the "Software"), to deal in
@@ -156,6 +156,10 @@ extern "C" {
156156 #define INCLUDE_uxTaskGetStackHighWaterMark 0
157157#endif
158158
159+ #ifndef INCLUDE_uxTaskGetStackHighWaterMark2
160+ #define INCLUDE_uxTaskGetStackHighWaterMark2 0
161+ #endif
162+
159163#ifndef INCLUDE_eTaskGetState
160164 #define INCLUDE_eTaskGetState 0
161165#endif
@@ -758,8 +762,12 @@ extern "C" {
758762 #define portTASK_USES_FLOATING_POINT ()
759763#endif
760764
761- #ifndef portTASK_CALLS_SECURE_FUNCTIONS
762- #define portTASK_CALLS_SECURE_FUNCTIONS ()
765+ #ifndef portALLOCATE_SECURE_CONTEXT
766+ #define portALLOCATE_SECURE_CONTEXT ( ulSecureStackSize )
767+ #endif
768+
769+ #ifndef portHAS_STACK_OVERFLOW_CHECKING
770+ #define portHAS_STACK_OVERFLOW_CHECKING 0
763771#endif
764772
765773#ifndef configUSE_TIME_SLICING
@@ -950,6 +958,75 @@ point support. */
950958 #define configUSE_TASK_FPU_SUPPORT 1
951959#endif
952960
961+ /* Set configENABLE_MPU to 1 to enable MPU support and 0 to disable it. This is
962+ currently used in ARMv8M ports. */
963+ #ifndef configENABLE_MPU
964+ #define configENABLE_MPU 0
965+ #endif
966+
967+ /* Set configENABLE_FPU to 1 to enable FPU support and 0 to disable it. This is
968+ currently used in ARMv8M ports. */
969+ #ifndef configENABLE_FPU
970+ #define configENABLE_FPU 1
971+ #endif
972+
973+ /* Set configENABLE_TRUSTZONE to 1 enable TrustZone support and 0 to disable it.
974+ This is currently used in ARMv8M ports. */
975+ #ifndef configENABLE_TRUSTZONE
976+ #define configENABLE_TRUSTZONE 1
977+ #endif
978+
979+ /* Set configRUN_FREERTOS_SECURE_ONLY to 1 to run the FreeRTOS ARMv8M port on
980+ the Secure Side only. */
981+ #ifndef configRUN_FREERTOS_SECURE_ONLY
982+ #define configRUN_FREERTOS_SECURE_ONLY 0
983+ #endif
984+
985+ /* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using
986+ * dynamically allocated RAM, in which case when any task is deleted it is known
987+ * that both the task's stack and TCB need to be freed. Sometimes the
988+ * FreeRTOSConfig.h settings only allow a task to be created using statically
989+ * allocated RAM, in which case when any task is deleted it is known that neither
990+ * the task's stack or TCB should be freed. Sometimes the FreeRTOSConfig.h
991+ * settings allow a task to be created using either statically or dynamically
992+ * allocated RAM, in which case a member of the TCB is used to record whether the
993+ * stack and/or TCB were allocated statically or dynamically, so when a task is
994+ * deleted the RAM that was allocated dynamically is freed again and no attempt is
995+ * made to free the RAM that was allocated statically.
996+ * tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a
997+ * task to be created using either statically or dynamically allocated RAM. Note
998+ * that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with
999+ * a statically allocated stack and a dynamically allocated TCB.
1000+ *
1001+ * The following table lists various combinations of portUSING_MPU_WRAPPERS,
1002+ * configSUPPORT_DYNAMIC_ALLOCATION and configSUPPORT_STATIC_ALLOCATION and
1003+ * when it is possible to have both static and dynamic allocation:
1004+ * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
1005+ * | MPU | Dynamic | Static | Available Functions | Possible Allocations | Both Dynamic and | Need Free |
1006+ * | | | | | | Static Possible | |
1007+ * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
1008+ * | 0 | 0 | 1 | xTaskCreateStatic | TCB - Static, Stack - Static | No | No |
1009+ * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
1010+ * | 0 | 1 | 0 | xTaskCreate | TCB - Dynamic, Stack - Dynamic | No | Yes |
1011+ * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
1012+ * | 0 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes |
1013+ * | | | | xTaskCreateStatic | 2. TCB - Static, Stack - Static | | |
1014+ * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
1015+ * | 1 | 0 | 1 | xTaskCreateStatic, | TCB - Static, Stack - Static | No | No |
1016+ * | | | | xTaskCreateRestrictedStatic | | | |
1017+ * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
1018+ * | 1 | 1 | 0 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes |
1019+ * | | | | xTaskCreateRestricted | 2. TCB - Dynamic, Stack - Static | | |
1020+ * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
1021+ * | 1 | 1 | 1 | xTaskCreate, | 1. TCB - Dynamic, Stack - Dynamic | Yes | Yes |
1022+ * | | | | xTaskCreateStatic, | 2. TCB - Dynamic, Stack - Static | | |
1023+ * | | | | xTaskCreateRestricted, | 3. TCB - Static, Stack - Static | | |
1024+ * | | | | xTaskCreateRestrictedStatic | | | |
1025+ * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
1026+ */
1027+ #define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( ( portUSING_MPU_WRAPPERS == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) || \
1028+ ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) )
1029+
9531030/*
9541031 * In line with software engineering best practice, FreeRTOS implements a strict
9551032 * data hiding policy, so the real structures used by FreeRTOS to maintain the
@@ -962,25 +1039,40 @@ point support. */
9621039 */
9631040struct xSTATIC_LIST_ITEM
9641041{
965- TickType_t xDummy1 ;
966- void * pvDummy2 [ 4 ];
1042+ #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
1043+ TickType_t xDummy1 ;
1044+ #endif
1045+ TickType_t xDummy2 ;
1046+ void * pvDummy3 [ 4 ];
1047+ #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
1048+ TickType_t xDummy4 ;
1049+ #endif
9671050};
9681051typedef struct xSTATIC_LIST_ITEM StaticListItem_t ;
9691052
9701053/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
9711054struct xSTATIC_MINI_LIST_ITEM
9721055{
973- TickType_t xDummy1 ;
974- void * pvDummy2 [ 2 ];
1056+ #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
1057+ TickType_t xDummy1 ;
1058+ #endif
1059+ TickType_t xDummy2 ;
1060+ void * pvDummy3 [ 2 ];
9751061};
9761062typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t ;
9771063
9781064/* See the comments above the struct xSTATIC_LIST_ITEM definition. */
9791065typedef struct xSTATIC_LIST
9801066{
981- UBaseType_t uxDummy1 ;
982- void * pvDummy2 ;
983- StaticMiniListItem_t xDummy3 ;
1067+ #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
1068+ TickType_t xDummy1 ;
1069+ #endif
1070+ UBaseType_t uxDummy2 ;
1071+ void * pvDummy3 ;
1072+ StaticMiniListItem_t xDummy4 ;
1073+ #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
1074+ TickType_t xDummy5 ;
1075+ #endif
9841076} StaticList_t ;
9851077
9861078/*
@@ -1034,7 +1126,7 @@ typedef struct xSTATIC_TCB
10341126 uint32_t ulDummy18 ;
10351127 uint8_t ucDummy19 ;
10361128 #endif
1037- #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
1129+ #if ( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
10381130 uint8_t uxDummy20 ;
10391131 #endif
10401132
@@ -1138,16 +1230,12 @@ typedef struct xSTATIC_TIMER
11381230 void * pvDummy1 ;
11391231 StaticListItem_t xDummy2 ;
11401232 TickType_t xDummy3 ;
1141- UBaseType_t uxDummy4 ;
11421233 void * pvDummy5 ;
11431234 TaskFunction_t pvDummy6 ;
11441235 #if ( configUSE_TRACE_FACILITY == 1 )
11451236 UBaseType_t uxDummy7 ;
11461237 #endif
1147-
1148- #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
1149- uint8_t ucDummy8 ;
1150- #endif
1238+ uint8_t ucDummy8 ;
11511239
11521240} StaticTimer_t ;
11531241
0 commit comments