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

正文內(nèi)容

第八講(2)內(nèi)核結(jié)構(gòu)-文庫(kù)吧

2025-07-17 13:24 本頁(yè)面


【正文】 OSTimeDlyHMSM()。 /* USER CODE */ } } void YourTask (void *pdata) { /* USER CODE */ OSTaskDel(OS_PRIO_SELF)。 } 任務(wù)所包含的程序通常為一個(gè)具有無(wú)限循環(huán)的程序 ; 或者一次執(zhí)行 例: UCOSII中的任務(wù)內(nèi)容 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 13 任務(wù)參數(shù) 一個(gè)任務(wù)看起來(lái)像其它 C的函數(shù)一樣,有函數(shù)返回類型,有形式參數(shù)變量; 但是任務(wù)是絕不會(huì)返回的,故 返回參數(shù)必須定義成 void 形式參數(shù)變量是由用戶代碼在第一次執(zhí)行的時(shí)候帶入的。形式參數(shù)變量類型是一個(gè)指向 void的指針 。 這是為了允許用戶應(yīng)用程序傳遞任何類型的數(shù)據(jù)給任務(wù) 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 14 任務(wù)狀態(tài) μC/OSⅡ 控制下的任務(wù)狀態(tài)轉(zhuǎn)換圖。在任一給定的時(shí)刻,任務(wù)的狀態(tài)一定是在這五種狀態(tài)之一。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 15 正在運(yùn)行的任務(wù)可以通過(guò)調(diào)用兩個(gè)函數(shù)之一將自身延遲一段時(shí)間,函數(shù)為 OSTimeDly()或 OSTimeDlyHMSM(),這個(gè)任務(wù)于是進(jìn)入等待狀態(tài) 正在運(yùn)行的任務(wù)期待某一事件的發(fā)生時(shí)也要等待,手段是調(diào)用以下 3個(gè)函數(shù)之一: OSSemPend(), OSMboxPend(),或 OSQPend(), 調(diào)用后任務(wù)進(jìn)入了等待狀態(tài) ( WAITING) 下一個(gè)優(yōu)先級(jí)最高的、并進(jìn)入了就緒態(tài)的任務(wù)立刻被賦予了 CPU的控制權(quán) 當(dāng)所有的任務(wù)都在等待事件發(fā)生或等待延遲時(shí)間結(jié)束,μC/OSⅡ 執(zhí)行空閑任務(wù)( idle task),執(zhí)行 OSTaskIdle()函數(shù) 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 16 任務(wù)切換 任務(wù)切換 ( context switching) 保存當(dāng)前任務(wù)的上下文,并恢復(fù)需要執(zhí)行的任務(wù)的上下文的過(guò)程。 當(dāng)發(fā)生任務(wù)切換時(shí): 當(dāng)前正在運(yùn)行的任務(wù)的上下文就需要通過(guò)該任務(wù)的 任務(wù)控制塊保存起來(lái); 把需要 投入運(yùn)行的任務(wù) 的上下文從對(duì)應(yīng)的任務(wù)控制塊中恢復(fù)出來(lái)。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 17 任務(wù) 1 任務(wù) 2 任務(wù) 3 調(diào)度 程序 0 5 10 15 20 25 30 35 40 45 50 運(yùn)行 等待 就緒 在時(shí)刻 8即發(fā)生了任務(wù)切換,任務(wù) 1的上下文需要保存到任務(wù) 1的任務(wù)控制塊中去。 經(jīng)過(guò)調(diào)度程序的處理,在時(shí)刻 10任務(wù) 2投入運(yùn)行,需要把任務(wù) 2的任務(wù)控制塊中關(guān)于上下文的內(nèi)容恢復(fù)到 CPU的寄存器。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 18 任務(wù) 1 任務(wù) 2 實(shí)時(shí)內(nèi)核調(diào)度程序 保存任務(wù) 1的上下文到 TCB1 從 TCB2恢復(fù)任務(wù) 2的上下文 …… 保存任務(wù) 2的上下文到 TCB2 從 TCB1恢復(fù)任務(wù) 1的上下文 …… 時(shí)間 任務(wù) 1執(zhí)行一段時(shí)間后,由于某種原因,需要進(jìn)行任務(wù)切換,進(jìn)入實(shí)時(shí)內(nèi)核的調(diào)度程序。調(diào)度程序首先把當(dāng)前的上下文內(nèi)容保存到任務(wù) 1的任務(wù)控制塊 TCB1中,然后又把任務(wù) 2的上下文從 TCB2中恢復(fù)到 CPU寄存器,隨后任務(wù) 2得到執(zhí)行。任務(wù) 2執(zhí)行一段時(shí)間后,由于某種原因,需要進(jìn)行任務(wù)切換,進(jìn)入實(shí)時(shí)內(nèi)核的調(diào)度程序。調(diào)度程序首先把當(dāng)前的上下文內(nèi)容保存到任務(wù) 2的任務(wù)控制塊 TCB2中,然后又把任務(wù) 1的上下文從 TCB1中恢復(fù)到 CPU寄存器,隨后任務(wù) 1得到執(zhí)行。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 19 任務(wù)控制塊 任務(wù)管理是通過(guò)對(duì) 任務(wù)控制塊 ( task control block, TCB)的操作來(lái)實(shí)現(xiàn)的; 任務(wù)控制塊是一個(gè)數(shù)據(jù)結(jié)構(gòu),當(dāng)任務(wù)的 CPU使用權(quán)被剝奪時(shí), μC/OSⅡ 用它來(lái)保存該任務(wù)的狀態(tài); 當(dāng)任務(wù)重新得到 CPU使用權(quán)時(shí),任務(wù)控制塊能確保任務(wù)從當(dāng)時(shí)被中斷的那一點(diǎn)絲毫不差地繼續(xù)執(zhí)行; 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 20 任務(wù)控制塊 是包含任務(wù)相關(guān)信息的數(shù)據(jù)結(jié)構(gòu) 包含了任務(wù)執(zhí)行過(guò)程中所需要的所有信息。 任務(wù)控制塊大都包括以下信息:
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1