Prusa MINI Firmware overview
|
#include <stdlib.h>
#include <string.h>
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "StackMacros.h"
|
static PRIVILEGED_FUNCTION void | prvInitialiseTaskLists (void) |
|
static | portTASK_FUNCTION_PROTO (prvIdleTask, pvParameters) |
|
static PRIVILEGED_FUNCTION void | prvCheckTasksWaitingTermination (void) |
|
static PRIVILEGED_FUNCTION void | prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely) |
|
static void | prvResetNextTaskUnblockTime (void) |
|
static PRIVILEGED_FUNCTION 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 PRIVILEGED_FUNCTION void | prvAddNewTaskToReadyList (TCB_t *pxNewTCB) |
|
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) |
|
BaseType_t | xTaskRemoveFromUnorderedEventList (ListItem_t *pxEventListItem, const TickType_t xItemValue) |
|
void | vTaskSetTimeOutState (TimeOut_t *const pxTimeOut) |
|
BaseType_t | xTaskCheckForTimeOut (TimeOut_t *const pxTimeOut, TickType_t *const pxTicksToWait) |
|
void | vTaskMissedYield (void) |
|
static | portTASK_FUNCTION (prvIdleTask, pvParameters) |
|
TickType_t | uxTaskResetEventItemValue (void) |
|
◆ MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE |
◆ taskYIELD_IF_USING_PREEMPTION
#define taskYIELD_IF_USING_PREEMPTION |
( |
| ) |
|
◆ taskNOT_WAITING_NOTIFICATION
#define taskNOT_WAITING_NOTIFICATION ( ( uint8_t ) 0 ) |
◆ taskWAITING_NOTIFICATION
#define taskWAITING_NOTIFICATION ( ( uint8_t ) 1 ) |
◆ taskNOTIFICATION_RECEIVED
#define taskNOTIFICATION_RECEIVED ( ( uint8_t ) 2 ) |
◆ tskSTACK_FILL_BYTE
#define tskSTACK_FILL_BYTE ( 0xa5U ) |
◆ tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE
◆ tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB
#define tskDYNAMICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 0 ) |
◆ tskSTATICALLY_ALLOCATED_STACK_ONLY
#define tskSTATICALLY_ALLOCATED_STACK_ONLY ( ( uint8_t ) 1 ) |
◆ tskSTATICALLY_ALLOCATED_STACK_AND_TCB
#define tskSTATICALLY_ALLOCATED_STACK_AND_TCB ( ( uint8_t ) 2 ) |
◆ tskBLOCKED_CHAR
#define tskBLOCKED_CHAR ( 'B' ) |
◆ tskREADY_CHAR
#define tskREADY_CHAR ( 'R' ) |
◆ tskDELETED_CHAR
#define tskDELETED_CHAR ( 'D' ) |
◆ tskSUSPENDED_CHAR
#define tskSUSPENDED_CHAR ( 'S' ) |
◆ taskRECORD_READY_PRIORITY
#define taskRECORD_READY_PRIORITY |
( |
|
uxPriority | ) |
|
Value:{ \
{ \
uxTopReadyPriority = ( uxPriority ); \
} \
}
◆ taskSELECT_HIGHEST_PRIORITY_TASK
#define taskSELECT_HIGHEST_PRIORITY_TASK |
( |
| ) |
|
Value:{ \
\
\
{ \
configASSERT( uxTopPriority ); \
--uxTopPriority; \
} \
\
\
uxTopReadyPriority = uxTopPriority; \
}
◆ taskRESET_READY_PRIORITY
#define taskRESET_READY_PRIORITY |
( |
|
uxPriority | ) |
|
◆ portRESET_READY_PRIORITY
◆ taskSWITCH_DELAYED_LISTS
#define taskSWITCH_DELAYED_LISTS |
( |
| ) |
|
Value:{ \
List_t *pxTemp; \
\
\
\
pxOverflowDelayedTaskList = pxTemp; \
xNumOfOverflows++; \
prvResetNextTaskUnblockTime(); \
}
◆ prvAddTaskToReadyList
#define prvAddTaskToReadyList |
( |
|
pxTCB | ) |
|
Value:
taskRECORD_READY_PRIORITY( ( pxTCB )->uxPriority ); \
vListInsertEnd( &(
pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xStateListItem ) ); \
tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB )
◆ prvGetTCBFromHandle
◆ taskEVENT_LIST_ITEM_VALUE_IN_USE
#define taskEVENT_LIST_ITEM_VALUE_IN_USE 0x80000000UL |
◆ tskTCB
◆ TCB_t
◆ prvInitialiseTaskLists()
static void prvInitialiseTaskLists |
( |
void |
| ) |
|
|
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.
3346 #if ( INCLUDE_vTaskDelete == 1 )
3352 #if ( INCLUDE_vTaskSuspend == 1 )
◆ portTASK_FUNCTION_PROTO()
static portTASK_FUNCTION_PROTO |
( |
prvIdleTask |
, |
|
|
pvParameters |
|
|
) |
| |
|
static |
◆ prvCheckTasksWaitingTermination()
static void prvCheckTasksWaitingTermination |
( |
void |
| ) |
|
|
static |
THIS FUNCTION IS CALLED FROM THE RTOS IDLE TASK
3370 #if ( INCLUDE_vTaskDelete == 1 )
3376 while( uxDeletedTasksWaitingCleanUp > (
UBaseType_t ) 0U )
3393 --uxDeletedTasksWaitingCleanUp;
3397 prvDeleteTCB( pxTCB );
◆ prvAddCurrentTaskToDelayedList()
4697 #if( INCLUDE_xTaskAbortDelay == 1 )
4719 #if ( INCLUDE_vTaskSuspend == 1 )
4733 xTimeToWake = xConstTickCount + xTicksToWait;
4738 if( xTimeToWake < xConstTickCount )
4769 xTimeToWake = xConstTickCount + xTicksToWait;
4774 if( xTimeToWake < xConstTickCount )
4798 (
void ) xCanBlockIndefinitely;
◆ prvResetNextTaskUnblockTime()
static void prvResetNextTaskUnblockTime |
( |
void |
| ) |
|
|
static |
◆ prvInitialiseNewTask()
779 #if( portUSING_MPU_WRAPPERS == 1 )
794 #if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
805 #if( portSTACK_GROWTH < 0 )
807 pxTopOfStack = pxNewTCB->
pxStack + ( ulStackDepth - ( uint32_t ) 1 );
815 pxTopOfStack = pxNewTCB->
pxStack;
822 pxNewTCB->pxEndOfStack = pxNewTCB->
pxStack + ( ulStackDepth - ( uint32_t ) 1 );
834 if( pcName[ x ] == 0x00 )
860 #if ( configUSE_MUTEXES == 1 )
862 pxNewTCB->uxBasePriority = uxPriority;
863 pxNewTCB->uxMutexesHeld = 0;
878 #if ( portCRITICAL_NESTING_IN_TCB == 1 )
884 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
886 pxNewTCB->pxTaskTag =
NULL;
890 #if ( configGENERATE_RUN_TIME_STATS == 1 )
892 pxNewTCB->ulRunTimeCounter = 0UL;
896 #if ( portUSING_MPU_WRAPPERS == 1 )
898 vPortStoreTaskMPUSettings( &( pxNewTCB->xMPUSettings ), xRegions, pxNewTCB->
pxStack, ulStackDepth );
907 #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
911 pxNewTCB->pvThreadLocalStoragePointers[ x ] =
NULL;
916 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
918 pxNewTCB->ulNotifiedValue = 0;
923 #if ( configUSE_NEWLIB_REENTRANT == 1 )
926 _REENT_INIT_PTR( ( &( pxNewTCB->xNewLib_reent ) ) );
930 #if( INCLUDE_xTaskAbortDelay == 1 )
932 pxNewTCB->ucDelayAborted =
pdFALSE;
940 #if( portUSING_MPU_WRAPPERS == 1 )
950 if( (
void * ) pxCreatedTask !=
NULL )
◆ prvAddNewTaskToReadyList()
static void prvAddNewTaskToReadyList |
( |
TCB_t * |
pxNewTCB | ) |
|
|
static |
1012 #if ( configUSE_TRACE_FACILITY == 1 )
◆ vTaskStartScheduler()
1831 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
1835 uint32_t ulIdleTaskStackSize;
1839 vApplicationGetIdleTaskMemory( &pxIdleTaskTCBBuffer, &pxIdleTaskStackBuffer, &ulIdleTaskStackSize );
1842 ulIdleTaskStackSize,
1845 pxIdleTaskStackBuffer,
1846 pxIdleTaskTCBBuffer );
1860 xReturn = xTaskCreate( prvIdleTask,
1868 #if ( configUSE_TIMERS == 1 )
1890 #if ( configUSE_NEWLIB_REENTRANT == 1 )
◆ vTaskEndScheduler()
◆ vTaskSuspendAll()
◆ xTaskResumeAll()
2103 #if( configUSE_PREEMPTION != 0 )
2105 xAlreadyYielded =
pdTRUE;
2123 return xAlreadyYielded;
◆ xTaskGetTickCount()
◆ xTaskGetTickCountFromISR()
◆ uxTaskGetNumberOfTasks()
◆ pcTaskGetName()
◆ xTaskIncrementTick()
2555 if( xConstTickCount < xItemValue )
2590 #if ( configUSE_PREEMPTION == 1 )
2598 xSwitchRequired =
pdTRUE;
2613 #if ( ( configUSE_PREEMPTION == 1 ) && ( configUSE_TIME_SLICING == 1 ) )
2617 xSwitchRequired =
pdTRUE;
2626 #if ( configUSE_TICK_HOOK == 1 )
2647 #if ( configUSE_TICK_HOOK == 1 )
2654 #if ( configUSE_PREEMPTION == 1 )
2658 xSwitchRequired =
pdTRUE;
2667 return xSwitchRequired;
◆ vTaskSwitchContext()
2774 #if ( configGENERATE_RUN_TIME_STATS == 1 )
2776 #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE
2777 portALT_GET_RUN_TIME_COUNTER_VALUE( ulTotalRunTime );
2779 ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE();
2789 if( ulTotalRunTime > ulTaskSwitchedInTime )
2791 pxCurrentTCB->ulRunTimeCounter += ( ulTotalRunTime - ulTaskSwitchedInTime );
2797 ulTaskSwitchedInTime = ulTotalRunTime;
2809 #if ( configUSE_NEWLIB_REENTRANT == 1 )
◆ vTaskPlaceOnEventList()
◆ vTaskPlaceOnUnorderedEventList()
◆ xTaskRemoveFromEventList()
2896 TCB_t *pxUnblockedTCB;
2944 #if( configUSE_TICKLESS_IDLE != 0 )
◆ xTaskRemoveFromUnorderedEventList()
2964 TCB_t *pxUnblockedTCB;
◆ vTaskSetTimeOutState()
◆ xTaskCheckForTimeOut()
3027 #if( INCLUDE_xTaskAbortDelay == 1 )
3038 #if ( INCLUDE_vTaskSuspend == 1 )
◆ vTaskMissedYield()
◆ portTASK_FUNCTION()
static portTASK_FUNCTION |
( |
prvIdleTask |
, |
|
|
pvParameters |
|
|
) |
| |
|
static |
THIS IS THE RTOS IDLE TASK - WHICH IS CREATED AUTOMATICALLY WHEN THE SCHEDULER IS STARTED.
3134 (
void ) pvParameters;
3145 #if ( configUSE_PREEMPTION == 0 )
3155 #if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) )
3177 #if ( configUSE_IDLE_HOOK == 1 )
3194 #if ( configUSE_TICKLESS_IDLE != 0 )
3203 xExpectedIdleTime = prvGetExpectedIdleTime();
3213 xExpectedIdleTime = prvGetExpectedIdleTime();
◆ uxTaskResetEventItemValue()
◆ pxCurrentTCB
◆ pxReadyTasksLists
◆ xDelayedTaskList1
◆ xDelayedTaskList2
◆ pxDelayedTaskList
◆ pxOverflowDelayedTaskList
◆ xPendingReadyList
◆ uxCurrentNumberOfTasks
◆ xTickCount
◆ uxTopReadyPriority
◆ xSchedulerRunning
◆ uxPendedTicks
◆ xYieldPending
◆ xNumOfOverflows
◆ uxTaskNumber
◆ xNextTaskUnblockTime
◆ xIdleTaskHandle
◆ uxSchedulerSuspended
#define taskYIELD_IF_USING_PREEMPTION()
Definition: tasks.c:104
static PRIVILEGED_INITIALIZED_DATA UBaseType_t uxTaskNumber
Definition: tasks.c:403
PRIVILEGED_FUNCTION void vListInitialiseItem(ListItem_t *const pxItem)
Definition: list.c:104
#define taskSELECT_HIGHEST_PRIORITY_TASK()
Definition: tasks.c:174
static PRIVILEGED_DATA List_t *volatile pxDelayedTaskList
Definition: tasks.c:378
#define listSET_LIST_ITEM_OWNER(pxListItem, pxOwner)
Definition: list.h:221
BaseType_t xTaskResumeAll(void)
Definition: tasks.c:2017
#define portMAX_DELAY
Definition: portmacro.h:106
static PRIVILEGED_DATA List_t xPendingReadyList
Definition: tasks.c:380
ListItem_t xStateListItem
Definition: tasks.c:301
void vApplicationIdleHook(void)
Application Idle Hook.
Definition: cpu_utils.c:75
UBaseType_t uxPriority
Definition: tasks.c:303
#define portPRIVILEGE_BIT
Definition: FreeRTOS.h:688
#define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR(x)
Definition: FreeRTOS.h:807
#define configASSERT(x)
Definition: FreeRTOSConfig.h:162
static PRIVILEGED_INITIALIZED_DATA volatile TickType_t xNextTaskUnblockTime
Definition: tasks.c:404
#define listCURRENT_LIST_LENGTH(pxList)
Definition: list.h:296
#define taskSWITCH_DELAYED_LISTS()
Definition: tasks.c:239
#define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY
Definition: projdefs.h:95
#define pdFAIL
Definition: projdefs.h:90
PRIVILEGED_FUNCTION void vListInsert(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:145
#define tskSTACK_FILL_BYTE
Definition: tasks.c:118
#define portTICK_TYPE_EXIT_CRITICAL()
Definition: FreeRTOS.h:805
static PRIVILEGED_FUNCTION void prvCheckTasksWaitingTermination(void)
Definition: tasks.c:3365
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS
Definition: FreeRTOS.h:236
static PRIVILEGED_INITIALIZED_DATA volatile BaseType_t xSchedulerRunning
Definition: tasks.c:399
static PRIVILEGED_INITIALIZED_DATA volatile TickType_t xTickCount
Definition: tasks.c:397
#define listGET_OWNER_OF_HEAD_ENTRY(pxList)
Definition: list.h:348
PRIVILEGED_FUNCTION void vListInitialise(List_t *const pxList)
Definition: list.c:79
PRIVILEGED_FUNCTION void vListInsertEnd(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:116
#define NULL
Definition: usbd_def.h:53
#define pdPASS
Definition: projdefs.h:89
#define portSUPPRESS_TICKS_AND_SLEEP(xExpectedIdleTime)
Definition: FreeRTOS.h:696
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
Definition: FreeRTOS.h:680
uint32_t TickType_t
Definition: portmacro.h:105
static PRIVILEGED_DATA List_t xDelayedTaskList2
Definition: tasks.c:377
StackType_t * pxStack
Definition: tasks.c:304
#define listGET_LIST_ITEM_VALUE(pxListItem)
Definition: list.h:249
volatile StackType_t * pxTopOfStack
Definition: tasks.c:295
#define listSET_LIST_ITEM_VALUE(pxListItem, xValue)
Definition: list.h:239
#define taskENTER_CRITICAL()
Definition: task.h:217
static PRIVILEGED_INITIALIZED_DATA TaskHandle_t xIdleTaskHandle
Definition: tasks.c:405
void * TaskHandle_t
Definition: task.h:103
#define pdFALSE
Definition: projdefs.h:86
#define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR()
Definition: FreeRTOS.h:806
static PRIVILEGED_FUNCTION void prvAddCurrentTaskToDelayedList(TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely)
Definition: tasks.c:4692
static PRIVILEGED_FUNCTION void prvInitialiseTaskLists(void)
Definition: tasks.c:3333
unsigned long UBaseType_t
Definition: portmacro.h:99
#define traceLOW_POWER_IDLE_END()
Definition: FreeRTOS.h:365
#define traceTASK_SWITCHED_OUT()
Definition: FreeRTOSConfig.h:92
PRIVILEGED_FUNCTION UBaseType_t uxListRemove(ListItem_t *const pxItemToRemove)
Definition: list.c:212
#define prvAddTaskToReadyList(pxTCB)
Definition: tasks.c:259
#define listGET_LIST_ITEM_OWNER(pxListItem)
Definition: list.h:230
#define configMINIMAL_STACK_SIZE
Definition: FreeRTOSConfig.h:111
#define configMAX_PRIORITIES
Definition: FreeRTOSConfig.h:110
PRIVILEGED_FUNCTION BaseType_t xPortStartScheduler(void)
Definition: port.c:312
void
Definition: png.h:1083
static PRIVILEGED_INITIALIZED_DATA volatile UBaseType_t uxSchedulerSuspended
Definition: tasks.c:415
#define portDISABLE_INTERRUPTS()
Definition: portmacro.h:143
static PRIVILEGED_DATA List_t xDelayedTaskList1
Definition: tasks.c:376
portSTACK_TYPE StackType_t
Definition: portmacro.h:97
PRIVILEGED_FUNCTION BaseType_t xTimerCreateTimerTask(void)
#define traceTASK_SWITCHED_IN()
Definition: FreeRTOSConfig.h:89
#define listLIST_IS_EMPTY(pxList)
Definition: list.h:291
#define portRESET_READY_PRIORITY(uxPriority, uxTopReadyPriority)
Definition: tasks.c:197
#define taskYIELD()
Definition: task.h:203
#define portPOINTER_SIZE_TYPE
Definition: FreeRTOS.h:330
Definition: FreeRTOS.h:910
ListItem_t xEventListItem
Definition: tasks.c:302
char pcTaskName[configMAX_TASK_NAME_LEN]
Definition: tasks.c:305
void vTaskSetTimeOutState(TimeOut_t *const pxTimeOut)
Definition: tasks.c:3007
PRIVILEGED_INITIALIZED_DATA TCB_t *volatile pxCurrentTCB
Definition: tasks.c:372
static void prvResetNextTaskUnblockTime(void)
Definition: tasks.c:3635
#define taskCHECK_FOR_STACK_OVERFLOW()
Definition: StackMacros.h:165
#define prvGetTCBFromHandle(pxHandle)
Definition: tasks.c:272
#define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()
Definition: FreeRTOS.h:740
#define taskNOT_WAITING_NOTIFICATION
Definition: tasks.c:110
static PRIVILEGED_INITIALIZED_DATA volatile UBaseType_t uxCurrentNumberOfTasks
Definition: tasks.c:396
#define configMAX_TASK_NAME_LEN
Definition: FreeRTOSConfig.h:113
PRIVILEGED_FUNCTION void vPortEndScheduler(void)
Definition: port.c:399
long BaseType_t
Definition: portmacro.h:98
#define pdTRUE
Definition: projdefs.h:87
static PRIVILEGED_INITIALIZED_DATA volatile BaseType_t xNumOfOverflows
Definition: tasks.c:402
static PRIVILEGED_INITIALIZED_DATA volatile UBaseType_t uxPendedTicks
Definition: tasks.c:400
#define traceTASK_INCREMENT_TICK(xTickCount)
Definition: FreeRTOS.h:546
void vApplicationTickHook(void)
Application Idle Hook.
Definition: cpu_utils.c:89
#define traceLOW_POWER_IDLE_BEGIN()
Definition: FreeRTOS.h:360
BaseType_t xOverflowCount
Definition: task.h:137
#define traceMOVED_TASK_TO_READY_STATE(pxTCB)
Definition: FreeRTOS.h:414
#define taskEXIT_CRITICAL()
Definition: task.h:232
static PRIVILEGED_DATA List_t pxReadyTasksLists[configMAX_PRIORITIES]
Definition: tasks.c:375
#define portTICK_TYPE_ENTER_CRITICAL()
Definition: FreeRTOS.h:804
#define listLIST_ITEM_CONTAINER(pxListItem)
Definition: list.h:367
BaseType_t xTaskIncrementTick(void)
Definition: tasks.c:2499
void vTaskSuspendAll(void)
Definition: tasks.c:1944
PRIVILEGED_FUNCTION StackType_t * pxPortInitialiseStack(StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters)
#define portSETUP_TCB(pxTCB)
Definition: FreeRTOS.h:316
#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP
Definition: FreeRTOS.h:700
static PRIVILEGED_INITIALIZED_DATA volatile UBaseType_t uxTopReadyPriority
Definition: tasks.c:398
TickType_t xTimeOnEntering
Definition: task.h:138
#define taskEVENT_LIST_ITEM_VALUE_IN_USE
Definition: tasks.c:285
#define traceTASK_CREATE(pxNewTCB)
Definition: FreeRTOS.h:510
static PRIVILEGED_INITIALIZED_DATA volatile BaseType_t xYieldPending
Definition: tasks.c:401
#define tskIDLE_PRIORITY
Definition: task.h:193
static PRIVILEGED_DATA List_t *volatile pxOverflowDelayedTaskList
Definition: tasks.c:379
#define mtCOVERAGE_TEST_MARKER()
Definition: FreeRTOS.h:748