Merge branch 'main' into stack_overflow_check

pull/1231/head
Gaurav-Aggarwal-AWS 1 month ago committed by GitHub
commit 6534df98f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -268,12 +268,12 @@ jobs:
fetch-depth: 1 fetch-depth: 1
- env: - env:
stepName: Fetch Community-Supported-Demos Submodule stepName: Fetch Dependencies
shell: bash shell: bash
run: | run: |
# ${{ env.stepName }} # ${{ env.stepName }}
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}" echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
# Checkout user pull request changes # Checkout user pull request changes

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -125,6 +125,14 @@ typedef struct MPU_REGION_SETTINGS
#endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */ #endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
/*
* +------------------------------+-------------------------------+-----+
* | CONTROL, r4-r11, EXC_RETURN | PSP, r0-r3, r12, LR, PC, xPSR | |
* +------------------------------+-------------------------------+-----+
*
* <-----------------------------><-------------------------------><---->
* 10 9 1
*/
#define MAX_CONTEXT_SIZE ( 20 ) #define MAX_CONTEXT_SIZE ( 20 )
/* Size of an Access Control List (ACL) entry in bits. */ /* Size of an Access Control List (ACL) entry in bits. */

@ -219,7 +219,16 @@ typedef struct MPU_REGION_SETTINGS
#endif /* configUSE_MPU_WRAPPERS_V1 == 0 */ #endif /* configUSE_MPU_WRAPPERS_V1 == 0 */
#define MAX_CONTEXT_SIZE ( 52 ) /*
* +---------+---------------+-----------------+-----------------+-----+
* | s16-s31 | s0-s15, FPSCR | CONTROL, r4-r11 | PSP, r0-r3, r12 | |
* | | | EXC_RETURN | LR, PC, xPSR | |
* +---------+---------------+-----------------+-----------------+-----+
*
* <--------><---------------><----------------><----------------><---->
* 16 17 10 9 1
*/
#define MAX_CONTEXT_SIZE ( 53 )
/* Size of an Access Control List (ACL) entry in bits. */ /* Size of an Access Control List (ACL) entry in bits. */
#define portACL_ENTRY_SIZE_BITS ( 32U ) #define portACL_ENTRY_SIZE_BITS ( 32U )

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -221,7 +221,16 @@ typedef struct MPU_REGION_SETTINGS
#endif /* configUSE_MPU_WRAPPERS_V1 == 0 */ #endif /* configUSE_MPU_WRAPPERS_V1 == 0 */
#define MAX_CONTEXT_SIZE ( 52 ) /*
* +---------+---------------+-----------------+-----------------+-----+
* | s16-s31 | s0-s15, FPSCR | CONTROL, r4-r11 | PSP, r0-r3, r12 | |
* | | | EXC_RETURN | LR, PC, xPSR | |
* +---------+---------------+-----------------+-----------------+-----+
*
* <--------><---------------><----------------><----------------><---->
* 16 17 10 9 1
*/
#define MAX_CONTEXT_SIZE ( 53 )
/* Size of an Access Control List (ACL) entry in bits. */ /* Size of an Access Control List (ACL) entry in bits. */
#define portACL_ENTRY_SIZE_BITS ( 32U ) #define portACL_ENTRY_SIZE_BITS ( 32U )

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -246,9 +246,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><-----------><----> * <-----------><--------------><---------><----------------><-----------------------------><-----------><---->
* 16 16 8 8 5 16 1 * 16 17 8 8 5 16 1
*/ */
#define MAX_CONTEXT_SIZE 70 #define MAX_CONTEXT_SIZE 71
#elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) ) #elif ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 0 ) )
@ -259,9 +259,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+------------------------------+-----+ * +-----------+---------------+----------+-----------------+------------------------------+-----+
* *
* <-----------><--------------><---------><----------------><-----------------------------><----> * <-----------><--------------><---------><----------------><-----------------------------><---->
* 16 16 8 8 5 1 * 16 17 8 8 5 1
*/ */
#define MAX_CONTEXT_SIZE 54 #define MAX_CONTEXT_SIZE 55
#elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) ) #elif ( ( configENABLE_TRUSTZONE == 0 ) && ( configENABLE_PAC == 1 ) )
@ -272,9 +272,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><-----------><----> * <-----------><--------------><---------><----------------><---------------------><-----------><---->
* 16 16 8 8 4 16 1 * 16 17 8 8 4 16 1
*/ */
#define MAX_CONTEXT_SIZE 69 #define MAX_CONTEXT_SIZE 70
#else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #else /* if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */
@ -285,9 +285,9 @@ extern void vClearInterruptMask( uint32_t ulMask ) /* __attribute__(( naked )) P
* +-----------+---------------+----------+-----------------+----------------------+-----+ * +-----------+---------------+----------+-----------------+----------------------+-----+
* *
* <-----------><--------------><---------><----------------><---------------------><----> * <-----------><--------------><---------><----------------><---------------------><---->
* 16 16 8 8 4 1 * 16 17 8 8 4 1
*/ */
#define MAX_CONTEXT_SIZE 53 #define MAX_CONTEXT_SIZE 54
#endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */ #endif /* #if ( ( configENABLE_TRUSTZONE == 1 ) && ( configENABLE_PAC == 1 ) ) */

@ -218,7 +218,16 @@ typedef struct MPU_REGION_SETTINGS
#endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */ #endif /* #if ( configUSE_MPU_WRAPPERS_V1 == 0 ) */
#define MAX_CONTEXT_SIZE ( 52 ) /*
* +---------+---------------+-----------------+-----------------+-----+
* | s16-s31 | s0-s15, FPSCR | CONTROL, r4-r11 | PSP, r0-r3, r12 | |
* | | | EXC_RETURN | LR, PC, xPSR | |
* +---------+---------------+-----------------+-----------------+-----+
*
* <--------><---------------><----------------><----------------><---->
* 16 17 10 9 1
*/
#define MAX_CONTEXT_SIZE ( 53 )
/* Size of an Access Control List (ACL) entry in bits. */ /* Size of an Access Control List (ACL) entry in bits. */
#define portACL_ENTRY_SIZE_BITS ( 32U ) #define portACL_ENTRY_SIZE_BITS ( 32U )

