使用者任務**一般分為兩種。
//開始任務
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...