版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022/10/191現(xiàn)代汽車(chē)電子技術(shù)信號(hào)與信息處理研究所丁山第5章汽汽車(chē)嵌入入式系統(tǒng)統(tǒng)軟件的的基礎(chǔ)5.1基本概念念5.1..1嵌入式系系統(tǒng)的軟軟件軟件系統(tǒng)統(tǒng)通常包包括兩部部分,其其一是系系統(tǒng)軟件件,包括括嵌入式式操作系系統(tǒng)及在在它之下下的各種種應(yīng)用軟軟件;其其二是用用戶(hù)的應(yīng)應(yīng)用程序序。嵌入式系系統(tǒng)應(yīng)具具有很高高的可靠靠性,在在惡劣的的環(huán)境中中依然正正常工作作,具有有很高的的實(shí)時(shí)性性要求質(zhì)質(zhì)量和可可靠性更更高。面向嵌入入式系統(tǒng)統(tǒng)的操作作系統(tǒng)有有以下特特點(diǎn):要要求代碼碼量少,,可進(jìn)行行裁剪和和移植;;實(shí)時(shí)性性強(qiáng);可可靠性高高。嵌入式系系統(tǒng)的存存儲(chǔ)器一一般包括括程序空空間(Rom或Flash)、數(shù)據(jù)據(jù)空間((Ram)和I/O空間。在嵌入式式系統(tǒng)中中,程序序空間一一般采用用的是非非易失性性存儲(chǔ)器器。目前前大多數(shù)數(shù)嵌入式式系統(tǒng)采采用Flash來(lái)存放代代碼和一一些常數(shù)數(shù)。數(shù)據(jù)空間間用于存存放所有有數(shù)據(jù),,系統(tǒng)堆堆棧也處處于此空空間,一一般采用用易失性性存儲(chǔ)器器。有片片內(nèi)數(shù)據(jù)據(jù)空間與與片外數(shù)數(shù)據(jù)空間間。I/O空間;采采用統(tǒng)一一編址的的處理器器。I/O空間與內(nèi)內(nèi)存空間間無(wú)關(guān)。。5.1..2嵌入式系系統(tǒng)的存存儲(chǔ)器結(jié)結(jié)構(gòu)4.1..3嵌入式系系統(tǒng)軟件件的功能能及其特特點(diǎn)(1)系統(tǒng)啟啟動(dòng):一一旦復(fù)位位信號(hào)有有效,處處理器先先需運(yùn)行行初始化化程序。。(2)控制硬硬件:設(shè)設(shè)備可能能是端口口映射的的(I/O與存儲(chǔ)器器獨(dú)立編編址),,也有可可能是內(nèi)內(nèi)存映射射的(I/O與存儲(chǔ)器器統(tǒng)一編編址)。。(3)按位操操作:需需要操作作硬件寄寄存器內(nèi)內(nèi)某個(gè)二二進(jìn)制位位。(4)軟件要要求固態(tài)態(tài)化存儲(chǔ)儲(chǔ):嵌入入式軟件件一般都都固化在在存儲(chǔ)器器芯片或或處理器器中,而而不是在在磁盤(pán)中中。(5)軟件的的高實(shí)時(shí)時(shí)性(6)代碼執(zhí)執(zhí)行速度度和代碼碼效率::如果ISR或其他例例程有嚴(yán)嚴(yán)格的時(shí)時(shí)序要求求,應(yīng)考考慮使用用匯編編編寫(xiě);通過(guò)指針針而不是是變量的的引用執(zhí)執(zhí)行操作作,編譯譯器就能能產(chǎn)生占占用空間間更少并并且運(yùn)行行速度更更快的代代碼。如果某個(gè)個(gè)函數(shù)操操作同樣樣的變量量好幾次次,通過(guò)過(guò)指針來(lái)來(lái)進(jìn)行訪訪問(wèn)通常常會(huì)產(chǎn)生生更有效效率的代代碼。(7)中斷與與中斷服服務(wù)程序序:中斷斷切換機(jī)機(jī)制是相相同的,,但不同同的處理理器在實(shí)實(shí)現(xiàn)細(xì)節(jié)節(jié)上還有有不同。。(8)可嵌套套的中斷斷與可重重入性::如果允允許中斷斷嵌套,,要確認(rèn)認(rèn)所有在在中斷服服務(wù)例程程運(yùn)行期期間被調(diào)調(diào)用的函函數(shù)不是是可重入入的。。??芍厝胧鞘侵负瘮?shù)數(shù)在不必必關(guān)心同同步或相相互訪問(wèn)問(wèn)的情況況下能被被來(lái)自不不同任務(wù)務(wù)的程序序異步調(diào)調(diào)用。(9)需要了了解程序序執(zhí)行時(shí)時(shí)間80和20原則,80%的速度問(wèn)問(wèn)題存在在于20%的代碼中中。(10)發(fā)布嵌嵌入式系系統(tǒng)程序序的方法法a.編寫(xiě)的代代碼作為為硬件的的一部分分b.運(yùn)行加載載c.IPOEM(OriginalEquipmentManufacture)方式(11)應(yīng)用中中可編程程(InApplicationProgram,IAP)功能a.引導(dǎo)裝載載程序b.Flash編程算法法c.最新軟件件映像的的下載程程序5.2傳統(tǒng)嵌入入式系統(tǒng)統(tǒng)軟件的的開(kāi)發(fā)方方法及其其特點(diǎn)操作系統(tǒng)統(tǒng)及嵌入入式操作作系統(tǒng)的的選擇如果系統(tǒng)統(tǒng)復(fù)雜,,需要選選用操作作系統(tǒng)。。前后臺(tái)系系統(tǒng)。能能夠處理理關(guān)鍵實(shí)實(shí)時(shí)事件件及中斷斷服務(wù)程程序(ISR)的簡(jiǎn)單單循環(huán)代代碼,該該過(guò)程簡(jiǎn)簡(jiǎn)單,但但相當(dāng)實(shí)實(shí)用。無(wú)優(yōu)先級(jí)級(jí)別的操操作系統(tǒng)統(tǒng):可以以將后臺(tái)臺(tái)工作轉(zhuǎn)轉(zhuǎn)化為可可預(yù)先處處理的工工作。有優(yōu)先級(jí)級(jí)別的操操作系統(tǒng)統(tǒng):在外外部事件件(比如如中斷等等)發(fā)生生時(shí)和操操作系統(tǒng)統(tǒng)內(nèi)部調(diào)調(diào)用時(shí)切切換任務(wù)務(wù)。MISRAC:1994年英國(guó)成成立了一一個(gè)汽車(chē)車(chē)工業(yè)軟軟件可靠靠性聯(lián)合合會(huì)(theMotorIndustrySoftwareReliabilityAssociation,,MISRA),該組織于于1998年發(fā)布了了針對(duì)汽汽車(chē)軟件件安全性性的C語(yǔ)言編程程規(guī)范。。基于任務(wù)務(wù)的設(shè)計(jì)計(jì)方法在系統(tǒng)設(shè)設(shè)計(jì)階段段,嵌入入式系統(tǒng)統(tǒng)的設(shè)計(jì)計(jì)通常采采用DARTS(DesignApproachforRealtimesystem)設(shè)計(jì)方方法進(jìn)行行任務(wù)設(shè)設(shè)計(jì)。DARTS給出系統(tǒng)統(tǒng)任務(wù)劃劃分的方方法和定定義任務(wù)務(wù)間接口口的機(jī)制制。對(duì)傳傳統(tǒng)的軟軟件結(jié)構(gòu)構(gòu)化設(shè)計(jì)計(jì)方法的的擴(kuò)展。。除使用程程序結(jié)構(gòu)構(gòu)圖與程程序流程程圖外,,采用并并發(fā)圖與與信息隱隱藏模塊塊,其主主要功能能是將實(shí)實(shí)時(shí)系統(tǒng)統(tǒng)分解為為并發(fā)任任務(wù)并定定義并發(fā)發(fā)接口。。5.3嵌入式操操作系統(tǒng)統(tǒng)5.3..1嵌入式操操作系統(tǒng)統(tǒng)的基本本概念嵌入式操操作系統(tǒng)統(tǒng)的特點(diǎn)點(diǎn)嵌入式系系統(tǒng)引入入操作系系統(tǒng)的原原因5.3..2嵌入式操操作系統(tǒng)統(tǒng)的內(nèi)核核分類(lèi)及及基本結(jié)結(jié)構(gòu)單一內(nèi)核核;微微內(nèi)核層次劃分分:硬件件接口層層,核心心層,系系統(tǒng)層和和應(yīng)用服服務(wù)接口口層。應(yīng)用服務(wù)務(wù)接口層層:提供供基于系系統(tǒng)功能能的、面面向應(yīng)用用的系統(tǒng)統(tǒng)功能調(diào)調(diào)用服務(wù)務(wù)接口。。系統(tǒng)層::提供面面向?qū)ο笙蟮南到y(tǒng)統(tǒng)資源管管理功能能,如內(nèi)內(nèi)存管理理、文件件管理、、設(shè)備管管理、網(wǎng)網(wǎng)絡(luò)協(xié)議議管理等等。核心層::包括運(yùn)運(yùn)行系統(tǒng)統(tǒng)所需要要的最基基本的功功能模塊塊,核心心層針對(duì)對(duì)應(yīng)用提提供幾種種最基本本的服務(wù)務(wù),如系系統(tǒng)時(shí)鐘鐘、電源源管理、、程序裝裝載于運(yùn)運(yùn)行、進(jìn)進(jìn)程調(diào)度度、內(nèi)存存管理等等。硬件接口口層:提提供與嵌嵌入式硬硬件系統(tǒng)統(tǒng)交互的的接口。。5.3..3嵌入式操操作系統(tǒng)統(tǒng)內(nèi)核的的基本功功能模塊塊進(jìn)程管理理:操作作系統(tǒng)需需要為進(jìn)進(jìn)程分配配資源,,實(shí)現(xiàn)進(jìn)進(jìn)程間共共享和交交換信息息,保護(hù)護(hù)進(jìn)程資資源,以以及實(shí)現(xiàn)現(xiàn)進(jìn)程間間同步。。在嵌入式式開(kāi)發(fā)中中,往往往用任務(wù)務(wù)的概念念表述內(nèi)內(nèi)核可以以獨(dú)立調(diào)調(diào)度的單單元。任任務(wù)狀態(tài)態(tài)一般分分為:運(yùn)運(yùn)行狀態(tài)態(tài)、就緒緒狀態(tài)、、等待狀狀態(tài)等。。三種狀狀態(tài)通過(guò)過(guò)操作系系統(tǒng)進(jìn)程程調(diào)度程程序來(lái)調(diào)調(diào)度。任務(wù)調(diào)度度方法大大致分為為三種::優(yōu)先級(jí)級(jí)調(diào)度、、輪轉(zhuǎn)調(diào)調(diào)度和時(shí)時(shí)間片調(diào)調(diào)度;內(nèi)存管理理:一般般通用操操作系統(tǒng)統(tǒng)的存儲(chǔ)儲(chǔ)管理非非常復(fù)雜雜,虛擬擬管理技技術(shù)被廣廣泛地使使用。嵌入式操操作系統(tǒng)統(tǒng)的存儲(chǔ)儲(chǔ)管理通通常比較較簡(jiǎn)單,,在具體體的嵌入入式應(yīng)用用中,進(jìn)進(jìn)程的數(shù)數(shù)量和可可能用到到的內(nèi)存存容量是是可預(yù)測(cè)測(cè)的,因因此,多多采用靜靜態(tài)內(nèi)存存管理。。在內(nèi)存分分配策略略上往往往提供幾幾種分配配策略。。存儲(chǔ)管理理的內(nèi)存存保護(hù),,在一般般的操作作系統(tǒng)中中,每個(gè)個(gè)應(yīng)用程程序都有有自己的的地址空空間,不不能任意意訪問(wèn)其其他應(yīng)用用程序的的地址空空間。某某些嵌入入式系統(tǒng)統(tǒng)應(yīng)用對(duì)對(duì)內(nèi)存保保護(hù)有非非常嚴(yán)格格的要求求。內(nèi)存被分分成操作作系統(tǒng)的的駐留程程序,另另外給用用戶(hù)進(jìn)程程。中斷管理理:計(jì)算算機(jī)系統(tǒng)統(tǒng)處理外外部事件件有兩種種方式::中斷和和查詢(xún)。。在操作作系統(tǒng)中中,中斷斷與中斷斷處理程程序聯(lián)系系在一起起的。多數(shù)嵌入入式操作作系統(tǒng)都都是事件件驅(qū)動(dòng)的的。中斷斷處理函函數(shù)引起起任務(wù)切切換如下下:執(zhí)行行到任務(wù)務(wù)A->響應(yīng)中斷斷執(zhí)行并并執(zhí)行中中斷處理理程序,,切換到到任務(wù)B->>任務(wù)B運(yùn)行退出出后,切切換到任任務(wù)A->>任務(wù)A繼續(xù)運(yùn)行行。在中斷處處理上,,一般操操作系統(tǒng)統(tǒng)與嵌入入式操作作系統(tǒng)的的不同之之處在于于現(xiàn)場(chǎng)保保護(hù)。一一般操作作系統(tǒng)的的現(xiàn)場(chǎng)保保護(hù)由操操作系統(tǒng)統(tǒng)來(lái)完成成,在嵌嵌入式操操作系統(tǒng)統(tǒng)中,由由中斷處處理器程程序來(lái)完完成。在中斷處處理程序序的入口口要保護(hù)護(hù)中斷處處理程序序中要用用到的寄寄存器,,在中斷斷處理完完成后恢恢復(fù)。這這樣,以以損失系系統(tǒng)安全全性為代代價(jià),同同時(shí)增加加了調(diào)試試難度。。如果系統(tǒng)統(tǒng)面臨多多個(gè)中斷斷信號(hào)同同時(shí)發(fā)生生的情況況。則存存在ISR響應(yīng)先后后的問(wèn)題題。操作系統(tǒng)統(tǒng)與應(yīng)用用程序的的接口-API從操作系系統(tǒng)的角角度來(lái)看看,提供供用戶(hù)有有兩類(lèi)接接口:一一是人機(jī)機(jī)界面。。另一類(lèi)接接口是操操作系統(tǒng)統(tǒng)提供給給用戶(hù)的的應(yīng)用程程序的API函數(shù),也也就是系系統(tǒng)調(diào)用用。5.3..5嵌入式操操作系統(tǒng)統(tǒng)環(huán)境下下的任務(wù)務(wù)前/后臺(tái)系統(tǒng)統(tǒng)中,任任務(wù)間的的切換很很簡(jiǎn)單,,不必為為每個(gè)任任務(wù)安排排堆棧,,也不必必保存每每個(gè)任務(wù)務(wù)所使用用的cpu寄存器。。5.3..6嵌入式操操作系統(tǒng)統(tǒng)的任務(wù)務(wù)調(diào)度方方式不可搶占占式調(diào)度度(如圖5-6所示)可搶占式式調(diào)度((如圖5-7所示)時(shí)間片輪輪轉(zhuǎn)調(diào)度度5.3..7嵌入式操操作系統(tǒng)統(tǒng)下任務(wù)務(wù)間通信信中斷與任任務(wù)間的的通信即即消息傳傳遞,是是由嵌入入式操作作系統(tǒng)的的內(nèi)核完完成的,,通信方方式有兩兩個(gè)途徑徑即全局局變量或或消息。。通過(guò)全局局消息進(jìn)進(jìn)行通信信控制中斷斷控制任務(wù)務(wù)切換采用TAS操作,即即處理允允許標(biāo)志志控制法法利用信號(hào)號(hào)量通過(guò)消息息郵箱或或消息隊(duì)隊(duì)列,消消息郵箱箱的示意意圖如圖5-8所示,消消息隊(duì)列列的示意意圖如圖5-9所示。嵌入式操操作系統(tǒng)統(tǒng)實(shí)時(shí)性性要求利用操作作系統(tǒng)不不僅可以以極大地地減少系系統(tǒng)開(kāi)發(fā)發(fā)的工作作總量,,而且可可以提高高嵌入式式系統(tǒng)軟軟件的可可移植性性。系統(tǒng)的響響應(yīng)時(shí)間間與信號(hào)號(hào)的動(dòng)態(tài)態(tài)特性有有關(guān)。這這些不同同的嵌入入式應(yīng)用用系統(tǒng)的的不同響響應(yīng)要求求,體現(xiàn)現(xiàn)了嵌入入式對(duì)象象對(duì)時(shí)間間響應(yīng)要要求的多多樣性。。根據(jù)嵌入入式應(yīng)用用系統(tǒng)的的激勵(lì)-運(yùn)行-響應(yīng)特性性,表現(xiàn)現(xiàn)了嵌入入式實(shí)時(shí)時(shí)能力的的可變更更性。響應(yīng)時(shí)間間的多樣樣性要求求與響應(yīng)應(yīng)時(shí)間可可調(diào)整性性,是嵌嵌入式實(shí)實(shí)時(shí)性分分析的基基本出發(fā)發(fā)點(diǎn)。5.4嵌入式實(shí)實(shí)時(shí)操作作系統(tǒng)5.4..1實(shí)時(shí)系統(tǒng)統(tǒng)在控制系系統(tǒng)中,,為控制制器控制制功能的的執(zhí)行滿滿足和被被控對(duì)象象基于時(shí)時(shí)間交互互的要求求,所以以稱(chēng)為實(shí)實(shí)時(shí)系統(tǒng)統(tǒng)。實(shí)時(shí)性需需求首先,準(zhǔn)準(zhǔn)確合理理地描述述任務(wù)的的時(shí)間要要求,必必須給出出以下定定義:任務(wù)激活活點(diǎn)或使使能瞬間間點(diǎn)任務(wù)截止止期響應(yīng)時(shí)間間是激活活點(diǎn)和任任務(wù)執(zhí)行行結(jié)束這這一段時(shí)時(shí)間最大允許許響應(yīng)時(shí)時(shí)間也稱(chēng)稱(chēng)為相對(duì)對(duì)期限,,任務(wù)期期限也稱(chēng)稱(chēng)為絕對(duì)對(duì)期限,,在時(shí)間間線上可可以通過(guò)過(guò)激活點(diǎn)點(diǎn)和相對(duì)對(duì)期限來(lái)來(lái)計(jì)算絕絕對(duì)期限限;任務(wù)周期期:相連連兩個(gè)激激活點(diǎn)的的時(shí)間間間隔稱(chēng)為為激活周周期,兩兩任務(wù)執(zhí)執(zhí)行時(shí)間間間隔稱(chēng)稱(chēng)為執(zhí)行行周期;;硬實(shí)時(shí)需需求和軟軟實(shí)時(shí)需需求如果要求求任務(wù)必必須在指指定的時(shí)時(shí)間間隔隔內(nèi)完成成,該任任務(wù)就稱(chēng)稱(chēng)為硬實(shí)實(shí)時(shí)需求求,這種種情況下下獲得的的確認(rèn)信信息既要要準(zhǔn)確又又要可靠靠。如果沒(méi)有有在指定定的時(shí)間間間隔內(nèi)內(nèi)必須要要完成的的要求,,而僅僅僅是希望望任務(wù)盡盡快完成成,將被被認(rèn)為軟軟的實(shí)時(shí)時(shí)要求。。嵌入式實(shí)實(shí)時(shí)操作作系統(tǒng)實(shí)時(shí)多任任務(wù)操作作系統(tǒng)((Real-timemulti--taskoperatingsystem)是嵌入入式應(yīng)用用軟件的的基礎(chǔ)和和開(kāi)發(fā)平平臺(tái)。RTOS是針對(duì)不不同的處處理器優(yōu)優(yōu)化設(shè)計(jì)計(jì)的高效效率實(shí)時(shí)時(shí)多任務(wù)務(wù)內(nèi)核。。RTOS最關(guān)鍵的的部分是是實(shí)時(shí)多多任務(wù)內(nèi)內(nèi)核,它它的基本本功能包包括任務(wù)務(wù)管理、、定時(shí)器器管理、、存儲(chǔ)器器管理、、資源管管理、事事件管理理、消息息管理、、隊(duì)列管管理等等等。嵌入式實(shí)實(shí)時(shí)系統(tǒng)統(tǒng)的特點(diǎn)點(diǎn):實(shí)時(shí)操作作系統(tǒng)一一般具有有以下特特點(diǎn):實(shí)時(shí)操作作系統(tǒng)的的內(nèi)核必必須非常常小,即即微內(nèi)核核設(shè)計(jì)可重入,,因?yàn)椴徊豢芍厝肴氲膬?nèi)核核比然帶帶來(lái)慢速速的中斷斷響應(yīng)和和不可預(yù)預(yù)測(cè)的操操作時(shí)間間系統(tǒng)能夠夠快速進(jìn)進(jìn)行任務(wù)務(wù)切換,,保證任任務(wù)搶先先和deadline的完成盡量減少少中斷的的時(shí)間提供固定定或者可可變的內(nèi)內(nèi)存管理理機(jī)制提供一個(gè)個(gè)能夠滿滿足應(yīng)用用要求的的實(shí)時(shí)時(shí)時(shí)鐘必須提供供合適的的進(jìn)程任任務(wù)調(diào)度度的方法法5.4..2嵌入式實(shí)實(shí)時(shí)操作作系統(tǒng)的的內(nèi)核(1)任務(wù)優(yōu)優(yōu)先級(jí)如如果應(yīng)應(yīng)用程序序在執(zhí)行行過(guò)程中中各個(gè)任任務(wù)的優(yōu)優(yōu)先級(jí)是是不變的的,稱(chēng)為為靜態(tài)優(yōu)優(yōu)先級(jí);;如果在在執(zhí)行過(guò)過(guò)程中優(yōu)優(yōu)先級(jí)是是可以改改變的,,稱(chēng)為動(dòng)動(dòng)態(tài)優(yōu)先先級(jí)。在嵌入式式開(kāi)發(fā)中中存在一一個(gè)流行行的任務(wù)務(wù)優(yōu)先級(jí)級(jí)分配算算法-單調(diào)執(zhí)行行頻率調(diào)調(diào)度法((RateMonotonicScheduling,RMS)--基于任務(wù)務(wù)執(zhí)行的的次數(shù)((執(zhí)行頻頻率)來(lái)來(lái)分配的的,執(zhí)行行頻率越越高,任任務(wù)的優(yōu)優(yōu)先級(jí)越越高。CPU利用率::CPU利用率達(dá)達(dá)到100%%并不好,,作為系系統(tǒng)設(shè)計(jì)計(jì)的一條條原則::CPU利用率應(yīng)應(yīng)小于60%--70%%。(2)死鎖是是指兩兩個(gè)任務(wù)務(wù)無(wú)限期期地相互互等待對(duì)對(duì)方控制制著的資資源。所所以系統(tǒng)統(tǒng)中應(yīng)盡盡量避免免發(fā)生死死鎖現(xiàn)象象。如圖5-11所示。一般而言言,可以以先讓所所有的任任務(wù)得到到全部所所需要的的資源再再做下一一步工作作以避免免死鎖::各任務(wù)用用同樣的的順序申申請(qǐng)多個(gè)個(gè)資源;;釋放資源源時(shí)使用用相反的的順序。。死鎖一般般發(fā)生在在大型多多任務(wù)系系統(tǒng)中,,在小型型的嵌入入式系統(tǒng)統(tǒng)中不易易出現(xiàn)。。(3)時(shí)鐘節(jié)節(jié)拍操操作系統(tǒng)統(tǒng)跳動(dòng)的的心臟,,當(dāng)任務(wù)務(wù)等待事事件發(fā)生生時(shí),它它可以提提供系統(tǒng)統(tǒng)等待超超時(shí)的依依據(jù)。時(shí)時(shí)鐘節(jié)拍拍越快,,系統(tǒng)的的額外開(kāi)開(kāi)銷(xiāo)越大大。(4)中斷是是一種種運(yùn)行機(jī)機(jī)制可分為硬硬件中斷斷和軟件件中斷。。大多數(shù)微微處理器器都提供供關(guān)中斷斷和開(kāi)中中斷的方方法,在在實(shí)時(shí)內(nèi)內(nèi)核中對(duì)對(duì)中斷處處理用以以下三個(gè)個(gè)時(shí)間指指標(biāo)來(lái)評(píng)評(píng)價(jià):中斷延遲遲時(shí)間、、中斷響響應(yīng)時(shí)間間、中斷斷恢復(fù)時(shí)時(shí)間中斷延遲遲時(shí)間::在實(shí)時(shí)時(shí)內(nèi)核中中,經(jīng)常常要遇到到關(guān)中斷斷和開(kāi)中中斷的情情況,關(guān)關(guān)中斷時(shí)時(shí)間越長(zhǎng)長(zhǎng),中斷斷延遲就就越長(zhǎng)。。中斷延遲遲時(shí)間=關(guān)中斷的的最長(zhǎng)時(shí)時(shí)間+中斷服務(wù)務(wù)例程開(kāi)開(kāi)始執(zhí)行行時(shí)間中斷響應(yīng)應(yīng)時(shí)間從中斷發(fā)發(fā)生到開(kāi)開(kāi)始執(zhí)行行用戶(hù)的的中斷服服務(wù)程序序的時(shí)間間。中斷斷響應(yīng)時(shí)時(shí)間包括括開(kāi)始處處理這個(gè)個(gè)中斷前前的全部部開(kāi)銷(xiāo)。。對(duì)于可剝剝奪型內(nèi)內(nèi)核,則則可剝奪奪型內(nèi)核核由下面面的表達(dá)達(dá)式給出出:中斷響應(yīng)應(yīng)時(shí)間=中斷延遲遲時(shí)間+保存CPU內(nèi)部寄存存器的時(shí)時(shí)間+內(nèi)核的進(jìn)進(jìn)入中斷斷服務(wù)函函數(shù)的執(zhí)執(zhí)行時(shí)間間中斷響應(yīng)應(yīng)時(shí)間是是系統(tǒng)在在最壞情情況下的的響應(yīng)中中斷的時(shí)時(shí)間。中斷恢復(fù)復(fù)時(shí)間對(duì)于可剝剝奪型內(nèi)內(nèi)核,中中斷恢復(fù)復(fù)時(shí)間((InterruptRecoveryTime)定義為為:微處處理器返返回到被被中斷了了的程序序代碼或或更高優(yōu)優(yōu)先級(jí)任任務(wù)代碼碼所需要要的時(shí)間間。下面是可可剝奪型型內(nèi)核的的中斷恢恢復(fù)時(shí)間間公式::中斷恢復(fù)復(fù)時(shí)間=判定是否否有優(yōu)先先級(jí)更高高的任務(wù)務(wù)進(jìn)入就就緒態(tài)的的時(shí)間+恢復(fù)此優(yōu)優(yōu)先級(jí)更更高的CPU內(nèi)部寄存存器的時(shí)時(shí)間+執(zhí)行中斷斷返回指指令的時(shí)時(shí)間雖然中斷斷服務(wù)的的處理時(shí)時(shí)間應(yīng)該該盡量短短,但是是對(duì)處理理時(shí)間并并沒(méi)有絕絕對(duì)的限限制。另外,要要考慮是是否中斷斷服務(wù)子子程序中中開(kāi)中斷斷,以允允許優(yōu)先先級(jí)更高高的中斷斷進(jìn)入并并優(yōu)先得得到服務(wù)務(wù)。動(dòng)態(tài)實(shí)時(shí)時(shí)調(diào)度算算法實(shí)時(shí)系統(tǒng)統(tǒng)的任務(wù)務(wù)調(diào)度算算法主要要有以下下三種速率單調(diào)調(diào)算法((RateMonotonicAlgorithm)該算法法事先為為每個(gè)任任務(wù)分配配一個(gè)與與事件發(fā)發(fā)生概率率成正比比的優(yōu)先先級(jí),調(diào)調(diào)度程序序總是調(diào)調(diào)度優(yōu)先先級(jí)最高高的就緒緒任務(wù),,必要時(shí)時(shí)將剝奪奪當(dāng)前任任務(wù)的CPU使用權(quán),,讓高優(yōu)優(yōu)先級(jí)的的任務(wù)運(yùn)運(yùn)行。最早截止止時(shí)間優(yōu)優(yōu)先算法法(EarliestDeadlineFirst)當(dāng)檢檢測(cè)到一一個(gè)事件件時(shí),對(duì)對(duì)應(yīng)的處處理進(jìn)程程任務(wù)就就加入就就緒進(jìn)程程表中,,該表以以截止時(shí)時(shí)間排序序,調(diào)度度程序總總是使最最早截止止時(shí)間的的那個(gè)進(jìn)進(jìn)程任務(wù)務(wù)運(yùn)行。。5.4..3幾種典型型嵌入式式實(shí)時(shí)操操作系統(tǒng)統(tǒng)(1)VxWorks(2)uc//OS--II(3)uclinux(4)eCOS最小松弛弛時(shí)間優(yōu)優(yōu)先(LeastLaxity)算法,最小裕度度算法。。操作系系統(tǒng)選擇擇裕度最最小的任任務(wù),使使其占用用處理器器。5.5汽車(chē)電子子的開(kāi)放放系統(tǒng)及及接口標(biāo)標(biāo)準(zhǔn)-OSEK在上所述述的背景景下,針針對(duì)汽車(chē)車(chē)控制的的操作系系統(tǒng)標(biāo)準(zhǔn)準(zhǔn)也應(yīng)運(yùn)運(yùn)而生,,其中,,OSEK(OpenSystemsandtheCorrespondinginterfacesforAutomotiveElectronics)逐漸在汽汽車(chē)行業(yè)業(yè)中得到到越來(lái)越越多的認(rèn)認(rèn)可。OSEK的主要內(nèi)內(nèi)容之一一是定義義了汽車(chē)車(chē)領(lǐng)域的的實(shí)時(shí)操操作系統(tǒng)統(tǒng)標(biāo)準(zhǔn),,通過(guò)建建立OSEK標(biāo)準(zhǔn),將將軟件的的應(yīng)用層層和系統(tǒng)統(tǒng)層完全全分離開(kāi)開(kāi)。OSEK標(biāo)準(zhǔn)包括括以下七七個(gè)部分分:1.OSEK/VDX操作系統(tǒng)統(tǒng)規(guī)范((OSEKos)2.OSEK/VDX通信規(guī)范范(3)OSEK/VDX實(shí)現(xiàn)語(yǔ)言言規(guī)范(4)OSEK/ORTI規(guī)范(5)OSEK-Time規(guī)范(7)OSEKFTCom規(guī)范符合OSEK/VDX規(guī)范具有有以下優(yōu)優(yōu)點(diǎn):應(yīng)用程序序與硬件件屏蔽,,軟件模模塊可并并行開(kāi)發(fā)發(fā);任務(wù)擴(kuò)展展性好,,修改方方便;可以完全全圖形化化設(shè)計(jì),,直接生生成源代代碼;通過(guò)OIL文件描述述整個(gè)操操作系統(tǒng)統(tǒng),易于于版本管管理。5.5..1OSEK的任務(wù)管管理OSEK中提高兩兩類(lèi)任務(wù)務(wù):基本本任務(wù)(BasicTask)和擴(kuò)展任任務(wù)(ExtendedTask)。基本任任務(wù)用來(lái)來(lái)完成那那些激活活后就必必須完整整執(zhí)行的的工作。。擴(kuò)展任任務(wù)可以以接受事事件的優(yōu)優(yōu)先級(jí),,被賦予予固定優(yōu)優(yōu)先級(jí),,運(yùn)行期期間不允允許改變變。事件(Event)也被稱(chēng)稱(chēng)為資源源(Resource),可以同步步任務(wù)的的執(zhí)行。?;救蝿?wù)務(wù)具有三三種狀態(tài)態(tài):運(yùn)行行狀態(tài)、、就緒狀狀態(tài)、掛掛起狀態(tài)態(tài);擴(kuò)展展任務(wù)比比基本任任務(wù)增加加一個(gè)等等待狀態(tài)態(tài)?;救蝿?wù)務(wù)只有在在開(kāi)始和和結(jié)束時(shí)時(shí)才有同同步點(diǎn)。。擴(kuò)展任任務(wù)運(yùn)行行時(shí)可能能進(jìn)入等等待狀態(tài)態(tài)。如圖5-13所示,狀狀態(tài)轉(zhuǎn)換換有激活活、啟動(dòng)動(dòng)、等待待、釋放放、搶占占和終止止。激活:任任務(wù)由掛掛起狀態(tài)態(tài)變?yōu)榫途途w狀態(tài)態(tài)。激活活后,任任務(wù)就可可以參與與調(diào)度,,并獲得得執(zhí)行。。啟動(dòng):將將任務(wù)由由就緒狀狀態(tài)變?yōu)闉檫\(yùn)行狀狀態(tài),這這個(gè)過(guò)程程由任務(wù)務(wù)調(diào)度器器進(jìn)行控控制。等待:任任務(wù)由運(yùn)運(yùn)行狀態(tài)態(tài)變?yōu)榈鹊却隣顟B(tài)態(tài)。任務(wù)務(wù)通過(guò)進(jìn)進(jìn)入等待待事件發(fā)發(fā)生,實(shí)實(shí)現(xiàn)與事事件的同同步,系系統(tǒng)函數(shù)數(shù)WaitEvent(()會(huì)使任務(wù)務(wù)進(jìn)入等等待狀態(tài)態(tài)。釋放:任任務(wù)由等等待狀態(tài)態(tài)變?yōu)榫途途w狀態(tài)態(tài)。當(dāng)任任務(wù)等待待的事件件發(fā)生,,任務(wù)則則退出等等待狀態(tài)態(tài),等待待操作系系統(tǒng)的調(diào)調(diào)度。搶占:任任務(wù)由運(yùn)運(yùn)行狀態(tài)態(tài)變?yōu)榫途途w狀態(tài)態(tài)。當(dāng)有有更高優(yōu)優(yōu)先級(jí)任任務(wù)進(jìn)入入就緒狀狀態(tài),任任務(wù)就有有可能被被搶占。。任務(wù)調(diào)調(diào)度器負(fù)負(fù)責(zé)各任任務(wù)的啟啟動(dòng)和搶搶占。終止:任任務(wù)由運(yùn)運(yùn)行狀態(tài)態(tài)變掛起起狀態(tài)。。任務(wù)終終止后,,任務(wù)不不再參與與任務(wù)調(diào)調(diào)度。OSEKOS支持三種種調(diào)度方方式:搶搶占調(diào)度度、非搶搶占調(diào)度度、混合合調(diào)度。。非搶占調(diào)調(diào)度機(jī)制制要求只只有在重重調(diào)度點(diǎn)點(diǎn)才能從從運(yùn)行中中的任務(wù)務(wù)轉(zhuǎn)去執(zhí)執(zhí)行其他他任務(wù)。。搶占調(diào)度度機(jī)制要要求在滿滿足操作作系統(tǒng)預(yù)預(yù)定的觸觸發(fā)條件件時(shí)重新新調(diào)度處處于運(yùn)行行的任務(wù)務(wù)。混合調(diào)度度是指在在同一系系統(tǒng)中即即存在搶搶占調(diào)度度任務(wù)又又存在非非搶占調(diào)調(diào)度任務(wù)務(wù)。5.5..2OSEK的一致性性O(shè)SEK中任務(wù)由由以下三三個(gè)組成成部分組組成:任任務(wù)程序序代碼、、任務(wù)堆堆棧和任任務(wù)控制制塊。其中,任任務(wù)控制制塊用來(lái)來(lái)保存任任務(wù)屬性性;任務(wù)務(wù)堆棧用用來(lái)保護(hù)護(hù)任務(wù)上上下文;;任務(wù)程程序代碼碼是任務(wù)務(wù)的執(zhí)行行部分。。OSEK操作系統(tǒng)統(tǒng)的調(diào)度度行為并并非嚴(yán)格格的固定定優(yōu)先級(jí)級(jí)。由于于共享資資源以及及混合搶搶占調(diào)度度戰(zhàn)略的的存在,,操作系系統(tǒng)需要要時(shí)刻保保證最高高優(yōu)先級(jí)級(jí)的就緒緒任務(wù)得得到運(yùn)行行。一致類(lèi)的的概念可可以使開(kāi)開(kāi)發(fā)者根根據(jù)應(yīng)用用靈活地地配置操操作系統(tǒng)統(tǒng)調(diào)度程程序。OSEK系統(tǒng)中定定義了4種一致類(lèi)類(lèi):BCC1,BCC2,,ECC1,ECC2。一致類(lèi)的的劃分是是根據(jù)每每個(gè)優(yōu)先先級(jí)可能能具有的的任務(wù)個(gè)個(gè)數(shù)、需需要的是是基本任任務(wù)還是是擴(kuò)展任任務(wù)來(lái)決決定。BCC1:表示在在應(yīng)用系系統(tǒng)中,,每個(gè)優(yōu)優(yōu)先級(jí)上上只有一一個(gè)任務(wù)務(wù),且是是基本任任務(wù)。ECC1:表示在在應(yīng)用系系統(tǒng)中,,每個(gè)優(yōu)優(yōu)先級(jí)上上只有一一個(gè)任務(wù)務(wù),且是是擴(kuò)展任任務(wù)。BCC2:表示在在應(yīng)用系系統(tǒng)中,,每個(gè)優(yōu)優(yōu)先級(jí)上上有多個(gè)個(gè)任務(wù),,且是基基本任務(wù)務(wù)。ECC2:表示在在應(yīng)用系系統(tǒng)中,,每個(gè)優(yōu)優(yōu)先級(jí)上上有多個(gè)個(gè)任務(wù),,且是擴(kuò)擴(kuò)展任務(wù)務(wù)。在實(shí)時(shí)操操作系統(tǒng)統(tǒng)中,調(diào)調(diào)度機(jī)制制的核心心是調(diào)度度器,調(diào)調(diào)度不僅僅需要保保證正確確性。其其實(shí)現(xiàn)也也必須是是高效的的。調(diào)度度的主要要工作如如下:根據(jù)就緒緒任務(wù)的的優(yōu)先級(jí)級(jí),選擇擇最重要要的任務(wù)務(wù)優(yōu)先運(yùn)運(yùn)行;如果需要要切換任任務(wù),將將任務(wù)上上下文切切換。在OSEK操作系統(tǒng)統(tǒng)中,調(diào)調(diào)度有其其額外的的、特殊殊的需求求;OSEK操作系統(tǒng)統(tǒng)內(nèi)核模模塊如圖5-14所示在BCC2和ECC2一致類(lèi)中中,能夠夠正確處處理基本本任務(wù)的的多次激激活。如如果一個(gè)個(gè)任務(wù)被被多次激激活,那那么這個(gè)個(gè)任務(wù)需需要多次次執(zhí)行,,并且任任務(wù)執(zhí)行行的順序序與任務(wù)務(wù)激活順順序一致致。當(dāng)有任務(wù)務(wù)就緒時(shí)時(shí),根據(jù)據(jù)任務(wù)原原始優(yōu)先先級(jí)定位位到它所所屬的就就緒隊(duì)列列,根據(jù)據(jù)先進(jìn)先先出(FirstinFirstout)原則,,將其插插入隊(duì)列列尾部。。需要支持持OSEK優(yōu)先級(jí)天天花板協(xié)協(xié)議,包包括計(jì)算算資源優(yōu)優(yōu)先級(jí)((在系統(tǒng)統(tǒng)生成時(shí)時(shí)計(jì)算完完成)以以及獲得得資源時(shí)時(shí)任務(wù)優(yōu)優(yōu)先級(jí)的的變化。。5.5..3中斷處理理在一些嵌嵌入式系系統(tǒng),中中斷是外外部事件件的關(guān)鍵鍵接口,,中斷源源可能是是實(shí)時(shí)時(shí)時(shí)鐘、能能發(fā)送觸觸發(fā)脈沖沖信號(hào)的的傳感器器或用戶(hù)戶(hù)定義的的中斷源源。OSEK的中斷服服務(wù)程序序分為ISR1和ISR2兩種,如如圖5-15所示。ISR1:此類(lèi)中中斷服務(wù)務(wù)程序不不使用操操作系統(tǒng)統(tǒng)的資源源,ISR結(jié)束后,,處理程程序?qū)膹漠a(chǎn)生中中斷的地地方繼續(xù)續(xù)執(zhí)行。。ISR2:這類(lèi)中中斷服務(wù)務(wù)程序是是系統(tǒng)生生成時(shí),,由操作作系統(tǒng)通通過(guò)用戶(hù)戶(hù)子程序序配置成成的,它它可以調(diào)調(diào)用操作作系統(tǒng)的的API函數(shù)。5.5..5事件機(jī)制制在OSEK中,事件件機(jī)制::是同步的的方法;;僅僅提供供給ExtendedTasks;用于Task的初始化化狀態(tài)改改變和從從等待到到就緒的的狀態(tài)改改變;事件是通通過(guò)操作作系統(tǒng)管管理的對(duì)對(duì)象,它它們不是是獨(dú)立的的對(duì)象,,而是分分配給擴(kuò)擴(kuò)展任務(wù)務(wù)(ExtendedTasks)。每個(gè)個(gè)擴(kuò)展任任務(wù)有一一個(gè)固定定的事件件號(hào),一一個(gè)獨(dú)立立的事件件被它的的所有者者和它名名字識(shí)別別??傊?,事事件機(jī)制制保證不不同擴(kuò)展展任務(wù)之之間的同同步并且且使任務(wù)務(wù)的狀態(tài)態(tài)從等待待狀態(tài)轉(zhuǎn)轉(zhuǎn)換到就就緒狀態(tài)態(tài)或者從從運(yùn)行狀狀態(tài)換到到等待狀狀態(tài)。搶占調(diào)度度下事件件的同步步機(jī)制如如圖5-17所示。非搶占調(diào)調(diào)度下事事件的同同步機(jī)制制如圖5-18所示。5.5..5資源管理理具有不同同優(yōu)先級(jí)級(jí)的任務(wù)務(wù)訪問(wèn)共共享資源源需要使使用資源源管理機(jī)機(jī)制進(jìn)行行協(xié)調(diào)。。任務(wù)通通過(guò)采用用最高限限度優(yōu)先先級(jí)(PriorityCeiling)協(xié)議可以以避免優(yōu)優(yōu)先級(jí)倒倒置。最高限度度優(yōu)先級(jí)級(jí)如圖5-19所示。最高限度度優(yōu)先級(jí)級(jí)協(xié)議的的就緒隊(duì)隊(duì)列如圖5-20所示。任務(wù)A、B原始優(yōu)先先級(jí)均為為0,從就緒緒隊(duì)列為為空開(kāi)始始,按照照A、B、A、B的順序依依次激活活對(duì)應(yīng)的的任務(wù)。。只有當(dāng)當(dāng)前運(yùn)行行的任務(wù)務(wù)可以獲獲得資源源。5.5..6警報(bào)器管管理OSEK標(biāo)準(zhǔn)中規(guī)規(guī)定警報(bào)報(bào)基于系系統(tǒng)時(shí)鐘鐘或者基基于其他他某種計(jì)計(jì)數(shù)器。。OSEK使用硬件件定時(shí)器器產(chǎn)生中中斷來(lái)實(shí)實(shí)現(xiàn)系統(tǒng)統(tǒng)時(shí)鐘。。OSEK為每個(gè)計(jì)計(jì)數(shù)器維維護(hù)一個(gè)個(gè)警報(bào)隊(duì)隊(duì)列,每每個(gè)計(jì)數(shù)數(shù)器的頭頭指針指指向警報(bào)報(bào)隊(duì)列的的隊(duì)頭。。5.5..7OSEKCOM和OSEKNMOSEKCOM規(guī)范為汽汽車(chē)ECU應(yīng)用軟件件提供了了統(tǒng)一的的通信環(huán)環(huán)境。通通過(guò)定義義應(yīng)用軟軟件通信信接口以以及ECU內(nèi)部通信信和ECU外部通信信,OSEKCOM規(guī)范提高高了應(yīng)用用程序模模塊的可可移植性性。OSEKCOM中通信是是基于消消息的。。消息包包括了特特定應(yīng)用用的數(shù)據(jù)據(jù)。消息息和消息息屬性通通過(guò)OSEK實(shí)現(xiàn)語(yǔ)言言(OIL)靜態(tài)配配置。在內(nèi)部通通信情況況下,交交互層((InteractionLayerIL)使消息息立即發(fā)發(fā)送到接接收方。。在外部部通信情情況下,,IL將一個(gè)或或多個(gè)消消息壓縮縮成指定定的交互互層協(xié)議議數(shù)據(jù)單單元(InteractionProtocolDataUnitI-PDU)。并把把它傳
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026陜西寧強(qiáng)縣漢江源景區(qū)招聘考試參考試題及答案解析
- 2026西安經(jīng)開(kāi)第十四小學(xué)舞蹈教師招聘考試備考試題及答案解析
- 2026四川德陽(yáng)市第六人民醫(yī)院(東汽醫(yī)院)面向社會(huì)招聘編外人員10人考試參考試題及答案解析
- 2026磨憨開(kāi)發(fā)投資有限責(zé)任公司市場(chǎng)化選聘高級(jí)管理人員2人(云南)考試備考題庫(kù)及答案解析
- 2026福建莆田市城廂區(qū)考核招聘編內(nèi)新任教師20人考試參考試題及答案解析
- 2026重慶合川區(qū)人民醫(yī)院招聘8人考試備考試題及答案解析
- 2026年甘肅蘭州紅古區(qū)醫(yī)保局招聘公益性崗位人員考試備考題庫(kù)及答案解析
- 2026渭南市富平縣和諧幼兒園招聘(4人)考試備考試題及答案解析
- 2026年桂林師范高等專(zhuān)科學(xué)校單招綜合素質(zhì)考試備考題庫(kù)帶答案解析
- 2026海南??谑旋埲A區(qū)勞動(dòng)就業(yè)和社會(huì)保障管理中心招聘公益性崗位工作人員4人考試參考試題及答案解析
- 2026年1月福建廈門(mén)市集美區(qū)后溪鎮(zhèn)衛(wèi)生院補(bǔ)充編外人員招聘16人筆試模擬試題及答案解析
- 2026年長(zhǎng)治職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)附答案解析
- 2026年丹東市人力資源和社會(huì)保障局公開(kāi)選聘法律顧問(wèn)備考題庫(kù)及完整答案詳解一套
- 2026年干部綜合能力高頻知識(shí)點(diǎn)測(cè)試題附解析
- GB/T 46544-2025航空航天用螺栓連接橫向振動(dòng)防松試驗(yàn)方法
- 炎德·英才大聯(lián)考長(zhǎng)沙市一中2026屆高三月考(五)歷史試卷(含答案詳解)
- 云南師大附中2026屆高三高考適應(yīng)性月考卷(六)思想政治試卷(含答案及解析)
- 建筑安全風(fēng)險(xiǎn)辨識(shí)與防范措施
- CNG天然氣加氣站反恐應(yīng)急處置預(yù)案
- 培訓(xùn)教師合同范本
評(píng)論
0/150
提交評(píng)論