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

正文內(nèi)容

基于ucos-ii的嵌入式應(yīng)用程序開(kāi)發(fā)-文庫(kù)吧

2025-04-12 00:27 本頁(yè)面


【正文】 等的。它們的執(zhí)行是由調(diào)度程序調(diào)度來(lái)實(shí)現(xiàn)的,這樣,在每個(gè)任務(wù)看來(lái), CPU 為自己獨(dú)占。任務(wù)之間要傳輸信息時(shí)必須通過(guò)第三方來(lái)完成,如消息郵箱等。 ③ 任務(wù)的并發(fā)性是指:所有任務(wù)共有一個(gè) CPU,但在某一時(shí)刻,一個(gè) CPU只能運(yùn)行一個(gè)任務(wù)。高優(yōu)先級(jí)的任務(wù)可以剝奪另一個(gè)正在運(yùn)行的低優(yōu)先級(jí)任務(wù)的運(yùn)行權(quán)而進(jìn)入運(yùn)行狀態(tài)。高優(yōu)先級(jí)任務(wù)在運(yùn)行一段時(shí)間后必須將自己掛起(如調(diào)用延時(shí)函數(shù)等) 以讓出 CPU而讓處于就緒態(tài)的低優(yōu)先級(jí)的任務(wù)得到執(zhí)行。這樣所有任務(wù)的運(yùn)行時(shí)間就會(huì)相互重疊,表面上看起來(lái)好象同時(shí)運(yùn)行一樣。 12 181。C/OSII程序設(shè)計(jì)技術(shù) ⒉ 任務(wù)的劃分方法 在進(jìn)行任務(wù)劃分時(shí),可以有不同的方案,但其要達(dá)到的目標(biāo)都是一致的。首先要滿足系統(tǒng)對(duì)“實(shí)時(shí)性”的要求,其次要使任務(wù)數(shù)目合理和簡(jiǎn)化軟件系統(tǒng),最后要降低系統(tǒng)對(duì)資源的需求。任務(wù)的劃分有下列一些基本原則: ① 設(shè)備依賴性任務(wù)的劃分:以 CPU為中心,將與各種輸入 /輸出設(shè)備相關(guān)的功能 分別劃分為獨(dú)立的任務(wù)(如鍵盤任務(wù)、顯示任務(wù)等)。 ② 關(guān)鍵任務(wù)的劃分:“關(guān)鍵性”是指某種功能在應(yīng)用系統(tǒng)中的重要性。若該功能不能正常實(shí)現(xiàn),將會(huì)造成重大影響,如火災(zāi)報(bào)警中傳感器信號(hào)的檢測(cè)。 ③ 緊迫任務(wù)的劃分:“緊迫性”是指某種功能必須在規(guī)定的時(shí)間內(nèi)得到運(yùn)行,并在規(guī)定的時(shí)刻前執(zhí)行完畢。 此外,還有:數(shù)據(jù)處理任務(wù)的劃分、功能聚合任務(wù)的劃分、觸發(fā)條件相同任務(wù)的劃分、運(yùn)行周期相同任務(wù)的劃分、順序操作任務(wù)的劃分等原則。這些原則只是一般性原則,設(shè)計(jì)任務(wù)時(shí)必須具體問(wèn)題具體分析。 13 181。C/OSII程序設(shè)計(jì)技術(shù) ⒊ 任務(wù)函數(shù)的代碼結(jié)構(gòu) 在任務(wù)函數(shù)中,必須至少調(diào)用一次操作系統(tǒng)的服務(wù)函數(shù),否則低優(yōu)先級(jí)的任務(wù)將永遠(yuǎn)無(wú)法得到運(yùn)行。按照?qǐng)?zhí)行方式可以將任務(wù)函數(shù)的結(jié)構(gòu)分為三類。 ① 單次執(zhí)行的任務(wù):此類任務(wù)在創(chuàng)建后只執(zhí)行一次,執(zhí)行結(jié)束后即自行刪除。其任務(wù)函數(shù)的代碼結(jié)構(gòu)如下: void MyTask(void *pdata) //單次執(zhí)行的任務(wù)函數(shù) { 進(jìn)行準(zhǔn)備工作的代碼; 任務(wù)實(shí)體代碼; 調(diào)用任務(wù)刪除函數(shù); //調(diào)用 OSTaskDel(OS_PRIO_SELF) } “進(jìn)行準(zhǔn)備工作的代碼”完成各項(xiàng)準(zhǔn)備工作,如定義和初始化變量等;“任務(wù)實(shí)體代碼”完成該任務(wù)的具體功能,通常包含對(duì)系統(tǒng)函數(shù)的調(diào)用,除若干臨界段代碼(中斷被關(guān)閉)外,其它代碼均可以被中斷,用以保證高優(yōu)先級(jí)的就緒任務(wù)能夠及時(shí)得到運(yùn)行;“調(diào)用任務(wù)刪除函數(shù)”將自己刪除。 14 181。C/OSII程序設(shè)計(jì)技術(shù) ② 周期性執(zhí)行的任務(wù) 此類任務(wù)在創(chuàng)建后按一個(gè)固定的周期來(lái)執(zhí)行。其任務(wù)函數(shù)的結(jié)構(gòu)如下: void MyTask(void *pdata) //周期性執(zhí)行的任務(wù)函數(shù) { 進(jìn)行準(zhǔn)備工作的代碼; while (1) //無(wú)限循環(huán) { 任務(wù)實(shí)體代碼; 調(diào)用系統(tǒng)延時(shí)函數(shù); //調(diào)用 OSTimeDly()或 OSTimeDlyHMSM() } } “調(diào)用系統(tǒng)延時(shí)函數(shù)”使自己掛起,把 CPU的控制權(quán)交給操作系統(tǒng),由操作系統(tǒng)(中的調(diào)度程序)來(lái)調(diào)度其它已經(jīng)就緒的最高優(yōu)先級(jí)的任務(wù)運(yùn)行。當(dāng)延時(shí)時(shí)間到后,該周期性任務(wù)重新進(jìn)入就緒狀態(tài)。 15 181。C/OSII程序設(shè)計(jì)技術(shù) ③ 事件觸發(fā)執(zhí)行的任務(wù) 此類任務(wù)在創(chuàng)建后,很快可以獲得運(yùn)行權(quán),但實(shí)體代碼的執(zhí)行需要等待某種事件的發(fā)生,在相關(guān)事件發(fā)生之前,該任務(wù)則被 181。C/OSII掛起。其結(jié)構(gòu)如下: void MyTask(void *pdata) //事件觸發(fā)執(zhí)行的任務(wù)函數(shù) { 進(jìn)行準(zhǔn)備工作的代碼; while (1) //無(wú)限循環(huán) { 調(diào)用獲取事件的函數(shù); //如等待信號(hào)量等 任務(wù)實(shí)體代碼; } } “調(diào)用獲取事件的函數(shù)”調(diào)用 181。C/OSII提供的獲取某種事件(如信號(hào)量)的函數(shù),來(lái)等待另外一個(gè)任務(wù)(或 ISR)發(fā)出的信息,此后該任務(wù)處于掛起狀態(tài);當(dāng)另外一個(gè)任務(wù)(或 ISR)調(diào)用了 181。C/OSII提供的通信函數(shù)發(fā)出相關(guān)信息時(shí), 181。C/OSII就使該任務(wù)進(jìn)入就緒狀態(tài),并且通過(guò)任務(wù)調(diào)度,使該任務(wù)的實(shí)體代碼得到執(zhí)行。相關(guān)事件發(fā)生一次,任務(wù)實(shí)體代碼就執(zhí)行一次。 16 181。C/OSII程序設(shè)計(jì)技術(shù) ? 任務(wù)間的行為同步方法 在實(shí)時(shí)操作系統(tǒng) 181。C/OSII的支持下,系統(tǒng)的整體功能是通過(guò)各個(gè)任務(wù)(包括 ISR)的協(xié)同運(yùn)行來(lái)實(shí)現(xiàn)的。一個(gè)任務(wù)的運(yùn)行,往往需要和其它的任務(wù)配合才能達(dá)到預(yù)期的效果,任務(wù)之間的這種配合和協(xié)調(diào)關(guān)系就稱為任務(wù)間的行為同步。 181。C/OSII 所提供的控制任務(wù)間行為同步的通信手段有:計(jì)數(shù)信號(hào)量、事件標(biāo)志組、消息郵箱和消息隊(duì)列。 通常使用的行為同步方法有: ① 兩個(gè)任務(wù)之間的單向同步:即一個(gè)任務(wù)為控制方,它發(fā)出控制信息;而另一個(gè)任務(wù)為被控制方,它獲得控制方發(fā)出的控制信息后即進(jìn)入就緒狀態(tài)。這可使用信號(hào)量來(lái)實(shí)現(xiàn)。 17 181。C/OSII程序設(shè)計(jì)技術(shù) ② 兩個(gè)任務(wù)之間的雙向同步:即兩個(gè)任務(wù)同為控制方和被控制方。在這種情況下,首先一個(gè)任務(wù)必須為控制方,它發(fā)出控制信息后就變?yōu)楸豢刂品?,此時(shí)其需等待另一個(gè)任務(wù)發(fā)出的控制信息后才能繼續(xù)運(yùn)行;而另一個(gè)任務(wù)首先為被控制方,當(dāng)它獲得控制方發(fā)出的控制信息后才能運(yùn)行,并變?yōu)榭刂品健_@可使用消息郵箱來(lái)實(shí)現(xiàn)。 ③ 一個(gè)任務(wù)同步多個(gè)任務(wù):即一個(gè)任務(wù)為控制方,它發(fā)出控制信息,來(lái)控制多個(gè)任務(wù)的執(zhí)行。此時(shí)可采用具有消息分發(fā)功能的通信機(jī)制(當(dāng)然也可采用多個(gè)通信工具)來(lái)實(shí)現(xiàn)。 ④ 兩個(gè)以上任務(wù)同步一個(gè)任務(wù):即多個(gè)任務(wù)為控制方,它們發(fā)出控制信息來(lái)控制一個(gè)任務(wù)的執(zhí)行。此時(shí)可采用“事件標(biāo)志組”來(lái)實(shí)現(xiàn)。 18 181。C/OSII程序設(shè)計(jì)技術(shù) ? 共享資源的同步方法 被兩個(gè)以上并發(fā)程序單元(任務(wù)或 ISR)訪問(wèn)的資源稱為共享資源(如全局變量、外設(shè)等)。任務(wù)對(duì)共享資源進(jìn)行訪問(wèn)的代碼段落稱為關(guān)鍵段落。各個(gè)任務(wù)訪問(wèn)同一共享資源的關(guān)鍵段落必須互斥,才能保障共享資源信息的可靠性和完整性。這種使得不同任務(wù)訪問(wèn)共享資源時(shí)能夠確保共享資源信息可靠和完整的措施稱為共享資源同步。 實(shí)現(xiàn)共享資源同步的方法有:關(guān)中斷、關(guān)調(diào)度、使用互斥信號(hào)量等。 中斷有可能會(huì)引起任務(wù)切換,使某個(gè)低優(yōu)先級(jí)的任務(wù)掛起,使某個(gè)高優(yōu)先級(jí)的任務(wù)得到執(zhí)行。如果這兩個(gè)任務(wù)對(duì)同一個(gè)共享資源進(jìn)行訪問(wèn),這就有可能引起錯(cuò)誤的結(jié)果。此時(shí)可以關(guān)閉中斷。 當(dāng)共享資源的使用者全部是任務(wù)(即不包含 ISR)時(shí),就可以采用“關(guān)調(diào)度”的方法來(lái)訪問(wèn)共享資源。關(guān)調(diào)度可使 181。C/OSII的任務(wù)調(diào)度器停止工作,不能進(jìn)行任務(wù)切換,從而保證關(guān)鍵段落代碼的執(zhí)行不會(huì)受到其它任務(wù)的干擾。 當(dāng)需要訪問(wèn)的共享資源比較復(fù)雜,且訪問(wèn)過(guò)程比較費(fèi)時(shí)時(shí),關(guān)中斷和關(guān)調(diào)度措施都會(huì)嚴(yán)重影響到系統(tǒng)的實(shí)時(shí)性。當(dāng)該共享資源的使用者全部是任務(wù)(即不包含 ISR)時(shí),就可以采用互斥信號(hào)量的方法來(lái)訪問(wèn)這個(gè)共享資源。 181。C/OSII程序設(shè)計(jì)技術(shù) ? 任務(wù)間的數(shù)據(jù)通信方法 ISR與任務(wù)函數(shù)在形式上與普通 C函數(shù)沒(méi)有什么區(qū)別。 ISR的運(yùn)行是由異步事件引起的,任務(wù)函數(shù)的運(yùn)行是由 181。C/OSII中的調(diào)度器調(diào)度的,它們之間不能直接調(diào)用,其數(shù)據(jù)通信是通過(guò)以下幾種方法實(shí)現(xiàn)的。 ① 全局變量: 提供數(shù) 據(jù)的任務(wù)或 ISR向全局變量中寫數(shù)據(jù),使用數(shù)據(jù)的任務(wù)或 ISR從全局變量中讀數(shù)據(jù),對(duì)全局變量的訪問(wèn)必須遵循“共享資源同步”的規(guī)則。任務(wù)或 ISR向全局變量中寫入數(shù)據(jù)后,并不能通知相關(guān)的任務(wù),也就是不能實(shí)現(xiàn)“行為同步”。 ② 內(nèi)存數(shù)據(jù)塊:當(dāng)需要傳輸?shù)臄?shù)據(jù)量很大時(shí),采用內(nèi)存數(shù)據(jù)塊來(lái)存放這些數(shù)據(jù)是最方便的。內(nèi)存數(shù)據(jù)塊是共享資源,也不能用來(lái)實(shí)現(xiàn)“行為同步”。 ③ 消息郵箱:當(dāng)每次發(fā)送的數(shù)據(jù)都要求接收方及時(shí)接收時(shí),在數(shù)據(jù)通信的同時(shí)必然發(fā)生“行為同步”,此時(shí)可使用消息郵箱,并 要求接收消息的任務(wù)總是在等待消息。 ④ 消息隊(duì)列:消息隊(duì)列是具有“行為同步”功能和緩沖功能的數(shù)據(jù)通信手段,它與消息郵箱的不同之處是可以存放多條消息。 20 181。C/OSII在 ARM微處理器上的移植 所謂移植,就是使一個(gè)實(shí)時(shí)內(nèi)核能夠在某個(gè)微處理器或微控制器上運(yùn)行。 181。C/OSⅡ 在設(shè)計(jì)時(shí)就已經(jīng)充分考慮了可移植性。 ? 181。C/OSII對(duì)處理器的要求 要使 181
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1