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

正文內(nèi)容

rtosucos-ii原理及應(yīng)用-在線瀏覽

2025-06-24 18:12本頁面
  

【正文】 //指向前一個 TCB的指針OS_STK*OSTCBStkPtr。//指向任務(wù)堆棧棧頂?shù)闹羔槨璉NT16U//任務(wù)等待時間INT8U OSTCBStat。//任務(wù)的當前狀態(tài)標志INT8U//任務(wù)的優(yōu)先級別 OS_TCB。uC/OSIITCBpage山東科技大學 信息學院 24* 任務(wù)控制塊及任務(wù)控制塊鏈表n 任務(wù)控制塊鏈表空任務(wù)塊鏈表是在 初始化( OSInit())時系統(tǒng)自建的,用戶可依據(jù)目標系統(tǒng)的實際需求,設(shè)定其鏈表長度。文件中的宏常數(shù) n OS_N_SYS_TASKS用于約定系統(tǒng)任務(wù)數(shù),其值固定為 當應(yīng)用程序調(diào)用函數(shù) OSTaskCreate( )創(chuàng)建一個任務(wù)時,這個函數(shù)會調(diào)用系統(tǒng)函數(shù)OSTCBInit( )來為任務(wù)控制塊進行初始化。 當進行系統(tǒng)初始化時,初始化函數(shù)會按用戶提供的任務(wù)數(shù)為系統(tǒng)創(chuàng)建具有相應(yīng)數(shù)量的任務(wù)控制塊并把它們鏈接為一個鏈表。即相當于是一些空白的身份證。 任務(wù)控制塊及任務(wù)控制塊鏈表《 任務(wù)控制塊 》 就相當于是一個任務(wù)的身份證,沒有任務(wù)控制塊的任務(wù)是不能被系統(tǒng)承認和管理。n 任務(wù)控制塊鏈表page山東科技大學 信息學院 27* 任務(wù)控制塊及任務(wù)控制塊鏈表n 任務(wù)控制塊鏈表其他相關(guān)系統(tǒng)管理變量n OSTCBPrioTbl[ ]用于加速 TCB 的訪問。216。 OSTCBTbl[ ] OSInit()建立的任務(wù)控制塊數(shù)組216。 OSTCBCurpage山東科技大學 信息學院 28*第 2章 目錄n 任務(wù)的基本概念n 任務(wù)堆棧n 任務(wù)控制塊及任務(wù)控制塊鏈表n 任務(wù)就緒表及任務(wù)調(diào)度n 任務(wù)的創(chuàng)建n 任務(wù)的掛起和恢復(fù)n 其他任務(wù)管理函數(shù)n uC/OSII的初始化和任務(wù)的啟動page山東科技大學 信息學院 29*補充:多任務(wù) 并發(fā) : 由同一個處理器輪換地運行多個程序。且在占用這個資源期間,并不一定能夠把程序運行完畢。PC是個指路器,它指向哪兒,處理器就去哪兒。哪個人占有了一個姑娘的 芳心 ,哪個人就 ……深刻地理解 PC是理解系統(tǒng)進行程序切換動作的關(guān)鍵。?數(shù)據(jù)傳送指令?子程序返回指令( 由堆棧彈出 )?中斷、中斷返回指令( 由堆棧彈出 )page山東科技大學 信息學院 33*小結(jié)系統(tǒng)是通過把待運行程序的地址賦予程序計數(shù)器 PC來實現(xiàn)程序的切換的。程序的斷點地址( PC)2。程序狀態(tài)字寄存器( PSW)4。函數(shù)調(diào)用信息(已存在于堆棧)這些內(nèi)容通常保存在任務(wù)堆棧中,這些內(nèi)容也常叫做任務(wù)的上下文。要建立一個概念:u具有控制塊的程序才是一個可以被系統(tǒng)所運行的任務(wù)。u任務(wù)控制塊提供了運行環(huán)境的存儲位置。 所謂 調(diào)度 ,就是通過一個算法在多個任務(wù)中確定該運行的任務(wù),做這項工作的函數(shù)就叫做調(diào)度器。為了保證這一點,它 在系統(tǒng)或用戶任務(wù)調(diào)用系統(tǒng)函數(shù)及執(zhí)行中斷服務(wù)程序結(jié)束時總是調(diào)用調(diào)度器,來確定應(yīng)該運行的任務(wù)并運行它 。page山東科技大學 信息學院 39* 任務(wù)就緒表及任務(wù)調(diào)度n 任務(wù)就緒表的結(jié)構(gòu)為了能夠使系統(tǒng)清楚地知道,系統(tǒng)中哪些任務(wù)已經(jīng)就緒,哪些還沒有就緒, μC/OS_II 在 BitINT8U 的數(shù)組 page山東科技大學 信息學院 40*就是一個二維數(shù)組 OSRdyTbl[ ]page山東科技大學 信息學院 41*為加快訪問任務(wù)就緒表的速度,系統(tǒng)定義了一個變量 OSRdyGrp來表明就緒表每行中是否存在就緒任務(wù)。]1/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/01/0OSRdyGrpD1D01/01/01/01/01/0任務(wù)就緒表的示意圖01234567xy01234567page山東科技大學 信息學院 43* 任務(wù)就緒表及任務(wù)調(diào)度n 任務(wù)優(yōu)先級數(shù)據(jù)結(jié)構(gòu)分析n uC/OSII~000,000111,111( 6bit), bit,任務(wù)就續(xù)數(shù)組元素 n [5:3]對應(yīng) 的 下標(任務(wù)組號 x也對應(yīng) 的位號。對應(yīng) 元素的位號(任務(wù)組號 )備注:這就是 prio 的值和任務(wù)就緒表的映射關(guān)系。=的任務(wù)在任務(wù)就續(xù)表中的表示。=其 進制表示為: 35D7D6D5D4D3D21 11 10 00 0prio=29D7D6D5D4D3D21D7D6D5D4D3D21OSRdyTbl[3]prioprio任務(wù)就緒表的操作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在 中預(yù)定義了一個 ]D7D6D5D4D3D21 11 10 00 0prio=29D7D6D5D4D3D21D7D6D5D4D3D21OSRdyTbl[3 OSRdyTbl[ prio3 ] | = OSMapTbl[ prioamp。 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 的任務(wù)置為就緒狀態(tài): OSRdyGrp | = OSMapTbl[prio3]。0x07]。if((OSRdyTbl[prio3] amp。0x07])==0)OSRdyGrp amp。 page山東科技大學 信息學院 47* 任務(wù)就緒表及任務(wù)調(diào)度n 任務(wù)就緒表的操作n 從 到就緒表 (]n 從就緒表 (]priopage山東科技大學 信息學院 48* 任務(wù)就緒表及任務(wù)調(diào)度n 依照任務(wù)就緒表的狀態(tài)計算 的操作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個元素,詳見 BookuC/OSIIOSUnMapTbl[數(shù)組:page山東科技大學 信息學院 49*OSRdyGrp D7D6D5D4D3D21 11 10 00 0prio=29D7D6D5D4D3D21D7D6D5D4D3D21OSRdyTbl [y ]x = OSUnMapTbl[OSRdyTbl[y]]。 圖 56S以系統(tǒng)變量 OSRdyGrp 為下標,查 OSUnMapTbl[] 表,可得 y 。page山東科技大學 信息學院 50*用下代碼可從任務(wù)就緒表中獲取優(yōu)先級別最高的就緒任務(wù)( prio): 或prio = (INT8U)((y 3) + OSUnMapTbl[OSRdyTbl[y]])。系統(tǒng)就是通過查找任務(wù)就緒表來獲取待運行任務(wù)的優(yōu)先級,即最高優(yōu)先級的任務(wù)句柄,并進行任務(wù)調(diào)度。: OS_TCB* 數(shù)據(jù)類型的數(shù)組,以 Prio 為下標存放的 TCB 指針。n OSTCBCur:全局系統(tǒng)變量,指向當前正在運行的任務(wù)的 TCB 。從運行某一任務(wù)轉(zhuǎn)換到運行另一任務(wù)的過程。按照某規(guī)則進行任務(wù)切換的工作過程。中的任務(wù)切換有 來完成。n uC/OSII“任務(wù)調(diào)度器 ”O(jiān)S_Sched(),中斷級的調(diào)度器 ()page山東科技大學 信息學院 54* 任務(wù)就緒表及任務(wù)調(diào)度n 任務(wù)的調(diào)度 調(diào)度器進行任務(wù)切換的兩個工作步驟:1. 獲得待運行任務(wù) 的指針2. 斷點數(shù)據(jù)切換page山東科技大學 信息學院 55* 任務(wù)就緒表及任務(wù)調(diào)度1. 獲得待運行任務(wù) 的指針獲得了最高優(yōu)先權(quán)就緒任務(wù)的 后(存放在全局系統(tǒng)變量 用下指令即可獲取該任務(wù)的 ]“任務(wù)指針數(shù)組 ”struct{structos_tcb//指向下一個 TCB的指針structos_tcb//指向前一個 TCB的指針OS_STK*OSTCBStkPtr。//指向任務(wù)堆棧棧頂?shù)闹羔槨璉NT16U//任務(wù)等待時間INT8U OSTCBStat。//任務(wù)的當前狀態(tài)標志INT8U//任務(wù)的優(yōu)先級別 OS_TCB。OS_TASK_SW( )其主要工作:完成當前任務(wù)到待運行任務(wù)的切換。 斷點 當前任務(wù)被終止運行的位置。 斷點數(shù)據(jù) 斷點處 的 以及通用寄存器 (R0~ R12)的當前數(shù)據(jù)。“無縫 ”page山東科技大學 信息學院 58*任務(wù)切換中的斷點數(shù)據(jù)處理page山東科技大學 信息學院 59* 任務(wù)就緒表及任務(wù)調(diào)度任務(wù)切換宏 備注: Step1中斷方式保護; Step7IRET指令恢復(fù) PC;匯編語言編程 OS_TASK_SW(uC/OSII提供兩個系統(tǒng)函數(shù)創(chuàng)建 Task :n OSTaskCreate()備注:關(guān)于這兩個函數(shù)的使用很簡單,不再重復(fù)。創(chuàng)建 Task時,要求注意核算 和核定 。 Taskmain(中操作系統(tǒng)調(diào)度啟動( OSStart(216。216。)前,必須至少創(chuàng)建一個用戶 Task。main(…)。… //創(chuàng)建消息機制OSTaskCreate(Task_A,……)。 // 創(chuàng)建任務(wù) AOSStart( // 啟動多任務(wù)調(diào)動}void*)。(關(guān)于節(jié)拍周期定義在 。page山東科技大學 信息學院 65*實驗 1:創(chuàng)建兩個任務(wù); Task_A 控制一位 LED秒閃。學習創(chuàng)建任務(wù)操作編程;體驗延時函數(shù)的使用;體驗多任務(wù)系統(tǒng)設(shè)計基本方式;實驗?zāi)康模簆age山東科技大學 信息學院 66*第 2章 目錄n 任務(wù)的基本概念n 任務(wù)堆棧n 任務(wù)控制塊及任務(wù)控制塊鏈表n 任務(wù)就緒表及任務(wù)調(diào)度n 任務(wù)的創(chuàng)建n 任務(wù)的掛起和恢復(fù)n 其他任務(wù)管理函數(shù)n uC/OSII的初始化和任務(wù)的啟動page山東科技大學 信息學院 67* 任務(wù)的掛起和恢復(fù)n 所謂的掛起一個任務(wù),就是暫停這個任務(wù)的調(diào)度。n 掛起的任務(wù)恢復(fù)后即可參與 uC/OSII的任務(wù)調(diào)度。n 掛起 /恢復(fù)使用系統(tǒng)函數(shù) OSTaskSuspend( ) / OSTaskResume( ) 實現(xiàn)。本函數(shù)的參數(shù)、返回值及含義:n 用優(yōu)先級指定目標,掛起自身時使用 OS_PRIO_SELFn OS_NO_ERR 完成指定任務(wù)的掛起。n OS_PRIO_INVALID 無效的任務(wù)(優(yōu)先級)指定。page山東科技大學 信息學院 69* 任務(wù)的掛起和恢復(fù)n 恢復(fù)任務(wù)函數(shù)原型INT8U OSTaskResume( INT8U prio )
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1