freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

rtosucos-ii原理及應用(編輯修改稿)

2025-06-03 18:12 本頁面
 

【文章內容簡介】 0。1/01/01/01/01/01/01/01/0任務就緒表的示意圖01234567xy01234567page山東科技大學 信息學院 43* 任務就緒表及任務調度n 任務優(yōu)先級數(shù)據(jù)結構分析n uC/OSII最多管理 64個任務, Prio值域: 0~63,對應的二進制數(shù) 000,000~111,111( 6bit), OSRdyGrp(任務組就緒變量) 8bit,任務就續(xù)數(shù)組元素 OSRdyTbl 也是 8bit。n [5:3]對應 OSRdyTbl的 下標(任務組號 x), 也對應 OSRdyGrp的位號。n [2:0]對應 OSRdyTbl元素的位號(任務組號 y)備注:這就是 prio 的值和任務就緒表的映射關系。page山東科技大學 信息學院 44*舉例: prio=29的任務在任務就續(xù)表中的表示。prio=29, 其 8進制表示為: 35OOSRdyGrpD7D6D5D4D3D2D1D01 11 10 00 0prio=29D7D6D5D4D3D2D1D01D7D6D5D4D3D2D1D01OSRdyTbl[3]prio為 29的任務就緒狀態(tài)在任務就緒表中的表示Y Xpage山東科技大學 信息學院 45* 任務就緒表及任務調度n 依照 prio“置 /清 ”任務就緒表的操作OSMapTbl[0]=0000,0001BOSMapTbl[1]=0000,0010BOSMapTbl[2]=0000,0100BOSMapTbl[3]=0000,1000BOSMapTbl[4]=0001,0000BOSMapTbl[5]=0010,0000BOSMapTbl[6]=0100,0000BOSMapTbl[7]=1000,0000B在 uC/OSII中預定義了一個 OSMapTbl[]數(shù)組:page山東科技大學 信息學院 46*OSRdyGrpD7D6D5D4D3D2D1D01 11 10 00 0prio=29D7D6D5D4D3D2D1D01D7D6D5D4D3D2D1D01OSRdyTbl[3]操作:把 prio為 29的任務置為就緒狀態(tài)Y XOSRdyGrp | = OSMapTbl[ prio3 ]。 OSRdyTbl[ prio3 ] | = OSMapTbl[ prioamp。0x07 ]。 OSMapTbl[0] = 0000,0001BOSMapTbl[1] = 0000,0010BOSMapTbl[2] = 0000,0100BOSMapTbl[3] = 0000,1000BOSMapTbl[4] = 0001,0000BOSMapTbl[5] = 0010,0000BOSMapTbl[6] = 0100,0000BOSMapTbl[7] = 1000,0000Bn 在程序中,可以用下面的代碼把優(yōu)先級別為 prio 的任務置為就緒狀態(tài): OSRdyGrp | = OSMapTbl[prio3]。OSRdyTbl[prio3] | = OSMapTbl[prioamp。0x07]。n 使用如下代碼可使一個優(yōu)先級別為 prio的任務脫離就緒狀態(tài):if((OSRdyTbl[prio3] amp。= ~ OSMapTbl[prioamp。0x07])==0)OSRdyGrp amp。= ~ OSMapTbl[prio3]。 page山東科技大學 信息學院 47* 任務就緒表及任務調度n 任務就緒表的操作n 從 prio到就緒表 (OSRdyGrp、 OSRdyTbl[])的操作(進入 /脫離 就緒狀態(tài))。n 從就緒表 (OSRdyGrp、 OSRdyTbl[])的當前狀態(tài)(位圖)到最高優(yōu)先級別 prio的(任務)映射操作。page山東科技大學 信息學院 48* 任務就緒表及任務調度n 依照任務就緒表的狀態(tài)計算 prio的操作INT8UconstOSUnMapTbl[]={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,……}。備注:該數(shù)組共計 256個元素,詳見 Bookpage32(亦稱之為 《 優(yōu)先級判定表 》 )在 uC/OSII中預定義了一個 OSUnMapTbl[]數(shù)組:page山東科技大學 信息學院 49*OSRdyGrp D7D6D5D4D3D2D1D01 11 10 00 0prio=29D7D6D5D4D3D2D1D01D7D6D5D4D3D2D1D01OSRdyTbl [y ]x = OSUnMapTbl[OSRdyTbl[y]]。 1 10 0 0 0 0 0 0 0 0 000y = OSUnMapTbl[OSRdyGrp]。 圖 56在就緒表中查找最高優(yōu)先級別任務的過程說明:在 “按圖索驥 ” 算法中,對于所有的任務其 “索驥 ” 時間都是一致的。S以系統(tǒng)變量 OSRdyGrp 為下標,查 OSUnMapTbl[] 表,可得 y 。S以 OSRdyTbl[] 的第 y 元素為下標,查 OSUnMapTbl[] 表,可得 x 。page山東科技大學 信息學院 50*用下代碼可從任務就緒表中獲取優(yōu)先級別最高的就緒任務( prio):y = OSUnMapTal[OSRdyGrp]。// D D D3位x = OSUnMapTal[OSRdyTbl[y]]。// D D D0位prio = (y3)+x。 // 優(yōu)先級別或y = OSUnMapTbl[OSRdyGrp]。prio = (INT8U)((y 3) + OSUnMapTbl[OSRdyTbl[y]])。uC/OSII系統(tǒng)就是通過查找任務就緒表來獲取待運行任務的優(yōu)先級,即最高優(yōu)先級的任務句柄,并進行任務調度。page山東科技大學 信息學院 51* 任務控制塊及任務控制塊鏈表 _回顧n 任務控制塊鏈表其他相關系統(tǒng)管理變量n OSTCBPrioTbl[ ]: OS_TCB* 數(shù)據(jù)類型的數(shù)組,以 Prio 為下標存放的 TCB 指針。用于加速 TCB 的訪問。n OSTCBCur:全局系統(tǒng)變量,指向當前正在運行的任務的 TCB 。page山東科技大學 信息學院 52*page山東科技大學 信息學院 53* 任務就緒表及任務調度n 任務的調度n 任務切換 CPU從運行某一任務轉換到運行另一任務的過程。n 任務調度 按照某規(guī)則進行任務切換的工作過程。n uC/OSII中的任務切換有 “任務調度器 ”來完成。n 任務調度器的兩項主要工作 : ① 從任務就緒表中查找優(yōu)先級最高的就緒任務, ② 實現(xiàn)任務切換。n uC/OSII中有兩個 “任務調度器 ”:任務級的調度器 (OS_Sched()),中斷級的調度器 (OSIntCtxSw())。page山東科技大學 信息學院 54* 任務就緒表及任務調度n 任務的調度 調度器進行任務切換的兩個工作步驟:1. 獲得待運行任務 TCB的指針2. 斷點數(shù)據(jù)切換page山東科技大學 信息學院 55* 任務就緒表及任務調度1. 獲得待運行任務 TCB的指針獲得了最高優(yōu)先權就緒任務的 “優(yōu)先級 ”后(存放在全局系統(tǒng)變量 OSPrioHighRdy ) ,用下指令即可獲取該任務的 TCB,很簡單:OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy ]備注: OSTCBPrioTbl[]是以優(yōu)先權為下標的 “任務指針數(shù)組 ”page山東科技大學 信息學院 56* 任務控制塊及任務控制塊鏈表n 任務控制塊( TCB)的結構任務控制塊結構的主要成員typedefstructos_tcb{structos_tcb*OSTCBNext。//指向下一個 TCB的指針structos_tcb*OSTCBPrev。//指向前一個 TCB的指針OS_STK*OSTCBStkPtr。//指向任務堆棧棧頂?shù)闹羔槨璉NT16UOSTCBDly。//任務等待時間INT8U OSTCBStat。 //任務的當前狀態(tài)標志INT8U OSTCBPrio。//任務的優(yōu)先級別 ……}OS_TCB。page山東科技大學 信息學院 57* 任務就緒表及任務調度2. 任務切換宏 OS_TASK_SW( )其主要工作:完成當前任務到待運行任務的切換。n 幾個概念:216。 斷點 當前任務被終止運行的位置。216。 斷點數(shù)據(jù) 斷點處 CPU的 PC、 SP、 PSW以及通用寄存器 (R0~ R12)的當前數(shù)據(jù)。備注:程序 “無縫 ”接續(xù)運行要求斷點和斷點數(shù)據(jù)(現(xiàn)場)的完全保護和恢復。page山東科技大學 信息學院 58*任務切換中的斷點數(shù)據(jù)處理page山東科技大學 信息學院 59* 任務就緒表及任務調度任務切換宏 OS_TASK_SW( ) 依次完成的 7項工作:1. 被中止 Task的斷點指針( PC)入棧保護2. 被中止 Task通用寄存器入棧保護3. 被中止 Ta
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1