任務管理 C OS II

2021-10-05 05:13:18 字數 2290 閱讀 8707

使用者任務**一般分為兩種。

//開始任務

void

start_task

(void

*pdata)

//其他任務

void

other_task

(void

*pdata)

}

#define start_stk_size	128

os_stk start_task_stk[start_stk_size]

;

typedef

struct os_tcb os_tcb;

μc/os-ii中,任務排程有以下兩種:

μc/os-ii中與任務管理相關的函式定義在os_task.c檔案中,函式宣告在ucos_ii.**件中,以下列出函式宣告以供查閱。

int8u         ostaskchangeprio        (int8u            oldprio,

int8u newprio)

;

int8u ostaskcreate (

void

(*task)

(void

*p_arg)

,void

*p_arg,

os_stk *ptos,

int8u prio)

;

int8u ostaskcreateext (

void

(*task)

(void

*p_arg)

,void

*p_arg,

os_stk *ptos,

int8u prio,

int16u id,

os_stk *pbos,

int32u stk_size,

void

*pext,

int16u opt)

;int8u ostaskdel (int8u prio)

;int8u ostaskdelreq (int8u prio)

;int8u ostasknameget (int8u prio,

int8u *

*pname,

int8u *perr)

;void ostasknameset (int8u prio,

int8u *pname,

int8u *perr)

;int8u ostaskresume (int8u prio)

;int8u ostasksuspend (int8u prio)

;int8u ostaskstkchk (int8u prio,

os_stk_data *p_stk_data)

;int8u ostaskquery (int8u prio,

os_tcb *p_task_data)

;int32u ostaskregget (int8u prio,

int8u id,

int8u *perr)

;void ostaskregset (int8u prio,

int8u id,

int32u value,

int8u *perr)

;

c osII 系統學習 任務

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

C OS ii的任務與通訊

c os ii使用訊號量 事件標誌組 郵箱和訊息佇列這些中間環節來顯現任務之間的通訊,這些中間環節統一被稱為事件。table 1.函式ossemcreat 函式名ossemcreat 函式原形 os event ossemcreat intu16 cnt 功能描述 建立訊號量 輸入引數 cnt 訊號...

中斷,時鐘,時間管理 C OS II

裸機的中斷和 c os ii的中斷大體相同,但也有不同的地方。具體為以下幾個方面 由上述可知,我們需要記錄中斷巢狀層數,因此需要在執行中斷服務函式 前,對中斷巢狀層數計數器 1 退出中斷服務函式前,對中斷巢狀層數計數器 1,並執行一次任務排程,具體實現方法如下 void irqhandler voi...