mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-13 07:05:10 -05:00
Replaced asm macro by failing assertion.
This commit is contained in:
parent
75fa197ac9
commit
eeae596776
3 changed files with 255 additions and 225 deletions
4
tasks.c
4
tasks.c
|
|
@ -44,6 +44,10 @@
|
|||
#include "timers.h"
|
||||
#include "stack_macros.h"
|
||||
|
||||
#ifdef VERIFAST
|
||||
#include "verifast_asm.h"
|
||||
#endif
|
||||
|
||||
/* Lint e9021, e961 and e750 are suppressed as a MISRA exception justified
|
||||
* because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined
|
||||
* for the header files above, but not in this file, in order to generate the
|
||||
|
|
|
|||
|
|
@ -9985,6 +9985,19 @@ BaseType_t xTimerGenericCommandFromISR( TimerHandle_t xTimer,
|
|||
/* Remove stack overflow macro if not being used. */
|
||||
// # 46 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c" 2
|
||||
|
||||
|
||||
// # 1 "/Users/reitobia/repos2/FreeRTOS-Kernel/verification/verifast/proof_setup/verifast_asm.h" 1
|
||||
|
||||
|
||||
|
||||
bool assert_fct(bool b)
|
||||
{
|
||||
(__builtin_expect(!(b), 0) ? __assert_rtn ((const char *)-1L, "verifast_asm.h", 6, "b") : (void)0);
|
||||
return b;
|
||||
}
|
||||
// # 49 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c" 2
|
||||
|
||||
|
||||
/* Lint e9021, e961 and e750 are suppressed as a MISRA exception justified
|
||||
* because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined
|
||||
* for the header files above, but not in this file, in order to generate the
|
||||
|
|
@ -9993,7 +10006,7 @@ BaseType_t xTimerGenericCommandFromISR( TimerHandle_t xTimer,
|
|||
|
||||
/* Set configUSE_STATS_FORMATTING_FUNCTIONS to 2 to include the stats formatting
|
||||
* functions but without including stdio.h here. */
|
||||
// # 73 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 77 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Values that can be assigned to the ucNotifyState member of the TCB. */
|
||||
|
||||
|
||||
|
|
@ -10050,18 +10063,18 @@ BaseType_t xTimerGenericCommandFromISR( TimerHandle_t xTimer,
|
|||
|
||||
/* uxTopReadyPriority holds the priority of the highest priority ready
|
||||
* state task. */
|
||||
// # 137 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 141 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Define away taskRESET_READY_PRIORITY() and portRESET_READY_PRIORITY() as
|
||||
* they are only required when a port optimised method of task selection is
|
||||
* being used. */
|
||||
// # 171 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 175 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* pxDelayedTaskList and pxOverflowDelayedTaskList are switched when the tick
|
||||
* count overflows. */
|
||||
// # 189 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 193 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
|
|
@ -10116,7 +10129,7 @@ typedef BaseType_t TaskRunning_t;
|
|||
typedef struct tskTaskControlBlock /* The old naming convention is used to prevent breaking kernel aware debuggers. */
|
||||
{
|
||||
volatile StackType_t * pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE TCB STRUCT. */
|
||||
// # 252 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 256 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
ListItem_t xStateListItem; /*< The list that the state list item of a task is reference from denotes the state of that task (Ready, Blocked, Suspended ). */
|
||||
ListItem_t xEventListItem; /*< Used to reference a task from an event list. */
|
||||
UBaseType_t uxPriority; /*< The priority of the task. 0 is the lowest priority. */
|
||||
|
|
@ -10124,7 +10137,7 @@ typedef struct tskTaskControlBlock /* The old naming convention is used to preve
|
|||
volatile TaskRunning_t xTaskRunState; /*< Used to identify the core the task is running on, if any. */
|
||||
BaseType_t xIsIdle; /*< Used to identify the idle tasks. */
|
||||
char pcTaskName[ 16 ]; /*< Descriptive name given to the task when created. Facilitates debugging only. */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
|
||||
// # 269 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 273 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
UBaseType_t uxCriticalNesting; /*< Holds the critical section nesting depth for ports that do not maintain their own count in the port layer. */
|
||||
|
||||
|
||||
|
|
@ -10144,7 +10157,7 @@ typedef struct tskTaskControlBlock /* The old naming convention is used to preve
|
|||
|
||||
|
||||
void * pvThreadLocalStoragePointers[ 5 ];
|
||||
// # 309 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 313 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
volatile uint32_t ulNotifiedValue[ 1 ];
|
||||
volatile uint8_t ucNotifyState[ 1 ];
|
||||
|
||||
|
|
@ -10235,7 +10248,7 @@ const volatile UBaseType_t uxTopUsedPriority = 32 - 1U;
|
|||
* must not be done by an ISR. Reads must be protected by either lock and may be done by
|
||||
* either an ISR or a task. */
|
||||
static volatile UBaseType_t uxSchedulerSuspended = ( UBaseType_t ) ( ( BaseType_t ) 0 );
|
||||
// # 409 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 413 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*lint -restore */
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
@ -10388,7 +10401,7 @@ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait,
|
|||
* will exit the Blocked state.
|
||||
*/
|
||||
static void prvResetNextTaskUnblockTime( void ) ;
|
||||
// # 573 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 577 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*
|
||||
* Called after a Task_t structure has been allocated either statically or
|
||||
* dynamically to fill in the structure's members.
|
||||
|
|
@ -10420,9 +10433,9 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB ) ;
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 623 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 627 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 706 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 710 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvYieldCore( BaseType_t xCoreID )
|
||||
|
|
@ -10430,7 +10443,7 @@ static void prvYieldCore( BaseType_t xCoreID )
|
|||
/* This must be called from a critical section and
|
||||
* xCoreID must be valid. */
|
||||
|
||||
if( ({ uint32_t ulIPSR; __asm volatile ("mrs %0, IPSR" : "=r" (ulIPSR)::); ((uint8_t)ulIPSR)>0;}) && ( xCoreID == 0 ) )
|
||||
if( assert_fct(false) && ( xCoreID == 0 ) )
|
||||
{
|
||||
xYieldPendings[ xCoreID ] = ( ( BaseType_t ) 1 );
|
||||
}
|
||||
|
|
@ -10464,8 +10477,8 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
|
||||
/* THIS FUNCTION MUST BE CALLED FROM A CRITICAL SECTION */
|
||||
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 747, "xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U") : (void)0);
|
||||
// # 760 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 751, "xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U") : (void)0);
|
||||
// # 764 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
xLowestPriority = ( BaseType_t ) pxTCB->uxPriority;
|
||||
|
||||
if( xPreemptEqualPriority == ( ( BaseType_t ) 0 ) )
|
||||
|
|
@ -10504,7 +10517,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
{
|
||||
;
|
||||
}
|
||||
// # 814 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 818 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -10517,7 +10530,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
prvYieldCore( xLowestPriorityCore );
|
||||
xYieldCount++;
|
||||
}
|
||||
// # 834 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 838 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
|
@ -10528,12 +10541,13 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
UBaseType_t uxCurrentPriority = uxTopReadyPriority;
|
||||
BaseType_t xTaskScheduled = ( ( BaseType_t ) 0 );
|
||||
BaseType_t xDecrementTopPriority = ( ( BaseType_t ) 1 );
|
||||
// # 852 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 856 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
while( xTaskScheduled == ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
// # 866 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 870 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
if( ( ( ( &( pxReadyTasksLists[ uxCurrentPriority ] ) )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) == ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
List_t * tt = &( pxReadyTasksLists[ uxCurrentPriority ] );
|
||||
List_t * const pxReadyList = &( pxReadyTasksLists[ uxCurrentPriority ] );
|
||||
ListItem_t * pxLastTaskItem = pxReadyList->pxIndex->pxPrevious;
|
||||
ListItem_t * pxTaskItem = pxLastTaskItem;
|
||||
|
|
@ -10561,7 +10575,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
pxTCB = pxTaskItem->pvOwner;
|
||||
|
||||
/*debug_printf("Attempting to schedule %s on core %d\n", pxTCB->pcTaskName, portGET_CORE_ID() ); */
|
||||
// # 911 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 915 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
if( pxTCB->xTaskRunState == ( TaskRunning_t ) ( -1 ) )
|
||||
{
|
||||
|
||||
|
|
@ -10582,7 +10596,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
}
|
||||
else if( pxTCB == pxCurrentTCBs[ xCoreID ] )
|
||||
{
|
||||
(__builtin_expect(!(( pxTCB->xTaskRunState == xCoreID ) || ( pxTCB->xTaskRunState == ( TaskRunning_t ) ( -2 ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 931, "( pxTCB->xTaskRunState == xCoreID ) || ( pxTCB->xTaskRunState == ( TaskRunning_t ) ( -2 ) )") : (void)0);
|
||||
(__builtin_expect(!(( pxTCB->xTaskRunState == xCoreID ) || ( pxTCB->xTaskRunState == ( TaskRunning_t ) ( -2 ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 935, "( pxTCB->xTaskRunState == xCoreID ) || ( pxTCB->xTaskRunState == ( TaskRunning_t ) ( -2 ) )") : (void)0);
|
||||
|
||||
|
||||
|
||||
|
|
@ -10626,21 +10640,21 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
return ( ( BaseType_t ) 0 );
|
||||
}
|
||||
|
||||
(__builtin_expect(!(( uxCurrentPriority > ( ( UBaseType_t ) 0U ) ) || ( xTaskScheduled == ( ( BaseType_t ) 1 ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 975, "( uxCurrentPriority > ( ( UBaseType_t ) 0U ) ) || ( xTaskScheduled == ( ( BaseType_t ) 1 ) )") : (void)0);
|
||||
(__builtin_expect(!(( uxCurrentPriority > ( ( UBaseType_t ) 0U ) ) || ( xTaskScheduled == ( ( BaseType_t ) 1 ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 979, "( uxCurrentPriority > ( ( UBaseType_t ) 0U ) ) || ( xTaskScheduled == ( ( BaseType_t ) 1 ) )") : (void)0);
|
||||
uxCurrentPriority--;
|
||||
}
|
||||
|
||||
(__builtin_expect(!(( ( 0 <= pxCurrentTCBs[ xCoreID ]->xTaskRunState ) && ( pxCurrentTCBs[ xCoreID ]->xTaskRunState < 1 ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 979, "( ( 0 <= pxCurrentTCBs[ xCoreID ]->xTaskRunState ) && ( pxCurrentTCBs[ xCoreID ]->xTaskRunState < 1 ) )") : (void)0);
|
||||
// # 1055 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
(__builtin_expect(!(( ( 0 <= pxCurrentTCBs[ xCoreID ]->xTaskRunState ) && ( pxCurrentTCBs[ xCoreID ]->xTaskRunState < 1 ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 983, "( ( 0 <= pxCurrentTCBs[ xCoreID ]->xTaskRunState ) && ( pxCurrentTCBs[ xCoreID ]->xTaskRunState < 1 ) )") : (void)0);
|
||||
// # 1059 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
return ( ( BaseType_t ) 1 );
|
||||
}
|
||||
// # 1071 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1075 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 1149 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1153 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 1212 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1216 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 1278 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1282 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
|
@ -10651,7 +10665,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
void * const pvParameters,
|
||||
UBaseType_t uxPriority,
|
||||
TaskHandle_t * const pxCreatedTask )
|
||||
// # 1301 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1305 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
TCB_t * pxNewTCB;
|
||||
BaseType_t xReturn;
|
||||
|
|
@ -10659,7 +10673,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
/* If the stack grows down then allocate the stack then the TCB so the stack
|
||||
* does not grow into the TCB. Likewise if the stack grows up then allocate
|
||||
* the TCB then the stack. */
|
||||
// # 1331 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1335 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
StackType_t * pxStack;
|
||||
|
||||
|
|
@ -10692,9 +10706,9 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
|
||||
if( pxNewTCB != 0 )
|
||||
{
|
||||
// # 1371 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1375 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
prvInitialiseNewTask( pxTaskCode, pcName, ( uint32_t ) usStackDepth, pvParameters, uxPriority, pxCreatedTask, pxNewTCB, 0 );
|
||||
// # 1380 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1384 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
prvAddNewTaskToReadyList( pxNewTCB );
|
||||
xReturn = ( ( ( BaseType_t ) 1 ) );
|
||||
}
|
||||
|
|
@ -10720,7 +10734,7 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
{
|
||||
StackType_t * pxTopOfStack;
|
||||
UBaseType_t x;
|
||||
// # 1421 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1425 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Avoid dependency on memset() if it is not required. */
|
||||
|
||||
{
|
||||
|
|
@ -10739,10 +10753,10 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
pxTopOfStack = ( StackType_t * ) ( ( ( uint32_t ) pxTopOfStack ) & ( ~( ( uint32_t ) ( 0x0007 ) ) ) ); /*lint !e923 !e9033 !e9078 MISRA exception. Avoiding casts between pointers and integers is not practical. Size differences accounted for using portPOINTER_SIZE_TYPE type. Checked by assert(). */
|
||||
|
||||
/* Check the alignment of the calculated top of stack is correct. */
|
||||
(__builtin_expect(!(( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1439, "( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )") : (void)0);
|
||||
// # 1448 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
(__builtin_expect(!(( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1443, "( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )") : (void)0);
|
||||
// # 1452 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
// # 1462 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1466 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Store the task name in the TCB. */
|
||||
if( pcName != 0 )
|
||||
{
|
||||
|
|
@ -10808,7 +10822,7 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
{
|
||||
pxNewTCB->uxCriticalNesting = ( UBaseType_t ) 0U;
|
||||
}
|
||||
// # 1546 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1550 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
/* Avoid compiler warning about unreferenced parameter. */
|
||||
( void ) xRegions;
|
||||
|
|
@ -10826,21 +10840,21 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
memset( ( void * ) &( pxNewTCB->ulNotifiedValue[ 0 ] ), 0x00, sizeof( pxNewTCB->ulNotifiedValue ) );
|
||||
memset( ( void * ) &( pxNewTCB->ucNotifyState[ 0 ] ), 0x00, sizeof( pxNewTCB->ucNotifyState ) );
|
||||
}
|
||||
// # 1575 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1579 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
pxNewTCB->ucDelayAborted = ( ( BaseType_t ) 0 );
|
||||
}
|
||||
// # 1593 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1597 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Initialize the TCB stack to look as if the task was already running,
|
||||
* but had been interrupted by the scheduler. The return address is set
|
||||
* to the start of the task function. Once the stack has been initialised
|
||||
* the top of stack variable is updated. */
|
||||
// # 1621 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1625 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
/* If the port has capability to detect stack overflow,
|
||||
* pass the stack end address to the stack initialization
|
||||
* function as well. */
|
||||
// # 1638 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1642 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters );
|
||||
}
|
||||
|
|
@ -11045,7 +11059,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
|
||||
if( xTaskRunningOnCore == xCoreID )
|
||||
{
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1842, "uxSchedulerSuspended == 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1846, "uxSchedulerSuspended == 0") : (void)0);
|
||||
vTaskYieldWithinAPI();
|
||||
}
|
||||
else
|
||||
|
|
@ -11068,12 +11082,12 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
TickType_t xTimeToWake;
|
||||
BaseType_t xAlreadyYielded, xShouldDelay = ( ( BaseType_t ) 0 );
|
||||
|
||||
(__builtin_expect(!(pxPreviousWakeTime), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1865, "pxPreviousWakeTime") : (void)0);
|
||||
(__builtin_expect(!(( xTimeIncrement > 0U )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1866, "( xTimeIncrement > 0U )") : (void)0);
|
||||
(__builtin_expect(!(pxPreviousWakeTime), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1869, "pxPreviousWakeTime") : (void)0);
|
||||
(__builtin_expect(!(( xTimeIncrement > 0U )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1870, "( xTimeIncrement > 0U )") : (void)0);
|
||||
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1870, "uxSchedulerSuspended == 1") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1874, "uxSchedulerSuspended == 1") : (void)0);
|
||||
|
||||
/* Minor optimisation. The tick count cannot change in this
|
||||
* block. */
|
||||
|
|
@ -11159,7 +11173,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
{
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1956, "uxSchedulerSuspended == 1") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1960, "uxSchedulerSuspended == 1") : (void)0);
|
||||
;
|
||||
|
||||
/* A task that is removed from the event list while the
|
||||
|
|
@ -11201,7 +11215,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
List_t const * pxStateList, * pxDelayedList, * pxOverflowedDelayedList;
|
||||
const TCB_t * const pxTCB = xTask;
|
||||
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1998, "pxTCB") : (void)0);
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2002, "pxTCB") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -11363,7 +11377,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
BaseType_t xYieldForTask = ( ( BaseType_t ) 0 );
|
||||
BaseType_t xCoreID;
|
||||
|
||||
(__builtin_expect(!(( uxNewPriority < 32 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2160, "( uxNewPriority < 32 )") : (void)0);
|
||||
(__builtin_expect(!(( uxNewPriority < 32 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2164, "( uxNewPriority < 32 )") : (void)0);
|
||||
|
||||
/* Ensure the new priority is valid. */
|
||||
if( uxNewPriority >= ( UBaseType_t ) 32 )
|
||||
|
|
@ -11517,13 +11531,13 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2348 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2352 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2371 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2375 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2389 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2393 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2417 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2421 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
|
@ -11600,7 +11614,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
if( xTaskRunningOnCore == 0 )
|
||||
{
|
||||
/* The current task has just been suspended. */
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2493, "uxSchedulerSuspended == 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2497, "uxSchedulerSuspended == 0") : (void)0);
|
||||
vTaskYieldWithinAPI();
|
||||
}
|
||||
else
|
||||
|
|
@ -11614,7 +11628,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
{
|
||||
vTaskExitCritical();
|
||||
|
||||
(__builtin_expect(!(pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2507, "pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]") : (void)0);
|
||||
(__builtin_expect(!(pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2511, "pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]") : (void)0);
|
||||
|
||||
/* The scheduler is not running, but the task that was pointed
|
||||
* to by pxCurrentTCB has just been suspended and pxCurrentTCB
|
||||
|
|
@ -11661,7 +11675,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
/* Accesses xPendingReadyList so must be called from a critical section. */
|
||||
|
||||
/* It does not make sense to check if the calling task is suspended. */
|
||||
(__builtin_expect(!(xTask), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2554, "xTask") : (void)0);
|
||||
(__builtin_expect(!(xTask), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2558, "xTask") : (void)0);
|
||||
|
||||
/* Is the task being resumed actually in the suspended list? */
|
||||
if( ( ( ( &( pxTCB->xStateListItem ) )->pxContainer == ( &xSuspendedTaskList ) ) ? ( ( ( BaseType_t ) 1 ) ) : ( ( ( BaseType_t ) 0 ) ) ) != ( ( BaseType_t ) 0 ) )
|
||||
|
|
@ -11703,7 +11717,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
TCB_t * const pxTCB = xTaskToResume;
|
||||
|
||||
/* It does not make sense to resume the calling task. */
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2596, "xTaskToResume") : (void)0);
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2600, "xTaskToResume") : (void)0);
|
||||
|
||||
/* The parameter cannot be NULL as it is impossible to resume the
|
||||
* currently executing task. It is also impossible to resume a task
|
||||
|
|
@ -11755,7 +11769,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
TCB_t * const pxTCB = xTaskToResume;
|
||||
UBaseType_t uxSavedInterruptStatus;
|
||||
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2648, "xTaskToResume") : (void)0);
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2652, "xTaskToResume") : (void)0);
|
||||
|
||||
/* RTOS ports that support interrupt nesting have the concept of a
|
||||
* maximum system call (or maximum API call) interrupt priority.
|
||||
|
|
@ -11876,7 +11890,7 @@ static BaseType_t prvCreateIdleTasks( void )
|
|||
{
|
||||
;
|
||||
}
|
||||
// # 2816 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2820 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
if( xCoreID == 0 )
|
||||
{
|
||||
|
|
@ -11888,7 +11902,7 @@ static BaseType_t prvCreateIdleTasks( void )
|
|||
( ( UBaseType_t ) 0x00 ), /* In effect ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), but tskIDLE_PRIORITY is zero. */
|
||||
&xIdleTaskHandle[ xCoreID ] ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
|
||||
}
|
||||
// # 2839 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2843 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -11925,7 +11939,7 @@ void vTaskStartScheduler( void )
|
|||
* so interrupts will automatically get re-enabled when the first task
|
||||
* starts to run. */
|
||||
({ uint32_t ulState; __asm volatile ("mrs %0, PRIMASK" : "=r" (ulState)::); __asm volatile ( " cpsid i " ::: "memory" ); ulState;});
|
||||
// # 2889 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2893 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
xNextTaskUnblockTime = ( TickType_t ) 0xffffffffUL;
|
||||
xSchedulerRunning = ( ( BaseType_t ) 1 );
|
||||
xTickCount = ( TickType_t ) 0;
|
||||
|
|
@ -11957,7 +11971,7 @@ void vTaskStartScheduler( void )
|
|||
/* This line will only be reached if the kernel could not be started,
|
||||
* because there was not enough FreeRTOS heap to create the idle task
|
||||
* or the timer task. */
|
||||
(__builtin_expect(!(xReturn != ( -1 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2920, "xReturn != ( -1 )") : (void)0);
|
||||
(__builtin_expect(!(xReturn != ( -1 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2924, "xReturn != ( -1 )") : (void)0);
|
||||
}
|
||||
|
||||
/* Prevent compiler warnings if INCLUDE_xTaskGetIdleTaskHandle is set to 0,
|
||||
|
|
@ -12022,7 +12036,7 @@ void vTaskSuspendAll( void )
|
|||
}
|
||||
}
|
||||
/*----------------------------------------------------------*/
|
||||
// # 3047 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3051 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*----------------------------------------------------------*/
|
||||
|
||||
BaseType_t xTaskResumeAll( void )
|
||||
|
|
@ -12045,7 +12059,7 @@ BaseType_t xTaskResumeAll( void )
|
|||
|
||||
/* If uxSchedulerSuspended is zero then this function does not match a
|
||||
* previous call to vTaskSuspendAll(). */
|
||||
(__builtin_expect(!(uxSchedulerSuspended), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3069, "uxSchedulerSuspended") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3073, "uxSchedulerSuspended") : (void)0);
|
||||
|
||||
--uxSchedulerSuspended;
|
||||
vPortRecursiveLock(1, spin_lock_instance(15), ( ( BaseType_t ) 0 ));
|
||||
|
|
@ -12203,7 +12217,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
/* If null is passed in here then the name of the calling task is being
|
||||
* queried. */
|
||||
pxTCB = ( ( ( xTaskToQuery ) == 0 ) ? xTaskGetCurrentTaskHandle() : ( xTaskToQuery ) );
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3227, "pxTCB") : (void)0);
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3231, "pxTCB") : (void)0);
|
||||
return &( pxTCB->pcTaskName[ 0 ] );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
@ -12285,7 +12299,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
TCB_t * pxTCB;
|
||||
|
||||
/* Task names will be truncated to configMAX_TASK_NAME_LEN - 1 bytes. */
|
||||
(__builtin_expect(!(strlen( pcNameToQuery ) < 16), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3309, "strlen( pcNameToQuery ) < 16") : (void)0);
|
||||
(__builtin_expect(!(strlen( pcNameToQuery ) < 16), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3313, "strlen( pcNameToQuery ) < 16") : (void)0);
|
||||
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
|
|
@ -12381,7 +12395,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
* each task in the Suspended state. */
|
||||
uxTask += prvListTasksWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xSuspendedTaskList, eSuspended );
|
||||
}
|
||||
// # 3419 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3423 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
if( pulTotalRunTime != 0 )
|
||||
{
|
||||
|
|
@ -12409,7 +12423,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
{
|
||||
/* If xTaskGetIdleTaskHandle() is called before the scheduler has been
|
||||
* started, then xIdleTaskHandle will be NULL. */
|
||||
(__builtin_expect(!(( xIdleTaskHandle != 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3446, "( xIdleTaskHandle != 0 )") : (void)0);
|
||||
(__builtin_expect(!(( xIdleTaskHandle != 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3450, "( xIdleTaskHandle != 0 )") : (void)0);
|
||||
return &( xIdleTaskHandle[ 0 ] );
|
||||
}
|
||||
|
||||
|
|
@ -12420,7 +12434,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
* This is to ensure vTaskStepTick() is available when user defined low power mode
|
||||
* implementations require configUSE_TICKLESS_IDLE to be set to a value other than
|
||||
* 1. */
|
||||
// # 3470 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3474 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*----------------------------------------------------------*/
|
||||
|
||||
BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp )
|
||||
|
|
@ -12429,7 +12443,7 @@ BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp )
|
|||
|
||||
/* Must not be called with the scheduler suspended as the implementation
|
||||
* relies on xPendedTicks being wound down to 0 in xTaskResumeAll(). */
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3478, "uxSchedulerSuspended == 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3482, "uxSchedulerSuspended == 0") : (void)0);
|
||||
|
||||
/* Use xPendedTicks to mimic xTicksToCatchUp number of ticks occurring when
|
||||
* the scheduler is suspended so the ticks are executed in xTaskResumeAll(). */
|
||||
|
|
@ -12448,7 +12462,7 @@ BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp )
|
|||
TCB_t * pxTCB = xTask;
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3497, "pxTCB") : (void)0);
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3501, "pxTCB") : (void)0);
|
||||
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
|
|
@ -12547,7 +12561,7 @@ BaseType_t xTaskIncrementTick( void )
|
|||
|
||||
if( xConstTickCount == ( TickType_t ) 0U ) /*lint !e774 'if' does not always evaluate to false as it is looking for an overflow. */
|
||||
{
|
||||
{ List_t * pxTemp; (__builtin_expect(!(( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3596, "( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )") : (void)0); pxTemp = pxDelayedTaskList; pxDelayedTaskList = pxOverflowDelayedTaskList; pxOverflowDelayedTaskList = pxTemp; xNumOfOverflows++; prvResetNextTaskUnblockTime(); };
|
||||
{ List_t * pxTemp; (__builtin_expect(!(( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3600, "( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )") : (void)0); pxTemp = pxDelayedTaskList; pxDelayedTaskList = pxOverflowDelayedTaskList; pxOverflowDelayedTaskList = pxTemp; xNumOfOverflows++; prvResetNextTaskUnblockTime(); };
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -12730,13 +12744,13 @@ BaseType_t xTaskIncrementTick( void )
|
|||
return xSwitchRequired;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3808 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3812 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3832 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3836 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3857 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3861 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3890 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3894 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vTaskSwitchContext( BaseType_t xCoreID )
|
||||
|
|
@ -12754,7 +12768,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
{
|
||||
/* vTaskSwitchContext() must never be called from within a critical section.
|
||||
* This is not necessarily true for vanilla FreeRTOS, but it is for this SMP port. */
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3907, "xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0") : (void)0);
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3911, "xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0") : (void)0);
|
||||
|
||||
if( uxSchedulerSuspended != ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
|
|
@ -12766,7 +12780,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
{
|
||||
xYieldPendings[ xCoreID ] = ( ( BaseType_t ) 0 );
|
||||
;
|
||||
// # 3948 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3952 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Check for stack overflow, if configured. */
|
||||
{ const uint32_t * const pulStack = ( uint32_t * ) xTaskGetCurrentTaskHandle()->pxStack; const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5; if( ( pulStack[ 0 ] != ulCheckValue ) || ( pulStack[ 1 ] != ulCheckValue ) || ( pulStack[ 2 ] != ulCheckValue ) || ( pulStack[ 3 ] != ulCheckValue ) ) { vApplicationStackOverflowHook( ( TaskHandle_t ) xTaskGetCurrentTaskHandle(), xTaskGetCurrentTaskHandle()->pcTaskName ); } };
|
||||
|
||||
|
|
@ -12783,7 +12797,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
;
|
||||
|
||||
/* After the new task is switched in, update the global errno. */
|
||||
// # 3982 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3986 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
}
|
||||
vPortRecursiveLock(0, spin_lock_instance(14), ( ( BaseType_t ) 0 ));
|
||||
|
|
@ -12794,7 +12808,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
void vTaskPlaceOnEventList( List_t * const pxEventList,
|
||||
const TickType_t xTicksToWait )
|
||||
{
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3992, "pxEventList") : (void)0);
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3996, "pxEventList") : (void)0);
|
||||
|
||||
/* THIS FUNCTION MUST BE CALLED WITH EITHER INTERRUPTS DISABLED OR THE
|
||||
* SCHEDULER SUSPENDED AND THE QUEUE BEING ACCESSED LOCKED. */
|
||||
|
|
@ -12813,11 +12827,11 @@ void vTaskPlaceOnUnorderedEventList( List_t * pxEventList,
|
|||
const TickType_t xItemValue,
|
||||
const TickType_t xTicksToWait )
|
||||
{
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4011, "pxEventList") : (void)0);
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4015, "pxEventList") : (void)0);
|
||||
|
||||
/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by
|
||||
* the event groups implementation. */
|
||||
(__builtin_expect(!(uxSchedulerSuspended != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4015, "uxSchedulerSuspended != 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4019, "uxSchedulerSuspended != 0") : (void)0);
|
||||
|
||||
/* Store the item value in the event list item. It is safe to access the
|
||||
* event list item here as interrupts won't access the event list item of a
|
||||
|
|
@ -12841,7 +12855,7 @@ void vTaskPlaceOnUnorderedEventList( List_t * pxEventList,
|
|||
TickType_t xTicksToWait,
|
||||
const BaseType_t xWaitIndefinitely )
|
||||
{
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4039, "pxEventList") : (void)0);
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4043, "pxEventList") : (void)0);
|
||||
|
||||
/* This function should not be called by application code hence the
|
||||
* 'Restricted' in its name. It is not part of the public API. It is
|
||||
|
|
@ -12889,14 +12903,14 @@ BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList )
|
|||
* This function assumes that a check has already been made to ensure that
|
||||
* pxEventList is not empty. */
|
||||
pxUnblockedTCB = ( ( &( ( pxEventList )->xListEnd ) )->pxNext->pvOwner ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4087, "pxUnblockedTCB") : (void)0);
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4091, "pxUnblockedTCB") : (void)0);
|
||||
( void ) uxListRemove( &( pxUnblockedTCB->xEventListItem ) );
|
||||
|
||||
if( uxSchedulerSuspended == ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
( void ) uxListRemove( &( pxUnblockedTCB->xStateListItem ) );
|
||||
; { if( ( ( pxUnblockedTCB )->uxPriority ) > uxTopReadyPriority ) { uxTopReadyPriority = ( ( pxUnblockedTCB )->uxPriority ); } }; vListInsertEnd( &( pxReadyTasksLists[ ( pxUnblockedTCB )->uxPriority ] ), &( ( pxUnblockedTCB )->xStateListItem ) ); ;
|
||||
// # 4108 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4112 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -12926,7 +12940,7 @@ void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem,
|
|||
|
||||
/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by
|
||||
* the event flags implementation. */
|
||||
(__builtin_expect(!(uxSchedulerSuspended != ( ( BaseType_t ) 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4137, "uxSchedulerSuspended != ( ( BaseType_t ) 0 )") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended != ( ( BaseType_t ) 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4141, "uxSchedulerSuspended != ( ( BaseType_t ) 0 )") : (void)0);
|
||||
|
||||
/* Store the new item value in the event list. */
|
||||
( ( pxEventListItem )->xItemValue = ( xItemValue | 0x80000000UL ) );
|
||||
|
|
@ -12934,9 +12948,9 @@ void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem,
|
|||
/* Remove the event list form the event flag. Interrupts do not access
|
||||
* event flags. */
|
||||
pxUnblockedTCB = ( ( pxEventListItem )->pvOwner ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4145, "pxUnblockedTCB") : (void)0);
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4149, "pxUnblockedTCB") : (void)0);
|
||||
( void ) uxListRemove( pxEventListItem );
|
||||
// # 4162 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4166 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Remove the task from the delayed list and add it to the ready list. The
|
||||
* scheduler is suspended so interrupts will not be accessing the ready
|
||||
* lists. */
|
||||
|
|
@ -12955,7 +12969,7 @@ void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem,
|
|||
|
||||
void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut )
|
||||
{
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4180, "pxTimeOut") : (void)0);
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4184, "pxTimeOut") : (void)0);
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
pxTimeOut->xOverflowCount = xNumOfOverflows;
|
||||
|
|
@ -12978,8 +12992,8 @@ BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
|
|||
{
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4203, "pxTimeOut") : (void)0);
|
||||
(__builtin_expect(!(pxTicksToWait), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4204, "pxTicksToWait") : (void)0);
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4207, "pxTimeOut") : (void)0);
|
||||
(__builtin_expect(!(pxTicksToWait), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4208, "pxTicksToWait") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -13094,7 +13108,7 @@ void vTaskMissedYield( void )
|
|||
*
|
||||
* @todo additional conditional compiles to remove this function.
|
||||
*/
|
||||
// # 4379 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4383 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*
|
||||
* -----------------------------------------------------------
|
||||
* The Idle task.
|
||||
|
|
@ -13124,7 +13138,7 @@ static void prvIdleTask( void * pvParameters )
|
|||
/* See if any tasks have deleted themselves - if so then the idle task
|
||||
* is responsible for freeing the deleted task's TCB and stack. */
|
||||
prvCheckTasksWaitingTermination();
|
||||
// # 4420 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4424 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
/* When using preemption tasks of equal priority will be
|
||||
* timesliced. If a task that is sharing the idle priority is ready
|
||||
|
|
@ -13145,16 +13159,16 @@ static void prvIdleTask( void * pvParameters )
|
|||
;
|
||||
}
|
||||
}
|
||||
// # 4456 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4460 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* This conditional compilation should use inequality to 0, not equality
|
||||
* to 1. This is to ensure portSUPPRESS_TICKS_AND_SLEEP() is called when
|
||||
* user defined low power mode implementations require
|
||||
* configUSE_TICKLESS_IDLE to be set to a value other than 1. */
|
||||
// # 4521 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4525 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 4571 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4575 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
|
@ -13168,7 +13182,7 @@ static void prvIdleTask( void * pvParameters )
|
|||
if( xIndex < 5 )
|
||||
{
|
||||
pxTCB = ( ( ( xTaskToSet ) == 0 ) ? xTaskGetCurrentTaskHandle() : ( xTaskToSet ) );
|
||||
(__builtin_expect(!(pxTCB != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4584, "pxTCB != 0") : (void)0);
|
||||
(__builtin_expect(!(pxTCB != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4588, "pxTCB != 0") : (void)0);
|
||||
pxTCB->pvThreadLocalStoragePointers[ xIndex ] = pvValue;
|
||||
}
|
||||
}
|
||||
|
|
@ -13199,7 +13213,7 @@ static void prvIdleTask( void * pvParameters )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 4631 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4635 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvInitialiseTaskLists( void )
|
||||
|
|
@ -13301,7 +13315,7 @@ static void prvCheckTasksWaitingTermination( void )
|
|||
{
|
||||
pxTaskStatus->uxBasePriority = pxTCB->uxBasePriority;
|
||||
}
|
||||
// # 4743 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4747 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
pxTaskStatus->ulRunTimeCounter = 0;
|
||||
}
|
||||
|
|
@ -13422,7 +13436,7 @@ static void prvCheckTasksWaitingTermination( void )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 4902 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4906 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
|
@ -13479,7 +13493,7 @@ static void prvCheckTasksWaitingTermination( void )
|
|||
vPortFree( pxTCB->pxStack );
|
||||
vPortFree( pxTCB );
|
||||
}
|
||||
// # 4985 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4989 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -13670,8 +13684,8 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
* If the mutex is held by a task then it cannot be given from an
|
||||
* interrupt, and if a mutex is given by the holding task then it must
|
||||
* be the running state task. */
|
||||
(__builtin_expect(!(pxTCB == xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5175, "pxTCB == xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5176, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
(__builtin_expect(!(pxTCB == xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5179, "pxTCB == xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5180, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
( pxTCB->uxMutexesHeld )--;
|
||||
|
||||
/* Has the holder of the mutex inherited the priority of another
|
||||
|
|
@ -13750,7 +13764,7 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
{
|
||||
/* If pxMutexHolder is not NULL then the holder must hold at least
|
||||
* one mutex. */
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5255, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5259, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
|
||||
/* Determine the priority to which the priority of the task that
|
||||
* holds the mutex should be set. This will be the greater of the
|
||||
|
|
@ -13777,7 +13791,7 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
/* If a task has timed out because it already holds the
|
||||
* mutex it was trying to obtain then it cannot of inherited
|
||||
* its own priority. */
|
||||
(__builtin_expect(!(pxTCB != xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5282, "pxTCB != xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
(__builtin_expect(!(pxTCB != xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5286, "pxTCB != xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
|
||||
/* Disinherit the priority, remembering the previous
|
||||
* priority to facilitate determining the subject task's
|
||||
|
|
@ -13871,7 +13885,7 @@ void vTaskYieldWithinAPI( void )
|
|||
{
|
||||
if( xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0U )
|
||||
{
|
||||
if( ({ uint32_t ulIPSR; __asm volatile ("mrs %0, IPSR" : "=r" (ulIPSR)::); ((uint8_t)ulIPSR)>0;}) == ( ( BaseType_t ) 0 ) )
|
||||
if( assert_fct(false) == ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
vPortRecursiveLock(1, spin_lock_instance(15), ( ( BaseType_t ) 1 ));
|
||||
}
|
||||
|
|
@ -13908,7 +13922,7 @@ void vTaskYieldWithinAPI( void )
|
|||
{
|
||||
/* If pxCurrentTCB->uxCriticalNesting is zero then this function
|
||||
* does not match a previous call to vTaskEnterCritical(). */
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5413, "xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U") : (void)0);
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5417, "xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U") : (void)0);
|
||||
|
||||
if( xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U )
|
||||
{
|
||||
|
|
@ -13918,7 +13932,7 @@ void vTaskYieldWithinAPI( void )
|
|||
{
|
||||
vPortRecursiveLock(0, spin_lock_instance(14), ( ( BaseType_t ) 0 ));
|
||||
|
||||
if( ({ uint32_t ulIPSR; __asm volatile ("mrs %0, IPSR" : "=r" (ulIPSR)::); ((uint8_t)ulIPSR)>0;}) == ( ( BaseType_t ) 0 ) )
|
||||
if( assert_fct(false) == ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
vPortRecursiveLock(1, spin_lock_instance(15), ( ( BaseType_t ) 0 ));
|
||||
vPortEnableInterrupts();
|
||||
|
|
@ -13958,11 +13972,11 @@ void vTaskYieldWithinAPI( void )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 5489 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5493 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 5595 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5599 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*----------------------------------------------------------*/
|
||||
// # 5722 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5726 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
TickType_t uxTaskResetEventItemValue( void )
|
||||
|
|
@ -14004,7 +14018,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
{
|
||||
uint32_t ulReturn;
|
||||
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5763, "uxIndexToWait < 1") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5767, "uxIndexToWait < 1") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -14078,7 +14092,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
{
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5837, "uxIndexToWait < 1") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5841, "uxIndexToWait < 1") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -14166,8 +14180,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
BaseType_t xReturn = ( ( ( BaseType_t ) 1 ) );
|
||||
uint8_t ucOriginalNotifyState;
|
||||
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5925, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5926, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5929, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5930, "xTaskToNotify") : (void)0);
|
||||
pxTCB = xTaskToNotify;
|
||||
|
||||
vTaskEnterCritical();
|
||||
|
|
@ -14220,7 +14234,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
/* Should not get here if all enums are handled.
|
||||
* Artificially force an assert by testing a value the
|
||||
* compiler can't assume is const. */
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5979, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5983, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -14235,8 +14249,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
; { if( ( ( pxTCB )->uxPriority ) > uxTopReadyPriority ) { uxTopReadyPriority = ( ( pxTCB )->uxPriority ); } }; vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xStateListItem ) ); ;
|
||||
|
||||
/* The task should not have been on an event list. */
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5994, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
// # 6013 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5998, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
// # 6017 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
prvYieldForTask( pxTCB, ( ( BaseType_t ) 0 ) );
|
||||
}
|
||||
|
|
@ -14269,8 +14283,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
BaseType_t xReturn = ( ( ( BaseType_t ) 1 ) );
|
||||
UBaseType_t uxSavedInterruptStatus;
|
||||
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6045, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6046, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6049, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6050, "uxIndexToNotify < 1") : (void)0);
|
||||
|
||||
/* RTOS ports that support interrupt nesting have the concept of a
|
||||
* maximum system call (or maximum API call) interrupt priority.
|
||||
|
|
@ -14341,7 +14355,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
/* Should not get here if all enums are handled.
|
||||
* Artificially force an assert by testing a value the
|
||||
* compiler can't assume is const. */
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6117, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6121, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -14352,7 +14366,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
if( ucOriginalNotifyState == ( ( uint8_t ) 1 ) )
|
||||
{
|
||||
/* The task should not have been on an event list. */
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6128, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6132, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
|
||||
if( uxSchedulerSuspended == ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
|
|
@ -14397,8 +14411,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
uint8_t ucOriginalNotifyState;
|
||||
UBaseType_t uxSavedInterruptStatus;
|
||||
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6173, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6174, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6177, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6178, "uxIndexToNotify < 1") : (void)0);
|
||||
|
||||
/* RTOS ports that support interrupt nesting have the concept of a
|
||||
* maximum system call (or maximum API call) interrupt priority.
|
||||
|
|
@ -14436,7 +14450,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
if( ucOriginalNotifyState == ( ( uint8_t ) 1 ) )
|
||||
{
|
||||
/* The task should not have been on an event list. */
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6212, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6216, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
|
||||
if( uxSchedulerSuspended == ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
|
|
@ -14477,7 +14491,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
TCB_t * pxTCB;
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(uxIndexToClear < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6253, "uxIndexToClear < 1") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToClear < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6257, "uxIndexToClear < 1") : (void)0);
|
||||
|
||||
/* If null is passed in here then it is the calling task that is having
|
||||
* its notification state cleared. */
|
||||
|
|
@ -14530,7 +14544,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 6322 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 6326 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait,
|
||||
|
|
@ -14606,7 +14620,7 @@ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait,
|
|||
}
|
||||
}
|
||||
}
|
||||
// # 6434 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 6438 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
|
||||
/* Code below here allows additional code to be inserted into this source file,
|
||||
|
|
|
|||
12
verification/verifast/proof_setup/verifast_asm.h
Normal file
12
verification/verifast/proof_setup/verifast_asm.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef VERIFAST_ASM_H
|
||||
#define VERIFAST_ASM_H
|
||||
|
||||
bool assert_fct(bool b)
|
||||
{
|
||||
assert(b);
|
||||
return b;
|
||||
}
|
||||
#undef portCHECK_IF_IN_ISR
|
||||
#define portCHECK_IF_IN_ISR() assert_fct(false)
|
||||
|
||||
#endif /* VERIFAST_ASM_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue