C OS ii的任務與通訊

2021-10-02 17:30:46 字數 1491 閱讀 5471

μc/os-ii使用訊號量、事件標誌組、郵箱和訊息佇列這些中間環節來顯現任務之間的通訊,這些中間環節統一被稱為事件。

table 1. 函式ossemcreat

函式名ossemcreat

函式原形

os_event *ossemcreat(intu16 cnt);

功能描述

建立訊號量

輸入引數

cnt:訊號量的初始值,一般為0,可以取0到65535之間的任何值

輸出引數

無返回值

新建訊號量的指標

先決條件

無被呼叫函式

無table 2. 函式ossempost

函式名ossempost

函式原形

int8u ossempost(os_event *pevent));

功能描述

傳送訊號量,訊號量的值加1

輸入引數

pevent:所傳送訊號量的指標

輸出引數

無返回值

os_no_event:傳送成功;

os_err_event_type:pevent不是訊號量型別;

os_sem_ovf:訊號量的值溢位;

先決條件

無被呼叫函式

無table 3. 函式ossempend

函式名ossempost

函式原形

int8u ossempost(os_event *pevent,int16u timeout,int8u *err);

功能描述

等待(接收)訊號量,訊號量的值減1

輸入引數1

pevent:所傳送訊號量的指標

輸入引數2

timeout:等待訊號量的最長時間,以時鐘節拍為單位

輸入引數3

err:函式執行效果的變數位址。

os_no_err :訊號量不為零。

os_timeout :訊號量沒有在指定數目的時鐘週期內被設定。

os_err_pend_isr :從中斷呼叫該函式。雖然規定了不允許從中斷呼叫該函式,但μc/os-ⅱ仍然包含了檢測這種情況的功能。

os_err_event_type :pevent 不是指向訊號量的指標。

輸出引數

無先決條件

無被呼叫函式

無table 4. 函式osflagcreat

函式名osflagcreat

函式原形

os_flag_grp * osflagcreat(os_flags flags,int8u *err);

功能描述

建立事件標誌組

輸入引數1

flags標誌組中各標誌的初始值:

輸入引數2

err:函式執行效果的變數位址

輸出引數

無先決條件

無被呼叫函式

無乙個郵箱只能傳送乙個訊息的位址

訊息佇列可以存放多個訊息,用乙個指標陣列構建訊息佇列,訊息本身不參加排隊,而是用指向不同訊息的指標進行排隊。

任務管理 C OS II

使用者任務 一般分為兩種。開始任務 void start task void pdata 其他任務 void other task void pdata define start stk size 128 os stk start task stk start stk size typedef st...

C OS II 示例 ucos任務的掛起與刪除

1 設計乙個只有乙個任務mytask的應用程式。2 在 1 的任務mytask中再建立乙個任務yourtask。要求當任務yourtask執行20次後,掛起任務mytask 當任務yourtask執行40次後,恢復任務mytask。要求任務mytask和任務yourtask執行一段時間後,使任務my...

c osII 系統學習 任務

c os 全稱為micro control operation system 它是一款基於 rom執行的可裁剪搶占式實時多工核心系統。c os 系統一般都擁有臨界 段,所謂臨界 段就是處理時不可分割的 通常進入臨界 段時要開中斷,執行玩完之後立即開啟。實時作業系統為多工系統,當執行乙個任務 執行緒 ...