uc/os-iii學習筆記-任務同步(訊號量、時間標誌組)

JosephGodVim發表於2016-07-20

任務同步

兩種方式:訊號量、事件標誌組。
訊號量的同步簡而言之就是任務或者ISR傳送訊號量,某任務等待該訊號量,收到後進入就緒態準備執行。
事件標誌組就是一個任務與多個任務發生同步。


訊號量

訊號量在我的博文–資源管理中有提到過,具體可以看下:
與資源管理中不同的是,資源管理是為了獨佔共享資源,是上一把鎖,而任務同步則是釋放出訊號量,在等待區等待該訊號量的任務就會進入到就緒態準備執行。


這裡寫圖片描述


事件標誌組

有時候一個任務需要與多個事件同步,這個時候就需要使用事件標誌組。事件標誌組與任務之間有兩種同步機制:“或”同步和“與”同步。

  • “或”同步:等待多個事件時,任何一個事件發生 ,任務都被同步,這個就稱為“或”同步。

  • “與”同步:當所有的事件都發生時任務才被同步,這種同步機制被稱為“與”同步。
    在UCOSIII中事件標誌組為OS_FLAG_GRP,如果需要使用事件標誌組的時候需要將OS_CFG_FLAG_EN置1,


這裡寫圖片描述


具體函式操作就補貼上來了,自己看看原始碼就好,很容易懂的。

相關文章