標題: 關于uCOS-ll中就緒狀態表的理解 [打印本頁]
作者: 今夜就不該來 時間: 2018-4-24 10:42
標題: 關于uCOS-ll中就緒狀態表的理解
μ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個任務,剛好滿足要求。
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
亚洲成人免费视频
|
色爱av|
精品亚洲一区二区三区
|
欧美精品二区
|
日韩一区二区三区四区
|
欧美不卡一区二区三区
|
国产小视频网站
|
欧美在线激情
|
欧美一区二区三区免费
|
婷婷色在线
|
亚洲一区欧美
|
亚洲一级特黄
|
天天干视频
|
欧美一区二区在线
|
一级片欧美
|
精品久久精品
|
97色综合
|
国产精品欧美在线
|
一区二区精品
|
五月色丁香
|
国产成人精品一区二区三区视频
|
国产精品久久久久久久久久久久久
|
91精品亚洲
|
日韩在线成人
|
亚洲激情网
|
日韩亚洲欧美在线
|
在线伊人网
|
欧美日韩中文字幕在线观看
|
嫩草久久
|
日韩视频免费大全中文字幕
|
极品淫少妇
|
中文字幕+乱码+中文乱码91
|
日韩视频网
|
午夜一级片
|
日韩成人一区二区
|
日韩中文字幕在线
|
国产永久视频
|
午夜视频在线播放
|
黄色在线观看网址
|
天天夜夜操
|
91久久久久久久久
|