任務通知
通知狀態的三種取值
taskNOT_WAITING_NOTIFICATION:任務沒有在等待通知
taskWAITING_NOTIFICATION:任務在等待通知
taskNOTIFICATION_RECEIVED:任務接收到了通知,也被稱為 pending(有數據了,待處理)
如下面兩個場景:

場景一:
當A給B發完通知時,(A修改B的TCB結構體)B的狀態會被A改成taskNOTIFICATION_RECEIVED(任務接收到了通知)。但是無法喚醒任務B,任務B重新開始運行也和A沒有關系,但是B的狀態就一直維持在taskNOTIFICATION_RECEIVED(任務接收到了通知),當有一天任務B決定要接受通知,即切換狀態為taskWAITING_NOTIFICATION,他不會進入阻塞,條件會瞬間滿足,繼續運行,然后切換狀態為初始狀態taskNOT_WAITING_NOTIFICATION(任務沒有在等待通知)。

場景二:需要注意的是當A給B發完通知時,(A修改B的TCB結構體)B的狀態會被A改成taskNOTIFICATION_RECEIVED(任務接收到了通知),同時喚醒任務B,當B重新回到運行狀態時,則會將狀態置為taskNOT_WAITING_NOTIFICATION(任務沒有在等待通知)。
任務通知的兩類函數

xTaskNotify:





xTaskNotifyWait:




