摘要:1.2使任務(wù)進(jìn)入空閑態(tài)μC/OS通過任務(wù)就緒表OSRdyTbl[prio》3](prio代表任務(wù)優(yōu)先級(jí))中相應(yīng)位清零使相應(yīng)任務(wù)進(jìn)入空閑態(tài),當(dāng)OSRdyTbl[prio》3]中的所有位都為零時(shí),還需將OSRdyGrp的相應(yīng)位清零,代表全組任務(wù)中沒有一個(gè)任務(wù)進(jìn)入就緒態(tài)。1.3查找當(dāng)前處于就緒態(tài)的較高優(yōu)先級(jí)任務(wù)μC/OS采用查表法查找當(dāng)前處于就緒態(tài)的較高優(yōu)先級(jí)任務(wù),
1.2 使任務(wù)進(jìn)入空閑態(tài)
μC/OS通過任務(wù)就緒表OSRdyTbl[prio》3](prio代表任務(wù)優(yōu)先級(jí))中相應(yīng)位清零使相應(yīng)任務(wù)進(jìn)入空閑態(tài),當(dāng)OSRdyTbl[prio》3]中的所有位都為零時(shí),還需將OSRdyGrp的相應(yīng)位清零,代表全組任務(wù)中沒有一個(gè)任務(wù)進(jìn)入就緒態(tài)。
1.3 查找當(dāng)前處于就緒態(tài)的較高優(yōu)先級(jí)任務(wù)
μC/OS采用查表法查找當(dāng)前處于就緒態(tài)的較高優(yōu)先級(jí)任務(wù),它預(yù)先定義了數(shù)組OSUnMapTbl[]作為查找表,如下:
INT8U const OSUnMapTbl[]={
0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
};
相應(yīng)的查找程序如下:
High3=OSUnMapTbl[OSRdyGrp];//優(yōu)先級(jí)高3位,即當(dāng)前處于就緒態(tài)的較高優(yōu)先級(jí)的任務(wù)的組號(hào)
Low3=OSUnMapTbl[OSRdyTbl[High3]];//優(yōu)先級(jí)低3位
prio=(Hign3《3)+Low3;//獲得當(dāng)前處于就緒態(tài)的較高優(yōu)先級(jí)的任務(wù)
例如:若OSRdyGrp的值為01101000b,則查得OSUnMapTbl[OSRdyGrp]的值是3,它對(duì)應(yīng)于OSRdyGrp中的第3位置1(即當(dāng)前處于就緒態(tài)的較高優(yōu)先級(jí)任務(wù)處于第1組任務(wù)中);若OSRdyTbl[3]的值是11100100b,則查OSUnMapTbl[OSRdyTbl[3]]的值是2,則進(jìn)入就緒態(tài)的較高任務(wù)的優(yōu)先級(jí)prio=3×8+2=26.
從上文的計(jì)算可看出μC/OS查找當(dāng)前較高優(yōu)先級(jí)任務(wù)所花的時(shí)間為常數(shù),與應(yīng)用程序中建立的任務(wù)數(shù)無關(guān),這個(gè)特性是本文實(shí)現(xiàn)新型嵌入式數(shù)據(jù)管理的關(guān)鍵。[1] [2] [3] [4]
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!