7、任务通知
2022-11-30 18:18:05 2 举报
AI智能生成
x
作者其他创作
大纲/内容
通知状态和通知值
每个任务都有一个结构体:TCB (Task Control Block)
<font color="#ff00ff">typedef struct</font> <font color="#64b5f6"><b>tskTaskControlBlock</b></font><br>{<br>......<br>/* configTASK_NOTIFICATION_ARRAY_ENTRIES = 1 */<br><font color="#7b1fa2">volatile </font><b><font color="#00ffff">uint32_t </font>ulNotifiedValue[ configTASK_NOTIFICATION_ARRAY_ENTRIES ]; //</b>通知值<br><font color="#7b1fa2">volatile </font><b><font color="#00ffff">uint8_t </font>ucNotifyState[ configTASK_NOTIFICATION_ARRAY_ENTRIES ]; //</b>通知状态<br>......<br>} tskTCB
通知状态
<b>taskNOT_WAITING_NOTIFICATION</b>:任务没有在等待通知
<b>taskWAITING_NOTIFICATION</b>:任务在等待通知
<b>taskNOTIFICATION_RECEIVED</b>:任务接收到了通知,也被称为pending
通知值
计数值
位
任意数值
函数
xTaskNotifyGive/ulTaskNotifyTake<br>
BaseType_t <b><font color="#64b5f6">xTaskNotifyGive</font></b>( TaskHandle_t <b>xTaskToNotify </b>);<br>
void <b><font color="#64b5f6">vTaskNotifyGiveFromISR</font></b>( TaskHandle_t <b>xTaskHandle</b>, BaseType_t *<b>pxHigherPriorityTaskWoken </b>);<br>
uint32_t <b><font color="#64b5f6">ulTaskNotifyTake</font></b>( BaseType_t <b>xClearCountOnExit</b>, TickType_t <b>xTicksToWait</b>)
xTaskNotify/xTaskNotifyWait<br>
BaseType_t <b><font color="#64b5f6">xTaskNotify</font></b>( TaskHandle_t <b>xTaskToNotify</b>, uint32_t <b>ulValue</b>,<br> eNotifyAction <b>eAction </b>);<br>
BaseType_t <b><font color="#64b5f6">xTaskNotifyFromISR</font></b>( TaskHandle_t <b>xTaskToNotify</b>,<br> uint32_t <b>ulValue</b>,<br> eNotifyAction <b>eAction</b>,<br> BaseType_t *<b>pxHigherPriorityTaskWoken</b> );
BaseType_t <b><font color="#64b5f6">xTaskNotifyWait</font></b>( uint32_t <b>ulBitsToClearOnEntry</b>,<br> uint32_t <b>ulBitsToClearOnExit</b>,<br> uint32_t *<b>pulNotificationValue</b>,<br> TickType_t <b>xTicksToWait </b>)
0 条评论
下一页