tasks.c File Reference
`#include <stdlib.h>`
`#include <string.h>`
`#include "FreeRTOS.h"`
`#include "task.h"`
`#include "timers.h"`
`#include "stack_macros.h"`
Include dependency graph for tasks.c:

## Data Structures

struct | tskTaskControlBlock

## Macros

#define | MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#define | taskYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API()
#define | taskNOT_WAITING_NOTIFICATION ( ( uint8_t ) 0 )
#define | taskWAITING_NOTIFICATION ( ( uint8_t ) 1 )
#define | taskNOTIFICATION_RECEIVED ( ( uint8_t ) 2 )
#define | tskSTACK_FILL_BYTE ( 0xa5U )
#define | tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
#define | tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 )
#define | tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 )
#define | tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 )
#define | tskSET_NEW_STACKS_TO_KNOWN_VALUE 0
#define | tskBLOCKED_CHAR ( 'B' )
#define | tskREADY_CHAR ( 'R' )
#define | tskDELETED_CHAR ( 'D' )
#define | tskSUSPENDED_CHAR ( 'S' )
#define | configIDLE_TASK_NAME "IDLE"
#define | taskRECORD_READY_PRIORITY(uxPriority)
#define | taskSELECT_HIGHEST_PRIORITY_TASK()
#define | taskRESET_READY_PRIORITY(uxPriority)
#define | portRESET_READY_PRIORITY(uxPriority, uxTopReadyPriority)
#define | taskSWITCH_DELAYED_LISTS()
#define | prvAddTaskToReadyList(pxTCB)
#define | prvGetTCBFromHandle(pxHandle) ( ( ( pxHandle ) == NULL ) ? ( TCB_t * ) pxCurrentTCB : ( TCB_t * ) ( pxHandle ) )
#define | taskEVENT_LIST_ITEM_VALUE_IN_USE 0x80000000UL

## Typedefs

typedef struct tskTaskControlBlock | tskTCB
typedef tskTCB | TCB_t

## Functions

static BaseType_t | prvTaskIsTaskSuspended (const TaskHandle_t xTask) PRIVILEGED_FUNCTION
static void | prvInitialiseTaskLists (static void prvCheckTasksWaitingTermination void)
static void | prvInitialiseNewTask (TaskFunction_t pxTaskCode, const char *const pcName, const uint32_t ulStackDepth, void *const pvParameters, UBaseType_t uxPriority, TaskHandle_t *const pxCreatedTask, TCB_t *pxNewTCB, const MemoryRegion_t *const xRegions)
static void | prvAddNewTaskToReadyList (TCB_t *pxNewTCB)
void | vTaskDelete (TaskHandle_t xTaskToDelete)
void | vTaskDelayUntil (TickType_t *const pxPreviousWakeTime, const TickType_t xTimeIncrement)
void | vTaskDelay (const TickType_t xTicksToDelay)
eTaskState | eTaskGetState (TaskHandle_t xTask)
UBaseType_t | uxTaskPriorityGet (TaskHandle_t xTask)
UBaseType_t | uxTaskPriorityGetFromISR (TaskHandle_t xTask)
void | vTaskPrioritySet (TaskHandle_t xTask, UBaseType_t uxNewPriority)
void | vTaskSuspend (TaskHandle_t xTaskToSuspend)
void | vTaskResume (TaskHandle_t xTaskToResume)
void | vTaskStartScheduler (void)
void | vTaskEndScheduler (void)
void | vTaskSuspendAll (void)
BaseType_t | xTaskResumeAll (void)
TickType_t | xTaskGetTickCount (void)
TickType_t | xTaskGetTickCountFromISR (void)
UBaseType_t | uxTaskGetNumberOfTasks (void)
char * | pcTaskGetName (TaskHandle_t xTaskToQuery)
BaseType_t | xTaskIncrementTick (void)
void | vTaskSwitchContext (void)
void | vTaskPlaceOnEventList (List_t *const pxEventList, const TickType_t xTicksToWait)
void | vTaskPlaceOnUnorderedEventList (List_t *pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait)
BaseType_t | xTaskRemoveFromEventList (const List_t *const pxEventList)
void | vTaskRemoveFromUnorderedEventList (ListItem_t *pxEventListItem, const TickType_t xItemValue)
void | vTaskSetTimeOutState (TimeOut_t *const pxTimeOut)
void | vTaskInternalSetTimeOutState (TimeOut_t *const pxTimeOut)
BaseType_t | xTaskCheckForTimeOut (TimeOut_t *const pxTimeOut, TickType_t *const pxTicksToWait)
void | vTaskMissedYield (void)
static | portTASK_FUNCTION (prvIdleTask, pvParameters)
static void | prvInitialiseTaskLists (void)
static void | prvCheckTasksWaitingTermination (void)
static void | prvDeleteTCB (TCB_t *pxTCB)
static void | prvResetNextTaskUnblockTime (void)
TaskHandle_t | xTaskGetCurrentTaskHandle (void)
TickType_t | uxTaskResetEventItemValue (void)
uint32_t | ulTaskNotifyTake (BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
BaseType_t | xTaskNotifyWait (uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait)
BaseType_t | xTaskGenericNotify (TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue)
BaseType_t | xTaskGenericNotifyFromISR (TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue, BaseType_t *pxHigherPriorityTaskWoken)
void | vTaskNotifyGiveFromISR (TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken)
BaseType_t | xTaskNotifyStateClear (TaskHandle_t xTask)
static void | prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely)

