mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2026-03-09 18:13:30 -04:00
tasks: Disable stack-depth check if MPU wrappers is set
This stack-depth check should not be performed for ports where portUSING_MPU_WRAPPERS is set to 1. In this case, pxTopOfStack and pxNewTCB->pxTopOfStack reside in different memory regions: pxTopOfStack is in unprivileged SRAM, while pxNewTCB->pxTopOfStack is in privileged SRAM. This is because pxPortInitialiseStack() returns the address of `ullContext` array rather than the decremented pxTopOfStack, as is done in the non-MPU case. Consequently, this check is not valid in this scenario. Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com>
This commit is contained in:
parent
7417c8338b
commit
90dd76f28f
2 changed files with 12 additions and 10 deletions
1
.github/scripts/kernel_checker.py
vendored
1
.github/scripts/kernel_checker.py
vendored
|
|
@ -120,6 +120,7 @@ KERNEL_ARM_COLLAB_FILES_PATTERNS = [
|
||||||
r'.*portable/.*/ARM_CM4F_MPU*',
|
r'.*portable/.*/ARM_CM4F_MPU*',
|
||||||
r'.*portable/.*/ARM_CR82*',
|
r'.*portable/.*/ARM_CR82*',
|
||||||
r'.*include/task\.h$',
|
r'.*include/task\.h$',
|
||||||
|
r'.*tasks\.c$',
|
||||||
]
|
]
|
||||||
|
|
||||||
KERNEL_HEADER = [
|
KERNEL_HEADER = [
|
||||||
|
|
|
||||||
21
tasks.c
21
tasks.c
|
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
|
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
|
||||||
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
|
* Copyright 2026 Arm Limited and/or its affiliates <open-source-office@arm.com>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
|
@ -2007,19 +2008,19 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
||||||
pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters );
|
pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters );
|
||||||
}
|
}
|
||||||
#endif /* portHAS_STACK_OVERFLOW_CHECKING */
|
#endif /* portHAS_STACK_OVERFLOW_CHECKING */
|
||||||
|
|
||||||
|
#if ( portSTACK_GROWTH < 0 )
|
||||||
|
{
|
||||||
|
configASSERT( ( ( portPOINTER_SIZE_TYPE ) ( pxTopOfStack - pxNewTCB->pxTopOfStack ) ) < ( ( portPOINTER_SIZE_TYPE ) uxStackDepth ) );
|
||||||
|
}
|
||||||
|
#else /* portSTACK_GROWTH */
|
||||||
|
{
|
||||||
|
configASSERT( ( ( portPOINTER_SIZE_TYPE ) ( pxNewTCB->pxTopOfStack - pxTopOfStack ) ) < ( ( portPOINTER_SIZE_TYPE ) uxStackDepth ) );
|
||||||
|
}
|
||||||
|
#endif /* portSTACK_GROWTH */
|
||||||
}
|
}
|
||||||
#endif /* portUSING_MPU_WRAPPERS */
|
#endif /* portUSING_MPU_WRAPPERS */
|
||||||
|
|
||||||
#if ( portSTACK_GROWTH < 0 )
|
|
||||||
{
|
|
||||||
configASSERT( ( ( portPOINTER_SIZE_TYPE ) ( pxTopOfStack - pxNewTCB->pxTopOfStack ) ) < ( ( portPOINTER_SIZE_TYPE ) uxStackDepth ) );
|
|
||||||
}
|
|
||||||
#else /* portSTACK_GROWTH */
|
|
||||||
{
|
|
||||||
configASSERT( ( ( portPOINTER_SIZE_TYPE ) ( pxNewTCB->pxTopOfStack - pxTopOfStack ) ) < ( ( portPOINTER_SIZE_TYPE ) uxStackDepth ) );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Initialize task state and task attributes. */
|
/* Initialize task state and task attributes. */
|
||||||
#if ( configNUMBER_OF_CORES > 1 )
|
#if ( configNUMBER_OF_CORES > 1 )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue