#define ulTaskNotifyValueClear( xTask, ulBitsToClear ) \
ulTaskGenericNotifyValueClear( ( xTask ), ( tskDEFAULT_INDEX_TO_NOTIFY ), ( ulBitsToClear ) )
#define ulTaskNotifyValueClearIndexed( xTask, uxIndexToClear, ulBitsToClear ) \
ulTaskGenericNotifyValueClear( ( xTask ), ( uxIndexToClear ), ( ulBitsToClear ) )
/*-----------------------------------------------------------*/
#if ( configUSE_TASK_NOTIFICATIONS == 1 )
uint32_t ulTaskGenericNotifyValueClear( TaskHandle_t xTask, /* 要通知的任务的句柄 */
UBaseType_t uxIndexToClear, /* 任务通知数组的索引值(任务通知相关数组下标) */
uint32_t ulBitsToClear ) /* 要在 xTask 的通知值中清除的位的位掩码 */
{
TCB_t * pxTCB;
uint32_t ulReturn;
/* If null is passed in here then it is the calling task that is having its notification state cleared. */
/*如果在这里传递了null,那么它是正在清除通知状态的调用任务*/
pxTCB = prvGetTCBFromHandle( xTask );
taskENTER_CRITICAL();
{
/* Return the notification as it was before the bits were cleared, then clear the bit mask. */
/*按清除位之前的状态返回通知,然后清除位掩码*/
ulReturn = pxTCB->ulNotifiedValue[ uxIndexToClear ];
pxTCB->ulNotifiedValue[ uxIndexToClear ] &= ~ulBitsToClear;
}
taskEXIT_CRITICAL();
return ulReturn;
}
#endif /* configUSE_TASK_NOTIFICATIONS */
910-FreeRTOS202212 ‐ ulTaskNotifyValueClear() 与 ulTaskNotifyValueClearIndexed()
于 2023-11-26 00:53:50 首次发布