CoOS使用教程 事件標誌

2021-07-09 03:05:43 字數 757 閱讀 6720

coos提供了乙個事件標誌的機制,用起來跟訊號量差不多。

1、cocreateflag(),建立乙個事件標誌

os_flagid   cocreateflag (bool bautoreset,bool binitialstate);

bautoreset,為0表示手動復位,為1表示自動復位。

binitialstate,為0表示初始狀態是未就緒的,為1表示已就緒。

2、cosetflag(),設定乙個事件標誌。

statustype  cosetflag (os_flagid id);

3、cowaitforsingleflag(),等待乙個事件標誌。

statustype  cowaitforsingleflag (os_flagid id,u32 timeout);

timeout,表示等待事件標誌的時限。

4、coclearflag(),清除事件標誌。

statustype  coclearflag (os_flagid id);

5、事件標誌跟訊號量的區別。

上面的**的功能,跟訊號量的功能是一樣的,區別在於事件標誌提供了乙個coclearflag()函式,如果不清除事件標誌的話,led2是會一直閃爍的。

CoOS使用教程 訊息郵箱

訊息郵箱是一種任務間通訊的機制,用起來跟qq 163的郵箱差不多。但是coos下的訊息郵箱只能存放一條訊息,是臨界資源,所以我這裡用了互斥量,以免出錯。最終效果如下圖所示 1 cocreatembox 建立乙個訊息郵箱。os eventid cocreatembox u8 sorttype sort...

CoOS使用教程 任務的狀態

coos中,任務有四種狀態,分別是 就緒態 執行態 等待態 休眠態。為什麼要分不同的狀態?目的就為了把cpu讓給更有需要的任務,比如,你開啟乙個瀏覽器,又開啟乙個遊戲 需要全屏 這樣在你玩遊戲的時候,就讓瀏覽器這個任務掛起,以進入等待狀態。然後整個cpu都在為遊戲服務,而不會出現卡頓現象。同樣的原理...

FreeRTOS 事件標誌組

訊號量同步只能與單個的事件或任務進行同步。事件標誌組與多個事件或任務進行同步 事件位用來表明某個事件是否發生,事件組是一組事件位 動態方法建立事件標誌組 eventgrouphandle t xeventgroupcreate void 設定事件位 eventbits t xeventgroupse...