Функция xTaskAbortDelay принудительно выводит задачу из состояния Blocked, и эта задача войдет в состояние Ready даже если не произошло событие, которое задача ожидала в состоянии Blocked, и таймаут ожидания еще не истек.
BaseType_t xTaskAbortDelay (TaskHandle_t xTask);
Чтобы эта функция была доступна, должна быть определена опция INCLUDE_xTaskAbortDelay в значении 1.
Параметры:
xTask Дескриптор задачи, которая принудительно выводится из состояния Blocked.
Замечание: для получения дескриптора задачи создайте её вызовом xTaskCreate() и используйте параметр pxCreatedTask, или создайте задачу вызовом xTaskCreateStatic() и сохраните возвращенное значение, либо используйте имя задачи в вызове xTaskGetHandle().
Возвращаемое значение: если задача не была в состоянии Blocked, то pdFAIL, иначе pdPASS.
[Ссылки]
1. xTaskAbortDelay site:freertos.org. 2. FreeRTOS: функции группы бит событий. 3. FreeRTOS: оповещения задач. |