## Variables

PRIVILEGED_DATA TCB_t *volatile | pxCurrentTCB = NULL
static PRIVILEGED_DATA List_t | pxReadyTasksLists [configMAX_PRIORITIES]
static PRIVILEGED_DATA List_t | xDelayedTaskList1
static PRIVILEGED_DATA List_t | xDelayedTaskList2
static PRIVILEGED_DATA List_t *volatile | pxDelayedTaskList
static PRIVILEGED_DATA List_t *volatile | pxOverflowDelayedTaskList
static PRIVILEGED_DATA List_t | xPendingReadyList
static PRIVILEGED_DATA List_t | xTasksWaitingTermination
static PRIVILEGED_DATA volatile UBaseType_t | uxDeletedTasksWaitingCleanUp = ( UBaseType_t ) 0U
static PRIVILEGED_DATA List_t | xSuspendedTaskList
static PRIVILEGED_DATA volatile UBaseType_t | uxCurrentNumberOfTasks = ( UBaseType_t ) 0U
static PRIVILEGED_DATA volatile TickType_t | xTickCount = ( TickType_t ) configINITIAL_TICK_COUNT
static PRIVILEGED_DATA volatile UBaseType_t | uxTopReadyPriority = tskIDLE_PRIORITY
static PRIVILEGED_DATA volatile BaseType_t | xSchedulerRunning = pdFALSE
static PRIVILEGED_DATA volatile UBaseType_t | uxPendedTicks = ( UBaseType_t ) 0U
static PRIVILEGED_DATA volatile BaseType_t | xYieldPending = pdFALSE
static PRIVILEGED_DATA volatile BaseType_t | xNumOfOverflows = ( BaseType_t ) 0
static PRIVILEGED_DATA UBaseType_t | uxTaskNumber = ( UBaseType_t ) 0U
static PRIVILEGED_DATA volatile TickType_t | xNextTaskUnblockTime = ( TickType_t ) 0U
static PRIVILEGED_DATA TaskHandle_t | xIdleTaskHandle = NULL
static PRIVILEGED_DATA volatile UBaseType_t | uxSchedulerSuspended = ( UBaseType_t ) pdFALSE

## Macro Definition Documentation

## configIDLE_TASK_NAME

#define configIDLE_TASK_NAME "IDLE"

## MPU_WRAPPERS_INCLUDED_FROM_API_FILE

#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE

## portRESET_READY_PRIORITY

#define portRESET_READY_PRIORITY | ( |  | uxPriority,
|  |  | uxTopReadyPriority
| ) |  |

## prvAddTaskToReadyList

#define prvAddTaskToReadyList | ( |  | pxTCB | ) |

Value:
traceMOVED_TASK_TO_READY_STATE( pxTCB ); \
taskRECORD_READY_PRIORITY( ( pxTCB )->uxPriority ); \
vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xStateListItem ) ); \
tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB )

## prvGetTCBFromHandle

#define prvGetTCBFromHandle | ( |  | pxHandle | ) | ( ( ( pxHandle ) == NULL ) ? ( TCB_t * ) pxCurrentTCB : ( TCB_t * ) ( pxHandle ) )

