#include <stdlib.h>
#include <string.h>
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "stack_macros.h"
Data Structures | |
struct | tskTaskControlBlock |
Typedefs | |
typedef tskTCB | TCB_t |
typedef struct tskTaskControlBlock | tskTCB |
Functions | |
char * | pcTaskGetName (TaskHandle_t xTaskToQuery) |
static | portTASK_FUNCTION (prvIdleTask, pvParameters) |
static void | prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely) |
static void | prvAddNewTaskToReadyList (TCB_t *pxNewTCB) |
static void | prvCheckTasksWaitingTermination (void) |
static void | prvDeleteTCB (TCB_t *pxTCB) |
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 | prvInitialiseTaskLists (static void prvCheckTasksWaitingTermination void) |
static void | prvInitialiseTaskLists (void) |
static void | prvResetNextTaskUnblockTime (void) |
static BaseType_t | prvTaskIsTaskSuspended (const TaskHandle_t xTask) PRIVILEGED_FUNCTION |
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. More... | |
void * | pvTaskIncrementMutexHeldCount (void) |
uint32_t | ulTaskNotifyTake (BaseType_t xClearCountOnExit, TickType_t xTicksToWait) |
UBaseType_t | uxTaskGetNumberOfTasks (void) |
UBaseType_t | uxTaskPriorityGet (TaskHandle_t xTask) |
UBaseType_t | uxTaskPriorityGetFromISR (TaskHandle_t xTask) |
task. More... | |
TickType_t | uxTaskResetEventItemValue (void) |
void | vTaskDelay (const TickType_t xTicksToDelay) |
void | vTaskDelayUntil (TickType_t *const pxPreviousWakeTime, const TickType_t xTimeIncrement) |
void | vTaskDelete (TaskHandle_t xTaskToDelete) |
void | vTaskEndScheduler (void) |
void | vTaskInternalSetTimeOutState (TimeOut_t *const pxTimeOut) |
void | vTaskMissedYield (void) |
void | vTaskNotifyGiveFromISR (TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken) |
void | vTaskPlaceOnEventList (List_t *const pxEventList, const TickType_t xTicksToWait) |
void | vTaskPlaceOnEventListRestricted (List_t *const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) |
void | vTaskPlaceOnUnorderedEventList (List_t *pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait) |
void | vTaskPriorityDisinheritAfterTimeout (TaskHandle_t const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask) |
void | vTaskPrioritySet (TaskHandle_t xTask, UBaseType_t uxNewPriority) |
void | vTaskRemoveFromUnorderedEventList (ListItem_t *pxEventListItem, const TickType_t xItemValue) |
void | vTaskResume (TaskHandle_t xTaskToResume) |
void | vTaskSetTimeOutState (TimeOut_t *const pxTimeOut) |
void | vTaskStartScheduler (void) |
void | vTaskSuspend (TaskHandle_t xTaskToSuspend) |
void | vTaskSuspendAll (void) |
void | vTaskSwitchContext (void) |
BaseType_t | xTaskCheckForTimeOut (TimeOut_t *const pxTimeOut, TickType_t *const pxTicksToWait) |
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) |
TaskHandle_t | xTaskGetCurrentTaskHandle (void) |
BaseType_t | xTaskGetSchedulerState (void) |
TickType_t | xTaskGetTickCount (void) |
TickType_t | xTaskGetTickCountFromISR (void) |
BaseType_t | xTaskIncrementTick (void) |
BaseType_t | xTaskNotifyStateClear (TaskHandle_t xTask) |
BaseType_t | xTaskNotifyWait (uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait) |
BaseType_t | xTaskPriorityDisinherit (TaskHandle_t const pxMutexHolder) |
BaseType_t | xTaskPriorityInherit (TaskHandle_t const pxMutexHolder) |
BaseType_t | xTaskRemoveFromEventList (const List_t *const pxEventList) |
BaseType_t | xTaskResumeAll (void) |
BaseType_t | xTaskResumeFromISR (TaskHandle_t xTaskToResume) |
#define configIDLE_TASK_NAME "IDLE" |
Referenced by vTaskStartScheduler().
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE |
#define portRESET_READY_PRIORITY | ( | uxPriority, | |
uxTopReadyPriority | |||
) |
Referenced by prvAddCurrentTaskToDelayedList(), and vTaskPrioritySet().
#define prvAddTaskToReadyList | ( | pxTCB | ) |
Referenced by prvAddNewTaskToReadyList(), vTaskNotifyGiveFromISR(), vTaskPriorityDisinheritAfterTimeout(), vTaskPrioritySet(), vTaskRemoveFromUnorderedEventList(), vTaskResume(), xTaskGenericNotify(), xTaskGenericNotifyFromISR(), xTaskIncrementTick(), xTaskPriorityDisinherit(), xTaskPriorityInherit(), xTaskRemoveFromEventList(), xTaskResumeAll(), and xTaskResumeFromISR().
#define prvGetTCBFromHandle | ( | pxHandle | ) | ( ( ( pxHandle ) == NULL ) ? ( TCB_t * ) pxCurrentTCB : ( TCB_t * ) ( pxHandle ) ) |
#define taskEVENT_LIST_ITEM_VALUE_IN_USE 0x80000000UL |
#define taskNOT_WAITING_NOTIFICATION ( ( uint8_t ) 0 ) |
Referenced by prvInitialiseNewTask(), ulTaskNotifyTake(), vTaskSuspend(), xTaskNotifyStateClear(), and xTaskNotifyWait().
#define taskNOTIFICATION_RECEIVED ( ( uint8_t ) 2 ) |
#define taskRECORD_READY_PRIORITY | ( | uxPriority | ) |
#define taskRESET_READY_PRIORITY | ( | uxPriority | ) |
#define taskSELECT_HIGHEST_PRIORITY_TASK | ( | ) |
Referenced by vTaskSwitchContext().
#define taskSWITCH_DELAYED_LISTS | ( | ) |
Referenced by xTaskIncrementTick().
#define taskWAITING_NOTIFICATION ( ( uint8_t ) 1 ) |
#define taskYIELD_IF_USING_PREEMPTION | ( | ) | portYIELD_WITHIN_API() |
Referenced by prvAddNewTaskToReadyList(), vTaskPrioritySet(), vTaskResume(), xTaskGenericNotify(), and xTaskResumeAll().
#define tskBLOCKED_CHAR ( 'B' ) |
#define tskDELETED_CHAR ( 'D' ) |
#define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 ) |
Referenced by prvDeleteTCB().
#define tskREADY_CHAR ( 'R' ) |
#define tskSET_NEW_STACKS_TO_KNOWN_VALUE 0 |
#define tskSTACK_FILL_BYTE ( 0xa5U ) |
Referenced by prvInitialiseNewTask().
#define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) |
#define tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 ) |
Referenced by prvDeleteTCB().
#define tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 ) |
Referenced by prvDeleteTCB().
#define tskSUSPENDED_CHAR ( 'S' ) |
typedef struct tskTaskControlBlock tskTCB |
char* pcTaskGetName | ( | TaskHandle_t | xTaskToQuery | ) |
References configASSERT, tskTaskControlBlock::pcTaskName, and prvGetTCBFromHandle.
|
static |
THIS IS THE RTOS IDLE TASK - WHICH IS CREATED AUTOMATICALLY WHEN THE
SCHEDULER IS STARTED.
References configASSERT, configEXPECTED_IDLE_TIME_BEFORE_SLEEP, configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING, listCURRENT_LIST_LENGTH, mtCOVERAGE_TEST_MARKER, portSUPPRESS_TICKS_AND_SLEEP, portTASK_CALLS_SECURE_FUNCTIONS, prvCheckTasksWaitingTermination(), pxReadyTasksLists, taskYIELD, traceLOW_POWER_IDLE_BEGIN, traceLOW_POWER_IDLE_END, vTaskSuspendAll(), xNextTaskUnblockTime, xTaskResumeAll(), and xTickCount.
|
static |
References listSET_LIST_ITEM_VALUE, mtCOVERAGE_TEST_MARKER, pdFALSE, portRESET_READY_PRIORITY, pxCurrentTCB, pxDelayedTaskList, pxOverflowDelayedTaskList, uxListRemove(), tskTaskControlBlock::uxPriority, uxTopReadyPriority, vListInsert(), vListInsertEnd(), xNextTaskUnblockTime, tskTaskControlBlock::xStateListItem, xSuspendedTaskList, and xTickCount.
Referenced by ulTaskNotifyTake(), vTaskDelay(), vTaskDelayUntil(), vTaskPlaceOnEventList(), vTaskPlaceOnEventListRestricted(), vTaskPlaceOnUnorderedEventList(), and xTaskNotifyWait().
|
static |
References mtCOVERAGE_TEST_MARKER, pdFALSE, portSETUP_TCB, prvAddTaskToReadyList, prvInitialiseTaskLists(), pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskYIELD_IF_USING_PREEMPTION, traceTASK_CREATE, uxCurrentNumberOfTasks, tskTaskControlBlock::uxPriority, uxTaskNumber, and xSchedulerRunning.
|
static |
THIS FUNCTION IS CALLED FROM THE RTOS IDLE TASK
References listGET_OWNER_OF_HEAD_ENTRY, prvDeleteTCB(), taskENTER_CRITICAL, taskEXIT_CRITICAL, uxCurrentNumberOfTasks, uxDeletedTasksWaitingCleanUp, uxListRemove(), tskTaskControlBlock::xStateListItem, and xTasksWaitingTermination.
Referenced by portTASK_FUNCTION().
|
static |
|
static |
References configASSERT, configMAX_PRIORITIES, configMAX_TASK_NAME_LEN, configNUM_THREAD_LOCAL_STORAGE_POINTERS, listSET_LIST_ITEM_OWNER, listSET_LIST_ITEM_VALUE, mtCOVERAGE_TEST_MARKER, tskTaskControlBlock::pcTaskName, pdFALSE, pdTRUE, portPOINTER_SIZE_TYPE, portPRIVILEGE_BIT, pxPortInitialiseStack(), tskTaskControlBlock::pxStack, tskTaskControlBlock::pxTopOfStack, taskNOT_WAITING_NOTIFICATION, tskSTACK_FILL_BYTE, tskTaskControlBlock::ucNotifyState, tskTaskControlBlock::ulNotifiedValue, tskTaskControlBlock::uxBasePriority, tskTaskControlBlock::uxMutexesHeld, tskTaskControlBlock::uxPriority, vListInitialiseItem(), tskTaskControlBlock::xEventListItem, and tskTaskControlBlock::xStateListItem.
|
static |
Referenced by prvAddNewTaskToReadyList().
|
static |
|
static |
References listGET_LIST_ITEM_VALUE, listGET_OWNER_OF_HEAD_ENTRY, listLIST_IS_EMPTY, pdFALSE, pxDelayedTaskList, and xNextTaskUnblockTime.
Referenced by vTaskDelete(), vTaskSuspend(), xTaskGenericNotify(), xTaskRemoveFromEventList(), and xTaskResumeAll().
|
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.
References configASSERT, listIS_CONTAINED_WITHIN, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, tskTaskControlBlock::xEventListItem, xPendingReadyList, tskTaskControlBlock::xStateListItem, and xSuspendedTaskList.
Referenced by vTaskResume(), and xTaskResumeFromISR().
void* pvTaskIncrementMutexHeldCount | ( | void | ) |
References pxCurrentTCB, and tskTaskControlBlock::uxMutexesHeld.
Referenced by xQueueSemaphoreTake().
uint32_t ulTaskNotifyTake | ( | BaseType_t | xClearCountOnExit, |
TickType_t | xTicksToWait | ||
) |
References mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, portYIELD_WITHIN_API, prvAddCurrentTaskToDelayedList(), pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskNOT_WAITING_NOTIFICATION, taskWAITING_NOTIFICATION, traceTASK_NOTIFY_TAKE, traceTASK_NOTIFY_TAKE_BLOCK, tskTaskControlBlock::ucNotifyState, and tskTaskControlBlock::ulNotifiedValue.
UBaseType_t uxTaskGetNumberOfTasks | ( | void | ) |
References uxCurrentNumberOfTasks.
UBaseType_t uxTaskPriorityGet | ( | TaskHandle_t | xTask | ) |
References prvGetTCBFromHandle, taskENTER_CRITICAL, taskEXIT_CRITICAL, and tskTaskControlBlock::uxPriority.
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.
References portASSERT_IF_INTERRUPT_PRIORITY_INVALID, portCLEAR_INTERRUPT_MASK_FROM_ISR, portSET_INTERRUPT_MASK_FROM_ISR, prvGetTCBFromHandle, and tskTaskControlBlock::uxPriority.
TickType_t uxTaskResetEventItemValue | ( | void | ) |
References configMAX_PRIORITIES, listGET_LIST_ITEM_VALUE, listSET_LIST_ITEM_VALUE, pxCurrentTCB, tskTaskControlBlock::uxPriority, and tskTaskControlBlock::xEventListItem.
Referenced by xEventGroupSync(), and xEventGroupWaitBits().
void vTaskDelay | ( | const TickType_t | xTicksToDelay | ) |
References configASSERT, mtCOVERAGE_TEST_MARKER, pdFALSE, portYIELD_WITHIN_API, prvAddCurrentTaskToDelayedList(), traceTASK_DELAY, uxSchedulerSuspended, vTaskSuspendAll(), and xTaskResumeAll().
Referenced by about_task(), graph_task(), main_task(), terminal_task(), and uart_task().
void vTaskDelayUntil | ( | TickType_t *const | pxPreviousWakeTime, |
const TickType_t | xTimeIncrement | ||
) |
void vTaskDelete | ( | TaskHandle_t | xTaskToDelete | ) |
References configASSERT, listLIST_ITEM_CONTAINER, mtCOVERAGE_TEST_MARKER, pdFALSE, portPRE_TASK_DELETE_HOOK, portYIELD_WITHIN_API, prvDeleteTCB(), prvGetTCBFromHandle, prvResetNextTaskUnblockTime(), pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskRESET_READY_PRIORITY, traceTASK_DELETE, uxCurrentNumberOfTasks, uxDeletedTasksWaitingCleanUp, uxListRemove(), tskTaskControlBlock::uxPriority, uxSchedulerSuspended, uxTaskNumber, vListInsertEnd(), tskTaskControlBlock::xEventListItem, xSchedulerRunning, tskTaskControlBlock::xStateListItem, xTasksWaitingTermination, and xYieldPending.
void vTaskEndScheduler | ( | void | ) |
References pdFALSE, vPortEndScheduler(), and xSchedulerRunning.
void vTaskInternalSetTimeOutState | ( | TimeOut_t *const | pxTimeOut | ) |
References xNumOfOverflows, xTIME_OUT::xOverflowCount, xTickCount, and xTIME_OUT::xTimeOnEntering.
Referenced by xQueueGenericSend(), xQueuePeek(), xQueueReceive(), xQueueSemaphoreTake(), and xTaskCheckForTimeOut().
void vTaskMissedYield | ( | void | ) |
References pdTRUE, and xYieldPending.
Referenced by prvUnlockQueue().
void vTaskNotifyGiveFromISR | ( | TaskHandle_t | xTaskToNotify, |
BaseType_t * | pxHigherPriorityTaskWoken | ||
) |
References configASSERT, listLIST_ITEM_CONTAINER, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, portASSERT_IF_INTERRUPT_PRIORITY_INVALID, portCLEAR_INTERRUPT_MASK_FROM_ISR, portSET_INTERRUPT_MASK_FROM_ISR, prvAddTaskToReadyList, pxCurrentTCB, taskNOTIFICATION_RECEIVED, taskWAITING_NOTIFICATION, traceTASK_NOTIFY_GIVE_FROM_ISR, tskTaskControlBlock::ucNotifyState, tskTaskControlBlock::ulNotifiedValue, uxListRemove(), tskTaskControlBlock::uxPriority, uxSchedulerSuspended, vListInsertEnd(), tskTaskControlBlock::xEventListItem, xPendingReadyList, tskTaskControlBlock::xStateListItem, and xYieldPending.
void vTaskPlaceOnEventList | ( | List_t *const | pxEventList, |
const TickType_t | xTicksToWait | ||
) |
References configASSERT, pdTRUE, prvAddCurrentTaskToDelayedList(), pxCurrentTCB, vListInsert(), and tskTaskControlBlock::xEventListItem.
Referenced by xQueueGenericSend(), xQueuePeek(), xQueueReceive(), and xQueueSemaphoreTake().
void vTaskPlaceOnEventListRestricted | ( | List_t *const | pxEventList, |
TickType_t | xTicksToWait, | ||
const BaseType_t | xWaitIndefinitely | ||
) |
References configASSERT, pdFALSE, prvAddCurrentTaskToDelayedList(), pxCurrentTCB, traceTASK_DELAY_UNTIL, vListInsertEnd(), tskTaskControlBlock::xEventListItem, and xTickCount.
Referenced by vQueueWaitForMessageRestricted().
void vTaskPlaceOnUnorderedEventList | ( | List_t * | pxEventList, |
const TickType_t | xItemValue, | ||
const TickType_t | xTicksToWait | ||
) |
void vTaskPriorityDisinheritAfterTimeout | ( | TaskHandle_t const | pxMutexHolder, |
UBaseType_t | uxHighestPriorityWaitingTask | ||
) |
References configASSERT, configMAX_PRIORITIES, listGET_LIST_ITEM_VALUE, listIS_CONTAINED_WITHIN, listSET_LIST_ITEM_VALUE, mtCOVERAGE_TEST_MARKER, pdFALSE, prvAddTaskToReadyList, pxCurrentTCB, pxReadyTasksLists, taskEVENT_LIST_ITEM_VALUE_IN_USE, taskRESET_READY_PRIORITY, traceTASK_PRIORITY_DISINHERIT, tskTaskControlBlock::uxBasePriority, uxListRemove(), tskTaskControlBlock::uxMutexesHeld, tskTaskControlBlock::uxPriority, tskTaskControlBlock::xEventListItem, and tskTaskControlBlock::xStateListItem.
Referenced by xQueueSemaphoreTake().
void vTaskPrioritySet | ( | TaskHandle_t | xTask, |
UBaseType_t | uxNewPriority | ||
) |
References configASSERT, configMAX_PRIORITIES, listGET_LIST_ITEM_VALUE, listIS_CONTAINED_WITHIN, listSET_LIST_ITEM_VALUE, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, portRESET_READY_PRIORITY, prvAddTaskToReadyList, prvGetTCBFromHandle, pxCurrentTCB, pxReadyTasksLists, taskENTER_CRITICAL, taskEVENT_LIST_ITEM_VALUE_IN_USE, taskEXIT_CRITICAL, taskYIELD_IF_USING_PREEMPTION, traceTASK_PRIORITY_SET, tskTaskControlBlock::uxBasePriority, uxListRemove(), tskTaskControlBlock::uxPriority, uxTopReadyPriority, tskTaskControlBlock::xEventListItem, and tskTaskControlBlock::xStateListItem.
void vTaskRemoveFromUnorderedEventList | ( | ListItem_t * | pxEventListItem, |
const TickType_t | xItemValue | ||
) |
References configASSERT, listGET_LIST_ITEM_OWNER, listSET_LIST_ITEM_VALUE, pdFALSE, pdTRUE, prvAddTaskToReadyList, pxCurrentTCB, taskEVENT_LIST_ITEM_VALUE_IN_USE, uxListRemove(), tskTaskControlBlock::uxPriority, uxSchedulerSuspended, tskTaskControlBlock::xStateListItem, and xYieldPending.
Referenced by vEventGroupDelete(), and xEventGroupSetBits().
void vTaskResume | ( | TaskHandle_t | xTaskToResume | ) |
void vTaskSetTimeOutState | ( | TimeOut_t *const | pxTimeOut | ) |
References configASSERT, taskENTER_CRITICAL, taskEXIT_CRITICAL, xNumOfOverflows, xTIME_OUT::xOverflowCount, xTickCount, and xTIME_OUT::xTimeOnEntering.
Referenced by xStreamBufferSend().
void vTaskStartScheduler | ( | void | ) |
References configASSERT, configIDLE_TASK_NAME, configMINIMAL_STACK_SIZE, errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY, mtCOVERAGE_TEST_MARKER, pdFAIL, pdFALSE, pdPASS, pdTRUE, portCONFIGURE_TIMER_FOR_RUN_TIME_STATS, portPRIVILEGE_BIT, pxCurrentTCB, tskIDLE_PRIORITY, xIdleTaskHandle, xNextTaskUnblockTime, xPortStartScheduler(), xSchedulerRunning, xTickCount, and xTimerCreateTimerTask().
Referenced by main().
void vTaskSuspend | ( | TaskHandle_t | xTaskToSuspend | ) |
References configASSERT, listCURRENT_LIST_LENGTH, listLIST_ITEM_CONTAINER, mtCOVERAGE_TEST_MARKER, pdFALSE, portYIELD_WITHIN_API, prvGetTCBFromHandle, prvResetNextTaskUnblockTime(), pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskNOT_WAITING_NOTIFICATION, taskRESET_READY_PRIORITY, taskWAITING_NOTIFICATION, traceTASK_SUSPEND, tskTaskControlBlock::ucNotifyState, uxCurrentNumberOfTasks, uxListRemove(), tskTaskControlBlock::uxPriority, uxSchedulerSuspended, vListInsertEnd(), vTaskSwitchContext(), tskTaskControlBlock::xEventListItem, xSchedulerRunning, tskTaskControlBlock::xStateListItem, and xSuspendedTaskList.
void vTaskSuspendAll | ( | void | ) |
References uxSchedulerSuspended.
Referenced by portTASK_FUNCTION(), prvProcessTimerOrBlockTask(), pvPortMalloc(), vEventGroupDelete(), vTaskDelay(), vTaskDelayUntil(), xEventGroupSetBits(), xEventGroupSync(), xEventGroupWaitBits(), xQueueGenericSend(), xQueuePeek(), xQueueReceive(), and xQueueSemaphoreTake().
void vTaskSwitchContext | ( | void | ) |
References mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, pxCurrentTCB, taskCHECK_FOR_STACK_OVERFLOW, taskSELECT_HIGHEST_PRIORITY_TASK, traceTASK_SWITCHED_IN, traceTASK_SWITCHED_OUT, uxSchedulerSuspended, and xYieldPending.
Referenced by vTaskSuspend().
BaseType_t xTaskCheckForTimeOut | ( | TimeOut_t *const | pxTimeOut, |
TickType_t *const | pxTicksToWait | ||
) |
References configASSERT, pdFALSE, pdTRUE, pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, vTaskInternalSetTimeOutState(), xNumOfOverflows, xTIME_OUT::xOverflowCount, xTickCount, and xTIME_OUT::xTimeOnEntering.
Referenced by xQueueGenericSend(), xQueuePeek(), xQueueReceive(), xQueueSemaphoreTake(), and xStreamBufferSend().
BaseType_t xTaskGenericNotify | ( | TaskHandle_t | xTaskToNotify, |
uint32_t | ulValue, | ||
eNotifyAction | eAction, | ||
uint32_t * | pulPreviousNotificationValue | ||
) |
References configASSERT, eIncrement, eNoAction, eSetBits, eSetValueWithoutOverwrite, eSetValueWithOverwrite, listLIST_ITEM_CONTAINER, mtCOVERAGE_TEST_MARKER, pdFAIL, pdPASS, prvAddTaskToReadyList, prvResetNextTaskUnblockTime(), pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskNOTIFICATION_RECEIVED, taskWAITING_NOTIFICATION, taskYIELD_IF_USING_PREEMPTION, traceTASK_NOTIFY, tskTaskControlBlock::ucNotifyState, tskTaskControlBlock::ulNotifiedValue, uxListRemove(), tskTaskControlBlock::uxPriority, tskTaskControlBlock::xEventListItem, and tskTaskControlBlock::xStateListItem.
BaseType_t xTaskGenericNotifyFromISR | ( | TaskHandle_t | xTaskToNotify, |
uint32_t | ulValue, | ||
eNotifyAction | eAction, | ||
uint32_t * | pulPreviousNotificationValue, | ||
BaseType_t * | pxHigherPriorityTaskWoken | ||
) |
References configASSERT, eIncrement, eNoAction, eSetBits, eSetValueWithoutOverwrite, eSetValueWithOverwrite, listLIST_ITEM_CONTAINER, mtCOVERAGE_TEST_MARKER, pdFAIL, pdFALSE, pdPASS, pdTRUE, portASSERT_IF_INTERRUPT_PRIORITY_INVALID, portCLEAR_INTERRUPT_MASK_FROM_ISR, portSET_INTERRUPT_MASK_FROM_ISR, prvAddTaskToReadyList, pxCurrentTCB, taskNOTIFICATION_RECEIVED, taskWAITING_NOTIFICATION, traceTASK_NOTIFY_FROM_ISR, tskTaskControlBlock::ucNotifyState, tskTaskControlBlock::ulNotifiedValue, uxListRemove(), tskTaskControlBlock::uxPriority, uxSchedulerSuspended, vListInsertEnd(), tskTaskControlBlock::xEventListItem, xPendingReadyList, tskTaskControlBlock::xStateListItem, and xYieldPending.
TaskHandle_t xTaskGetCurrentTaskHandle | ( | void | ) |
References pxCurrentTCB.
Referenced by xQueueGiveMutexRecursive(), xQueueTakeMutexRecursive(), xStreamBufferReceive(), and xStreamBufferSend().
BaseType_t xTaskGetSchedulerState | ( | void | ) |
TickType_t xTaskGetTickCount | ( | void | ) |
References portTICK_TYPE_ENTER_CRITICAL, portTICK_TYPE_EXIT_CRITICAL, and xTickCount.
Referenced by prvSampleTimeNow().
TickType_t xTaskGetTickCountFromISR | ( | void | ) |
BaseType_t xTaskIncrementTick | ( | void | ) |
References listCURRENT_LIST_LENGTH, listGET_LIST_ITEM_VALUE, listGET_OWNER_OF_HEAD_ENTRY, listLIST_IS_EMPTY, listLIST_ITEM_CONTAINER, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, prvAddTaskToReadyList, pxCurrentTCB, pxDelayedTaskList, pxReadyTasksLists, taskSWITCH_DELAYED_LISTS, traceTASK_INCREMENT_TICK, uxListRemove(), uxPendedTicks, tskTaskControlBlock::uxPriority, uxSchedulerSuspended, tskTaskControlBlock::xEventListItem, xNextTaskUnblockTime, tskTaskControlBlock::xStateListItem, xTickCount, and xYieldPending.
Referenced by xTaskResumeAll().
BaseType_t xTaskNotifyStateClear | ( | TaskHandle_t | xTask | ) |
References pdFAIL, pdPASS, prvGetTCBFromHandle, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskNOT_WAITING_NOTIFICATION, taskNOTIFICATION_RECEIVED, and tskTaskControlBlock::ucNotifyState.
Referenced by xStreamBufferReceive(), and xStreamBufferSend().
BaseType_t xTaskNotifyWait | ( | uint32_t | ulBitsToClearOnEntry, |
uint32_t | ulBitsToClearOnExit, | ||
uint32_t * | pulNotificationValue, | ||
TickType_t | xTicksToWait | ||
) |
References mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, portYIELD_WITHIN_API, prvAddCurrentTaskToDelayedList(), pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskNOT_WAITING_NOTIFICATION, taskNOTIFICATION_RECEIVED, taskWAITING_NOTIFICATION, traceTASK_NOTIFY_WAIT, traceTASK_NOTIFY_WAIT_BLOCK, tskTaskControlBlock::ucNotifyState, and tskTaskControlBlock::ulNotifiedValue.
Referenced by xStreamBufferReceive(), and xStreamBufferSend().
BaseType_t xTaskPriorityDisinherit | ( | TaskHandle_t const | pxMutexHolder | ) |
References configASSERT, configMAX_PRIORITIES, listSET_LIST_ITEM_VALUE, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, prvAddTaskToReadyList, pxCurrentTCB, taskRESET_READY_PRIORITY, traceTASK_PRIORITY_DISINHERIT, tskTaskControlBlock::uxBasePriority, uxListRemove(), tskTaskControlBlock::uxMutexesHeld, tskTaskControlBlock::uxPriority, tskTaskControlBlock::xEventListItem, and tskTaskControlBlock::xStateListItem.
Referenced by prvCopyDataToQueue().
BaseType_t xTaskPriorityInherit | ( | TaskHandle_t const | pxMutexHolder | ) |
References configMAX_PRIORITIES, listGET_LIST_ITEM_VALUE, listIS_CONTAINED_WITHIN, listSET_LIST_ITEM_VALUE, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, prvAddTaskToReadyList, pxCurrentTCB, pxReadyTasksLists, taskEVENT_LIST_ITEM_VALUE_IN_USE, taskRESET_READY_PRIORITY, traceTASK_PRIORITY_INHERIT, tskTaskControlBlock::uxBasePriority, uxListRemove(), tskTaskControlBlock::uxPriority, tskTaskControlBlock::xEventListItem, and tskTaskControlBlock::xStateListItem.
Referenced by xQueueSemaphoreTake().
BaseType_t xTaskRemoveFromEventList | ( | const List_t *const | pxEventList | ) |
References configASSERT, listGET_OWNER_OF_HEAD_ENTRY, pdFALSE, pdTRUE, prvAddTaskToReadyList, prvResetNextTaskUnblockTime(), pxCurrentTCB, uxListRemove(), tskTaskControlBlock::uxPriority, uxSchedulerSuspended, vListInsertEnd(), tskTaskControlBlock::xEventListItem, xPendingReadyList, tskTaskControlBlock::xStateListItem, and xYieldPending.
Referenced by prvNotifyQueueSetContainer(), prvUnlockQueue(), xQueueGenericReset(), xQueueGenericSend(), xQueueGenericSendFromISR(), xQueueGiveFromISR(), xQueuePeek(), xQueueReceive(), xQueueReceiveFromISR(), and xQueueSemaphoreTake().
BaseType_t xTaskResumeAll | ( | void | ) |
References configASSERT, listGET_OWNER_OF_HEAD_ENTRY, listLIST_IS_EMPTY, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, prvAddTaskToReadyList, prvResetNextTaskUnblockTime(), pxCurrentTCB, taskENTER_CRITICAL, taskEXIT_CRITICAL, taskYIELD_IF_USING_PREEMPTION, uxCurrentNumberOfTasks, uxListRemove(), uxPendedTicks, tskTaskControlBlock::uxPriority, uxSchedulerSuspended, tskTaskControlBlock::xEventListItem, xPendingReadyList, tskTaskControlBlock::xStateListItem, xTaskIncrementTick(), and xYieldPending.
Referenced by portTASK_FUNCTION(), prvProcessTimerOrBlockTask(), pvPortMalloc(), vEventGroupDelete(), vTaskDelay(), vTaskDelayUntil(), xEventGroupSetBits(), xEventGroupSync(), xEventGroupWaitBits(), xQueueGenericSend(), xQueuePeek(), xQueueReceive(), and xQueueSemaphoreTake().
BaseType_t xTaskResumeFromISR | ( | TaskHandle_t | xTaskToResume | ) |
References configASSERT, mtCOVERAGE_TEST_MARKER, pdFALSE, pdTRUE, portASSERT_IF_INTERRUPT_PRIORITY_INVALID, portCLEAR_INTERRUPT_MASK_FROM_ISR, portSET_INTERRUPT_MASK_FROM_ISR, prvAddTaskToReadyList, prvTaskIsTaskSuspended(), pxCurrentTCB, traceTASK_RESUME_FROM_ISR, uxListRemove(), tskTaskControlBlock::uxPriority, uxSchedulerSuspended, vListInsertEnd(), tskTaskControlBlock::xEventListItem, xPendingReadyList, and tskTaskControlBlock::xStateListItem.
PRIVILEGED_DATA TCB_t* volatile pxCurrentTCB = NULL |
Referenced by prvAddCurrentTaskToDelayedList(), prvAddNewTaskToReadyList(), pvTaskIncrementMutexHeldCount(), ulTaskNotifyTake(), uxTaskResetEventItemValue(), vTaskDelete(), vTaskNotifyGiveFromISR(), vTaskPlaceOnEventList(), vTaskPlaceOnEventListRestricted(), vTaskPlaceOnUnorderedEventList(), vTaskPriorityDisinheritAfterTimeout(), vTaskPrioritySet(), vTaskRemoveFromUnorderedEventList(), vTaskResume(), vTaskStartScheduler(), vTaskSuspend(), vTaskSwitchContext(), xTaskCheckForTimeOut(), xTaskGenericNotify(), xTaskGenericNotifyFromISR(), xTaskGetCurrentTaskHandle(), xTaskIncrementTick(), xTaskNotifyWait(), xTaskPriorityDisinherit(), xTaskPriorityInherit(), xTaskRemoveFromEventList(), xTaskResumeAll(), and xTaskResumeFromISR().
|
static |
|
static |
Referenced by prvAddCurrentTaskToDelayedList(), and prvInitialiseTaskLists().
|
static |
|
static |
|
static |
Referenced by prvCheckTasksWaitingTermination(), and vTaskDelete().
|
static |
Referenced by xTaskIncrementTick(), and xTaskResumeAll().
|
static |
Referenced by vTaskDelay(), vTaskDelayUntil(), vTaskDelete(), vTaskNotifyGiveFromISR(), vTaskPlaceOnUnorderedEventList(), vTaskRemoveFromUnorderedEventList(), vTaskSuspend(), vTaskSuspendAll(), vTaskSwitchContext(), xTaskGenericNotifyFromISR(), xTaskGetSchedulerState(), xTaskIncrementTick(), xTaskRemoveFromEventList(), xTaskResumeAll(), and xTaskResumeFromISR().
|
static |
Referenced by prvAddNewTaskToReadyList(), and vTaskDelete().
|
static |
Referenced by prvAddCurrentTaskToDelayedList(), and vTaskPrioritySet().
|
static |
Referenced by prvInitialiseTaskLists().
|
static |
Referenced by prvInitialiseTaskLists().
|
static |
Referenced by vTaskStartScheduler().
|
static |
|
static |
Referenced by vTaskInternalSetTimeOutState(), vTaskSetTimeOutState(), and xTaskCheckForTimeOut().
|
static |
|
static |
|
static |
Referenced by prvAddCurrentTaskToDelayedList(), prvInitialiseTaskLists(), prvTaskIsTaskSuspended(), and vTaskSuspend().
|
static |
Referenced by prvCheckTasksWaitingTermination(), prvInitialiseTaskLists(), and vTaskDelete().
|
static |
Referenced by portTASK_FUNCTION(), prvAddCurrentTaskToDelayedList(), vTaskDelayUntil(), vTaskInternalSetTimeOutState(), vTaskPlaceOnEventListRestricted(), vTaskSetTimeOutState(), vTaskStartScheduler(), xTaskCheckForTimeOut(), xTaskGetTickCount(), xTaskGetTickCountFromISR(), and xTaskIncrementTick().
|
static |