




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022/12/101現(xiàn)代汽車電子技術(shù)信號與信息處理研究所丁山2022/12/81現(xiàn)代汽車電子技術(shù)信號與信息處理研究所第5章汽車嵌入式系統(tǒng)軟件的基礎(chǔ)5.1基本概念5.1.1嵌入式系統(tǒng)的軟件
軟件系統(tǒng)通常包括兩部分,其一是系統(tǒng)軟件,包括嵌入式操作系統(tǒng)及在它之下的各種應(yīng)用軟件;其二是用戶的應(yīng)用程序。
嵌入式系統(tǒng)應(yīng)具有很高的可靠性,在惡劣的環(huán)境中依然正常工作,具有很高的實(shí)時(shí)性要求質(zhì)量和可靠性更高。
面向嵌入式系統(tǒng)的操作系統(tǒng)有以下特點(diǎn):要求代碼量少,可進(jìn)行裁剪和移植;實(shí)時(shí)性強(qiáng);可靠性高。第5章汽車嵌入式系統(tǒng)軟件的基礎(chǔ)5.1基本概念5.1.
嵌入式系統(tǒng)的存儲器一般包括程序空間(Rom或Flash)、數(shù)據(jù)空間(Ram)和I/O空間。
在嵌入式系統(tǒng)中,程序空間一般采用的是非易失性存儲器。目前大多數(shù)嵌入式系統(tǒng)采用Flash來存放代碼和一些常數(shù)。
數(shù)據(jù)空間用于存放所有數(shù)據(jù),系統(tǒng)堆棧也處于此空間,一般采用易失性存儲器。有片內(nèi)數(shù)據(jù)空間與片外數(shù)據(jù)空間。I/O空間;采用統(tǒng)一編址的處理器。I/O空間與內(nèi)存空間無關(guān)。5.1.2嵌入式系統(tǒng)的存儲器結(jié)構(gòu)嵌入式系統(tǒng)的存儲器一般包括程序空間(Rom或F4.1.3嵌入式系統(tǒng)軟件的功能及其特點(diǎn)
(1)系統(tǒng)啟動:一旦復(fù)位信號有效,處理器先需運(yùn)行初始化程序。
(2)控制硬件:設(shè)備可能是端口映射的(I/O與存儲器獨(dú)立編址),也有可能是內(nèi)存映射的(I/O與存儲器統(tǒng)一編址)。
(3)按位操作:需要操作硬件寄存器內(nèi)某個(gè)二進(jìn)制位。
(4)軟件要求固態(tài)化存儲:嵌入式軟件一般都固化在存儲器芯片或處理器中,而不是在磁盤中。
(5)軟件的高實(shí)時(shí)性4.1.3嵌入式系統(tǒng)軟件的功能及其特點(diǎn)(1)
(6)代碼執(zhí)行速度和代碼效率:如果ISR或其他例程有嚴(yán)格的時(shí)序要求,應(yīng)考慮使用匯編編寫;
通過指針而不是變量的引用執(zhí)行操作,編譯器就能產(chǎn)生占用空間更少并且運(yùn)行速度更快的代碼。如果某個(gè)函數(shù)操作同樣的變量好幾次,通過指針來進(jìn)行訪問通常會產(chǎn)生更有效率的代碼。
(7)中斷與中斷服務(wù)程序:中斷切換機(jī)制是相同的,但不同的處理器在實(shí)現(xiàn)細(xì)節(jié)上還有不同。(6)代碼執(zhí)行速度和代碼效率:通過指針而不是變
(8)可嵌套的中斷與可重入性:如果允許中斷嵌套,要確認(rèn)所有在中斷服務(wù)例程運(yùn)行期間被調(diào)用的函數(shù)不是可重入的。。
可重入是指函數(shù)在不必關(guān)心同步或相互訪問的情況下能被來自不同任務(wù)的程序異步調(diào)用。
(9)需要了解程序執(zhí)行時(shí)間80和20原則,80%的速度問題存在于20%的代碼中。
(10)發(fā)布嵌入式系統(tǒng)程序的方法a.編寫的代碼作為硬件的一部分b.運(yùn)行加載c.IPOEM(OriginalEquipmentManufacture)方式(8)可嵌套的中斷與可重入性:如果允許中斷嵌
(11)應(yīng)用中可編程(InApplicationProgram,IAP)功能a.引導(dǎo)裝載程序b.Flash編程算法c.最新軟件映像的下載程序(11)應(yīng)用中可編程(InApplicati5.2傳統(tǒng)嵌入式系統(tǒng)軟件的開發(fā)方法及其特點(diǎn)
操作系統(tǒng)及嵌入式操作系統(tǒng)的選擇
如果系統(tǒng)復(fù)雜,需要選用操作系統(tǒng)。前后臺系統(tǒng)。能夠處理關(guān)鍵實(shí)時(shí)事件及中斷服務(wù)程序(ISR)的簡單循環(huán)代碼,該過程簡單,但相當(dāng)實(shí)用。無優(yōu)先級別的操作系統(tǒng):可以將后臺工作轉(zhuǎn)化為可預(yù)先處理的工作。有優(yōu)先級別的操作系統(tǒng):在外部事件(比如中斷等)發(fā)生時(shí)和操作系統(tǒng)內(nèi)部調(diào)用時(shí)切換任務(wù)。5.2傳統(tǒng)嵌入式系統(tǒng)軟件的開發(fā)方法及其特點(diǎn)操M(fèi)ISRAC:1994年英國成立了一個(gè)汽車工業(yè)軟件可靠性聯(lián)合會(theMotorIndustrySoftwareReliabilityAssociation,MISRA),該組織于1998年發(fā)布了針對汽車軟件安全性的C語言編程規(guī)范?;谌蝿?wù)的設(shè)計(jì)方法
在系統(tǒng)設(shè)計(jì)階段,嵌入式系統(tǒng)的設(shè)計(jì)通常采用DARTS(DesignApproachforRealtimesystem)設(shè)計(jì)方法進(jìn)行任務(wù)設(shè)計(jì)。DARTS給出系統(tǒng)任務(wù)劃分的方法和定義任務(wù)間接口的機(jī)制。對傳統(tǒng)的軟件結(jié)構(gòu)化設(shè)計(jì)方法的擴(kuò)展。MISRAC:1994年英國成立了一個(gè)汽車工業(yè)軟件可靠性聯(lián)除使用程序結(jié)構(gòu)圖與程序流程圖外,采用并發(fā)圖與信息隱藏模塊,其主要功能是將實(shí)時(shí)系統(tǒng)分解為并發(fā)任務(wù)并定義并發(fā)接口。5.3嵌入式操作系統(tǒng)5.3.1嵌入式操作系統(tǒng)的基本概念
嵌入式操作系統(tǒng)的特點(diǎn)
嵌入式系統(tǒng)引入操作系統(tǒng)的原因5.3.2嵌入式操作系統(tǒng)的內(nèi)核分類及基本結(jié)構(gòu)
單一內(nèi)核;微內(nèi)核除使用程序結(jié)構(gòu)圖與程序流程圖外,采用并發(fā)圖與信息隱藏模塊,其層次劃分:硬件接口層,核心層,系統(tǒng)層和應(yīng)用服務(wù)接口層。
應(yīng)用服務(wù)接口層:提供基于系統(tǒng)功能的、面向應(yīng)用的系統(tǒng)功能調(diào)用服務(wù)接口。
系統(tǒng)層:提供面向?qū)ο蟮南到y(tǒng)資源管理功能,如內(nèi)存管理、文件管理、設(shè)備管理、網(wǎng)絡(luò)協(xié)議管理等。
核心層:包括運(yùn)行系統(tǒng)所需要的最基本的功能模塊,核心層針對應(yīng)用提供幾種最基本的服務(wù),如系統(tǒng)時(shí)鐘、電源管理、程序裝載于運(yùn)行、進(jìn)程調(diào)度、內(nèi)存管理等。
硬件接口層:提供與嵌入式硬件系統(tǒng)交互的接口。層次劃分:硬件接口層,核心層,系統(tǒng)層和應(yīng)用服務(wù)接口層。5.3.3嵌入式操作系統(tǒng)內(nèi)核的基本功能模塊
進(jìn)程管理:操作系統(tǒng)需要為進(jìn)程分配資源,實(shí)現(xiàn)進(jìn)程間共享和交換信息,保護(hù)進(jìn)程資源,以及實(shí)現(xiàn)進(jìn)程間同步。
在嵌入式開發(fā)中,往往用任務(wù)的概念表述內(nèi)核可以獨(dú)立調(diào)度的單元。任務(wù)狀態(tài)一般分為:運(yùn)行狀態(tài)、就緒狀態(tài)、等待狀態(tài)等。三種狀態(tài)通過操作系統(tǒng)進(jìn)程調(diào)度程序來調(diào)度。
任務(wù)調(diào)度方法大致分為三種:優(yōu)先級調(diào)度、輪轉(zhuǎn)調(diào)度和時(shí)間片調(diào)度;5.3.3嵌入式操作系統(tǒng)內(nèi)核的基本功能模塊
內(nèi)存管理:一般通用操作系統(tǒng)的存儲管理非常復(fù)雜,虛擬管理技術(shù)被廣泛地使用。
嵌入式操作系統(tǒng)的存儲管理通常比較簡單,在具體的嵌入式應(yīng)用中,進(jìn)程的數(shù)量和可能用到的內(nèi)存容量是可預(yù)測的,因此,多采用靜態(tài)內(nèi)存管理。在內(nèi)存分配策略上往往提供幾種分配策略。
存儲管理的內(nèi)存保護(hù),在一般的操作系統(tǒng)中,每個(gè)應(yīng)用程序都有自己的地址空間,不能任意訪問其他應(yīng)用程序的地址空間。某些嵌入式系統(tǒng)應(yīng)用對內(nèi)存保護(hù)有非常嚴(yán)格的要求。
內(nèi)存被分成操作系統(tǒng)的駐留程序,另外給用戶進(jìn)程。內(nèi)存管理:一般通用操作系統(tǒng)的存儲管理非常復(fù)雜,
中斷管理:計(jì)算機(jī)系統(tǒng)處理外部事件有兩種方式:中斷和查詢。在操作系統(tǒng)中,中斷與中斷處理程序聯(lián)系在一起的。
多數(shù)嵌入式操作系統(tǒng)都是事件驅(qū)動的。中斷處理函數(shù)引起任務(wù)切換如下:執(zhí)行到任務(wù)A->響應(yīng)中斷執(zhí)行并執(zhí)行中斷處理程序,切換到任務(wù)B->任務(wù)B運(yùn)行退出后,切換到任務(wù)A->任務(wù)A繼續(xù)運(yùn)行。
在中斷處理上,一般操作系統(tǒng)與嵌入式操作系統(tǒng)的不同之處在于現(xiàn)場保護(hù)。一般操作系統(tǒng)的現(xiàn)場保護(hù)由操作系統(tǒng)來完成,在嵌入式操作系統(tǒng)中,由中斷處理器程序來完成。中斷管理:計(jì)算機(jī)系統(tǒng)處理外部事件有兩種方式
在中斷處理程序的入口要保護(hù)中斷處理程序中要用到的寄存器,在中斷處理完成后恢復(fù)。這樣,以損失系統(tǒng)安全性為代價(jià),同時(shí)增加了調(diào)試難度。
如果系統(tǒng)面臨多個(gè)中斷信號同時(shí)發(fā)生的情況。則存在ISR響應(yīng)先后的問題。
操作系統(tǒng)與應(yīng)用程序的接口-API
從操作系統(tǒng)的角度來看,提供用戶有兩類接口:一是人機(jī)界面。另一類接口是操作系統(tǒng)提供給用戶的應(yīng)用程序的API函數(shù),也就是系統(tǒng)調(diào)用。在中斷處理程序的入口要保護(hù)中斷處理程序中要用到5.3.5嵌入式操作系統(tǒng)環(huán)境下的任務(wù)
前/后臺系統(tǒng)中,任務(wù)間的切換很簡單,不必為每個(gè)任務(wù)安排堆棧,也不必保存每個(gè)任務(wù)所使用的cpu寄存器。5.3.6嵌入式操作系統(tǒng)的任務(wù)調(diào)度方式不可搶占式調(diào)度(如圖5-6所示)
可搶占式調(diào)度(如圖5-7所示)
時(shí)間片輪轉(zhuǎn)調(diào)度5.3.5嵌入式操作系統(tǒng)環(huán)境下的任務(wù)前/后臺系統(tǒng)中,任務(wù)5.3.7嵌入式操作系統(tǒng)下任務(wù)間通信
中斷與任務(wù)間的通信即消息傳遞,是由嵌入式操作系統(tǒng)的內(nèi)核完成的,通信方式有兩個(gè)途徑即全局變量或消息。
通過全局消息進(jìn)行通信控制中斷控制任務(wù)切換采用TAS操作,即處理允許標(biāo)志控制法利用信號量
通過消息郵箱或消息隊(duì)列,消息郵箱的示意圖如圖5-8所示,消息隊(duì)列的示意圖如圖5-9所示。5.3.7嵌入式操作系統(tǒng)下任務(wù)間通信
嵌入式操作系統(tǒng)實(shí)時(shí)性要求
利用操作系統(tǒng)不僅可以極大地減少系統(tǒng)開發(fā)的工作總量,而且可以提高嵌入式系統(tǒng)軟件的可移植性。
系統(tǒng)的響應(yīng)時(shí)間與信號的動態(tài)特性有關(guān)。這些不同的嵌入式應(yīng)用系統(tǒng)的不同響應(yīng)要求,體現(xiàn)了嵌入式對象對時(shí)間響應(yīng)要求的多樣性。
根據(jù)嵌入式應(yīng)用系統(tǒng)的激勵-運(yùn)行-響應(yīng)特性,表現(xiàn)了嵌入式實(shí)時(shí)能力的可變更性。響應(yīng)時(shí)間的多樣性要求與響應(yīng)時(shí)間可調(diào)整性,是嵌入式實(shí)時(shí)性分析的基本出發(fā)點(diǎn)。嵌入式操作系統(tǒng)實(shí)時(shí)性要求利用操作5.4嵌入式實(shí)時(shí)操作系統(tǒng)5.4.1實(shí)時(shí)系統(tǒng)在控制系統(tǒng)中,為控制器控制功能的執(zhí)行滿足和被控對象基于時(shí)間交互的要求,所以稱為實(shí)時(shí)系統(tǒng)。實(shí)時(shí)性需求首先,準(zhǔn)確合理地描述任務(wù)的時(shí)間要求,必須給出以下定義:任務(wù)激活點(diǎn)或使能瞬間點(diǎn)任務(wù)截止期響應(yīng)時(shí)間是激活點(diǎn)和任務(wù)執(zhí)行結(jié)束這一段時(shí)間5.4嵌入式實(shí)時(shí)操作系統(tǒng)5.4.1實(shí)時(shí)系統(tǒng)實(shí)時(shí)性需求任務(wù)最大允許響應(yīng)時(shí)間也稱為相對期限,任務(wù)期限也稱為絕對期限,在時(shí)間線上可以通過激活點(diǎn)和相對期限來計(jì)算絕對期限;任務(wù)周期:相連兩個(gè)激活點(diǎn)的時(shí)間間隔稱為激活周期,兩任務(wù)執(zhí)行時(shí)間間隔稱為執(zhí)行周期;
硬實(shí)時(shí)需求和軟實(shí)時(shí)需求如果要求任務(wù)必須在指定的時(shí)間間隔內(nèi)完成,該任務(wù)就稱為硬實(shí)時(shí)需求,這種情況下獲得的確認(rèn)信息既要準(zhǔn)確又要可靠。
如果沒有在指定的時(shí)間間隔內(nèi)必須要完成的要求,而僅僅是希望任務(wù)盡快完成,將被認(rèn)為軟的實(shí)時(shí)要求。最大允許響應(yīng)時(shí)間也稱為相對期限,任務(wù)期限也稱為絕對期限,在時(shí)嵌入式實(shí)時(shí)操作系統(tǒng)
實(shí)時(shí)多任務(wù)操作系統(tǒng)(Real-timemulti-taskoperatingsystem)是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。RTOS是針對不同的處理器優(yōu)化設(shè)計(jì)的高效率實(shí)時(shí)多任務(wù)內(nèi)核。RTOS最關(guān)鍵的部分是實(shí)時(shí)多任務(wù)內(nèi)核,它的基本功能包括任務(wù)管理、定時(shí)器管理、存儲器管理、資源管理、事件管理、消息管理、隊(duì)列管理等等。嵌入式實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)多任務(wù)操作系統(tǒng)(R
嵌入式實(shí)時(shí)系統(tǒng)的特點(diǎn):
實(shí)時(shí)操作系統(tǒng)一般具有以下特點(diǎn):實(shí)時(shí)操作系統(tǒng)的內(nèi)核必須非常小,即微內(nèi)核設(shè)計(jì)可重入,因?yàn)椴豢芍厝氲膬?nèi)核比然帶來慢速的中斷響應(yīng)和不可預(yù)測的操作時(shí)間系統(tǒng)能夠快速進(jìn)行任務(wù)切換,保證任務(wù)搶先和deadline的完成盡量減少中斷的時(shí)間提供固定或者可變的內(nèi)存管理機(jī)制嵌入式實(shí)時(shí)系統(tǒng)的特點(diǎn):實(shí)時(shí)操作提供一個(gè)能夠滿足應(yīng)用要求的實(shí)時(shí)時(shí)鐘必須提供合適的進(jìn)程任務(wù)調(diào)度的方法5.4.2嵌入式實(shí)時(shí)操作系統(tǒng)的內(nèi)核
(1)任務(wù)優(yōu)先級如果應(yīng)用程序在執(zhí)行過程中各個(gè)任務(wù)的優(yōu)先級是不變的,稱為靜態(tài)優(yōu)先級;如果在執(zhí)行過程中優(yōu)先級是可以改變的,稱為動態(tài)優(yōu)先級。
在嵌入式開發(fā)中存在一個(gè)流行的任務(wù)優(yōu)先級分配算法-單調(diào)執(zhí)行頻率調(diào)度法(RateMonotonicScheduling,RMS)--基于任務(wù)執(zhí)行的次數(shù)(執(zhí)行頻率)來分配的,執(zhí)行頻率越高,任務(wù)的優(yōu)先級越高。提供一個(gè)能夠滿足應(yīng)用要求的實(shí)時(shí)時(shí)鐘5.4.2CPU利用率:CPU利用率達(dá)到100%并不好,作為系統(tǒng)設(shè)計(jì)的一條原則:CPU利用率應(yīng)小于60%-70%。
(2)死鎖是指兩個(gè)任務(wù)無限期地相互等待對方控制著的資源。所以系統(tǒng)中應(yīng)盡量避免發(fā)生死鎖現(xiàn)象。如圖5-11所示。
一般而言,可以先讓所有的任務(wù)得到全部所需要的資源再做下一步工作以避免死鎖:
各任務(wù)用同樣的順序申請多個(gè)資源;釋放資源時(shí)使用相反的順序。
死鎖一般發(fā)生在大型多任務(wù)系統(tǒng)中,在小型的嵌入式系統(tǒng)中不易出現(xiàn)。CPU利用率:CPU利用率達(dá)到100%并不好
(3)時(shí)鐘節(jié)拍操作系統(tǒng)跳動的心臟,當(dāng)任務(wù)等待事件發(fā)生時(shí),它可以提供系統(tǒng)等待超時(shí)的依據(jù)。時(shí)鐘節(jié)拍越快,系統(tǒng)的額外開銷越大。
(4)中斷是一種運(yùn)行機(jī)制
可分為硬件中斷和軟件中斷。
大多數(shù)微處理器都提供關(guān)中斷和開中斷的方法,在實(shí)時(shí)內(nèi)核中對中斷處理用以下三個(gè)時(shí)間指標(biāo)來評價(jià):中斷延遲時(shí)間、中斷響應(yīng)時(shí)間、中斷恢復(fù)時(shí)間
中斷延遲時(shí)間:在實(shí)時(shí)內(nèi)核中,經(jīng)常要遇到關(guān)中斷和開中斷的情況,關(guān)中斷時(shí)間越長,中斷延遲就越長。(3)時(shí)鐘節(jié)拍操作系統(tǒng)跳動的心臟,當(dāng)任務(wù)等待中斷延遲時(shí)間=關(guān)中斷的最長時(shí)間+中斷服務(wù)例程開始執(zhí)行時(shí)間中斷響應(yīng)時(shí)間
從中斷發(fā)生到開始執(zhí)行用戶的中斷服務(wù)程序的時(shí)間。中斷響應(yīng)時(shí)間包括開始處理這個(gè)中斷前的全部開銷。
對于可剝奪型內(nèi)核,則可剝奪型內(nèi)核由下面的表達(dá)式給出:中斷響應(yīng)時(shí)間=中斷延遲時(shí)間+保存CPU內(nèi)部寄存器的時(shí)間+內(nèi)核的進(jìn)入中斷服務(wù)函數(shù)的執(zhí)行時(shí)間
中斷響應(yīng)時(shí)間是系統(tǒng)在最壞情況下的響應(yīng)中斷的時(shí)間。中斷延遲時(shí)間=關(guān)中斷的最長時(shí)間+中斷服務(wù)例程開始執(zhí)行時(shí)間中斷中斷恢復(fù)時(shí)間
對于可剝奪型內(nèi)核,中斷恢復(fù)時(shí)間(InterruptRecoveryTime)定義為:微處理器返回到被中斷了的程序代碼或更高優(yōu)先級任務(wù)代碼所需要的時(shí)間。
下面是可剝奪型內(nèi)核的中斷恢復(fù)時(shí)間公式:中斷恢復(fù)時(shí)間=判定是否有優(yōu)先級更高的任務(wù)進(jìn)入就緒態(tài)的時(shí)間+恢復(fù)此優(yōu)先級更高的CPU內(nèi)部寄存器的時(shí)間+執(zhí)行中斷返回指令的時(shí)間
雖然中斷服務(wù)的處理時(shí)間應(yīng)該盡量短,但是對處理時(shí)間并沒有絕對的限制。
另外,要考慮是否中斷服務(wù)子程序中開中斷,以允許優(yōu)先級更高的中斷進(jìn)入并優(yōu)先得到服務(wù)。中斷恢復(fù)時(shí)間對于可剝奪型內(nèi)核,中斷恢復(fù)時(shí)間(I動態(tài)實(shí)時(shí)調(diào)度算法實(shí)時(shí)系統(tǒng)的任務(wù)調(diào)度算法主要有以下三種
速率單調(diào)算法(RateMonotonicAlgorithm)該算法事先為每個(gè)任務(wù)分配一個(gè)與事件發(fā)生概率成正比的優(yōu)先級,調(diào)度程序總是調(diào)度優(yōu)先級最高的就緒任務(wù),必要時(shí)將剝奪當(dāng)前任務(wù)的CPU使用權(quán),讓高優(yōu)先級的任務(wù)運(yùn)行。
最早截止時(shí)間優(yōu)先算法(EarliestDeadlineFirst)當(dāng)檢測到一個(gè)事件時(shí),對應(yīng)的處理進(jìn)程任務(wù)就加入就緒進(jìn)程表中,該表以截止時(shí)間排序,調(diào)度程序總是使最早截止時(shí)間的那個(gè)進(jìn)程任務(wù)運(yùn)行。動態(tài)實(shí)時(shí)調(diào)度算法速率單調(diào)算法(RateMo5.4.3幾種典型嵌入式實(shí)時(shí)操作系統(tǒng)(1)VxWorks(2)uc/OS-II(3)uclinux(4)eCOS最小松弛時(shí)間優(yōu)先(LeastLaxity)算法,最小裕度算法。操作系統(tǒng)選擇裕度最小的任務(wù),使其占用處理器。5.4.3幾種典型嵌入式實(shí)時(shí)操作系統(tǒng)最小
5.5汽車電子的開放系統(tǒng)及接口標(biāo)準(zhǔn)-OSEK在上所述的背景下,針對汽車控制的操作系統(tǒng)標(biāo)準(zhǔn)也應(yīng)運(yùn)而生,其中,OSEK(OpenSystemsandtheCorrespondinginterfacesforAutomotiveElectronics)逐漸在汽車行業(yè)中得到越來越多的認(rèn)可。OSEK的主要內(nèi)容之一是定義了汽車領(lǐng)域的實(shí)時(shí)操作系統(tǒng)標(biāo)準(zhǔn),通過建立OSEK標(biāo)準(zhǔn),將軟件的應(yīng)用層和系統(tǒng)層完全分離開。OSEK標(biāo)準(zhǔn)包括以下七個(gè)部分:1.OSEK/VDX操作系統(tǒng)規(guī)范(OSEKos)2.OSEK/VDX通信規(guī)范5.5汽車電子的開放系統(tǒng)及接口標(biāo)準(zhǔn)-OSEK在上所(3)OSEK/VDX實(shí)現(xiàn)語言規(guī)范
(4)OSEK/ORTI規(guī)范
(5)OSEK-Time規(guī)范(7)OSEKFTCom規(guī)范
符合OSEK/VDX規(guī)范具有以下優(yōu)點(diǎn):
應(yīng)用程序與硬件屏蔽,軟件模塊可并行開發(fā);
任務(wù)擴(kuò)展性好,修改方便;
可以完全圖形化設(shè)計(jì),直接生成源代碼;
通過OIL文件描述整個(gè)操作系統(tǒng),易于版本管理。(3)OSEK/VDX實(shí)現(xiàn)語言規(guī)范符合5.5.1OSEK的任務(wù)管理OSEK中提高兩類任務(wù):基本任務(wù)(BasicTask)和擴(kuò)展任務(wù)(ExtendedTask)?;救蝿?wù)用來完成那些激活后就必須完整執(zhí)行的工作。擴(kuò)展任務(wù)可以接受事件的優(yōu)先級,被賦予固定優(yōu)先級,運(yùn)行期間不允許改變。
事件(Event)也被稱為資源(Resource),可以同步任務(wù)的執(zhí)行。
基本任務(wù)具有三種狀態(tài):運(yùn)行狀態(tài)、就緒狀態(tài)、掛起狀態(tài);擴(kuò)展任務(wù)比基本任務(wù)增加一個(gè)等待狀態(tài)。
基本任務(wù)只有在開始和結(jié)束時(shí)才有同步點(diǎn)。擴(kuò)展任務(wù)運(yùn)行時(shí)可能進(jìn)入等待狀態(tài)。5.5.1OSEK的任務(wù)管理OSEK中提高兩
如圖5-13所示,狀態(tài)轉(zhuǎn)換有激活、啟動、等待、釋放、搶占和終止。激活:任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。激活后,任務(wù)就可以參與調(diào)度,并獲得執(zhí)行。啟動:將任務(wù)由就緒狀態(tài)變?yōu)檫\(yùn)行狀態(tài),這個(gè)過程由任務(wù)調(diào)度器進(jìn)行控制。等待:任務(wù)由運(yùn)行狀態(tài)變?yōu)榈却隣顟B(tài)。任務(wù)通過進(jìn)入等待事件發(fā)生,實(shí)現(xiàn)與事件的同步,系統(tǒng)函數(shù)WaitEvent()會使任務(wù)進(jìn)入等待狀態(tài)。釋放:任務(wù)由等待狀態(tài)變?yōu)榫途w狀態(tài)。當(dāng)任務(wù)等待的事件發(fā)生,任務(wù)則退出等待狀態(tài),等待操作系統(tǒng)的調(diào)度。如圖5-13所示,狀態(tài)轉(zhuǎn)換有激活、啟動、等待、搶占:任務(wù)由運(yùn)行狀態(tài)變?yōu)榫途w狀態(tài)。當(dāng)有更高優(yōu)先級任務(wù)進(jìn)入就緒狀態(tài),任務(wù)就有可能被搶占。任務(wù)調(diào)度器負(fù)責(zé)各任務(wù)的啟動和搶占。終止:任務(wù)由運(yùn)行狀態(tài)變掛起狀態(tài)。任務(wù)終止后,任務(wù)不再參與任務(wù)調(diào)度。OSEKOS支持三種調(diào)度方式:搶占調(diào)度、非搶占調(diào)度、混合調(diào)度。非搶占調(diào)度機(jī)制要求只有在重調(diào)度點(diǎn)才能從運(yùn)行中的任務(wù)轉(zhuǎn)去執(zhí)行其他任務(wù)。
搶占調(diào)度機(jī)制要求在滿足操作系統(tǒng)預(yù)定的觸發(fā)條件時(shí)重新調(diào)度處于運(yùn)行的任務(wù)。搶占:任務(wù)由運(yùn)行狀態(tài)變?yōu)榫途w狀態(tài)。當(dāng)有更高優(yōu)先級任務(wù)進(jìn)入就緒
混合調(diào)度是指在同一系統(tǒng)中即存在搶占調(diào)度任務(wù)又存在非搶占調(diào)度任務(wù)。5.5.2OSEK的一致性O(shè)SEK中任務(wù)由以下三個(gè)組成部分組成:任務(wù)程序代碼、任務(wù)堆棧和任務(wù)控制塊。其中,任務(wù)控制塊用來保存任務(wù)屬性;任務(wù)堆棧用來保護(hù)任務(wù)上下文;任務(wù)程序代碼是任務(wù)的執(zhí)行部分。OSEK操作系統(tǒng)的調(diào)度行為并非嚴(yán)格的固定優(yōu)先級。由于共享資源以及混合搶占調(diào)度戰(zhàn)略的存在,操作系統(tǒng)需要時(shí)刻保證最高優(yōu)先級的就緒任務(wù)得到運(yùn)行?;旌险{(diào)度是指在同一系統(tǒng)中即存在搶占調(diào)度任務(wù)又
一致類的概念可以使開發(fā)者根據(jù)應(yīng)用靈活地配置操作系統(tǒng)調(diào)度程序。OSEK系統(tǒng)中定義了4種一致類:BCC1,BCC2,ECC1,ECC2。
一致類的劃分是根據(jù)每個(gè)優(yōu)先級可能具有的任務(wù)個(gè)數(shù)、需要的是基本任務(wù)還是擴(kuò)展任務(wù)來決定。BCC1:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上只有一個(gè)任務(wù),且是基本任務(wù)。ECC1:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上只有一個(gè)任務(wù),且是擴(kuò)展任務(wù)。BCC2:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上有多個(gè)任務(wù),且是基本任務(wù)。一致類的概念可以使開發(fā)者根據(jù)應(yīng)用靈活地配置操ECC2:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上有多個(gè)任務(wù),且是擴(kuò)展任務(wù)。
在實(shí)時(shí)操作系統(tǒng)中,調(diào)度機(jī)制的核心是調(diào)度器,調(diào)度不僅需要保證正確性。其實(shí)現(xiàn)也必須是高效的。調(diào)度的主要工作如下:根據(jù)就緒任務(wù)的優(yōu)先級,選擇最重要的任務(wù)優(yōu)先運(yùn)行;如果需要切換任務(wù),將任務(wù)上下文切換。在OSEK操作系統(tǒng)中,調(diào)度有其額外的、特殊的需求;OSEK操作系統(tǒng)內(nèi)核模塊如圖5-14所示ECC2:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上有多個(gè)任在BCC2和ECC2一致類中,能夠正確處理基本任務(wù)的多次激活。如果一個(gè)任務(wù)被多次激活,那么這個(gè)任務(wù)需要多次執(zhí)行,并且任務(wù)執(zhí)行的順序與任務(wù)激活順序一致。
當(dāng)有任務(wù)就緒時(shí),根據(jù)任務(wù)原始優(yōu)先級定位到它所屬的就緒隊(duì)列,根據(jù)先進(jìn)先出(FirstinFirstout)原則,將其插入隊(duì)列尾部。需要支持OSEK優(yōu)先級天花板協(xié)議,包括計(jì)算資源優(yōu)先級(在系統(tǒng)生成時(shí)計(jì)算完成)以及獲得資源時(shí)任務(wù)優(yōu)先級的變化。在BCC2和ECC2一致類中,能夠正確處理基本任務(wù)的多次激活5.5.3中斷處理
在一些嵌入式系統(tǒng),中斷是外部事件的關(guān)鍵接口,中斷源可能是實(shí)時(shí)時(shí)鐘、能發(fā)送觸發(fā)脈沖信號的傳感器或用戶定義的中斷源。OSEK的中斷服務(wù)程序分為ISR1和ISR2兩種,如圖5-15所示。ISR1:此類中斷服務(wù)程序不使用操作系統(tǒng)的資源,ISR結(jié)束后,處理程序?qū)漠a(chǎn)生中斷的地方繼續(xù)執(zhí)行。ISR2:這類中斷服務(wù)程序是系統(tǒng)生成時(shí),由操作系統(tǒng)通過用戶子程序配置成的,它可以調(diào)用操作系統(tǒng)的API函數(shù)。5.5.3中斷處理在一些嵌入式系統(tǒng),中斷
5.5.5事件機(jī)制在OSEK中,事件機(jī)制:是同步的方法;僅僅提供給ExtendedTasks;用于Task的初始化狀態(tài)改變和從等待到就緒的狀態(tài)改變;
事件是通過操作系統(tǒng)管理的對象,它們不是獨(dú)立的對象,而是分配給擴(kuò)展任務(wù)(ExtendedTasks)。每個(gè)擴(kuò)展任務(wù)有一個(gè)固定的事件號,一個(gè)獨(dú)立的事件被它的所有者和它名字識別。5.5.5事件機(jī)制在OSEK中,事件機(jī)制:總之,事件機(jī)制保證不同擴(kuò)展任務(wù)之間的同步并且使任務(wù)的狀態(tài)從等待狀態(tài)轉(zhuǎn)換到就緒狀態(tài)或者從運(yùn)行狀態(tài)換到等待狀態(tài)。搶占調(diào)度下事件的同步機(jī)制如圖5-17所示。非搶占調(diào)度下事件的同步機(jī)制如圖5-18所示??傊?,事件機(jī)制保證不同擴(kuò)展任務(wù)之間的同步并且使任務(wù)的狀態(tài)從
5.5.5資源管理具有不同優(yōu)先級的任務(wù)訪問共享資源需要使用資源管理機(jī)制進(jìn)行協(xié)調(diào)。任務(wù)通過采用最高限度優(yōu)先級(PriorityCeiling)協(xié)議可以避免優(yōu)先級倒置。最高限度優(yōu)先級如圖5-19所示。
最高限度優(yōu)先級協(xié)議的就緒隊(duì)列如圖5-20所示。
任務(wù)A、B原始優(yōu)先級均為0,從就緒隊(duì)列為空開始,按照A、B、A、B的順序依次激活對應(yīng)的任務(wù)。只有當(dāng)前運(yùn)行的任務(wù)可以獲得資源。5.5.5資源管理具有不同優(yōu)先級的任務(wù)訪問共享資源
5.5.6警報(bào)器管理OSEK標(biāo)準(zhǔn)中規(guī)定警報(bào)基于系統(tǒng)時(shí)鐘或者基于其他某種計(jì)數(shù)器。OSEK使用硬件定時(shí)器產(chǎn)生中斷來實(shí)現(xiàn)系統(tǒng)時(shí)鐘。OSEK為每個(gè)計(jì)數(shù)器維護(hù)一個(gè)警報(bào)隊(duì)列,每個(gè)計(jì)數(shù)器的頭指針指向警報(bào)隊(duì)列的隊(duì)頭。5.5.6警報(bào)器管理OSEK
5.5.7OSEKCOM和OSEKNMOSEKCOM規(guī)范為汽車ECU應(yīng)用軟件提供了統(tǒng)一的通信環(huán)境。通過定義應(yīng)用軟件通信接口以及ECU內(nèi)部通信和ECU外部通信,OSEKCOM規(guī)范提高了應(yīng)用程序模塊的可移植性。OSEKCOM中通信是基于消息的。消息包括了特定應(yīng)用的數(shù)據(jù)。消息和消息屬性通過OSEK實(shí)現(xiàn)語言(OIL)靜態(tài)配置。
在內(nèi)部通信情況下,交互層(InteractionLayerIL)使消息立即發(fā)送到接收方。在外部通信情況下,IL將一個(gè)或多個(gè)消息壓縮成指定的交互層協(xié)議數(shù)據(jù)單元(InteractionProtocolDataUnitI-PDU)。并把它傳遞到下層處理(見圖5-21)。5.5.7OSEKCOM和OSEKNM
在網(wǎng)絡(luò)上傳遞消息的服務(wù)是非阻塞的,即該消息發(fā)送服務(wù)不會阻塞當(dāng)前線程,而會立刻返回。OSEK為應(yīng)用程序提高了通知機(jī)制來決定傳送或接收的狀態(tài)。OSEKNM規(guī)范是為了提高ECU產(chǎn)品的網(wǎng)絡(luò)互連能力提供了一個(gè)網(wǎng)絡(luò)連接標(biāo)準(zhǔn)。OSEKNM任務(wù)的目的是提高ECU產(chǎn)品的網(wǎng)絡(luò)通信的安全性和可靠性。OSEKNM規(guī)范規(guī)定了網(wǎng)絡(luò)管理的機(jī)制和應(yīng)用程序的接口。
采用OSEK規(guī)范的ECU產(chǎn)品具有以下功能:經(jīng)過授權(quán)后,每個(gè)節(jié)點(diǎn)必須是可以訪問的;在允許訪問失敗的情況下,具有最大容忍限度;支持網(wǎng)絡(luò)診斷。
在網(wǎng)絡(luò)上傳遞消息的服務(wù)是非阻塞的,即該消息發(fā)OSEKNM為網(wǎng)絡(luò)監(jiān)控提供以下機(jī)制:1.通過監(jiān)控應(yīng)用程序進(jìn)行間接監(jiān)控,2.對于特定的網(wǎng)絡(luò)管理利用標(biāo)記機(jī)制進(jìn)行直接監(jiān)控。OSEKNM包括以下部分:(1)OSEKNM與應(yīng)用程序的接口;(2)節(jié)點(diǎn)監(jiān)控的算法;(3)OSEKNM與OSEKCOM的接口;(4)轉(zhuǎn)換到睡眠狀態(tài)的算法;(5)OSEKNM協(xié)議數(shù)據(jù)單元OSEKNM在整個(gè)系統(tǒng)中的位置及其與其他部分的關(guān)系如圖5-22所示。OSEKNM為網(wǎng)絡(luò)監(jiān)控提供以下機(jī)制:5.5.8OSEKOILOSEKOIL規(guī)范定義了一種配置和使用OSEK應(yīng)用的方法,以實(shí)現(xiàn)軟件的可移植性。圖5-23為一個(gè)基于OSEK規(guī)范的應(yīng)用開發(fā)過程。OIL提供一種在特定CPU中配置OSEK應(yīng)用的機(jī)制,每個(gè)cpu對應(yīng)一個(gè)OIL描述,所有的OSEK系統(tǒng)對象用OIL對象來描述。OIL中的對象包括:cpu、os、Appmode、ISR、Resource、Task、Counter、Event、Alarm、Com、Message、I-PDU、NM。5.5.8OSEKOILOSEKOIL規(guī)
5.5.9OSEKORTIOSEKORTI規(guī)范為OSEK操作系統(tǒng)開發(fā)工具提供了統(tǒng)一
的接口。ORTI文件是由系統(tǒng)生成器在系統(tǒng)生成階段產(chǎn)生。OSEKORTI規(guī)范包括PartA和PartB兩部分。PartA介紹了ORTI為調(diào)試工具定義的操作系統(tǒng)內(nèi)核對象的語言KOIL。PartB描述OSEK/VDX標(biāo)準(zhǔn)對象、屬性和它們的含義。ORTI文件包含以下部分:版本信息部分、聲明部分和信息部分。
標(biāo)準(zhǔn)的ORTI對象及屬性:5.5.9OSEKORTIOSEK5.5.10基于OSEK實(shí)時(shí)操作系統(tǒng)的軟件實(shí)現(xiàn)以新能源汽車動力蓄電池管理系統(tǒng)(BatteryManagementsystem,BMS)
電池管理系統(tǒng)有三方面的功能:監(jiān)測和估計(jì)、控制和保護(hù)、通信和診斷。(1)任務(wù)的劃分(2)任務(wù)的優(yōu)先級確定(3)任務(wù)配置5.5.10基于OSEK實(shí)時(shí)操作系統(tǒng)的軟件實(shí)現(xiàn)以新謝謝!謝謝!第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件第5章汽車嵌入式系統(tǒng)的軟件基礎(chǔ)課件p143p143P144P144P157P157P158P158p159p159p160p1602022/12/1080現(xiàn)代汽車電子技術(shù)信號與信息處理研究所丁山2022/12/81現(xiàn)代汽車電子技術(shù)信號與信息處理研究所第5章汽車嵌入式系統(tǒng)軟件的基礎(chǔ)5.1基本概念5.1.1嵌入式系統(tǒng)的軟件
軟件系統(tǒng)通常包括兩部分,其一是系統(tǒng)軟件,包括嵌入式操作系統(tǒng)及在它之下的各種應(yīng)用軟件;其二是用戶的應(yīng)用程序。
嵌入式系統(tǒng)應(yīng)具有很高的可靠性,在惡劣的環(huán)境中依然正常工作,具有很高的實(shí)時(shí)性要求質(zhì)量和可靠性更高。
面向嵌入式系統(tǒng)的操作系統(tǒng)有以下特點(diǎn):要求代碼量少,可進(jìn)行裁剪和移植;實(shí)時(shí)性強(qiáng);可靠性高。第5章汽車嵌入式系統(tǒng)軟件的基礎(chǔ)5.1基本概念5.1.
嵌入式系統(tǒng)的存儲器一般包括程序空間(Rom或Flash)、數(shù)據(jù)空間(Ram)和I/O空間。
在嵌入式系統(tǒng)中,程序空間一般采用的是非易失性存儲器。目前大多數(shù)嵌入式系統(tǒng)采用Flash來存放代碼和一些常數(shù)。
數(shù)據(jù)空間用于存放所有數(shù)據(jù),系統(tǒng)堆棧也處于此空間,一般采用易失性存儲器。有片內(nèi)數(shù)據(jù)空間與片外數(shù)據(jù)空間。I/O空間;采用統(tǒng)一編址的處理器。I/O空間與內(nèi)存空間無關(guān)。5.1.2嵌入式系統(tǒng)的存儲器結(jié)構(gòu)嵌入式系統(tǒng)的存儲器一般包括程序空間(Rom或F4.1.3嵌入式系統(tǒng)軟件的功能及其特點(diǎn)
(1)系統(tǒng)啟動:一旦復(fù)位信號有效,處理器先需運(yùn)行初始化程序。
(2)控制硬件:設(shè)備可能是端口映射的(I/O與存儲器獨(dú)立編址),也有可能是內(nèi)存映射的(I/O與存儲器統(tǒng)一編址)。
(3)按位操作:需要操作硬件寄存器內(nèi)某個(gè)二進(jìn)制位。
(4)軟件要求固態(tài)化存儲:嵌入式軟件一般都固化在存儲器芯片或處理器中,而不是在磁盤中。
(5)軟件的高實(shí)時(shí)性4.1.3嵌入式系統(tǒng)軟件的功能及其特點(diǎn)(1)
(6)代碼執(zhí)行速度和代碼效率:如果ISR或其他例程有嚴(yán)格的時(shí)序要求,應(yīng)考慮使用匯編編寫;
通過指針而不是變量的引用執(zhí)行操作,編譯器就能產(chǎn)生占用空間更少并且運(yùn)行速度更快的代碼。如果某個(gè)函數(shù)操作同樣的變量好幾次,通過指針來進(jìn)行訪問通常會產(chǎn)生更有效率的代碼。
(7)中斷與中斷服務(wù)程序:中斷切換機(jī)制是相同的,但不同的處理器在實(shí)現(xiàn)細(xì)節(jié)上還有不同。(6)代碼執(zhí)行速度和代碼效率:通過指針而不是變
(8)可嵌套的中斷與可重入性:如果允許中斷嵌套,要確認(rèn)所有在中斷服務(wù)例程運(yùn)行期間被調(diào)用的函數(shù)不是可重入的。。
可重入是指函數(shù)在不必關(guān)心同步或相互訪問的情況下能被來自不同任務(wù)的程序異步調(diào)用。
(9)需要了解程序執(zhí)行時(shí)間80和20原則,80%的速度問題存在于20%的代碼中。
(10)發(fā)布嵌入式系統(tǒng)程序的方法a.編寫的代碼作為硬件的一部分b.運(yùn)行加載c.IPOEM(OriginalEquipmentManufacture)方式(8)可嵌套的中斷與可重入性:如果允許中斷嵌
(11)應(yīng)用中可編程(InApplicationProgram,IAP)功能a.引導(dǎo)裝載程序b.Flash編程算法c.最新軟件映像的下載程序(11)應(yīng)用中可編程(InApplicati5.2傳統(tǒng)嵌入式系統(tǒng)軟件的開發(fā)方法及其特點(diǎn)
操作系統(tǒng)及嵌入式操作系統(tǒng)的選擇
如果系統(tǒng)復(fù)雜,需要選用操作系統(tǒng)。前后臺系統(tǒng)。能夠處理關(guān)鍵實(shí)時(shí)事件及中斷服務(wù)程序(ISR)的簡單循環(huán)代碼,該過程簡單,但相當(dāng)實(shí)用。無優(yōu)先級別的操作系統(tǒng):可以將后臺工作轉(zhuǎn)化為可預(yù)先處理的工作。有優(yōu)先級別的操作系統(tǒng):在外部事件(比如中斷等)發(fā)生時(shí)和操作系統(tǒng)內(nèi)部調(diào)用時(shí)切換任務(wù)。5.2傳統(tǒng)嵌入式系統(tǒng)軟件的開發(fā)方法及其特點(diǎn)操M(fèi)ISRAC:1994年英國成立了一個(gè)汽車工業(yè)軟件可靠性聯(lián)合會(theMotorIndustrySoftwareReliabilityAssociation,MISRA),該組織于1998年發(fā)布了針對汽車軟件安全性的C語言編程規(guī)范。基于任務(wù)的設(shè)計(jì)方法
在系統(tǒng)設(shè)計(jì)階段,嵌入式系統(tǒng)的設(shè)計(jì)通常采用DARTS(DesignApproachforRealtimesystem)設(shè)計(jì)方法進(jìn)行任務(wù)設(shè)計(jì)。DARTS給出系統(tǒng)任務(wù)劃分的方法和定義任務(wù)間接口的機(jī)制。對傳統(tǒng)的軟件結(jié)構(gòu)化設(shè)計(jì)方法的擴(kuò)展。MISRAC:1994年英國成立了一個(gè)汽車工業(yè)軟件可靠性聯(lián)除使用程序結(jié)構(gòu)圖與程序流程圖外,采用并發(fā)圖與信息隱藏模塊,其主要功能是將實(shí)時(shí)系統(tǒng)分解為并發(fā)任務(wù)并定義并發(fā)接口。5.3嵌入式操作系統(tǒng)5.3.1嵌入式操作系統(tǒng)的基本概念
嵌入式操作系統(tǒng)的特點(diǎn)
嵌入式系統(tǒng)引入操作系統(tǒng)的原因5.3.2嵌入式操作系統(tǒng)的內(nèi)核分類及基本結(jié)構(gòu)
單一內(nèi)核;微內(nèi)核除使用程序結(jié)構(gòu)圖與程序流程圖外,采用并發(fā)圖與信息隱藏模塊,其層次劃分:硬件接口層,核心層,系統(tǒng)層和應(yīng)用服務(wù)接口層。
應(yīng)用服務(wù)接口層:提供基于系統(tǒng)功能的、面向應(yīng)用的系統(tǒng)功能調(diào)用服務(wù)接口。
系統(tǒng)層:提供面向?qū)ο蟮南到y(tǒng)資源管理功能,如內(nèi)存管理、文件管理、設(shè)備管理、網(wǎng)絡(luò)協(xié)議管理等。
核心層:包括運(yùn)行系統(tǒng)所需要的最基本的功能模塊,核心層針對應(yīng)用提供幾種最基本的服務(wù),如系統(tǒng)時(shí)鐘、電源管理、程序裝載于運(yùn)行、進(jìn)程調(diào)度、內(nèi)存管理等。
硬件接口層:提供與嵌入式硬件系統(tǒng)交互的接口。層次劃分:硬件接口層,核心層,系統(tǒng)層和應(yīng)用服務(wù)接口層。5.3.3嵌入式操作系統(tǒng)內(nèi)核的基本功能模塊
進(jìn)程管理:操作系統(tǒng)需要為進(jìn)程分配資源,實(shí)現(xiàn)進(jìn)程間共享和交換信息,保護(hù)進(jìn)程資源,以及實(shí)現(xiàn)進(jìn)程間同步。
在嵌入式開發(fā)中,往往用任務(wù)的概念表述內(nèi)核可以獨(dú)立調(diào)度的單元。任務(wù)狀態(tài)一般分為:運(yùn)行狀態(tài)、就緒狀態(tài)、等待狀態(tài)等。三種狀態(tài)通過操作系統(tǒng)進(jìn)程調(diào)度程序來調(diào)度。
任務(wù)調(diào)度方法大致分為三種:優(yōu)先級調(diào)度、輪轉(zhuǎn)調(diào)度和時(shí)間片調(diào)度;5.3.3嵌入式操作系統(tǒng)內(nèi)核的基本功能模塊
內(nèi)存管理:一般通用操作系統(tǒng)的存儲管理非常復(fù)雜,虛擬管理技術(shù)被廣泛地使用。
嵌入式操作系統(tǒng)的存儲管理通常比較簡單,在具體的嵌入式應(yīng)用中,進(jìn)程的數(shù)量和可能用到的內(nèi)存容量是可預(yù)測的,因此,多采用靜態(tài)內(nèi)存管理。在內(nèi)存分配策略上往往提供幾種分配策略。
存儲管理的內(nèi)存保護(hù),在一般的操作系統(tǒng)中,每個(gè)應(yīng)用程序都有自己的地址空間,不能任意訪問其他應(yīng)用程序的地址空間。某些嵌入式系統(tǒng)應(yīng)用對內(nèi)存保護(hù)有非常嚴(yán)格的要求。
內(nèi)存被分成操作系統(tǒng)的駐留程序,另外給用戶進(jìn)程。內(nèi)存管理:一般通用操作系統(tǒng)的存儲管理非常復(fù)雜,
中斷管理:計(jì)算機(jī)系統(tǒng)處理外部事件有兩種方式:中斷和查詢。在操作系統(tǒng)中,中斷與中斷處理程序聯(lián)系在一起的。
多數(shù)嵌入式操作系統(tǒng)都是事件驅(qū)動的。中斷處理函數(shù)引起任務(wù)切換如下:執(zhí)行到任務(wù)A->響應(yīng)中斷執(zhí)行并執(zhí)行中斷處理程序,切換到任務(wù)B->任務(wù)B運(yùn)行退出后,切換到任務(wù)A->任務(wù)A繼續(xù)運(yùn)行。
在中斷處理上,一般操作系統(tǒng)與嵌入式操作系統(tǒng)的不同之處在于現(xiàn)場保護(hù)。一般操作系統(tǒng)的現(xiàn)場保護(hù)由操作系統(tǒng)來完成,在嵌入式操作系統(tǒng)中,由中斷處理器程序來完成。中斷管理:計(jì)算機(jī)系統(tǒng)處理外部事件有兩種方式
在中斷處理程序的入口要保護(hù)中斷處理程序中要用到的寄存器,在中斷處理完成后恢復(fù)。這樣,以損失系統(tǒng)安全性為代價(jià),同時(shí)增加了調(diào)試難度。
如果系統(tǒng)面臨多個(gè)中斷信號同時(shí)發(fā)生的情況。則存在ISR響應(yīng)先后的問題。
操作系統(tǒng)與應(yīng)用程序的接口-API
從操作系統(tǒng)的角度來看,提供用戶有兩類接口:一是人機(jī)界面。另一類接口是操作系統(tǒng)提供給用戶的應(yīng)用程序的API函數(shù),也就是系統(tǒng)調(diào)用。在中斷處理程序的入口要保護(hù)中斷處理程序中要用到5.3.5嵌入式操作系統(tǒng)環(huán)境下的任務(wù)
前/后臺系統(tǒng)中,任務(wù)間的切換很簡單,不必為每個(gè)任務(wù)安排堆棧,也不必保存每個(gè)任務(wù)所使用的cpu寄存器。5.3.6嵌入式操作系統(tǒng)的任務(wù)調(diào)度方式不可搶占式調(diào)度(如圖5-6所示)
可搶占式調(diào)度(如圖5-7所示)
時(shí)間片輪轉(zhuǎn)調(diào)度5.3.5嵌入式操作系統(tǒng)環(huán)境下的任務(wù)前/后臺系統(tǒng)中,任務(wù)5.3.7嵌入式操作系統(tǒng)下任務(wù)間通信
中斷與任務(wù)間的通信即消息傳遞,是由嵌入式操作系統(tǒng)的內(nèi)核完成的,通信方式有兩個(gè)途徑即全局變量或消息。
通過全局消息進(jìn)行通信控制中斷控制任務(wù)切換采用TAS操作,即處理允許標(biāo)志控制法利用信號量
通過消息郵箱或消息隊(duì)列,消息郵箱的示意圖如圖5-8所示,消息隊(duì)列的示意圖如圖5-9所示。5.3.7嵌入式操作系統(tǒng)下任務(wù)間通信
嵌入式操作系統(tǒng)實(shí)時(shí)性要求
利用操作系統(tǒng)不僅可以極大地減少系統(tǒng)開發(fā)的工作總量,而且可以提高嵌入式系統(tǒng)軟件的可移植性。
系統(tǒng)的響應(yīng)時(shí)間與信號的動態(tài)特性有關(guān)。這些不同的嵌入式應(yīng)用系統(tǒng)的不同響應(yīng)要求,體現(xiàn)了嵌入式對象對時(shí)間響應(yīng)要求的多樣性。
根據(jù)嵌入式應(yīng)用系統(tǒng)的激勵-運(yùn)行-響應(yīng)特性,表現(xiàn)了嵌入式實(shí)時(shí)能力的可變更性。響應(yīng)時(shí)間的多樣性要求與響應(yīng)時(shí)間可調(diào)整性,是嵌入式實(shí)時(shí)性分析的基本出發(fā)點(diǎn)。嵌入式操作系統(tǒng)實(shí)時(shí)性要求利用操作5.4嵌入式實(shí)時(shí)操作系統(tǒng)5.4.1實(shí)時(shí)系統(tǒng)在控制系統(tǒng)中,為控制器控制功能的執(zhí)行滿足和被控對象基于時(shí)間交互的要求,所以稱為實(shí)時(shí)系統(tǒng)。實(shí)時(shí)性需求首先,準(zhǔn)確合理地描述任務(wù)的時(shí)間要求,必須給出以下定義:任務(wù)激活點(diǎn)或使能瞬間點(diǎn)任務(wù)截止期響應(yīng)時(shí)間是激活點(diǎn)和任務(wù)執(zhí)行結(jié)束這一段時(shí)間5.4嵌入式實(shí)時(shí)操作系統(tǒng)5.4.1實(shí)時(shí)系統(tǒng)實(shí)時(shí)性需求任務(wù)最大允許響應(yīng)時(shí)間也稱為相對期限,任務(wù)期限也稱為絕對期限,在時(shí)間線上可以通過激活點(diǎn)和相對期限來計(jì)算絕對期限;任務(wù)周期:相連兩個(gè)激活點(diǎn)的時(shí)間間隔稱為激活周期,兩任務(wù)執(zhí)行時(shí)間間隔稱為執(zhí)行周期;
硬實(shí)時(shí)需求和軟實(shí)時(shí)需求如果要求任務(wù)必須在指定的時(shí)間間隔內(nèi)完成,該任務(wù)就稱為硬實(shí)時(shí)需求,這種情況下獲得的確認(rèn)信息既要準(zhǔn)確又要可靠。
如果沒有在指定的時(shí)間間隔內(nèi)必須要完成的要求,而僅僅是希望任務(wù)盡快完成,將被認(rèn)為軟的實(shí)時(shí)要求。最大允許響應(yīng)時(shí)間也稱為相對期限,任務(wù)期限也稱為絕對期限,在時(shí)嵌入式實(shí)時(shí)操作系統(tǒng)
實(shí)時(shí)多任務(wù)操作系統(tǒng)(Real-timemulti-taskoperatingsystem)是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。RTOS是針對不同的處理器優(yōu)化設(shè)計(jì)的高效率實(shí)時(shí)多任務(wù)內(nèi)核。RTOS最關(guān)鍵的部分是實(shí)時(shí)多任務(wù)內(nèi)核,它的基本功能包括任務(wù)管理、定時(shí)器管理、存儲器管理、資源管理、事件管理、消息管理、隊(duì)列管理等等。嵌入式實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)多任務(wù)操作系統(tǒng)(R
嵌入式實(shí)時(shí)系統(tǒng)的特點(diǎn):
實(shí)時(shí)操作系統(tǒng)一般具有以下特點(diǎn):實(shí)時(shí)操作系統(tǒng)的內(nèi)核必須非常小,即微內(nèi)核設(shè)計(jì)可重入,因?yàn)椴豢芍厝氲膬?nèi)核比然帶來慢速的中斷響應(yīng)和不可預(yù)測的操作時(shí)間系統(tǒng)能夠快速進(jìn)行任務(wù)切換,保證任務(wù)搶先和deadline的完成盡量減少中斷的時(shí)間提供固定或者可變的內(nèi)存管理機(jī)制嵌入式實(shí)時(shí)系統(tǒng)的特點(diǎn):實(shí)時(shí)操作提供一個(gè)能夠滿足應(yīng)用要求的實(shí)時(shí)時(shí)鐘必須提供合適的進(jìn)程任務(wù)調(diào)度的方法5.4.2嵌入式實(shí)時(shí)操作系統(tǒng)的內(nèi)核
(1)任務(wù)優(yōu)先級如果應(yīng)用程序在執(zhí)行過程中各個(gè)任務(wù)的優(yōu)先級是不變的,稱為靜態(tài)優(yōu)先級;如果在執(zhí)行過程中優(yōu)先級是可以改變的,稱為動態(tài)優(yōu)先級。
在嵌入式開發(fā)中存在一個(gè)流行的任務(wù)優(yōu)先級分配算法-單調(diào)執(zhí)行頻率調(diào)度法(RateMonotonicScheduling,RMS)--基于任務(wù)執(zhí)行的次數(shù)(執(zhí)行頻率)來分配的,執(zhí)行頻率越高,任務(wù)的優(yōu)先級越高。提供一個(gè)能夠滿足應(yīng)用要求的實(shí)時(shí)時(shí)鐘5.4.2CPU利用率:CPU利用率達(dá)到100%并不好,作為系統(tǒng)設(shè)計(jì)的一條原則:CPU利用率應(yīng)小于60%-70%。
(2)死鎖是指兩個(gè)任務(wù)無限期地相互等待對方控制著的資源。所以系統(tǒng)中應(yīng)盡量避免發(fā)生死鎖現(xiàn)象。如圖5-11所示。
一般而言,可以先讓所有的任務(wù)得到全部所需要的資源再做下一步工作以避免死鎖:
各任務(wù)用同樣的順序申請多個(gè)資源;釋放資源時(shí)使用相反的順序。
死鎖一般發(fā)生在大型多任務(wù)系統(tǒng)中,在小型的嵌入式系統(tǒng)中不易出現(xiàn)。CPU利用率:CPU利用率達(dá)到100%并不好
(3)時(shí)鐘節(jié)拍操作系統(tǒng)跳動的心臟,當(dāng)任務(wù)等待事件發(fā)生時(shí),它可以提供系統(tǒng)等待超時(shí)的依據(jù)。時(shí)鐘節(jié)拍越快,系統(tǒng)的額外開銷越大。
(4)中斷是一種運(yùn)行機(jī)制
可分為硬件中斷和軟件中斷。
大多數(shù)微處理器都提供關(guān)中斷和開中斷的方法,在實(shí)時(shí)內(nèi)核中對中斷處理用以下三個(gè)時(shí)間指標(biāo)來評價(jià):中斷延遲時(shí)間、中斷響應(yīng)時(shí)間、中斷恢復(fù)時(shí)間
中斷延遲時(shí)間:在實(shí)時(shí)內(nèi)核中,經(jīng)常要遇到關(guān)中斷和開中斷的情況,關(guān)中斷時(shí)間越長,中斷延遲就越長。(3)時(shí)鐘節(jié)拍操作系統(tǒng)跳動的心臟,當(dāng)任務(wù)等待中斷延遲時(shí)間=關(guān)中斷的最長時(shí)間+中斷服務(wù)例程開始執(zhí)行時(shí)間中斷響應(yīng)時(shí)間
從中斷發(fā)生到開始執(zhí)行用戶的中斷服務(wù)程序的時(shí)間。中斷響應(yīng)時(shí)間包括開始處理這個(gè)中斷前的全部開銷。
對于可剝奪型內(nèi)核,則可剝奪型內(nèi)核由下面的表達(dá)式給出:中斷響應(yīng)時(shí)間=中斷延遲時(shí)間+保存CPU內(nèi)部寄存器的時(shí)間+內(nèi)核的進(jìn)入中斷服務(wù)函數(shù)的執(zhí)行時(shí)間
中斷響應(yīng)時(shí)間是系統(tǒng)在最壞情況下的響應(yīng)中斷的時(shí)間。中斷延遲時(shí)間=關(guān)中斷的最長時(shí)間+中斷服務(wù)例程開始執(zhí)行時(shí)間中斷中斷恢復(fù)時(shí)間
對于可剝奪型內(nèi)核,中斷恢復(fù)時(shí)間(InterruptRecoveryTime)定義為:微處理器返回到被中斷了的程序代碼或更高優(yōu)先級任務(wù)代碼所需要的時(shí)間。
下面是可剝奪型內(nèi)核的中斷恢復(fù)時(shí)間公式:中斷恢復(fù)時(shí)間=判定是否有優(yōu)先級更高的任務(wù)進(jìn)入就緒態(tài)的時(shí)間+恢復(fù)此優(yōu)先級更高的CPU內(nèi)部寄存器的時(shí)間+執(zhí)行中斷返回指令的時(shí)間
雖然中斷服務(wù)的處理時(shí)間應(yīng)該盡量短,但是對處理時(shí)間并沒有絕對的限制。
另外,要考慮是否中斷服務(wù)子程序中開中斷,以允許優(yōu)先級更高的中斷進(jìn)入并優(yōu)先得到服務(wù)。中斷恢復(fù)時(shí)間對于可剝奪型內(nèi)核,中斷恢復(fù)時(shí)間(I動態(tài)實(shí)時(shí)調(diào)度算法實(shí)時(shí)系統(tǒng)的任務(wù)調(diào)度算法主要有以下三種
速率單調(diào)算法(RateMonotonicAlgorithm)該算法事先為每個(gè)任務(wù)分配一個(gè)與事件發(fā)生概率成正比的優(yōu)先級,調(diào)度程序總是調(diào)度優(yōu)先級最高的就緒任務(wù),必要時(shí)將剝奪當(dāng)前任務(wù)的CPU使用權(quán),讓高優(yōu)先級的任務(wù)運(yùn)行。
最早截止時(shí)間優(yōu)先算法(EarliestDeadlineFirst)當(dāng)檢測到一個(gè)事件時(shí),對應(yīng)的處理進(jìn)程任務(wù)就加入就緒進(jìn)程表中,該表以截止時(shí)間排序,調(diào)度程序總是使最早截止時(shí)間的那個(gè)進(jìn)程任務(wù)運(yùn)行。動態(tài)實(shí)時(shí)調(diào)度算法速率單調(diào)算法(RateMo5.4.3幾種典型嵌入式實(shí)時(shí)操作系統(tǒng)(1)VxWorks(2)uc/OS-II(3)uclinux(4)eCOS最小松弛時(shí)間優(yōu)先(LeastLaxity)算法,最小裕度算法。操作系統(tǒng)選擇裕度最小的任務(wù),使其占用處理器。5.4.3幾種典型嵌入式實(shí)時(shí)操作系統(tǒng)最小
5.5汽車電子的開放系統(tǒng)及接口標(biāo)準(zhǔn)-OSEK在上所述的背景下,針對汽車控制的操作系統(tǒng)標(biāo)準(zhǔn)也應(yīng)運(yùn)而生,其中,OSEK(OpenSystemsandtheCorrespondinginterfacesforAutomotiveElectronics)逐漸在汽車行業(yè)中得到越來越多的認(rèn)可。OSEK的主要內(nèi)容之一是定義了汽車領(lǐng)域的實(shí)時(shí)操作系統(tǒng)標(biāo)準(zhǔn),通過建立OSEK標(biāo)準(zhǔn),將軟件的應(yīng)用層和系統(tǒng)層完全分離開。OSEK標(biāo)準(zhǔn)包括以下七個(gè)部分:1.OSEK/VDX操作系統(tǒng)規(guī)范(OSEKos)2.OSEK/VDX通信規(guī)范5.5汽車電子的開放系統(tǒng)及接口標(biāo)準(zhǔn)-OSEK在上所(3)OSEK/VDX實(shí)現(xiàn)語言規(guī)范
(4)OSEK/ORTI規(guī)范
(5)OSEK-Time規(guī)范(7)OSEKFTCom規(guī)范
符合OSEK/VDX規(guī)范具有以下優(yōu)點(diǎn):
應(yīng)用程序與硬件屏蔽,軟件模塊可并行開發(fā);
任務(wù)擴(kuò)展性好,修改方便;
可以完全圖形化設(shè)計(jì),直接生成源代碼;
通過OIL文件描述整個(gè)操作系統(tǒng),易于版本管理。(3)OSEK/VDX實(shí)現(xiàn)語言規(guī)范符合5.5.1OSEK的任務(wù)管理OSEK中提高兩類任務(wù):基本任務(wù)(BasicTask)和擴(kuò)展任務(wù)(ExtendedTask)?;救蝿?wù)用來完成那些激活后就必須完整執(zhí)行的工作。擴(kuò)展任務(wù)可以接受事件的優(yōu)先級,被賦予固定優(yōu)先級,運(yùn)行期間不允許改變。
事件(Event)也被稱為資源(Resource),可以同步任務(wù)的執(zhí)行。
基本任務(wù)具有三種狀態(tài):運(yùn)行狀態(tài)、就緒狀態(tài)、掛起狀態(tài);擴(kuò)展任務(wù)比基本任務(wù)增加一個(gè)等待狀態(tài)。
基本任務(wù)只有在開始和結(jié)束時(shí)才有同步點(diǎn)。擴(kuò)展任務(wù)運(yùn)行時(shí)可能進(jìn)入等待狀態(tài)。5.5.1OSEK的任務(wù)管理OSEK中提高兩
如圖5-13所示,狀態(tài)轉(zhuǎn)換有激活、啟動、等待、釋放、搶占和終止。激活:任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。激活后,任務(wù)就可以參與調(diào)度,并獲得執(zhí)行。啟動:將任務(wù)由就緒狀態(tài)變?yōu)檫\(yùn)行狀態(tài),這個(gè)過程由任務(wù)調(diào)度器進(jìn)行控制。等待:任務(wù)由運(yùn)行狀態(tài)變?yōu)榈却隣顟B(tài)。任務(wù)通過進(jìn)入等待事件發(fā)生,實(shí)現(xiàn)與事件的同步,系統(tǒng)函數(shù)WaitEvent()會使任務(wù)進(jìn)入等待狀態(tài)。釋放:任務(wù)由等待狀態(tài)變?yōu)榫途w狀態(tài)。當(dāng)任務(wù)等待的事件發(fā)生,任務(wù)則退出等待狀態(tài),等待操作系統(tǒng)的調(diào)度。如圖5-13所示,狀態(tài)轉(zhuǎn)換有激活、啟動、等待、搶占:任務(wù)由運(yùn)行狀態(tài)變?yōu)榫途w狀態(tài)。當(dāng)有更高優(yōu)先級任務(wù)進(jìn)入就緒狀態(tài),任務(wù)就有可能被搶占。任務(wù)調(diào)度器負(fù)責(zé)各任務(wù)的啟動和搶占。終止:任務(wù)由運(yùn)行狀態(tài)變掛起狀態(tài)。任務(wù)終止后,任務(wù)不再參與任務(wù)調(diào)度。OSEKOS支持三種調(diào)度方式:搶占調(diào)度、非搶占調(diào)度、混合調(diào)度。非搶占調(diào)度機(jī)制要求只有在重調(diào)度點(diǎn)才能從運(yùn)行中的任務(wù)轉(zhuǎn)去執(zhí)行其他任務(wù)。
搶占調(diào)度機(jī)制要求在滿足操作系統(tǒng)預(yù)定的觸發(fā)條件時(shí)重新調(diào)度處于運(yùn)行的任務(wù)。搶占:任務(wù)由運(yùn)行狀態(tài)變?yōu)榫途w狀態(tài)。當(dāng)有更高優(yōu)先級任務(wù)進(jìn)入就緒
混合調(diào)度是指在同一系統(tǒng)中即存在搶占調(diào)度任務(wù)又存在非搶占調(diào)度任務(wù)。5.5.2OSEK的一致性O(shè)SEK中任務(wù)由以下三個(gè)組成部分組成:任務(wù)程序代碼、任務(wù)堆棧和任務(wù)控制塊。其中,任務(wù)控制塊用來保存任務(wù)屬性;任務(wù)堆棧用來保護(hù)任務(wù)上下文;任務(wù)程序代碼是任務(wù)的執(zhí)行部分。OSEK操作系統(tǒng)的調(diào)度行為并非嚴(yán)格的固定優(yōu)先級。由于共享資源以及混合搶占調(diào)度戰(zhàn)略的存在,操作系統(tǒng)需要時(shí)刻保證最高優(yōu)先級的就緒任務(wù)得到運(yùn)行?;旌险{(diào)度是指在同一系統(tǒng)中即存在搶占調(diào)度任務(wù)又
一致類的概念可以使開發(fā)者根據(jù)應(yīng)用靈活地配置操作系統(tǒng)調(diào)度程序。OSEK系統(tǒng)中定義了4種一致類:BCC1,BCC2,ECC1,ECC2。
一致類的劃分是根據(jù)每個(gè)優(yōu)先級可能具有的任務(wù)個(gè)數(shù)、需要的是基本任務(wù)還是擴(kuò)展任務(wù)來決定。BCC1:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上只有一個(gè)任務(wù),且是基本任務(wù)。ECC1:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上只有一個(gè)任務(wù),且是擴(kuò)展任務(wù)。BCC2:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上有多個(gè)任務(wù),且是基本任務(wù)。一致類的概念可以使開發(fā)者根據(jù)應(yīng)用靈活地配置操ECC2:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上有多個(gè)任務(wù),且是擴(kuò)展任務(wù)。
在實(shí)時(shí)操作系統(tǒng)中,調(diào)度機(jī)制的核心是調(diào)度器,調(diào)度不僅需要保證正確性。其實(shí)現(xiàn)也必須是高效的。調(diào)度的主要工作如下:根據(jù)就緒任務(wù)的優(yōu)先級,選擇最重要的任務(wù)優(yōu)先運(yùn)行;如果需要切換任務(wù),將任務(wù)上下文切換。在OSEK操作系統(tǒng)中,調(diào)度有其額外的、特殊的需求;OSEK操作系統(tǒng)內(nèi)核模塊如圖5-14所示ECC2:表示在應(yīng)用系統(tǒng)中,每個(gè)優(yōu)先級上有多個(gè)任在BCC2和ECC2一致類中,能夠正確處理基本任務(wù)的多次激活。如果一個(gè)任務(wù)被多次激活,那么這個(gè)任務(wù)需要多次執(zhí)行,并且任務(wù)執(zhí)行的順序與任務(wù)激活順序一致。
當(dāng)有任務(wù)就緒時(shí),根據(jù)任務(wù)原始優(yōu)先級定位到它所屬的就緒隊(duì)列,根據(jù)先進(jìn)先出(FirstinFirstout)原則,將其插入隊(duì)列尾部。需要支持OSEK優(yōu)先級天花板協(xié)議,包括計(jì)算資源優(yōu)先級(在系統(tǒng)生成時(shí)計(jì)算完成)以及獲得資源時(shí)任務(wù)優(yōu)先級的變化。在BCC2和ECC2一致類中,能夠正確處理基本任務(wù)的多次激活5.5.3中斷處理
在一些嵌入式系統(tǒng),中斷是外部事件的關(guān)鍵接口,中斷源可能是實(shí)時(shí)時(shí)鐘、能發(fā)送觸發(fā)脈沖信號的傳感器或用戶定義的中斷源。OSEK的中斷服務(wù)程序分為ISR1和ISR2兩種,如圖5-15所示。ISR1:此類中斷服務(wù)程序不使用操作系統(tǒng)的資源,ISR結(jié)束后,處理程序?qū)漠a(chǎn)生中斷的地方繼續(xù)執(zhí)行。ISR2:這類中斷服務(wù)程序是系統(tǒng)生成時(shí),由操作系統(tǒng)通過用戶子程序配置成的,它可以調(diào)用操作系統(tǒng)的API函數(shù)。5.5.3中斷處理在一些嵌入式系統(tǒng),中斷
5.5.5事件機(jī)制在OSEK中,事件機(jī)制:是同步的方法;僅僅提供給ExtendedTasks;用于Task的初始化狀態(tài)改變和從等待到就緒的狀態(tài)改變;
事件是通過操作系統(tǒng)管理的對象,它們不是獨(dú)立的對象,而是分配給擴(kuò)展任務(wù)(ExtendedTasks)。每個(gè)擴(kuò)展任務(wù)有一個(gè)固定的事件號,一個(gè)獨(dú)立的事件被它的所有者和它名字識別。5.5.5事件機(jī)制在OSEK中,事件機(jī)制:總之,事件機(jī)制保證不同擴(kuò)展任務(wù)之間的同步并且使任務(wù)的狀態(tài)從等待狀態(tài)轉(zhuǎn)換到就緒狀態(tài)或者從運(yùn)行狀態(tài)換到等待狀態(tài)。搶占調(diào)度下事件的同步機(jī)制如圖5-17所示。非搶占調(diào)度下事件的同步機(jī)制如圖5-18所示??傊录C(jī)制保證不同擴(kuò)展任務(wù)之間的同步并且使任務(wù)的狀態(tài)從
5.5.5資源管理具有不同優(yōu)先級的任務(wù)訪問共享資源需要使用資源管理機(jī)制進(jìn)行協(xié)調(diào)。任務(wù)通過采用最高限度優(yōu)先級(PriorityCeiling)協(xié)議可以避免優(yōu)先級倒置。最高限度優(yōu)先級如圖5-19所示。
最高限度優(yōu)先級協(xié)議的就緒隊(duì)列如圖5-20所示。
任務(wù)A、B原始優(yōu)先級均為0,從就緒隊(duì)列為空開始,按照A、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國面膜行業(yè)競爭格局及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國隔音玻璃產(chǎn)業(yè)運(yùn)營狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國鏈鋸行業(yè)十三五規(guī)劃與發(fā)展趨勢預(yù)測報(bào)告
- 2025-2030年中國資產(chǎn)管理行業(yè)運(yùn)行動態(tài)與營銷策略研究報(bào)告
- 2025-2030年中國聚苯醚行業(yè)風(fēng)險(xiǎn)評估規(guī)劃分析報(bào)告
- 南寧理工學(xué)院《美國文學(xué)選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 邢臺醫(yī)學(xué)高等專科學(xué)?!渡鷳B(tài)文明建設(shè)理論與實(shí)踐前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西科技學(xué)院《公共管理與服務(wù)課程開發(fā)與教材分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 贛南師范大學(xué)科技學(xué)院《海報(bào)設(shè)計(jì)(數(shù)字方向)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025安徽省安全員知識題庫及答案
- 新生兒早期基本保健課件
- 采礦學(xué)課程設(shè)計(jì)硯北煤礦新井設(shè)計(jì)全套圖紙
- 大型儲罐計(jì)算書
- 檢體診斷-頭頸部檢查(診斷學(xué)課件)
- 煤礦提升機(jī)作業(yè)理論考試參考題庫(200題)
- 侯馬北車輛段2023年運(yùn)用機(jī)考復(fù)習(xí)題-曲沃作業(yè)場
- 手術(shù)室停電和突然停電應(yīng)急預(yù)案PPT演示課件
- 職業(yè)病危害告知卡(油漆)
- 抗震支吊架安裝檢驗(yàn)批
- 橋梁各部位加固及橋梁維修技術(shù)總結(jié)
- GB/T 40336-2021無損檢測泄漏檢測氣體參考漏孔的校準(zhǔn)
評論
0/150
提交評論