## taskEVENT_LIST_ITEM_VALUE_IN_USE

#define taskEVENT_LIST_ITEM_VALUE_IN_USE 0x80000000UL

## taskNOT_WAITING_NOTIFICATION

#define taskNOT_WAITING_NOTIFICATION ( ( uint8_t ) 0 )

## taskNOTIFICATION_RECEIVED

#define taskNOTIFICATION_RECEIVED ( ( uint8_t ) 2 )

## taskRECORD_READY_PRIORITY

#define taskRECORD_READY_PRIORITY | ( |  | uxPriority | ) |

Value:
{ \
if( ( uxPriority ) > uxTopReadyPriority ) \
{ \
uxTopReadyPriority = ( uxPriority ); \
} \
} /* taskRECORD_READY_PRIORITY */

## taskRESET_READY_PRIORITY

#define taskRESET_READY_PRIORITY | ( |  | uxPriority | ) |

## taskSELECT_HIGHEST_PRIORITY_TASK

#define taskSELECT_HIGHEST_PRIORITY_TASK | ( |  | ) |

Value:
{ \
UBaseType_t uxTopPriority = uxTopReadyPriority; \
\
/* Find the highest priority queue that contains ready tasks. */ \
while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopPriority ] ) ) ) \
{ \
configASSERT( uxTopPriority ); \
--uxTopPriority; \
} \
\
/* listGET_OWNER_OF_NEXT_ENTRY indexes through the list, so the tasks of \
the same priority get an equal share of the processor time. */ \
listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopPriority ] ) ); \
uxTopReadyPriority = uxTopPriority; \
} /* taskSELECT_HIGHEST_PRIORITY_TASK */

## taskSWITCH_DELAYED_LISTS

#define taskSWITCH_DELAYED_LISTS | ( |  | ) |

Value:
{ \
List_t *pxTemp; \
\
/* The delayed tasks list should be empty when the lists are switched. */ \
configASSERT( ( listLIST_IS_EMPTY( pxDelayedTaskList ) ) ); \
\
pxTemp = pxDelayedTaskList; \
pxDelayedTaskList = pxOverflowDelayedTaskList; \
pxOverflowDelayedTaskList = pxTemp; \
xNumOfOverflows++; \
prvResetNextTaskUnblockTime(); \
}

## taskWAITING_NOTIFICATION

#define taskWAITING_NOTIFICATION ( ( uint8_t ) 1 )

## taskYIELD_IF_USING_PREEMPTION

#define taskYIELD_IF_USING_PREEMPTION | ( |  | ) | portYIELD_WITHIN_API()

## tskBLOCKED_CHAR

#define tskBLOCKED_CHAR ( 'B' )

## tskDELETED_CHAR

#define tskDELETED_CHAR ( 'D' )

## tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB

#define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 )

## tskREADY_CHAR

#define tskREADY_CHAR ( 'R' )

## tskSET_NEW_STACKS_TO_KNOWN_VALUE

#define tskSET_NEW_STACKS_TO_KNOWN_VALUE 0

## tskSTACK_FILL_BYTE

#define tskSTACK_FILL_BYTE ( 0xa5U )

## tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE

#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )

## tskSTATICALLY_ALLOCATED_STACK_AND_TCB

#define tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 )

## tskSTATICALLY_ALLOCATED_STACK_ONLY

#define tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 )

## tskSUSPENDED_CHAR

#define tskSUSPENDED_CHAR ( 'S' )

## Typedef Documentation

## TCB_t

typedef tskTCB TCB_t

## tskTCB

typedef struct tskTaskControlBlock tskTCB

## Function Documentation

## eTaskGetState()

eTaskState eTaskGetState | ( | TaskHandle_t | xTask | ) |

task. h

    eTaskState eTaskGetState( TaskHandle_t xTask );

INCLUDE_eTaskGetState must be defined as 1 for this function to be available. See the configuration section for more information.

Obtain the state of any task. States are encoded by the eTaskState enumerated type.

Parameters

  xTask | Handle of the task to be queried.

Returns
  The state of xTask at the time the function was called. Note the state of the task might change between the function being called, and the functions return value being tested by the calling task.

## pcTaskGetName()

char* pcTaskGetName | ( | TaskHandle_t | xTaskToQuery | ) |

## portTASK_FUNCTION()

static portTASK_FUNCTION | ( | prvIdleTask | ,
|  | pvParameters |
| ) |  |

static

THIS IS THE RTOS IDLE TASK - WHICH IS CREATED AUTOMATICALLY WHEN THE SCHEDULER IS STARTED.

Here is the call graph for this function:

## prvAddCurrentTaskToDelayedList()

static void prvAddCurrentTaskToDelayedList | ( | TickType_t | xTicksToWait,
|  | const BaseType_t | xCanBlockIndefinitely
| ) |  |

static

Here is the call graph for this function:
Here is the caller graph for this function:

## prvAddNewTaskToReadyList()

static void prvAddNewTaskToReadyList | ( | TCB_t * | pxNewTCB | ) |

static

Here is the call graph for this function:

## prvCheckTasksWaitingTermination()

static void prvCheckTasksWaitingTermination | ( | void |  | ) |

static

THIS FUNCTION IS CALLED FROM THE RTOS IDLE TASK

Here is the call graph for this function:
Here is the caller graph for this function:

## prvDeleteTCB()

static void prvDeleteTCB | ( | TCB_t * | pxTCB | ) |

static

Here is the call graph for this function:
Here is the caller graph for this function:

## prvInitialiseNewTask()

static void prvInitialiseNewTask | ( | TaskFunction_t | pxTaskCode,
|  | const char *const | pcName,
|  | const uint32_t | ulStackDepth,
|  | void *const | pvParameters,
|  | UBaseType_t | uxPriority,
|  | TaskHandle_t *const | pxCreatedTask,
|  | TCB_t * | pxNewTCB,
|  | const MemoryRegion_t *const | xRegions
| ) |  |

static

Here is the call graph for this function:

## prvInitialiseTaskLists() [1/2]

static void prvInitialiseTaskLists | ( | static void prvCheckTasksWaitingTermination | void | ) |

static

Here is the caller graph for this function:

## prvInitialiseTaskLists() [2/2]

static void prvInitialiseTaskLists | ( | void |  | ) |

static

Here is the call graph for this function:

## prvResetNextTaskUnblockTime()

static void prvResetNextTaskUnblockTime | ( | void |  | ) |

static

Here is the caller graph for this function:

## prvTaskIsTaskSuspended()

static BaseType_t prvTaskIsTaskSuspended | ( | const TaskHandle_t | xTask | ) |

static

Utility task that simply returns pdTRUE if the task referenced by xTask is currently in the Suspended state, or pdFALSE if the task referenced by xTask is in any other state.

Here is the caller graph for this function:

## ulTaskNotifyTake()

uint32_t ulTaskNotifyTake | ( | BaseType_t | xClearCountOnExit,
|  | TickType_t | xTicksToWait
| ) |  |

Here is the call graph for this function:

## uxTaskGetNumberOfTasks()

UBaseType_t uxTaskGetNumberOfTasks | ( | void |  | ) |

## uxTaskPriorityGet()

UBaseType_t uxTaskPriorityGet | ( | TaskHandle_t | xTask | ) |

## uxTaskPriorityGetFromISR()

UBaseType_t uxTaskPriorityGetFromISR | ( | TaskHandle_t | xTask | ) |

task. h

    UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask );

A version of uxTaskPriorityGet() that can be used from an ISR.

## uxTaskResetEventItemValue()

TickType_t uxTaskResetEventItemValue | ( | void |  | ) |

Here is the caller graph for this function:

## vTaskDelay()

void vTaskDelay | ( | const TickType_t | xTicksToDelay | ) |

Here is the call graph for this function:
Here is the caller graph for this function:

## vTaskDelayUntil()

void vTaskDelayUntil | ( | TickType_t *const | pxPreviousWakeTime,
|  | const TickType_t | xTimeIncrement
| ) |  |

Here is the call graph for this function:

## vTaskDelete()

void vTaskDelete | ( | TaskHandle_t | xTaskToDelete | ) |

Here is the call graph for this function:

## vTaskEndScheduler()

void vTaskEndScheduler | ( | void |  | ) |

Here is the call graph for this function:

## vTaskInternalSetTimeOutState()

void vTaskInternalSetTimeOutState | ( | TimeOut_t *const | pxTimeOut | ) |

