17#include "freertos/FreeRTOS.h"
23#define xTaskHandle TaskHandle_t
24#define tskNO_AFFINITY INT_MAX
26#define taskDISABLE_INTERRUPTS portDISABLE_INTERRUPTS
27#define taskENABLE_INTERRUPTS portENABLE_INTERRUPTS
29#define taskENTER_CRITICAL portENTER_CRITICAL
30#define taskEXIT_CRITICAL portEXIT_CRITICAL
32#define taskSCHEDULER_SUSPENDED 0
33#define taskSCHEDULER_NOT_STARTED 1
34#define taskSCHEDULER_RUNNING 2
40 eSetValueWithOverwrite,
41 eSetValueWithoutOverwrite,
44typedef void (*TaskFunction_t)(
void *);
45typedef void (*TlsDeleteCallbackFunction_t)( int,
void * );
47typedef void* TaskHandle_t;
49BaseType_t xTaskCreate(TaskFunction_t pvTaskCode,
50 const char *
const pcName,
51 const uint32_t usStackDepth,
52 void *
const pvParameters,
53 UBaseType_t uxPriority,
54 TaskHandle_t *
const pvCreatedTask);
56BaseType_t xTaskCreatePinnedToCore(TaskFunction_t pvTaskCode,
57 const char *
const pcName,
58 const uint32_t usStackDepth,
59 void *
const pvParameters,
60 UBaseType_t uxPriority,
61 TaskHandle_t *
const pvCreatedTask,
62 const BaseType_t xCoreID);
64void vTaskDelete(TaskHandle_t xTaskToDelete);
65void vTaskSuspend(TaskHandle_t xTaskToSuspend);
66void vTaskResume(TaskHandle_t xTaskToResume);
67void vTaskDelay(
const TickType_t xTicksToDelay);
68void vTaskSuspendAll(
void);
70TaskHandle_t xTaskGetCurrentTaskHandle(
void);
72const char *pcTaskGetTaskName(TaskHandle_t xTaskToQuery);
74UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask);
76void *pvTaskGetThreadLocalStoragePointer(TaskHandle_t xTaskToQuery,
78void vTaskSetThreadLocalStoragePointerAndDelCallback(TaskHandle_t xTaskToSet,
81 TlsDeleteCallbackFunction_t pvDelCallback);
83void vTaskEnterCritical(portMUX_TYPE *mux);
84void vTaskExitCritical(portMUX_TYPE *mux);
86TickType_t xTaskGetTickCount(
void);
88BaseType_t xTaskNotify(TaskHandle_t xTaskToNotify, uint32_t ulValue,
89 eNotifyAction eAction);
90BaseType_t xTaskNotifyWait(uint32_t ulBitsToClearOnEntry,
91 uint32_t ulBitsToClearOnExit,
92 uint32_t *pulNotificationValue,
93 TickType_t xTicksToWait);
95BaseType_t xTaskNotifyGive(TaskHandle_t xTaskToNotify);
96void vTaskNotifyGiveFromISR(TaskHandle_t xTaskToNotify,
97 BaseType_t *pxHigherPriorityTaskWoken);
98uint32_t ulTaskNotifyTake(BaseType_t xClearCountOnExit,
99 TickType_t xTicksToWait);