生活随笔
收集整理的这篇文章主要介绍了
事件控制块的清空与状态查询
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
1 事件控制块的清空与状态查询
1.1 设计实现
事件控制块的清空:
事件控制块的查询:
uint32_t tEventRemoveAll
(tEvent
* event
, void * msg
, uint32_t result
)
{tNode
* node
;uint32_t count
;uint32_t status
= tTaskEnterCritical();count
= tListCount(&event
->waitList
);while ((node
= tListRemoveFirst(&event
->waitList
)) != (tNode
*)0){ tTask
* task
= (tTask
*)tNodeParent(node
, tTask
, linkNode
);task
->waitEvent
= (tEvent
*)0;task
->eventMsg
= msg
;task
->waitEventResult
= result
;task
->state
&= ~TINYOS_TASK_WAIT_MASK
;if (task
->delayTicks
!= 0){ tTimeTaskWakeUp(task
);}tTaskSchedRdy(task
); } tTaskExitCritical(status
); return count
;
}
uint32_t tEventWaitCount
(tEvent
* event
)
{ uint32_t count
= 0;uint32_t status
= tTaskEnterCritical();count
= tListCount(&event
->waitList
); tTaskExitCritical(status
); return count
;
}
参考资料:
【李述铜】从0到1自己动手写嵌入式操作系统
总结
以上是生活随笔为你收集整理的事件控制块的清空与状态查询的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。