Here is the caller graph for this function:

## vTaskMissedYield()

void vTaskMissedYield | ( | void |  | ) |

Here is the caller graph for this function:

## vTaskNotifyGiveFromISR()

void vTaskNotifyGiveFromISR | ( | TaskHandle_t | xTaskToNotify,
|  | BaseType_t * | pxHigherPriorityTaskWoken
| ) |  |

Here is the call graph for this function:

## vTaskPlaceOnEventList()

void vTaskPlaceOnEventList | ( | List_t *const | pxEventList,
|  | const TickType_t | xTicksToWait
| ) |  |

Here is the call graph for this function:
Here is the caller graph for this function:

## vTaskPlaceOnUnorderedEventList()

void vTaskPlaceOnUnorderedEventList | ( | List_t * | pxEventList,
|  | const TickType_t | xItemValue,
|  | const TickType_t | xTicksToWait
| ) |  |

Here is the call graph for this function:
Here is the caller graph for this function:

## vTaskPrioritySet()

void vTaskPrioritySet | ( | TaskHandle_t | xTask,
|  | UBaseType_t | uxNewPriority
| ) |  |

Here is the call graph for this function:

## vTaskRemoveFromUnorderedEventList()

void vTaskRemoveFromUnorderedEventList | ( | ListItem_t * | pxEventListItem,
|  | const TickType_t | xItemValue
| ) |  |

Here is the call graph for this function:
Here is the caller graph for this function:

## vTaskResume()

void vTaskResume | ( | TaskHandle_t | xTaskToResume | ) |

Here is the call graph for this function:

## vTaskSetTimeOutState()

void vTaskSetTimeOutState | ( | TimeOut_t *const | pxTimeOut | ) |

Here is the caller graph for this function:

## vTaskStartScheduler()

void vTaskStartScheduler | ( | void |  | ) |

Here is the call graph for this function:
Here is the caller graph for this function:

## vTaskSuspend()

void vTaskSuspend | ( | TaskHandle_t | xTaskToSuspend | ) |

Here is the call graph for this function:

## vTaskSuspendAll()

void vTaskSuspendAll | ( | void |  | ) |

Here is the caller graph for this function:

## vTaskSwitchContext()

void vTaskSwitchContext | ( | void |  | ) |

Here is the caller graph for this function:

## xTaskCheckForTimeOut()

BaseType_t xTaskCheckForTimeOut | ( | TimeOut_t *const | pxTimeOut,
|  | TickType_t *const | pxTicksToWait
| ) |  |

Here is the call graph for this function:
Here is the caller graph for this function:

## xTaskGenericNotify()

BaseType_t xTaskGenericNotify | ( | TaskHandle_t | xTaskToNotify,
|  | uint32_t | ulValue,
|  | eNotifyAction | eAction,
|  | uint32_t * | pulPreviousNotificationValue
| ) |  |

Here is the call graph for this function:

## xTaskGenericNotifyFromISR()

BaseType_t xTaskGenericNotifyFromISR | ( | TaskHandle_t | xTaskToNotify,
|  | uint32_t | ulValue,
|  | eNotifyAction | eAction,
|  | uint32_t * | pulPreviousNotificationValue,
|  | BaseType_t * | pxHigherPriorityTaskWoken
| ) |  |

Here is the call graph for this function:

## xTaskGetCurrentTaskHandle()

TaskHandle_t xTaskGetCurrentTaskHandle | ( | void |  | ) |

Here is the caller graph for this function:

## xTaskGetTickCount()

TickType_t xTaskGetTickCount | ( | void |  | ) |

Here is the caller graph for this function:

## xTaskGetTickCountFromISR()

TickType_t xTaskGetTickCountFromISR | ( | void |  | ) |

## xTaskIncrementTick()

BaseType_t xTaskIncrementTick | ( | void |  | ) |

Here is the call graph for this function:
Here is the caller graph for this function:

## xTaskNotifyStateClear()

BaseType_t xTaskNotifyStateClear | ( | TaskHandle_t | xTask | ) |

Here is the caller graph for this function:

## xTaskNotifyWait()

BaseType_t xTaskNotifyWait | ( | uint32_t | ulBitsToClearOnEntry,
|  | uint32_t | ulBitsToClearOnExit,
|  | uint32_t * | pulNotificationValue,
|  | TickType_t | xTicksToWait
| ) |  |

