任务通知
通知状态的三种取值
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:




