生活随笔
收集整理的這篇文章主要介紹了
事件控制块的清空与状态查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
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自己動手寫嵌入式操作系統
總結
以上是生活随笔為你收集整理的事件控制块的清空与状态查询的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。