欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4400|回復: 0
收起左側

關于uCOS-ll中就緒狀態表的理解

[復制鏈接]
ID:315139 發表于 2018-4-24 10:42 | 顯示全部樓層 |閱讀模式
μC/OS_II進行任務調度的思想是 “近似地每時每刻總是讓優先級最高的就緒任務處于運行狀態” 。為了保證這一點,它在系統或用戶任務調用系統函數及執行中斷服務程序結束時總是調用調度器,來確定應該運行的任務并運行它。μC/OS_II進行任務調度的依據就是任務就緒表
為了能夠使系統清楚地知道,系統中哪些任務已經就緒,哪些還沒有就緒,μC/OS_II在RAM中設立了一個記錄表,系統中的每個任務都在這個表中占據一個位置,并用這個位置的狀態(1或者0)來表示任務是否處于就緒狀態,這個表就叫做任務就緒狀態表,簡稱叫任務就緒表
任務就緒表就是一個二維數組OSRdyTbl[ ]
y = OSUnMapTal[OSRdyGrp]; //D5、D4、D3位
x = OSUnMapTal[OSRdyTbl[y]]; //D2、D1、D0位
prio = (y<<3)+x;                 //優先級別
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的神來之筆,unsigned int類型的變量可以看做是長度為32的bool型數組,如果將這個數組從一維定義到二維,那么定義的任務數量將翻倍增長。如果這個二維數組的列數為8,那么8位二進制數剛好可以用unsigned char來表示,那么定義一個一維的unsigned char數組就可以表示這種二維的bool型數組,uCOS-II總共可以管理64個任務,那么unsigned char數組的長度為8,便可以定義出64個任務,剛好滿足要求。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表