34 #error "include FreeRTOS.h must appear in source files before include task.h"
47#define tskKERNEL_VERSION_NUMBER "V10.0.1"
48#define tskKERNEL_VERSION_MAJOR 10
49#define tskKERNEL_VERSION_MINOR 0
50#define tskKERNEL_VERSION_BUILD 1
68typedef int32_t (*TaskHookFunction_t)(
void * );
96 int32_t xOverflowCount;
97 uint32_t xTimeOnEntering;
107 const char *
const pcName;
108 uint16_t usStackDepth;
111 task_stack_t *puxStackBuffer;
119 const char *pcTaskName;
120 uint32_t xTaskNumber;
121 task_state_e_t eCurrentState;
122 uint32_t uxCurrentPriority;
123 uint32_t uxBasePriority;
124 uint32_t ulRunTimeCounter;
125 task_stack_t *pxStackBase;
126 uint16_t usStackHighWaterMark;
134 eNoTasksWaitingTimeout
142#define tskIDLE_PRIORITY ( ( uint32_t ) 0U )
152#define taskYIELD() portYIELD()
166#define taskENTER_CRITICAL() portENTER_CRITICAL()
167#define taskENTER_CRITICAL_FROM_ISR() portSET_INTERRUPT_MASK_FROM_ISR()
181#define taskEXIT_CRITICAL() portEXIT_CRITICAL()
182#define taskEXIT_CRITICAL_FROM_ISR( x ) portCLEAR_INTERRUPT_MASK_FROM_ISR( x )
191#define taskDISABLE_INTERRUPTS() portDISABLE_INTERRUPTS()
201#define taskENABLE_INTERRUPTS() portENABLE_INTERRUPTS()
206#define taskSCHEDULER_SUSPENDED ( ( int32_t ) 0 )
207#define taskSCHEDULER_NOT_STARTED ( ( int32_t ) 1 )
208#define taskSCHEDULER_RUNNING ( ( int32_t ) 2 )
308#if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
310 uint32_t prio,
const uint16_t stack_depth,
311 const char*
const name);
421#if( configSUPPORT_STATIC_ALLOCATION == 1 )
423 uint32_t priority,
const size_t stack_size,
424 const char*
const name,
425 task_stack_t *
const stack_buffer,
426 static_task_s_t *
const task_buffer ) ;
520void task_delay(
const uint32_t xTicksToDelay ) ;
579void task_delay_until( uint32_t *
const pxPreviousWakeTime,
const uint32_t xTimeIncrement ) ;
659uint32_t uxTaskPriorityGetFromISR(
task_t xTask ) ;
733void vTaskGetInfo(
task_t xTask, TaskStatus_t *pxTaskStatus, int32_t xGetFreeStackSpace,
task_state_e_t eState ) ;
904int32_t xTaskResumeFromISR(
task_t xTaskToResume ) ;
937void rtos_sched_start(
void ) ;
993void rtos_sched_stop(
void ) ;
1129uint32_t xTaskGetTickCountFromISR(
void ) ;
1193uint32_t uxTaskGetStackHighWaterMark(
task_t xTask ) ;
1201#ifdef configUSE_APPLICATION_TASK_TAG
1202 #if configUSE_APPLICATION_TASK_TAG == 1
1211 void vTaskSetApplicationTaskTag(
task_t xTask, TaskHookFunction_t pxHookFunction ) ;
1219 TaskHookFunction_t xTaskGetApplicationTaskTag(
task_t xTask ) ;
1223#if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 )
1230 void vTaskSetThreadLocalStoragePointer(
task_t xTaskToSet, int32_t xIndex,
void *pvValue ) ;
1231 void *pvTaskGetThreadLocalStoragePointer(
task_t xTaskToQuery, int32_t xIndex ) ;
1246int32_t xTaskCallApplicationTaskHook(
task_t xTask,
void *pvParameter ) ;
1255task_t xTaskGetIdleTaskHandle(
void ) ;
1354uint32_t uxTaskGetSystemState( TaskStatus_t *
const pxTaskStatusArray,
const uint32_t uxArraySize, uint32_t *
const pulTotalRunTime ) ;
1401void vTaskList(
char * pcWriteBuffer ) ;
1455void vTaskGetRunTimeStats(
char *pcWriteBuffer ) ;
1537#define xTaskNotify( xTaskToNotify, ulValue, eAction ) task_notify_ext( ( xTaskToNotify ), ( ulValue ), ( eAction ), NULL )
1538#define xTaskNotifyAndQuery( xTaskToNotify, ulValue, eAction, pulPreviousNotifyValue ) task_notify_ext( ( xTaskToNotify ), ( ulValue ), ( eAction ), ( pulPreviousNotifyValue ) )
1627int32_t xTaskGenericNotifyFromISR(
task_t xTaskToNotify, uint32_t ulValue,
notify_action_e_t eAction, uint32_t *pulPreviousNotificationValue, int32_t *pxHigherPriorityTaskWoken ) ;
1628#define xTaskNotifyFromISR( xTaskToNotify, ulValue, eAction, pxHigherPriorityTaskWoken ) xTaskGenericNotifyFromISR( ( xTaskToNotify ), ( ulValue ), ( eAction ), NULL, ( pxHigherPriorityTaskWoken ) )
1629#define xTaskNotifyAndQueryFromISR( xTaskToNotify, ulValue, eAction, pulPreviousNotificationValue, pxHigherPriorityTaskWoken ) xTaskGenericNotifyFromISR( ( xTaskToNotify ), ( ulValue ), ( eAction ), ( pulPreviousNotificationValue ), ( pxHigherPriorityTaskWoken ) )
1704int32_t task_notify_wait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, uint32_t xTicksToWait ) ;
1805void vTaskNotifyGiveFromISR(
task_t xTaskToNotify, int32_t *pxHigherPriorityTaskWoken ) ;
1874uint32_t
task_notify_take(
bool xClearCountOnExit, uint32_t xTicksToWait ) ;
1911int32_t xTaskIncrementTick(
void ) ;
1944void vTaskPlaceOnEventList( List_t *
const pxEventList,
const uint32_t xTicksToWait ) ;
1945void vTaskPlaceOnUnorderedEventList( List_t * pxEventList,
const uint32_t xItemValue,
const uint32_t xTicksToWait ) ;
1958void vTaskPlaceOnEventListRestricted( List_t *
const pxEventList, uint32_t xTicksToWait,
const int32_t xWaitIndefinitely ) ;
1984int32_t xTaskRemoveFromEventList(
const List_t *
const pxEventList ) ;
1985void vTaskRemoveFromUnorderedEventList( list_item_t * pxEventListItem,
const uint32_t xItemValue ) ;
1995void vTaskSwitchContext(
void ) ;
2001uint32_t uxTaskResetEventItemValue(
void ) ;
2011void vTaskSetTimeOutState( TimeOut_t *
const pxTimeOut ) ;
2017int32_t xTaskCheckForTimeOut( TimeOut_t *
const pxTimeOut, uint32_t *
const pxTicksToWait ) ;
2023void vTaskMissedYield(
void ) ;
2029int32_t xTaskGetSchedulerState(
void ) ;
2035int32_t xTaskPriorityInherit(
task_t const pxMutexHolder ) ;
2041int32_t xTaskPriorityDisinherit(
task_t const pxMutexHolder ) ;
2051void vTaskPriorityDisinheritAfterTimeout(
task_t const pxMutexHolder, uint32_t uxHighestPriorityWaitingTask ) ;
2056uint32_t uxTaskGetTaskNumber(
task_t xTask ) ;
2062void vTaskSetTaskNumber(
task_t xTask,
const uint32_t uxHandle ) ;
2072void vTaskStepTick(
const uint32_t xTicksToJump ) ;
2088eSleepModeStatus eTaskConfirmSleepModeStatus(
void ) ;
2094void *pvTaskIncrementMutexHeldCount(
void ) ;
2100void vTaskInternalSetTimeOutState( TimeOut_t *
const pxTimeOut ) ;
bool task_abort_delay(task_t task)
uint32_t task_notify(task_t task)
void * task_t
Definition rtos.h:100
task_state_e_t
Definition rtos.h:119
task_t task_create(task_fn_t function, void *const parameters, uint32_t prio, const uint16_t stack_depth, const char *const name)
void task_delay(const uint32_t milliseconds)
notify_action_e_t
Definition rtos.h:131
void task_suspend(task_t task)
void task_resume(task_t task)
task_state_e_t task_get_state(task_t task)
void task_delay_until(uint32_t *const prev_time, const uint32_t delta)
uint32_t task_get_count(void)
uint32_t task_notify_ext(task_t task, uint32_t value, notify_action_e_t action, uint32_t *prev_value)
uint32_t task_get_priority(task_t task)
void task_set_priority(task_t task, uint32_t prio)
uint32_t task_notify_take(bool clear_on_exit, uint32_t timeout)
task_t task_get_by_name(const char *name)
char * task_get_name(task_t task)
void task_delete(task_t task)
task_t task_get_current()
bool task_notify_clear(task_t task)
void(* task_fn_t)(void *)
Definition rtos.h:108
@ E_TASK_STATE_SUSPENDED
Definition rtos.h:123
@ E_TASK_STATE_RUNNING
Definition rtos.h:120
@ E_TASK_STATE_INVALID
Definition rtos.h:125
@ E_TASK_STATE_DELETED
Definition rtos.h:124
@ E_TASK_STATE_READY
Definition rtos.h:121
@ E_TASK_STATE_BLOCKED
Definition rtos.h:122
@ E_NOTIFY_ACTION_OWRITE
Definition rtos.h:135
@ E_NOTIFY_ACTION_NO_OWRITE
Definition rtos.h:136
@ E_NOTIFY_ACTION_NONE
Definition rtos.h:132
@ E_NOTIFY_ACTION_INCR
Definition rtos.h:134
@ E_NOTIFY_ACTION_BITS
Definition rtos.h:133
task_t task_create_static(task_fn_t task_code, void *const param, uint32_t priority, const size_t stack_size, const char *const name, task_stack_t *const stack_buffer, static_task_s_t *const task_buffer)
int32_t rtos_resume_all(void)
void rtos_suspend_all(void)