找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4345|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

關(guān)于uCOS-ll中就緒狀態(tài)表的理解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:315139 發(fā)表于 2018-4-24 10:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
μC/OS_II進(jìn)行任務(wù)調(diào)度的思想是 “近似地每時(shí)每刻總是讓優(yōu)先級(jí)最高的就緒任務(wù)處于運(yùn)行狀態(tài)” 。為了保證這一點(diǎn),它在系統(tǒng)或用戶(hù)任務(wù)調(diào)用系統(tǒng)函數(shù)及執(zhí)行中斷服務(wù)程序結(jié)束時(shí)總是調(diào)用調(diào)度器,來(lái)確定應(yīng)該運(yùn)行的任務(wù)并運(yùn)行它。μC/OS_II進(jìn)行任務(wù)調(diào)度的依據(jù)就是任務(wù)就緒表
為了能夠使系統(tǒng)清楚地知道,系統(tǒng)中哪些任務(wù)已經(jīng)就緒,哪些還沒(méi)有就緒,μC/OS_II在RAM中設(shè)立了一個(gè)記錄表,系統(tǒng)中的每個(gè)任務(wù)都在這個(gè)表中占據(jù)一個(gè)位置,并用這個(gè)位置的狀態(tài)(1或者0)來(lái)表示任務(wù)是否處于就緒狀態(tài),這個(gè)表就叫做任務(wù)就緒狀態(tài)表,簡(jiǎn)稱(chēng)叫任務(wù)就緒表
任務(wù)就緒表就是一個(gè)二維數(shù)組OSRdyTbl[ ]
y = OSUnMapTal[OSRdyGrp]; //D5、D4、D3位
x = OSUnMapTal[OSRdyTbl[y]]; //D2、D1、D0位
prio = (y<<3)+x;                 //優(yōu)先級(jí)別
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

};

所以就有了uCOS-II的神來(lái)之筆,unsigned int類(lèi)型的變量可以看做是長(zhǎng)度為32的bool型數(shù)組,如果將這個(gè)數(shù)組從一維定義到二維,那么定義的任務(wù)數(shù)量將翻倍增長(zhǎng)。如果這個(gè)二維數(shù)組的列數(shù)為8,那么8位二進(jìn)制數(shù)剛好可以用unsigned char來(lái)表示,那么定義一個(gè)一維的unsigned char數(shù)組就可以表示這種二維的bool型數(shù)組,uCOS-II總共可以管理64個(gè)任務(wù),那么unsigned char數(shù)組的長(zhǎng)度為8,便可以定義出64個(gè)任務(wù),剛好滿(mǎn)足要求。

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表