ZestCode
 
Loading...
Searching...
No Matches
xTaskNotifyGive

task. h

int32_t task_notify( task_t xTaskToNotify );

configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this macro to be available.

When configUSE_TASK_NOTIFICATIONS is set to one each task has its own private "notification value", which is a 32-bit unsigned integer (uint32_t).

Events can be sent to a task using an intermediary object. Examples of such objects are queues, semaphores, mutexes and event groups. Task notifications are a method of sending an event directly to a task without the need for such an intermediary object.

A notification sent to a task can optionally perform an action, such as update, overwrite or increment the task's notification value. In that way task notifications can be used to send data to a task, or be used as light weight and fast binary or counting semaphores.

xTaskNotifyGive() is a helper macro intended for use when task notifications are used as light weight and faster binary or counting semaphore equivalents. Actual FreeRTOS semaphores are given using the sem_post() API function, the equivalent action that instead uses a task notification is xTaskNotifyGive().

When task notifications are being used as a binary or counting semaphore equivalent then the task being notified should wait for the notification using the ulTaskNotificationTake() API function rather than the task_notify_wait() API function.

See http://www.FreeRTOS.org/RTOS-task-notifications.html for more details.

Parameters
xTaskToNotifyThe handle of the task being notified. The handle to a task can be returned from the task_create() API function used to create the task, and the handle of the currently running task can be obtained by calling task_get_current().
Returns
xTaskNotifyGive() is a macro that calls xTaskNotify() with the eAction parameter set to E_NOTIFY_ACTION_INCR - so pdPASS is always returned.