任務的建立、任務的掛起和恢復、任務優先順序別的修改、任務的刪除、查詢任務的資訊、uc/os – ii的初始化和任務的啟動
2.5任務的建立
2.5.1用函式ostaskcreate()建立任務
(1)先對建立任務的優先順序進行一系列的判斷
(2)確認該優先級別合法且未被使用後,隨即呼叫函式ostasksktinit()和函式ostcbinit()對任務堆疊和任務控制塊進行初始化。
(3)初始化成功後,除了把任務計數器加1外,還要進一步判斷uc/os的核是否在執行狀態(即isrunning的值是否為1)。如果osrunning的值為1,則呼叫ossched()進行任務排程。
(4)ostaskcreate()建立任務成功後,將返回os_no_err;否則,返回0s_prio_invalid,os_prio_extst及在函式內呼叫函式失敗時返回的資訊。
2.5.2用函式ostaskcreateext()建立任務
用該函式建立任務更為靈活,但也會增加一些額外的開銷。
2.5.3建立任務的一般方法
(1)呼叫函式0sstart()啟動任務排程之前來建立任務,也可在任務中建立。
(2)但是要在啟動任務函式osstart()之前先建立乙個任務,並賦予它最高的優先順序,然後在這個起始任務中,在建立其他各項任務。
示意性**:
/*********************主函式***********************/
voidmain()
osinit(); //對uc/os-ii進行初始化
ostaskcreate(taskstart,……);
osstart();
/**********************起始任務***********************/
voidtaskstart(void *pdata)
osstatinit(); //初始化統計任務
while(1)
起始任務taskstart()的**段;
(3)uc/os不允許在中斷服務程式中建立任務。
2.6任務的掛起和恢復
2.6.1掛起任務
(1)掛起任務函式ostasksuspend()原型如下:
int8uostasksuspend(int8u prio);
(2)函式的引數prio為待掛起任務的優先級別,如果任務要掛起自身,則引數必須為常數os_prio_self(0xff)。
(3)掛起任務本身,刪除任務在就緒表中的就緒標誌,並在任務控制塊成員ostcbstat中做掛起記錄,然後引發一次任務排程,使cpu去執行就緒的其他任務。
掛起其他任務,刪除任務在就緒表中的就緒標誌,並在任務控制塊成員ostcbstat中做掛起記錄。
函式ostasksuspend()流程圖
2.6.2恢復任務
int8uostaskresume()的原型如下:
int8uostaskresume(int8u prio);
函式0staskresume()的流程圖
2.7其他任務管理函式
2.7.1任務優先順序別的修改
呼叫函式
0staskchangeprio()
int8uoldprio; //任務現在的優先級別
int8unewprio; //要修改的優先級別
若呼叫函式ostaskchangeprio()成果,則函式返回os_no_err。
2.7.2任務的刪除
(1)所謂刪除乙個任務,把任務置於睡眠狀態。
(2)呼叫ostaskdel()刪除任務自身或除了空閒任務之外的其他任務。
(3)函式原型:
#ifos_task_del_en
int8uostaskdelreq
int8u prio //要刪除任務和優先級別
2.7.3查詢任務的資訊
了解應用程式執行需要了解乙個任務的指標堆疊等資訊,通過呼叫ostaskquery
函式原型:ostaskquery(
int8u prio,
os_tcb *pdata
查詢成功將得到的任務資訊放在結構os_tcb變數中。
2.8uc/os – ii的初始化和任務的啟動
2.8.1uc/os – ii 的初始化
(1)初始化函式osinit()
(2)初始化之後各全域性變數的情況:
2.8.2uc/os – ii 的啟動
(1)啟動函式:osstart();
(2)啟動之後各個全域性變數的值
uc os II讀書筆記(2)
1.大多數嵌入式作業系統主要提供三項服務 記憶體的管理分配 主要是動態記憶體的管理 通過作業系統提供的記憶體分配函式和記憶體釋放函式實現。多工管理,嵌入式實時作業系統會提供良好的任務排程機制來控制多工,實現實時性。外圍裝置管理,這些外圍裝置都是系統中各個任務可能用到的資源。2.uc os ii是由 ...
讀書筆記3
1.資料治理的本質 資料治理的本質是組織對資料的可用性 完整性和安全性的整體管理。可用性指資料可用 可信且有質量保證,不會因為分析結果的準確性造成偏差,從業者可以放心地根據資料結果做業務決策 完整性分為兩個方面,一方面指資料需覆蓋各類資料應用的需要,另一方面指不會因為資料治理沒有到位而造成資料資產的...
讀書筆記 usOS II 任務管理
任務建立 使用者可以通過傳遞任務位址和其它引數到以下兩個函式之一來建立任務 ostaskcreate 或 ostaskcreateext 注意事項 任務可以在多任務排程開始前建立,也可以在其它任務的執行過程中被建立。在開始多任務排程 即呼叫osstart 前,使用者必須建立至少乙個任務。任務不能由中...