@ -105,6 +105,8 @@ static BaseType_t xSchedulerEnd = pdFALSE;
static pthread_t hTimerTickThread; static pthread_t hTimerTickThread;
static bool xTimerTickThreadShouldRun; static bool xTimerTickThreadShouldRun;
static uint64_t prvStartTimeNs; static uint64_t prvStartTimeNs;
static pthread_mutex_t xThreadMutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_key_t xThreadKey = 0;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
static void prvSetupSignalsAndSchedulerPolicy( void ); static void prvSetupSignalsAndSchedulerPolicy( void );
@ -119,6 +121,45 @@ static void vPortStartFirstTask( void );
static void prvPortYieldFromISR( void ); static void prvPortYieldFromISR( void );
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
void prvThreadKeyDestructor( void * data )
{
free( data );
}
static void prvInitThreadKey()
{
pthread_mutex_lock( &xThreadMutex );
if( xThreadKey == 0 )
{
pthread_key_create( &xThreadKey, prvThreadKeyDestructor );
}
pthread_mutex_unlock( &xThreadMutex );
}
static void prvMarkAsFreeRTOSThread( pthread_t thread )
{
prvInitThreadKey();
uint8_t * thread_data = malloc( 1 );
configASSERT( thread_data != NULL );
*thread_data = 1;
pthread_setspecific( xThreadKey, thread_data );
}
static BaseType_t prvIsFreeRTOSThread( pthread_t thread )
{
uint8_t * thread_data = ( uint8_t * ) pthread_getspecific( xThreadKey );
return thread_data != NULL && *thread_data == 1;
}
static void prvDestroyThreadKey()
{
pthread_key_delete( xThreadKey );
}
/*-----------------------------------------------------------*/
static void prvFatalError( const char * pcCall, static void prvFatalError( const char * pcCall,
int iErrno ) __attribute__( ( __noreturn__ ) ); int iErrno ) __attribute__( ( __noreturn__ ) );
@ -249,6 +290,8 @@ BaseType_t xPortStartScheduler( void )
/* Restore original signal mask. */ /* Restore original signal mask. */
( void ) pthread_sigmask( SIG_SETMASK, &xSchedulerOriginalSignalMask, NULL ); ( void ) pthread_sigmask( SIG_SETMASK, &xSchedulerOriginalSignalMask, NULL );
prvDestroyThreadKey();
return 0; return 0;
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -266,8 +309,12 @@ void vPortEndScheduler( void )
( void ) pthread_kill( hMainThread, SIG_RESUME ); ( void ) pthread_kill( hMainThread, SIG_RESUME );
/* Waiting to be deleted here. */ /* Waiting to be deleted here. */
if( prvIsFreeRTOSThread( pthread_self() ) == pdTRUE )
{
pxCurrentThread = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() ); pxCurrentThread = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() );
event_wait( pxCurrentThread->ev ); event_wait( pxCurrentThread->ev );
}
pthread_testcancel(); pthread_testcancel();
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -322,13 +369,19 @@ void vPortYield( void )
void vPortDisableInterrupts( void ) void vPortDisableInterrupts( void )
{ {
pthread_sigmask( SIG_BLOCK, &xAllSignals, NULL ); if( prvIsFreeRTOSThread( pthread_self() ) == pdTRUE )
{
pthread_sigmask(SIG_BLOCK, &xAllSignals, NULL);
}
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
void vPortEnableInterrupts( void ) void vPortEnableInterrupts( void )
{ {
pthread_sigmask( SIG_UNBLOCK, &xAllSignals, NULL ); if( prvIsFreeRTOSThread( pthread_self() ) == pdTRUE )
{
pthread_sigmask(SIG_UNBLOCK, &xAllSignals, NULL);
}
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -364,6 +417,8 @@ static void * prvTimerTickHandler( void * arg )
{ {
( void ) arg; ( void ) arg;
prvMarkAsFreeRTOSThread( pthread_self() );
prvPortSetCurrentThreadName("Scheduler timer"); prvPortSetCurrentThreadName("Scheduler timer");
while( xTimerTickThreadShouldRun ) while( xTimerTickThreadShouldRun )
@ -396,6 +451,8 @@ void prvSetupTimerInterrupt( void )
static void vPortSystemTickHandler( int sig ) static void vPortSystemTickHandler( int sig )
{ {
if( prvIsFreeRTOSThread( pthread_self() ) == pdTRUE )
{
Thread_t * pxThreadToSuspend; Thread_t * pxThreadToSuspend;
Thread_t * pxThreadToResume; Thread_t * pxThreadToResume;
@ -416,6 +473,9 @@ static void vPortSystemTickHandler( int sig )
} }
uxCriticalNesting--; uxCriticalNesting--;
} else {
fprintf( stderr, "vPortSystemTickHandler called from non-FreeRTOS thread\n" );
}
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -448,6 +508,8 @@ static void * prvWaitForStart( void * pvParams )
{ {
Thread_t * pxThread = pvParams; Thread_t * pxThread = pvParams;
prvMarkAsFreeRTOSThread( pthread_self() );
prvSuspendSelf( pxThread ); prvSuspendSelf( pxThread );
/* Resumed for the first time, unblocks all signals. */ /* Resumed for the first time, unblocks all signals. */

Loading…
Cancel
Save