大家好~
CC2541协议栈中,每个任务对应的事件处理函数都有类似如下结构:
if (event & XX_EVENT)
{
// Do something;
return events ^ XX_EVENT;
}
想问下:
1. “return events ^ XX_EVENT;”这句话的意义是什么?是清空该事件吗?
2.在HAL_PWRMGR_HOLD_EVENT事件处理部分,最后返回时用了
“return (events & ~(HAL_PWRMGR_HOLD_EVENT | HAL_PWRMGR_CONSERVE_EVENT));”
这么一句,请问为什么要跟HAL_PWRMGR_CONSERVE_EVENT扯上关系?这样一来HAL_PWRMGR_CONSERVE_EVENT即使被set也无法执行了。如果直接使用“return events ^ HAL_PWRMGR_HOLD_EVENT;”会有什么隐患?