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

正文內(nèi)容

ucos2嵌入式實(shí)時(shí)操作系統(tǒng)-資料下載頁(yè)

2025-05-15 00:56本頁(yè)面
  

【正文】 A Free sample background from Slide 102 ? 說(shuō)明 ? 任務(wù)代碼并非真的刪除了 , μC/OS Ⅱ 只是簡(jiǎn)單地不再理會(huì)這個(gè)任務(wù)了 , 這個(gè)任務(wù)的代碼也不會(huì)再運(yùn)行 , 即使任務(wù)調(diào)用了 OSTaskDel(),這個(gè)任務(wù)絕不會(huì)返回 。 ? 形式參數(shù)變量是由用戶(hù)代碼在第一次執(zhí)行的時(shí)候帶入的 。 該變量的類(lèi)型是一個(gè)指向 void的指針 。 這是為了允許用戶(hù)應(yīng)用程序傳遞任何類(lèi)型的數(shù)據(jù)給任務(wù) 。 A Free sample background from Slide 103 任務(wù)的狀態(tài) ? μC/OS Ⅱ 中每個(gè)任務(wù) 5種 狀態(tài) , 下圖為 μC/OS Ⅱ 的任務(wù)狀態(tài)轉(zhuǎn)換圖: 等 待 狀 態(tài)的 任 務(wù)睡 眠 狀 態(tài) 的任 務(wù)就 緒 狀 態(tài)的 任 務(wù)運(yùn) 行 狀 態(tài) 的任 務(wù)被 中 斷 態(tài)任 務(wù)中 斷 O S F l a g P o a t ( )O S M b o x P o s t ( )O S M u t e x P o s t ( )O S Q P o s t ( )O S Q P o s t O p y ( )O S Q P o s t F r o n t (O S S e m P o s t ( )O S T a s k R e s u m eO S T i m e T i c kO S F l a g P e n d ( )O S M b o x P e n d ( )O S M u t e x P e n d ( )O S Q P e n d ( )O S S e m P e n d ( )O S T i m e D l y ( )O S T i m e D l y h s mO S S T A R T ( )O S I N T E X I T ( )O S _ T A S K _ S W ( )O S _ T A S K C R E A T E ( )O S T A S K C R E A T R E X T ( )任 務(wù) 的 C P U 使 用 權(quán) 被 剝 奪O S I N T E X I T ( )O S T A S K D E L ( ) A Free sample background from Slide 104 ? 睡眠態(tài)( Dormant) 指任務(wù)駐留在程序空間中,還沒(méi)有交給 μC/OS Ⅱ 管理,把任務(wù)交給 μC/OS Ⅱ是通過(guò)調(diào)用下述兩個(gè)函數(shù)之一: OSTaskCreate()或 OSTaskCreateExt()。 ? 就緒態(tài) ( Ready) 當(dāng)任務(wù)一旦建立,這個(gè)任務(wù)就進(jìn)入就緒態(tài)準(zhǔn)備運(yùn)行。任務(wù)的建立可以是在多任務(wù)運(yùn)行開(kāi)始之前,也可以是動(dòng)態(tài)地被一個(gè)運(yùn)行著的任務(wù)建立。 A Free sample background from Slide 105 ? 運(yùn)行態(tài)( Running) 準(zhǔn)備就緒的最高優(yōu)先級(jí)的任務(wù)獲得 CPU的控制權(quán),從而處在運(yùn)行態(tài)。 (調(diào)用OSStart()可以啟動(dòng)多任務(wù))。任何時(shí)候只有一個(gè)任務(wù)處于運(yùn)行態(tài)。指針 OSTCBCur指向正在運(yùn)行的任務(wù)。 ? 等待或掛起態(tài)( Pending) 正在運(yùn)行的任務(wù)由于調(diào)用延時(shí)函數(shù) OSTimeDly() 或等待事件信號(hào)量的來(lái)臨而將自身掛起,因而處于等待或掛起態(tài)。因等待某事件而被掛起的任務(wù)放在該事件的等待列表中。 A Free sample background from Slide 106 ? 中斷態(tài)( Interrupt) 正在運(yùn)行的任務(wù)可以被中斷。除非是該任務(wù)將中斷關(guān)閉。被中斷了任務(wù)進(jìn)入中斷服務(wù)態(tài)( ISR)。 如果中斷服務(wù)程序使一個(gè)更高優(yōu)先級(jí)的任務(wù)準(zhǔn)備就緒,在中斷服務(wù)程序結(jié)束后,最高優(yōu)先級(jí)的任務(wù)開(kāi)始運(yùn)行。 A Free sample background from Slide 107 任務(wù)控制塊( OS_TCB ) ? 任務(wù)控制塊 OS_TCB是一個(gè)數(shù)據(jù)結(jié)構(gòu),保存該任務(wù)的相關(guān)參數(shù),包括任務(wù)堆棧指針、狀態(tài)、優(yōu)先級(jí)、任務(wù)表位置、任務(wù)鏈表指針等。當(dāng)任務(wù)重新獲得CPU使用權(quán)時(shí),任務(wù)控制塊能確保任務(wù)從當(dāng)時(shí)被中斷的那一點(diǎn)繼續(xù)執(zhí)行。 ? 一旦任務(wù)建立,一個(gè)任務(wù)控制塊 OS_TCB就被賦值 ,程序清單如下: A Free sample background from Slide 108 typedef struct os_tcb { OS_STK *OSTCBStkPtr。 if OS_TASK_CREATE_EXT_EN0 void *OSTCBExtPtr。 OS_STK *OSTCBStkBottom。 INT32U OSTCBStkSize。 INT16U OSTCBOpt。 INT16U OSTCBId。 endif struct os_tcb *OSTCBNext。 struct os_tcb *OSTCBPrev。 if (OS_Q_EN 0 amp。amp。 (OS_MAX_QS 0)) || (OS_MBOX_EN 0) || (OS_SEM_EN 0) || (OS_MUTEX_EN 0) OS_EVENT *OSTCBEventPtr。 endif A Free sample background from Slide 109 if ((OS_Q_EN 0 amp。amp。 (OS_MAX_QS 0)) || (OS_MBOX_EN 0) void *OSTCBMsg。 endif if (OS_VERSION =251)amp。amp。 (OS_FLAG_EN 0) amp。amp。 (OS_MAX_FLAGS 0) if OS_TASK_DEL_EN 0 OS_FLAG_NODE *OSTCBFlagNode。 endif OS_FLAGS *OSTCBFlagRdy。 endif A Free sample background from Slide 110 INT16U OSTCBDly。 INT8U OSTCBStat。 INT8U OSTCBPrio。 INT8U OSTCBX。 INT8U OSTCBY。 INT8U OSTCBBitX。 INT8U OSTCBBitY。 if OS_TASK_DEL_EN 0 BOOLEAN OSTCBDelReq。 endif } OS_TCB。 A Free sample background from Slide 111 ? 任務(wù)控制塊 OS_TCB中幾個(gè)成員的算法 OSTCBY = priority 3。 OSTCBBitY = OSMapTbl[priority 3]。 OSTCBX = priority amp。 0x07。 OSTCBBitX = OSMapTbl[priority amp。 0x07]。 A Free sample background from Slide 112 ? 任務(wù) 控制塊 鏈表 所有的任務(wù)控制塊分為兩條鏈表,空閑鏈表和使用鏈表。 所有的任務(wù)控制塊都被放置在任務(wù)控制塊列表數(shù)組 OSTCBTbl[]中,系統(tǒng)初始化時(shí),所有任務(wù)控制塊被鏈接成空任務(wù)控制塊的單向鏈表,任務(wù)建立后,空任務(wù)控制塊指針 OSTCBFreeList指向的任務(wù)控制塊就賦給了該任務(wù),然后OSTCBFreeList的值調(diào)整為指向鏈表中的下一個(gè)空任務(wù)控制塊。一旦任務(wù)被刪除,任務(wù)控制塊就還給空任務(wù)鏈表。 A Free sample background from Slide 113 L i s t o f f r e e O S _ T C B sO S T C BN e x t .O S T C BN e x t .O S T C BN e x t .O S T C BN e x t .O S T C B F r e e L i s tO S T C B T b l [ 0 ] O S T C B T b l [ 1 ]O S T C B T b l [ 2 ]0O S T C B T b l [ O S _ M A X _ T A S K + O S _ N _ S Y S _ T A S K 1 ]A Free sample background from Slide 114 ? 任務(wù)控制塊初始化 INT8U OS_TCBInit ( INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT32U stk_size, void *pext, INT16U opt ) { …… } A Free sample background from Slide 115 ? OS_TCBInit接收 7個(gè)參數(shù): ? prio 任務(wù)優(yōu)先級(jí) , 保存在 OSTCBPrio中 。 ? ptos 是指向棧頂?shù)闹羔?, 保存在 OSTCBStkPtr中 。 ? pbos 指向棧底的指針 , 保存在 OSTCBStkBottom中 。 ? id 任務(wù)標(biāo)識(shí)符 , 保存在 .OSTCBId中 。 ? stk_size 棧的容量 , 保存在 OSTCBStkSize中 。 ? pext OS_TCB中的擴(kuò)展指針 .OSTCBExtPtr的值 。 ? opt OS_TCB中的選擇項(xiàng) , 保存在 .OSTCBOpt中 。 A Free sample background from Slide 116 就緒表( Ready List) ?C/OSⅡ 是可剝奪型實(shí)時(shí)多任務(wù)內(nèi)核,優(yōu)先級(jí)最高的任務(wù)一旦準(zhǔn)備就緒,則擁有 CPU的所有權(quán)開(kāi)始投入運(yùn)行。每個(gè)任務(wù)被賦予唯一的不同的優(yōu)先級(jí) ,所以任務(wù)調(diào)度的工作就是:查找準(zhǔn)備就緒的最高優(yōu)先級(jí)的任務(wù)并進(jìn)行上下文切換。 A Free sample background from Slide 117 ? 就緒表( Ready List) ? 每個(gè)任務(wù)被賦予不同的優(yōu)先級(jí)等級(jí) , 從 0級(jí)到最低優(yōu)先級(jí) OS_LOWEST_PRIO 。 當(dāng) μC/OS Ⅱ初始化的時(shí)候 , 最低優(yōu)先級(jí) OS_LOWEST_PRIO總是被賦給空閑任務(wù) idle task。 ? 高優(yōu)先級(jí)有小優(yōu)先級(jí)號(hào) 。 ? 最多任務(wù)數(shù)目 OS_MAX_TASKS和最低優(yōu)先級(jí)數(shù)是沒(méi)有關(guān)系的 。 ? 每個(gè)就緒的任務(wù)都放入就緒表中( ready list) 中,就緒表有兩個(gè)變量: OSRdyGrp、 OSRdyTbl[]。 A Free sample background from Slide 118 7 6 5 4 3 2 1 07 6 5 4 3 2 1 01 5 1 4 1 3 1 2 1 1 1 0 9 82 3 2 2 2 1 2 0 1 9 1 8 1 7 1 63 1 3 0 2 9 2 8 2 7 2 6 2 5 2 43 9 3 8 3 7 3 6 3 5 3 4 3 3 3 24 7 4 6 4 5 4 4 4 3 4 2 4 1 4 05 5 5 4 5 3 5 2 5 1 5 0 4 9 4 86 3 6 2 6 1 6 0 5 9 5 8 5 7 5 6[ 0 ][ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ]O S R d y G r pO S R d y T b l [ O S _ L O W S E T _ P R I O / B + 1 ]XY最 高 優(yōu) 先 級(jí) 任 務(wù)最 低 優(yōu) 先 級(jí) 任 務(wù)( i d l e t a s k )任 務(wù) 優(yōu) 先 級(jí) 號(hào)0 0 Y Y Y X X X任 務(wù) 優(yōu) 先 級(jí)O S R d y T b l [ O S _ L O W S E T _ P R I O / B + 1 ] 中 的 位 置也 用 于 對(duì) O S R d y T b l [ O S _ L O W S E T _ P R I O / B + 1 ] 的 索 引A Free sample background from Slide 119 ? 使任務(wù)進(jìn)入就緒態(tài) 根據(jù)任務(wù)的優(yōu)先級(jí)確定就緒表,即把任務(wù)在 就緒表中所對(duì)應(yīng)的位置置 1。 A Free sample background from Slide 120 ? 舉例 ? 假設(shè)優(yōu)先級(jí)為 12
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1