Here is the call graph for this function:
Here is the caller graph for this function:

## xTaskRemoveFromEventList()

BaseType_t xTaskRemoveFromEventList | ( | const List_t *const | pxEventList | ) |

Here is the call graph for this function:
Here is the caller graph for this function:

## xTaskResumeAll()

BaseType_t xTaskResumeAll | ( | void |  | ) |

Here is the call graph for this function:
Here is the caller graph for this function:

## Variable Documentation

## pxCurrentTCB

PRIVILEGED_DATA TCB_t* volatile pxCurrentTCB = NULL

## pxDelayedTaskList

PRIVILEGED_DATA List_t* volatile pxDelayedTaskList

static

## pxOverflowDelayedTaskList

PRIVILEGED_DATA List_t* volatile pxOverflowDelayedTaskList

static

## pxReadyTasksLists

PRIVILEGED_DATA List_t pxReadyTasksLists[configMAX_PRIORITIES]

static

## uxCurrentNumberOfTasks

PRIVILEGED_DATA volatile UBaseType_t uxCurrentNumberOfTasks = ( UBaseType_t ) 0U

static

## uxDeletedTasksWaitingCleanUp

PRIVILEGED_DATA volatile UBaseType_t uxDeletedTasksWaitingCleanUp = ( UBaseType_t ) 0U

static

## uxPendedTicks

PRIVILEGED_DATA volatile UBaseType_t uxPendedTicks = ( UBaseType_t ) 0U

static

## uxSchedulerSuspended

PRIVILEGED_DATA volatile UBaseType_t uxSchedulerSuspended = ( UBaseType_t ) pdFALSE

static

## uxTaskNumber

PRIVILEGED_DATA UBaseType_t uxTaskNumber = ( UBaseType_t ) 0U

static

## uxTopReadyPriority

PRIVILEGED_DATA volatile UBaseType_t uxTopReadyPriority = tskIDLE_PRIORITY

static

## xDelayedTaskList1

PRIVILEGED_DATA List_t xDelayedTaskList1

static

## xDelayedTaskList2

PRIVILEGED_DATA List_t xDelayedTaskList2

static

## xIdleTaskHandle

PRIVILEGED_DATA TaskHandle_t xIdleTaskHandle = NULL

static

## xNextTaskUnblockTime

PRIVILEGED_DATA volatile TickType_t xNextTaskUnblockTime = ( TickType_t ) 0U

static

## xNumOfOverflows

PRIVILEGED_DATA volatile BaseType_t xNumOfOverflows = ( BaseType_t ) 0

static

## xPendingReadyList

PRIVILEGED_DATA List_t xPendingReadyList

static

## xSchedulerRunning

PRIVILEGED_DATA volatile BaseType_t xSchedulerRunning = pdFALSE

static

## xSuspendedTaskList

PRIVILEGED_DATA List_t xSuspendedTaskList

static

## xTasksWaitingTermination

PRIVILEGED_DATA List_t xTasksWaitingTermination

static

## xTickCount

PRIVILEGED_DATA volatile TickType_t xTickCount = ( TickType_t ) configINITIAL_TICK_COUNT

static

## xYieldPending

PRIVILEGED_DATA volatile BaseType_t xYieldPending = pdFALSE

static

pxDelayedTaskList
static PRIVILEGED_DATA List_t *volatile pxDelayedTaskList
Definition: tasks.c:353
uxTopReadyPriority
static PRIVILEGED_DATA volatile UBaseType_t uxTopReadyPriority
Definition: tasks.c:373
listLIST_IS_EMPTY
#define listLIST_IS_EMPTY(pxList)
Definition: list.h:250
traceMOVED_TASK_TO_READY_STATE
#define traceMOVED_TASK_TO_READY_STATE(pxTCB)
Definition: FreeRTOS.h:389
pxReadyTasksLists
static PRIVILEGED_DATA List_t pxReadyTasksLists[configMAX_PRIORITIES]
Definition: tasks.c:350
pxCurrentTCB
PRIVILEGED_DATA TCB_t *volatile pxCurrentTCB
Definition: tasks.c:347
pxOverflowDelayedTaskList
static PRIVILEGED_DATA List_t *volatile pxOverflowDelayedTaskList
Definition: tasks.c:354