MPU_xTaskGenericNotify() is only used within FreeRTOS.
 
Symbols
loading...
Files
loading...

MPU_xTaskGenericNotify() function

configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this function 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. A notification sent to a task will remain pending until it is cleared by the task calling xTaskNotifyWait() or ulTaskNotifyTake(). If the task was already in the Blocked state to wait for a notification when the notification arrives then the task will automatically be removed from the Blocked state (unblocked) and the notification cleared. A task can use xTaskNotifyWait() to [optionally] block to wait for a notification to be pending, or ulTaskNotifyTake() to [optionally] block to wait for its notification value to have a non-zero value. The task does not consume any CPU time while it is in the Blocked state. See http://www.FreeRTOS.org/RTOS-task-notifications.html for details. eSetBits - The task's notification value is bitwise ORed with ulValue. xTaskNofify() always returns pdPASS in this case. eIncrement - The task's notification value is incremented. ulValue is not used and xTaskNotify() always returns pdPASS in this case. eSetValueWithOverwrite - The task's notification value is set to the value of ulValue, even if the task being notified had not yet processed the previous notification (the task already had a notification pending). xTaskNotify() always returns pdPASS in this case. eSetValueWithoutOverwrite - If the task being notified did not already have a notification pending then the task's notification value is set to ulValue and xTaskNotify() will return pdPASS. If the task being notified already had a notification pending then no action is performed and pdFAIL is returned. eNoAction - The task receives a notification without its notification value being updated. ulValue is not used and xTaskNotify() always returns pdPASS in this case. pulPreviousNotificationValue - Can be used to pass out the subject task's notification value before any bits are modified by the notify function.

Syntax

Arguments

xTaskToNotify

The handle of the task being notified. The handle to a task can be returned from the xTaskCreate() API function used to create the task, and the handle of the currently running task can be obtained by calling xTaskGetCurrentTaskHandle().

ulValue

Data that can be sent with the notification. How the data is used depends on the value of the eAction parameter.

eAction

Specifies how the notification updates the task's notification value, if at all. Valid values for eAction are as follows:

pulPreviousNotificationValue

Return value

Dependent on the value of eAction. See the description of the eAction parameter.

Call Tree

Functions called by MPU_xTaskGenericNotify()
MPU_xTaskGenericNotify()
Data read by MPU_xTaskGenericNotify()
Data written by MPU_xTaskGenericNotify()
MPU_xTaskGenericNotify()
MPU_xTaskGenericNotify()::xReturn
all items filtered out
Type of MPU_xTaskGenericNotify()
MPU_xTaskGenericNotify()
all items filtered out