任务通知
任务通知
FreeRTOS 从 V8.2.0 版本开始提供任务通知这个功能,每个任务都有一个 32 位的通知值,在大多数情况下,任务通知可以替代二值信号量、计数信号量、事件组,也可以替代长度为 1 的队列(可以保存一个 32位整数或指针值)。
configUSE_TASK_NOTIFICATIONS 设置为 1。
任务通知的运作机制
常用任务通知API函数
发送任务通知函数 xTaskGenericNotify()
xTaskNotifyGive()
vTaskNotifyGiveFromISR()
vTaskNotifyGiveFromISR()是 vTaskNotifyGive()的中断保护版本。
xTaskNotify()
xTaskNotifyFromISR()
xTaskNotifyFromISR()是 xTaskNotify()的中断保护版本。
xTaskNotifyAndQuery()
xTaskNotifyAndQueryFromISR()
获取任务通知函数
ulTaskNotifyTake()和xTaskNotifyWait()
ulTaskNotifyTake()
xTaskNotifyWait()