第八章_AutoOSEK操作系統(tǒng)_第1頁(yè)
第八章_AutoOSEK操作系統(tǒng)_第2頁(yè)
第八章_AutoOSEK操作系統(tǒng)_第3頁(yè)
第八章_AutoOSEK操作系統(tǒng)_第4頁(yè)
第八章_AutoOSEK操作系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩152頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用第八講第八講 嵌入式實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)嵌入式實(shí)時(shí)操作系統(tǒng)設(shè)計(jì) 2本節(jié)提要本節(jié)提要OSEK標(biāo)準(zhǔn)介紹標(biāo)準(zhǔn)介紹OSEK OS標(biāo)準(zhǔn)標(biāo)準(zhǔn)AutoOSEK 內(nèi)核設(shè)計(jì)內(nèi)核設(shè)計(jì)OSEK COM標(biāo)準(zhǔn)標(biāo)準(zhǔn)OSEK OIL標(biāo)準(zhǔn)標(biāo)準(zhǔn)31. OSEK標(biāo)準(zhǔn)介紹標(biāo)準(zhǔn)介紹u OSEK OSl OSEK COMl OSEK NMl OSEK OIL4lOSEK/VDXOSEK/VDX是應(yīng)用在模塊和靜態(tài)實(shí)時(shí)操作系統(tǒng)上的標(biāo)準(zhǔn),由主是應(yīng)用在模塊和靜態(tài)實(shí)時(shí)操作系統(tǒng)上的標(biāo)準(zhǔn),由主要的汽車(chē)制造商和供應(yīng)商,研究機(jī)構(gòu)以及軟件開(kāi)發(fā)商發(fā)起。要的汽車(chē)制造商和供應(yīng)商,研究機(jī)構(gòu)以及軟件開(kāi)發(fā)商發(fā)起。lOSEKOSEK,是指

2、德國(guó)的汽車(chē)電子類(lèi)開(kāi)放系統(tǒng)和對(duì)應(yīng)接口標(biāo)準(zhǔn),是指德國(guó)的汽車(chē)電子類(lèi)開(kāi)放系統(tǒng)和對(duì)應(yīng)接口標(biāo)準(zhǔn)(open systems and the corresponding interfaces for open systems and the corresponding interfaces for automotive electronicsautomotive electronics),而),而VDXVDX則是汽車(chē)分布式執(zhí)行標(biāo)則是汽車(chē)分布式執(zhí)行標(biāo)準(zhǔn)(準(zhǔn)(vehicle distributed executivevehicle distributed executive),后者最初是由法),后者最初是由法國(guó)獨(dú)

3、自發(fā)起的,后來(lái)加入了國(guó)獨(dú)自發(fā)起的,后來(lái)加入了OSEKOSEK團(tuán)體。兩者的名字都反映出團(tuán)體。兩者的名字都反映出OSEK/VDXOSEK/VDX的目的是為汽車(chē)電子制定標(biāo)準(zhǔn)化接口。該標(biāo)準(zhǔn)完全的目的是為汽車(chē)電子制定標(biāo)準(zhǔn)化接口。該標(biāo)準(zhǔn)完全獨(dú)立,對(duì)目標(biāo)系統(tǒng)只限制了少量的條件。獨(dú)立,對(duì)目標(biāo)系統(tǒng)只限制了少量的條件。 5其中其中OSEK OSOSEK OS是針對(duì)汽車(chē)應(yīng)用特點(diǎn)而專(zhuān)門(mén)制定的一個(gè)小型是針對(duì)汽車(chē)應(yīng)用特點(diǎn)而專(zhuān)門(mén)制定的一個(gè)小型RTOSRTOS規(guī)范,著重以下幾個(gè)方面:規(guī)范,著重以下幾個(gè)方面:可移植性可移植性,所有,所有APIAPI都是標(biāo)準(zhǔn)化的并且在功能上都有明確都是標(biāo)準(zhǔn)化的并且在功能上都有明確的定義;的定義;

4、可擴(kuò)展性可擴(kuò)展性,OSEKOSOSEKOS旨在通用于任何類(lèi)型的旨在通用于任何類(lèi)型的 ECUECU,因此一方,因此一方面系統(tǒng)要高度的模塊化,另一方面又要能進(jìn)行靈活的配置;面系統(tǒng)要高度的模塊化,另一方面又要能進(jìn)行靈活的配置;汽車(chē)應(yīng)用的特定需求汽車(chē)應(yīng)用的特定需求,諸如可靠性、實(shí)用性和代價(jià)敏感性,諸如可靠性、實(shí)用性和代價(jià)敏感性等。等。 相應(yīng)的,相應(yīng)的,OSEK OSOSEK OS靜態(tài)配置可以通過(guò)靜態(tài)配置可以通過(guò)OSEK OILOSEK OIL語(yǔ)言實(shí)現(xiàn),語(yǔ)言實(shí)現(xiàn),用戶(hù)在系統(tǒng)生成時(shí)靜態(tài)制定任務(wù)的個(gè)數(shù)、需要的資源和系統(tǒng)用戶(hù)在系統(tǒng)生成時(shí)靜態(tài)制定任務(wù)的個(gè)數(shù)、需要的資源和系統(tǒng)服務(wù)。服務(wù)。OSEK COMOSEK

5、COM為通信網(wǎng)絡(luò)中的數(shù)據(jù)交換提供了標(biāo)準(zhǔn)的接口為通信網(wǎng)絡(luò)中的數(shù)據(jù)交換提供了標(biāo)準(zhǔn)的接口和協(xié)議。和協(xié)議。OSEK NMOSEK NM為監(jiān)視網(wǎng)絡(luò)的流量提供了一組標(biāo)準(zhǔn)的功能為監(jiān)視網(wǎng)絡(luò)的流量提供了一組標(biāo)準(zhǔn)的功能函數(shù),以保證網(wǎng)絡(luò)的安全性和可靠性。函數(shù),以保證網(wǎng)絡(luò)的安全性和可靠性。 67本節(jié)提要本節(jié)提要OSEK標(biāo)準(zhǔn)介紹標(biāo)準(zhǔn)介紹OSEK OS標(biāo)準(zhǔn)標(biāo)準(zhǔn)AutoOSEK 內(nèi)核設(shè)計(jì)內(nèi)核設(shè)計(jì)OSEK COM標(biāo)準(zhǔn)標(biāo)準(zhǔn)OSEK OIL標(biāo)準(zhǔn)標(biāo)準(zhǔn)8OSEK OS標(biāo)準(zhǔn)主要包括:標(biāo)準(zhǔn)主要包括:l操作系統(tǒng)構(gòu)架操作系統(tǒng)構(gòu)架l任務(wù)管理任務(wù)管理l應(yīng)用模式應(yīng)用模式l中斷處理中斷處理l事件機(jī)制事件機(jī)制l資源管理資源管理l警報(bào)警報(bào)l消息機(jī)制消息

6、機(jī)制l錯(cuò)誤處理錯(cuò)誤處理OSEK OS標(biāo)準(zhǔn)標(biāo)準(zhǔn)91OSEK/VDX操作系統(tǒng)的構(gòu)架操作系統(tǒng)的構(gòu)架l處理級(jí)處理級(jí)Processing levelsl一致類(lèi)一致類(lèi)Conformance classes10處理級(jí)處理級(jí)lOSEKOSEK操作系統(tǒng)是基于靜態(tài)優(yōu)先級(jí)的一種構(gòu)架。操作系統(tǒng)是基于靜態(tài)優(yōu)先級(jí)的一種構(gòu)架。l每個(gè)任務(wù)可以是基本任務(wù)或擴(kuò)展任務(wù),基本任務(wù)每個(gè)任務(wù)可以是基本任務(wù)或擴(kuò)展任務(wù),基本任務(wù)和擴(kuò)展任務(wù)的區(qū)別在于擴(kuò)展任務(wù)支持外部異步事和擴(kuò)展任務(wù)的區(qū)別在于擴(kuò)展任務(wù)支持外部異步事件。件。l每個(gè)任務(wù)被分配一個(gè)靜態(tài)優(yōu)先級(jí),調(diào)度器總是從每個(gè)任務(wù)被分配一個(gè)靜態(tài)優(yōu)先級(jí),調(diào)度器總是從就緒隊(duì)列中選擇最高優(yōu)先級(jí)任務(wù)。就緒隊(duì)列

7、中選擇最高優(yōu)先級(jí)任務(wù)。ISRISR可以搶占運(yùn)可以搶占運(yùn)行任務(wù)(除了運(yùn)行任務(wù)正在使用資源)。行任務(wù)(除了運(yùn)行任務(wù)正在使用資源)。11OSEKOSEK操作系統(tǒng)提供了用戶(hù)接口,這些接口主要通操作系統(tǒng)提供了用戶(hù)接口,這些接口主要通過(guò)實(shí)體來(lái)使用。操作系統(tǒng)提供了兩類(lèi)實(shí)體:過(guò)實(shí)體來(lái)使用。操作系統(tǒng)提供了兩類(lèi)實(shí)體:l中斷服務(wù)例程中斷服務(wù)例程l任務(wù)任務(wù) ( (基本任務(wù)和擴(kuò)展任務(wù))基本任務(wù)和擴(kuò)展任務(wù))OSEKOSEK定義了三類(lèi)處理級(jí)別:定義了三類(lèi)處理級(jí)別: l中斷級(jí)中斷級(jí)l調(diào)度邏輯級(jí)調(diào)度邏輯級(jí)l任務(wù)級(jí)任務(wù)級(jí)12OSEK操作系統(tǒng)處理級(jí)操作系統(tǒng)處理級(jí)13l優(yōu)先級(jí)規(guī)則:優(yōu)先級(jí)規(guī)則:l中斷優(yōu)先級(jí)高于任務(wù)優(yōu)先級(jí)中斷優(yōu)先級(jí)高于

8、任務(wù)優(yōu)先級(jí)l中斷處理級(jí)由一個(gè)或多個(gè)中斷優(yōu)先級(jí)組成中斷處理級(jí)由一個(gè)或多個(gè)中斷優(yōu)先級(jí)組成l中斷服務(wù)例程具有指定的中斷優(yōu)先級(jí)中斷服務(wù)例程具有指定的中斷優(yōu)先級(jí)lISRISR的優(yōu)先級(jí)與具體的硬件相關(guān)的優(yōu)先級(jí)與具體的硬件相關(guān)l資源天花板優(yōu)先級(jí)與較高優(yōu)先級(jí)任務(wù)相關(guān)。資源天花板優(yōu)先級(jí)與較高優(yōu)先級(jí)任務(wù)相關(guān)。l任務(wù)優(yōu)先級(jí)被用戶(hù)靜態(tài)分配任務(wù)優(yōu)先級(jí)被用戶(hù)靜態(tài)分配14l為了提供的不同應(yīng)用需求,操作系統(tǒng)提供了為了提供的不同應(yīng)用需求,操作系統(tǒng)提供了4 4種一種一致類(lèi)選擇。一致類(lèi)為在不改變應(yīng)用任務(wù)情況下,按致類(lèi)選擇。一致類(lèi)為在不改變應(yīng)用任務(wù)情況下,按照預(yù)先規(guī)定對(duì)功能較少的類(lèi)到功能較多的一致類(lèi)提照預(yù)先規(guī)定對(duì)功能較少的類(lèi)到功能較

9、多的一致類(lèi)提供了升級(jí)途徑。供了升級(jí)途徑。l一致類(lèi)主要包括下列屬性規(guī)定:一致類(lèi)主要包括下列屬性規(guī)定:l多請(qǐng)求任務(wù)激活(一個(gè)任務(wù)激活或多個(gè)任務(wù)激活)多請(qǐng)求任務(wù)激活(一個(gè)任務(wù)激活或多個(gè)任務(wù)激活)l任務(wù)類(lèi)型(基本任務(wù)或基本任務(wù)任務(wù)類(lèi)型(基本任務(wù)或基本任務(wù)+ +擴(kuò)展任務(wù))擴(kuò)展任務(wù)) l每個(gè)優(yōu)先級(jí)對(duì)應(yīng)的任務(wù)數(shù)(一個(gè)優(yōu)先級(jí)對(duì)應(yīng)一個(gè)任務(wù)或多每個(gè)優(yōu)先級(jí)對(duì)應(yīng)的任務(wù)數(shù)(一個(gè)優(yōu)先級(jí)對(duì)應(yīng)一個(gè)任務(wù)或多個(gè)任務(wù))個(gè)任務(wù)) 一致類(lèi)一致類(lèi)15l下面是一致類(lèi)的定義:下面是一致類(lèi)的定義: lBCC1 BCC1 :每個(gè)任務(wù)只有一個(gè)激活請(qǐng)求,一個(gè)任務(wù)只有一:每個(gè)任務(wù)只有一個(gè)激活請(qǐng)求,一個(gè)任務(wù)只有一個(gè)優(yōu)先級(jí),所有任務(wù)優(yōu)先級(jí)必須保持不同個(gè)優(yōu)

10、先級(jí),所有任務(wù)優(yōu)先級(jí)必須保持不同lBCC2 BCC2 :在:在BCC1BCC1的基礎(chǔ)上,每個(gè)任務(wù)可以有多個(gè)激活請(qǐng)的基礎(chǔ)上,每個(gè)任務(wù)可以有多個(gè)激活請(qǐng)求和一個(gè)優(yōu)先級(jí)可以對(duì)應(yīng)多個(gè)任務(wù)。求和一個(gè)優(yōu)先級(jí)可以對(duì)應(yīng)多個(gè)任務(wù)。lECC1 ECC1 :在:在BCC1BCC1基礎(chǔ)上,增加了擴(kuò)展任務(wù),即支持事件基礎(chǔ)上,增加了擴(kuò)展任務(wù),即支持事件機(jī)制。機(jī)制。lECC2 ECC2 :在:在ECC1ECC1基礎(chǔ)上,每個(gè)任務(wù)可以有多個(gè)激活請(qǐng)求基礎(chǔ)上,每個(gè)任務(wù)可以有多個(gè)激活請(qǐng)求和一個(gè)優(yōu)先級(jí)可以對(duì)應(yīng)多個(gè)任務(wù)。和一個(gè)優(yōu)先級(jí)可以對(duì)應(yīng)多個(gè)任務(wù)。16一致類(lèi)一致類(lèi)Conformance classes1718l棧分開(kāi)與分類(lèi)棧分開(kāi)與分類(lèi)l

11、BCC1:在無(wú)中斷情況下發(fā)生上下文切:在無(wú)中斷情況下發(fā)生上下文切換僅有兩種情況換僅有兩種情況l被高優(yōu)先級(jí)任務(wù)搶占被高優(yōu)先級(jí)任務(wù)搶占l自己結(jié)束自己結(jié)束當(dāng)前任務(wù)當(dāng)前任務(wù)高優(yōu)先級(jí)任務(wù)高優(yōu)先級(jí)任務(wù)1高優(yōu)先級(jí)任務(wù)高優(yōu)先級(jí)任務(wù)2被高優(yōu)先級(jí)被高優(yōu)先級(jí)任務(wù)搶占任務(wù)搶占被高優(yōu)先級(jí)被高優(yōu)先級(jí)任務(wù)搶占任務(wù)搶占自己結(jié)束自己結(jié)束自己結(jié)束自己結(jié)束結(jié)論:結(jié)論:BCC1下,下,任務(wù)、中斷的棧的任務(wù)、中斷的棧的使用可以為同一個(gè),使用可以為同一個(gè),不會(huì)相互干擾,即不會(huì)相互干擾,即不需要每個(gè)任務(wù)使不需要每個(gè)任務(wù)使用獨(dú)立的??臻g用獨(dú)立的??臻glECC1:多了等待狀態(tài),每個(gè)就必須使用獨(dú)立的:多了等待狀態(tài),每個(gè)就必須使用獨(dú)立的棧空間,而

12、且為了提高任務(wù)棧大小的可估算性和??臻g,而且為了提高任務(wù)棧大小的可估算性和使用率,將中斷統(tǒng)一使用系統(tǒng)棧。使用率,將中斷統(tǒng)一使用系統(tǒng)棧。棧棧192任務(wù)管理任務(wù)管理 l在在OSEK OSOSEK OS中,任務(wù)提供了并發(fā)中,任務(wù)提供了并發(fā)/ /異步執(zhí)行功能。調(diào)異步執(zhí)行功能。調(diào)度器負(fù)責(zé)根據(jù)定義的調(diào)度算法調(diào)度任務(wù)。度器負(fù)責(zé)根據(jù)定義的調(diào)度算法調(diào)度任務(wù)。 lOSEK OS OSEK OS 提供兩種任務(wù):基本任務(wù)和擴(kuò)展任務(wù)。它提供兩種任務(wù):基本任務(wù)和擴(kuò)展任務(wù)。它們不同之處在于,擴(kuò)展任務(wù)允許調(diào)用們不同之處在于,擴(kuò)展任務(wù)允許調(diào)用WaitEvent()WaitEvent(),即允許擴(kuò)展任務(wù)在等待異步事件時(shí),不終止當(dāng)

13、前例即允許擴(kuò)展任務(wù)在等待異步事件時(shí),不終止當(dāng)前例程釋放程釋放CPUCPU。 20l每個(gè)任務(wù)分配了一個(gè)固定的優(yōu)先級(jí)(每個(gè)任務(wù)分配了一個(gè)固定的優(yōu)先級(jí)(0 0被分配給最低被分配給最低優(yōu)先級(jí)任務(wù)),可以是搶占式或非搶占式。如果是搶優(yōu)先級(jí)任務(wù)),可以是搶占式或非搶占式。如果是搶占式,該任務(wù)可以在任何時(shí)候被搶占,否則必須等到占式,該任務(wù)可以在任何時(shí)候被搶占,否則必須等到任務(wù)結(jié)束時(shí)才產(chǎn)生調(diào)度。一個(gè)搶占式任務(wù)可以變?yōu)榉侨蝿?wù)結(jié)束時(shí)才產(chǎn)生調(diào)度。一個(gè)搶占式任務(wù)可以變?yōu)榉菗屨既蝿?wù)通過(guò)使用加鎖資源搶占任務(wù)通過(guò)使用加鎖資源RES_SCHEDULERRES_SCHEDULER。21lOSEK標(biāo)準(zhǔn)定義了標(biāo)準(zhǔn)定義了4個(gè)任務(wù)狀態(tài)

14、:個(gè)任務(wù)狀態(tài):l就緒就緒l等待等待l掛起掛起l運(yùn)行運(yùn)行 l基本任務(wù)沒(méi)有等待狀態(tài):基本任務(wù)只有在任務(wù)的基本任務(wù)沒(méi)有等待狀態(tài):基本任務(wù)只有在任務(wù)的開(kāi)始和結(jié)束才是同步點(diǎn)。開(kāi)始和結(jié)束才是同步點(diǎn)。 22基本任務(wù)基本任務(wù)l基本任務(wù)在下列三種情況下釋放基本任務(wù)在下列三種情況下釋放CPUCPUl自己結(jié)束自己結(jié)束l被高優(yōu)先級(jí)任務(wù)搶占被高優(yōu)先級(jí)任務(wù)搶占l中斷產(chǎn)生中斷產(chǎn)生23基本任務(wù)狀態(tài)轉(zhuǎn)換基本任務(wù)狀態(tài)轉(zhuǎn)換24擴(kuò)展任務(wù)擴(kuò)展任務(wù) 擴(kuò)展任務(wù)和基本任務(wù)的主要區(qū)別在于:允許調(diào)用系擴(kuò)展任務(wù)和基本任務(wù)的主要區(qū)別在于:允許調(diào)用系統(tǒng)服務(wù)統(tǒng)服務(wù)WaitEventWaitEvent(),該系統(tǒng)調(diào)用使任務(wù)進(jìn)入等待狀(),該系統(tǒng)調(diào)用使任務(wù)

15、進(jìn)入等待狀態(tài)。等待狀態(tài)允許任務(wù)在不結(jié)束任務(wù)的情況下釋放態(tài)。等待狀態(tài)允許任務(wù)在不結(jié)束任務(wù)的情況下釋放CPUCPU調(diào)用優(yōu)先級(jí)更低的任務(wù)運(yùn)行調(diào)用優(yōu)先級(jí)更低的任務(wù)運(yùn)行。25擴(kuò)展任務(wù)的狀態(tài)轉(zhuǎn)換擴(kuò)展任務(wù)的狀態(tài)轉(zhuǎn)換26任務(wù)比較任務(wù)比較l基本任務(wù)沒(méi)有等待狀態(tài),因而同步點(diǎn)在任務(wù)開(kāi)始基本任務(wù)沒(méi)有等待狀態(tài),因而同步點(diǎn)在任務(wù)開(kāi)始和結(jié)束的地方,所以其需要的資源少。基本任務(wù)和結(jié)束的地方,所以其需要的資源少。基本任務(wù)需求的資源必須獨(dú)享直至整個(gè)任務(wù)結(jié)束。任務(wù)實(shí)需求的資源必須獨(dú)享直至整個(gè)任務(wù)結(jié)束。任務(wù)實(shí)時(shí)性較差。時(shí)性較差。l擴(kuò)展任務(wù)的優(yōu)點(diǎn)是可以在單個(gè)任務(wù)中處理連貫的擴(kuò)展任務(wù)的優(yōu)點(diǎn)是可以在單個(gè)任務(wù)中處理連貫的工作而不管同步請(qǐng)求是

16、否有效。當(dāng)需求事件未產(chǎn)工作而不管同步請(qǐng)求是否有效。當(dāng)需求事件未產(chǎn)生時(shí)就進(jìn)入等待狀態(tài),直到事件產(chǎn)生。可以在任生時(shí)就進(jìn)入等待狀態(tài),直到事件產(chǎn)生??梢栽谌魏吸c(diǎn)進(jìn)行同步。何點(diǎn)進(jìn)行同步。27激活一個(gè)任務(wù)激活一個(gè)任務(wù)l操作系統(tǒng)通過(guò)系統(tǒng)調(diào)用操作系統(tǒng)通過(guò)系統(tǒng)調(diào)用ActivateTaskActivateTask或或 ChainTaskChainTask 激活一個(gè)任務(wù)。任務(wù)被激活后從最開(kāi)激活一個(gè)任務(wù)。任務(wù)被激活后從最開(kāi)始狀態(tài)開(kāi)始運(yùn)行。始狀態(tài)開(kāi)始運(yùn)行。l任務(wù)的多請(qǐng)求激活任務(wù)的多請(qǐng)求激活l根據(jù)一致類(lèi)的定義,一個(gè)基本任務(wù)能被激活一次或多次。根據(jù)一致類(lèi)的定義,一個(gè)基本任務(wù)能被激活一次或多次。任務(wù)激活的多請(qǐng)求意味著操作系統(tǒng)

17、必須接收和記錄已經(jīng)任務(wù)激活的多請(qǐng)求意味著操作系統(tǒng)必須接收和記錄已經(jīng)激活的任務(wù)激活次數(shù)。激活的任務(wù)激活次數(shù)。l任務(wù)激活請(qǐng)求次數(shù)在基本任務(wù)的屬性配置時(shí)進(jìn)行設(shè)置。任務(wù)激活請(qǐng)求次數(shù)在基本任務(wù)的屬性配置時(shí)進(jìn)行設(shè)置。如果最大的請(qǐng)求次數(shù)沒(méi)達(dá)到,請(qǐng)求被排隊(duì)。每個(gè)優(yōu)先級(jí)如果最大的請(qǐng)求次數(shù)沒(méi)達(dá)到,請(qǐng)求被排隊(duì)。每個(gè)優(yōu)先級(jí)的基本任務(wù)的請(qǐng)求按激活順序排隊(duì)。的基本任務(wù)的請(qǐng)求按激活順序排隊(duì)。28任務(wù)切換機(jī)制任務(wù)切換機(jī)制操作系統(tǒng)中用于決定哪個(gè)任務(wù)應(yīng)該被啟動(dòng)的實(shí)操作系統(tǒng)中用于決定哪個(gè)任務(wù)應(yīng)該被啟動(dòng)的實(shí)體稱(chēng)為調(diào)度器。無(wú)論任務(wù)什么時(shí)候按照調(diào)度策略進(jìn)體稱(chēng)為調(diào)度器。無(wú)論任務(wù)什么時(shí)候按照調(diào)度策略進(jìn)行切換時(shí)都會(huì)調(diào)用調(diào)度器。調(diào)度器可以作為一

18、個(gè)任行切換時(shí)都會(huì)調(diào)用調(diào)度器。調(diào)度器可以作為一個(gè)任務(wù)資源被任務(wù)獨(dú)享和釋放。因此一個(gè)任務(wù)可以獨(dú)占務(wù)資源被任務(wù)獨(dú)享和釋放。因此一個(gè)任務(wù)可以獨(dú)占調(diào)度器直到任務(wù)完成來(lái)避免被切換。調(diào)度器直到任務(wù)完成來(lái)避免被切換。29任務(wù)優(yōu)先級(jí)任務(wù)優(yōu)先級(jí)l調(diào)度器按照任務(wù)優(yōu)先級(jí)來(lái)決定下一個(gè)將要運(yùn)行的任務(wù)。調(diào)度器按照任務(wù)優(yōu)先級(jí)來(lái)決定下一個(gè)將要運(yùn)行的任務(wù)。l0 0被設(shè)計(jì)為最低優(yōu)先級(jí),一般留給空閑任務(wù)。優(yōu)先級(jí)高低和優(yōu)被設(shè)計(jì)為最低優(yōu)先級(jí),一般留給空閑任務(wù)。優(yōu)先級(jí)高低和優(yōu)先級(jí)的數(shù)字相對(duì)應(yīng),數(shù)字越大,優(yōu)先級(jí)越高。先級(jí)的數(shù)字相對(duì)應(yīng),數(shù)字越大,優(yōu)先級(jí)越高。l動(dòng)態(tài)優(yōu)先級(jí)在動(dòng)態(tài)優(yōu)先級(jí)在OSEKOSEK中不支持,除了在使用資源時(shí),根據(jù)天花板中不支

19、持,除了在使用資源時(shí),根據(jù)天花板協(xié)議,任務(wù)優(yōu)先級(jí)可動(dòng)態(tài)變?yōu)橘Y源優(yōu)先級(jí)。協(xié)議,任務(wù)優(yōu)先級(jí)可動(dòng)態(tài)變?yōu)橘Y源優(yōu)先級(jí)。l一個(gè)被搶占的任務(wù)優(yōu)先級(jí)被認(rèn)為是最先進(jìn)入就緒隊(duì)列的任務(wù),一個(gè)被搶占的任務(wù)優(yōu)先級(jí)被認(rèn)為是最先進(jìn)入就緒隊(duì)列的任務(wù),一個(gè)等待任務(wù)進(jìn)入就緒態(tài)被認(rèn)為是最后進(jìn)入就緒隊(duì)列的任務(wù)。一個(gè)等待任務(wù)進(jìn)入就緒態(tài)被認(rèn)為是最后進(jìn)入就緒隊(duì)列的任務(wù)。30調(diào)度器調(diào)度器: 就緒任務(wù)的執(zhí)行順序就緒任務(wù)的執(zhí)行順序31依據(jù)以下的準(zhǔn)則決定下一個(gè)被執(zhí)行的任務(wù):依據(jù)以下的準(zhǔn)則決定下一個(gè)被執(zhí)行的任務(wù):調(diào)度器在調(diào)度器在“就緒態(tài)就緒態(tài)”隊(duì)列中搜索所有的任務(wù)。隊(duì)列中搜索所有的任務(wù)。調(diào)度器在處于調(diào)度器在處于“就緒態(tài)就緒態(tài)” 的任務(wù)集中,選出優(yōu)先

20、的任務(wù)集中,選出優(yōu)先級(jí)最高的任務(wù)集。級(jí)最高的任務(wù)集。調(diào)度器在上一個(gè)步驟中選出同一個(gè)優(yōu)先級(jí)的任務(wù)調(diào)度器在上一個(gè)步驟中選出同一個(gè)優(yōu)先級(jí)的任務(wù)中找出最先進(jìn)入就緒態(tài)的任務(wù)。中找出最先進(jìn)入就緒態(tài)的任務(wù)。32l調(diào)度器按照任務(wù)優(yōu)先級(jí)決定下一個(gè)就緒任務(wù)進(jìn)入調(diào)度器按照任務(wù)優(yōu)先級(jí)決定下一個(gè)就緒任務(wù)進(jìn)入運(yùn)行狀態(tài)。具有相同優(yōu)先級(jí)的任務(wù)按照它們的激運(yùn)行狀態(tài)。具有相同優(yōu)先級(jí)的任務(wù)按照它們的激活順序啟動(dòng)?;铐樞騿?dòng)。 lOSEKOSEK標(biāo)準(zhǔn)提供標(biāo)準(zhǔn)提供4 4種靜態(tài)優(yōu)先級(jí)調(diào)度,如下所述:種靜態(tài)優(yōu)先級(jí)調(diào)度,如下所述: l全搶占調(diào)度:全搶占調(diào)度: l運(yùn)行任務(wù)可以被高優(yōu)先級(jí)任務(wù)搶占。運(yùn)行任務(wù)可以被高優(yōu)先級(jí)任務(wù)搶占。 l非搶占調(diào)度:

21、非搶占調(diào)度: l任務(wù)的切換只有通過(guò)明確的系統(tǒng)調(diào)度來(lái)實(shí)現(xiàn)。如任務(wù)結(jié)束任務(wù)的切換只有通過(guò)明確的系統(tǒng)調(diào)度來(lái)實(shí)現(xiàn)。如任務(wù)結(jié)束Termination Termination ,事件觸發(fā),事件觸發(fā)POSTEventPOSTEvent等。等。 調(diào)度策略調(diào)度策略33調(diào)度方式調(diào)度方式34全搶占式調(diào)度全搶占式調(diào)度35 在全搶占式調(diào)度下,用戶(hù)應(yīng)該總是期望在全搶占式調(diào)度下,用戶(hù)應(yīng)該總是期望“運(yùn)行態(tài)運(yùn)行態(tài)”任務(wù)的搶任務(wù)的搶占。但是,如果希望一個(gè)任務(wù)片段不會(huì)被搶占,那么可以通過(guò)占。但是,如果希望一個(gè)任務(wù)片段不會(huì)被搶占,那么可以通過(guò)系統(tǒng)服務(wù)系統(tǒng)服務(wù)GetResourceGetResource臨時(shí)阻塞調(diào)度器。臨時(shí)阻塞調(diào)度器。

22、 在以下情況會(huì)出現(xiàn)重新調(diào)度:在以下情況會(huì)出現(xiàn)重新調(diào)度:l任務(wù)的成功終結(jié)任務(wù)的成功終結(jié)TerminateTask TerminateTask 。l任務(wù)的成功終結(jié),并且成功地激活接下來(lái)要執(zhí)行的任務(wù)任務(wù)的成功終結(jié),并且成功地激活接下來(lái)要執(zhí)行的任務(wù)(ChainTaskChainTask)。)。l在任務(wù)層次激活一個(gè)任務(wù)(例如:系統(tǒng)服務(wù)在任務(wù)層次激活一個(gè)任務(wù)(例如:系統(tǒng)服務(wù)ActivateTaskActivateTask)。)。l如果出現(xiàn)了任務(wù)轉(zhuǎn)換為如果出現(xiàn)了任務(wù)轉(zhuǎn)換為“等待態(tài)等待態(tài)”的情況,的情況, WaitEventWaitEvent會(huì)被調(diào)用。會(huì)被調(diào)用。l在任務(wù)層次為一個(gè)在任務(wù)層次為一個(gè)“等待態(tài)等待態(tài)

23、”的任務(wù)設(shè)置一個(gè)事件(例如:系統(tǒng)的任務(wù)設(shè)置一個(gè)事件(例如:系統(tǒng)服務(wù)服務(wù)SetEventSetEvent)。)。l在任務(wù)層次釋放資源(系統(tǒng)服務(wù)在任務(wù)層次釋放資源(系統(tǒng)服務(wù)ReleaseResourceReleaseResource)l從中斷返回到任務(wù)層次。從中斷返回到任務(wù)層次。36非搶占式調(diào)度非搶占式調(diào)度l非搶占式策略,就是就有通過(guò)精確定義的系統(tǒng)服務(wù)的非搶占式策略,就是就有通過(guò)精確定義的系統(tǒng)服務(wù)的選擇才會(huì)導(dǎo)致任務(wù)切換。選擇才會(huì)導(dǎo)致任務(wù)切換。l非搶占式調(diào)度對(duì)任務(wù)可能的時(shí)序請(qǐng)求有著特別要求。非搶占式調(diào)度對(duì)任務(wù)可能的時(shí)序請(qǐng)求有著特別要求。特別地,正在運(yùn)行的低優(yōu)先級(jí)任務(wù)的不特別地,正在運(yùn)行的低優(yōu)先級(jí)任務(wù)

24、的不l非搶占(比如,任務(wù)有一些不可分割的代碼段,或者非搶占(比如,任務(wù)有一些不可分割的代碼段,或者有些不可分割的操作)會(huì)延遲一個(gè)高優(yōu)先級(jí)任務(wù)的調(diào)有些不可分割的操作)會(huì)延遲一個(gè)高優(yōu)先級(jí)任務(wù)的調(diào)度,只能等到下一個(gè)調(diào)度時(shí)刻。度,只能等到下一個(gè)調(diào)度時(shí)刻。37非搶占調(diào)度非搶占調(diào)度38在非搶占式任務(wù)的情況下,在以下的情況定會(huì)導(dǎo)致在非搶占式任務(wù)的情況下,在以下的情況定會(huì)導(dǎo)致重新調(diào)度的出現(xiàn):重新調(diào)度的出現(xiàn):l任務(wù)順利的終止(系統(tǒng)服務(wù)任務(wù)順利的終止(系統(tǒng)服務(wù)TerminateTaskTerminateTask)l任務(wù)的成功終止,并且準(zhǔn)確激活接下來(lái)要執(zhí)行的任任務(wù)的成功終止,并且準(zhǔn)確激活接下來(lái)要執(zhí)行的任務(wù)(務(wù)(Ch

25、ainTaskChainTask)l調(diào)度器的外部調(diào)用(系統(tǒng)服務(wù)調(diào)度器的外部調(diào)用(系統(tǒng)服務(wù)ScheduleSchedule)。)。l到到“等待態(tài)等待態(tài)”轉(zhuǎn)變的發(fā)生(系統(tǒng)服務(wù)轉(zhuǎn)變的發(fā)生(系統(tǒng)服務(wù)WaitEventWaitEvent)。)。39l混合調(diào)度:混合調(diào)度:l由于搶占權(quán)是任務(wù)的屬性,搶占式任務(wù)和非搶占式任務(wù)由于搶占權(quán)是任務(wù)的屬性,搶占式任務(wù)和非搶占式任務(wù)在系統(tǒng)中混合使用時(shí),運(yùn)行任務(wù)的調(diào)度受到實(shí)際使用的在系統(tǒng)中混合使用時(shí),運(yùn)行任務(wù)的調(diào)度受到實(shí)際使用的調(diào)度策略影響。調(diào)度策略影響。 l任務(wù)使用內(nèi)部資源:任務(wù)使用內(nèi)部資源: l這種調(diào)度策略非常類(lèi)似于搶占閾值技術(shù)這種調(diào)度策略非常類(lèi)似于搶占閾值技術(shù), ,

26、 采用天花板和采用天花板和內(nèi)部資源的在任務(wù)啟動(dòng)加鎖與和結(jié)束解鎖來(lái)實(shí)現(xiàn)閾值。內(nèi)部資源的在任務(wù)啟動(dòng)加鎖與和結(jié)束解鎖來(lái)實(shí)現(xiàn)閾值。 40l如果在同一個(gè)系統(tǒng)上混合使用搶占式和非搶占式如果在同一個(gè)系統(tǒng)上混合使用搶占式和非搶占式任務(wù),那么這個(gè)策略就叫做任務(wù),那么這個(gè)策略就叫做“混合搶占式混合搶占式”l調(diào)度。在這種情況下,調(diào)度策略取決于運(yùn)行的任調(diào)度。在這種情況下,調(diào)度策略取決于運(yùn)行的任務(wù)的務(wù)的“搶占式屬性搶占式屬性”。如果,正在運(yùn)行的任務(wù)是。如果,正在運(yùn)行的任務(wù)是非搶占式的,那么就采取非搶占式調(diào)度;如果正非搶占式的,那么就采取非搶占式調(diào)度;如果正在運(yùn)行的任務(wù)是搶占式的,那么就采取搶占式調(diào)在運(yùn)行的任務(wù)是搶占式的

27、,那么就采取搶占式調(diào)度。度。41選擇調(diào)度策略選擇調(diào)度策略l軟件開(kāi)發(fā)者或者系統(tǒng)集成人員通過(guò)設(shè)置任務(wù)的優(yōu)先級(jí)和安軟件開(kāi)發(fā)者或者系統(tǒng)集成人員通過(guò)設(shè)置任務(wù)的優(yōu)先級(jí)和安排任務(wù)的搶占屬性,決定任務(wù)的執(zhí)行序列。排任務(wù)的搶占屬性,決定任務(wù)的執(zhí)行序列。l一個(gè)任務(wù)的類(lèi)型(基礎(chǔ)類(lèi)型或者擴(kuò)展類(lèi)型)和任務(wù)的調(diào)度一個(gè)任務(wù)的類(lèi)型(基礎(chǔ)類(lèi)型或者擴(kuò)展類(lèi)型)和任務(wù)的調(diào)度類(lèi)型(搶占式或者是非搶占式)是獨(dú)立的。類(lèi)型(搶占式或者是非搶占式)是獨(dú)立的。l一個(gè)純搶占式系統(tǒng)可能包含有基本任務(wù),而一個(gè)非搶占式一個(gè)純搶占式系統(tǒng)可能包含有基本任務(wù),而一個(gè)非搶占式系統(tǒng)可以包含擴(kuò)展任務(wù)。如果一個(gè)操作系統(tǒng)服務(wù)正在運(yùn)行,系統(tǒng)可以包含擴(kuò)展任務(wù)。如果一個(gè)操作

28、系統(tǒng)服務(wù)正在運(yùn)行,任務(wù)的搶占和任務(wù)切換都有可能延遲。任務(wù)的搶占和任務(wù)切換都有可能延遲。42l很多應(yīng)用程序是由極少的執(zhí)行時(shí)間較長(zhǎng)的任務(wù)和很多應(yīng)用程序是由極少的執(zhí)行時(shí)間較長(zhǎng)的任務(wù)和許多定義了執(zhí)行時(shí)間的短任務(wù)組成許多定義了執(zhí)行時(shí)間的短任務(wù)組成對(duì)于長(zhǎng)時(shí)對(duì)于長(zhǎng)時(shí)間的任務(wù)而言,純搶占式操作系統(tǒng)較為合適;對(duì)間的任務(wù)而言,純搶占式操作系統(tǒng)較為合適;對(duì)時(shí)間較短的任務(wù)而言,采用非搶占式調(diào)度則更有時(shí)間較短的任務(wù)而言,采用非搶占式調(diào)度則更有效率。因此,混合式搶占式調(diào)度策略可以看作是效率。因此,混合式搶占式調(diào)度策略可以看作是一個(gè)折衷。一個(gè)折衷。43 在以下情況,在一個(gè)搶占式操作系統(tǒng)中定義非搶在以下情況,在一個(gè)搶占式操作

29、系統(tǒng)中定義非搶占式任務(wù)是有意義的:占式任務(wù)是有意義的:l如果一個(gè)任務(wù)的執(zhí)行時(shí)間和該任務(wù)的切換時(shí)間是在同一如果一個(gè)任務(wù)的執(zhí)行時(shí)間和該任務(wù)的切換時(shí)間是在同一個(gè)數(shù)量級(jí)上的時(shí)候;個(gè)數(shù)量級(jí)上的時(shí)候;l或者,或者,RAMRAM的使用十分經(jīng)濟(jì),為了保存任務(wù)的上下文環(huán)的使用十分經(jīng)濟(jì),為了保存任務(wù)的上下文環(huán)境;境;l或者,該任務(wù)不應(yīng)該被搶占?;蛘?,該任務(wù)不應(yīng)該被搶占。44結(jié)束任務(wù)結(jié)束任務(wù)l在在OSEKOSEK中,任務(wù)只能自己結(jié)束自己。中,任務(wù)只能自己結(jié)束自己。l操作系統(tǒng)提供操作系統(tǒng)提供ChainTaskChainTask函數(shù)來(lái)實(shí)現(xiàn)指定的任務(wù)在函數(shù)來(lái)實(shí)現(xiàn)指定的任務(wù)在結(jié)束自己后激活運(yùn)行。結(jié)束自己后激活運(yùn)行。 Cha

30、inTaskChainTask使得最新被激使得最新被激活的任務(wù)加入優(yōu)先級(jí)隊(duì)列的最后?;畹娜蝿?wù)加入優(yōu)先級(jí)隊(duì)列的最后。l每個(gè)任務(wù)必須在代碼結(jié)尾通過(guò)調(diào)用每個(gè)任務(wù)必須在代碼結(jié)尾通過(guò)調(diào)用TerminateTask TerminateTask 或或 ChainTaskChainTask結(jié)束自己。結(jié)束自己。453操作系統(tǒng)應(yīng)用模式操作系統(tǒng)應(yīng)用模式lOSEKOSEK操作系統(tǒng)提供應(yīng)用模式的支持。在實(shí)際的應(yīng)操作系統(tǒng)提供應(yīng)用模式的支持。在實(shí)際的應(yīng)用中,一個(gè)操作系統(tǒng)可能執(zhí)行幾種互斥的應(yīng)用用中,一個(gè)操作系統(tǒng)可能執(zhí)行幾種互斥的應(yīng)用(比如,正常模式,廠家測(cè)試模式等)。這些應(yīng)(比如,正常模式,廠家測(cè)試模式等)。這些應(yīng)用模式為不

31、同運(yùn)行條件而構(gòu)建不同的軟件運(yùn)行構(gòu)用模式為不同運(yùn)行條件而構(gòu)建不同的軟件運(yùn)行構(gòu)架提供了的一種手段。一旦操作系統(tǒng)啟動(dòng)就不允架提供了的一種手段。一旦操作系統(tǒng)啟動(dòng)就不允許改變系統(tǒng)的應(yīng)用模式。每種應(yīng)用模式使用自己許改變系統(tǒng)的應(yīng)用模式。每種應(yīng)用模式使用自己定義的任務(wù)、中斷、報(bào)警和定時(shí)條件和一些不同定義的任務(wù)、中斷、報(bào)警和定時(shí)條件和一些不同模式共享的模式共享的部分部分。 46系統(tǒng)啟動(dòng)系統(tǒng)啟動(dòng)l正常操作時(shí)有可能產(chǎn)生復(fù)位的情況,因此啟動(dòng)性正常操作時(shí)有可能產(chǎn)生復(fù)位的情況,因此啟動(dòng)性能是在嵌入式系統(tǒng)在汽車(chē)應(yīng)用中是另一個(gè)安全指能是在嵌入式系統(tǒng)在汽車(chē)應(yīng)用中是另一個(gè)安全指標(biāo)。例如,一個(gè)傳動(dòng)系應(yīng)用應(yīng)該能在幾微秒內(nèi)重標(biāo)。例如,

32、一個(gè)傳動(dòng)系應(yīng)用應(yīng)該能在幾微秒內(nèi)重啟整個(gè)系統(tǒng),因?yàn)橄到y(tǒng)必須安全控制發(fā)動(dòng)機(jī)氣缸啟整個(gè)系統(tǒng),因?yàn)橄到y(tǒng)必須安全控制發(fā)動(dòng)機(jī)氣缸中電火花。在正常情況下,應(yīng)避免長(zhǎng)時(shí)間復(fù)雜的中電火花。在正常情況下,應(yīng)避免長(zhǎng)時(shí)間復(fù)雜的啟動(dòng)過(guò)程。啟動(dòng)過(guò)程。 474中斷處理中斷處理l標(biāo)準(zhǔn)規(guī)定操作系統(tǒng)應(yīng)該適用于不同的處理器,因此,操作標(biāo)準(zhǔn)規(guī)定操作系統(tǒng)應(yīng)該適用于不同的處理器,因此,操作系統(tǒng)的中斷處理提供一種通用處理方法,而與硬件無(wú)關(guān)。系統(tǒng)的中斷處理提供一種通用處理方法,而與硬件無(wú)關(guān)。 l因此,在因此,在OSEKOSEK中,標(biāo)準(zhǔn)提供了兩種中斷處理:中,標(biāo)準(zhǔn)提供了兩種中斷處理: l1 1類(lèi)中斷處理類(lèi)中斷處理 l此類(lèi)此類(lèi)ISRISR不調(diào)用操

33、作系統(tǒng)的系統(tǒng)服務(wù)。在中斷服務(wù)例程完成后,不調(diào)用操作系統(tǒng)的系統(tǒng)服務(wù)。在中斷服務(wù)例程完成后,將繼續(xù)處理中斷發(fā)生的地方的指令,例如:中斷不會(huì)影響任務(wù)將繼續(xù)處理中斷發(fā)生的地方的指令,例如:中斷不會(huì)影響任務(wù)的管理。此類(lèi)的的管理。此類(lèi)的ISRISR所需要的花費(fèi)最少。所需要的花費(fèi)最少。l中斷服務(wù)程序不用操作系統(tǒng)服務(wù)。中斷服務(wù)程序不用操作系統(tǒng)服務(wù)。 實(shí)際上,操作系統(tǒng)不處理這實(shí)際上,操作系統(tǒng)不處理這類(lèi)中斷,設(shè)計(jì)者可以自由編寫(xiě)這類(lèi)中斷處理代碼,只是不能調(diào)類(lèi)中斷,設(shè)計(jì)者可以自由編寫(xiě)這類(lèi)中斷處理代碼,只是不能調(diào)用系統(tǒng)服務(wù)代碼。通常這類(lèi)中斷是最高優(yōu)先級(jí)中斷。用系統(tǒng)服務(wù)代碼。通常這類(lèi)中斷是最高優(yōu)先級(jí)中斷。l2 2類(lèi)中斷處

34、理類(lèi)中斷處理 l中斷被操作系統(tǒng)處理,因此操作系統(tǒng)服務(wù)能被中斷處理程序調(diào)中斷被操作系統(tǒng)處理,因此操作系統(tǒng)服務(wù)能被中斷處理程序調(diào)用。用。 48l中斷管理中斷管理l一類(lèi)中斷服務(wù)程序一類(lèi)中斷服務(wù)程序l二類(lèi)中斷服務(wù)程序二類(lèi)中斷服務(wù)程序49l快速開(kāi)啟快速開(kāi)啟/ /禁止禁止APIAPI(應(yīng)用程序接口)功能(應(yīng)用程序接口)功能lOSEKOSEK提供了快速禁止所有中斷(提供了快速禁止所有中斷(EnableAllInterruptsEnableAllInterrupts,DisableAllInterruptsDisableAllInterrupts,ResumeAllInterruptsResumeAllInt

35、errupts,SuspendAllInterruptsSuspendAllInterrupts)和禁止所有第二類(lèi)中斷)和禁止所有第二類(lèi)中斷(ResumeOSInterruptsResumeOSInterrupts,SuspendOSInterruptsSuspendOSInterrupts)的功能。)的功能。典型的用法是保護(hù)短暫的臨界區(qū)域。在受保護(hù)的臨界區(qū)域內(nèi)典型的用法是保護(hù)短暫的臨界區(qū)域。在受保護(hù)的臨界區(qū)域內(nèi)不允許中斷返回,例如:不允許中斷返回,例如:“suspend/disable”suspend/disable”與與“resume/enable”resume/enable”必須配對(duì)使用

36、。必須配對(duì)使用。50中斷服務(wù)程序中斷服務(wù)程序(ISR)可以通過(guò)以下方式和任務(wù)進(jìn)行通信:可以通過(guò)以下方式和任務(wù)進(jìn)行通信:lISR ISR 激活一個(gè)任務(wù);激活一個(gè)任務(wù);lISR ISR 發(fā)送發(fā)送/ /接收一個(gè)非隊(duì)列消息;接收一個(gè)非隊(duì)列消息;lISR ISR 觸發(fā)一個(gè)計(jì)數(shù)器;觸發(fā)一個(gè)計(jì)數(shù)器;lISR ISR 獲取獲取 Task IDTask ID;lISR ISR 獲取任務(wù)狀態(tài);獲取任務(wù)狀態(tài);lISR ISR 設(shè)置一個(gè)事件;設(shè)置一個(gè)事件;lISR ISR 獲取任務(wù)事件的屏蔽碼;獲取任務(wù)事件的屏蔽碼;lISR ISR 使用報(bào)警。使用報(bào)警。51在在2類(lèi)中斷中可以使用的系統(tǒng)函數(shù)類(lèi)中斷中可以使用的系統(tǒng)函數(shù)5

37、2注意:非屏蔽中斷(注意:非屏蔽中斷(NMI)NMI)不能被分配到不能被分配到2 2類(lèi)中斷。這類(lèi)中斷操作類(lèi)中斷。這類(lèi)中斷操作系統(tǒng)不能保護(hù)其臨界區(qū)。系統(tǒng)不能保護(hù)其臨界區(qū)。53ISR StacklISRISR堆棧的目的是為了節(jié)省空間。當(dāng)中斷產(chǎn)生時(shí),堆棧的目的是為了節(jié)省空間。當(dāng)中斷產(chǎn)生時(shí),每個(gè)任務(wù)必須設(shè)置一個(gè)足夠大的堆棧來(lái)保護(hù)任務(wù)每個(gè)任務(wù)必須設(shè)置一個(gè)足夠大的堆棧來(lái)保護(hù)任務(wù)和中斷的變量。為了避免堆??臻g的重復(fù),和中斷的變量。為了避免堆??臻g的重復(fù), OSEKTurboOSEKTurbo將將ISRISR中的堆棧獨(dú)立出來(lái)。這類(lèi)堆棧在中的堆棧獨(dú)立出來(lái)。這類(lèi)堆棧在2 2類(lèi)中斷中使用。在類(lèi)中斷中使用。在BCC1

38、BCC1中,中,ISRISR使用共用一個(gè)堆棧。使用共用一個(gè)堆棧。在一些編譯器中通過(guò)關(guān)鍵字來(lái)產(chǎn)生堆棧構(gòu)架,如在一些編譯器中通過(guò)關(guān)鍵字來(lái)產(chǎn)生堆棧構(gòu)架,如“interrupt”interrupt”。545事件機(jī)制事件機(jī)制l事件機(jī)制事件機(jī)制l實(shí)現(xiàn)同步的方法實(shí)現(xiàn)同步的方法l只支持?jǐn)U展任務(wù)只支持?jǐn)U展任務(wù)l可以初始化任務(wù)的轉(zhuǎn)換狀態(tài),以便轉(zhuǎn)換至等待態(tài),或者可以初始化任務(wù)的轉(zhuǎn)換狀態(tài),以便轉(zhuǎn)換至等待態(tài),或者以便從等待態(tài)轉(zhuǎn)換以便從等待態(tài)轉(zhuǎn)換55l事件機(jī)制僅在擴(kuò)展一致類(lèi)中才支持。用來(lái)實(shí)現(xiàn)任事件機(jī)制僅在擴(kuò)展一致類(lèi)中才支持。用來(lái)實(shí)現(xiàn)任務(wù)的同步和通信,可以通過(guò)務(wù)的同步和通信,可以通過(guò)2 2類(lèi)中斷或任務(wù)來(lái)觸發(fā)。類(lèi)中斷或任務(wù)來(lái)

39、觸發(fā)。l擴(kuò)展任務(wù)的典型行為是等待異步事件調(diào)用擴(kuò)展任務(wù)的典型行為是等待異步事件調(diào)用WaitEventWaitEvent。在事件產(chǎn)生后,認(rèn)為可以重新調(diào)用。在事件產(chǎn)生后,認(rèn)為可以重新調(diào)用WaitEventWaitEvent來(lái)等待其它事件。來(lái)等待其它事件。l事件只有當(dāng)任務(wù)處于非掛起狀態(tài)時(shí)設(shè)置。即擴(kuò)展事件只有當(dāng)任務(wù)處于非掛起狀態(tài)時(shí)設(shè)置。即擴(kuò)展任務(wù)不能處于掛起狀態(tài)。任務(wù)不能處于掛起狀態(tài)。56l有多個(gè)可選項(xiàng)用于操控事件,這取決于該任務(wù)是否是該事件有多個(gè)可選項(xiàng)用于操控事件,這取決于該任務(wù)是否是該事件的擁有者,或者另外的任務(wù)是否是一個(gè)擴(kuò)展任務(wù)。所有的任的擁有者,或者另外的任務(wù)是否是一個(gè)擴(kuò)展任務(wù)。所有的任務(wù)都可以

40、為非掛起的任務(wù)設(shè)置事件。只有事件的擁有者才可務(wù)都可以為非掛起的任務(wù)設(shè)置事件。只有事件的擁有者才可以清除它自己的事件,并且等待自己的事件的設(shè)置。以清除它自己的事件,并且等待自己的事件的設(shè)置。l在任何情況之下,事件的接受者都是擴(kuò)展任務(wù)。因此,中斷在任何情況之下,事件的接受者都是擴(kuò)展任務(wù)。因此,中斷服務(wù)例程和基本任務(wù)是不可能等待一個(gè)事件的。服務(wù)例程和基本任務(wù)是不可能等待一個(gè)事件的。l如果擴(kuò)展任務(wù)等待的事件發(fā)生了,那么該擴(kuò)展任務(wù)將會(huì)從等如果擴(kuò)展任務(wù)等待的事件發(fā)生了,那么該擴(kuò)展任務(wù)將會(huì)從等待態(tài)切換為就緒態(tài)。如果一個(gè)運(yùn)行態(tài)的任務(wù)在等待某事件的待態(tài)切換為就緒態(tài)。如果一個(gè)運(yùn)行態(tài)的任務(wù)在等待某事件的發(fā)生,并且該

41、事件已經(jīng)發(fā)生了,那么該任務(wù)仍會(huì)在運(yùn)行態(tài)。發(fā)生,并且該事件已經(jīng)發(fā)生了,那么該任務(wù)仍會(huì)在運(yùn)行態(tài)。57搶占式擴(kuò)展任務(wù)的同步搶占式擴(kuò)展任務(wù)的同步58非搶占式擴(kuò)展任務(wù)的同步非搶占式擴(kuò)展任務(wù)的同步59事件相關(guān)的函數(shù)事件相關(guān)的函數(shù)606.資源管理資源管理 資源管理用于調(diào)整不同優(yōu)先級(jí)的任務(wù)對(duì)共享的資源的訪(fǎng)問(wèn),資源管理用于調(diào)整不同優(yōu)先級(jí)的任務(wù)對(duì)共享的資源的訪(fǎng)問(wèn),例如:管理實(shí)體(調(diào)度器)、程序片段、內(nèi)存或者硬件區(qū)域。例如:管理實(shí)體(調(diào)度器)、程序片段、內(nèi)存或者硬件區(qū)域。 對(duì)于所有的一致性類(lèi)而言,資源管理是強(qiáng)制要求的。資對(duì)于所有的一致性類(lèi)而言,資源管理是強(qiáng)制要求的。資源管理可以選擇性地?cái)U(kuò)展,用于協(xié)調(diào)任務(wù)和中斷服務(wù)例

42、程的源管理可以選擇性地?cái)U(kuò)展,用于協(xié)調(diào)任務(wù)和中斷服務(wù)例程的并發(fā)訪(fǎng)問(wèn)。并發(fā)訪(fǎng)問(wèn)。資源管理需要確保:資源管理需要確保:l兩個(gè)任務(wù)不能同時(shí)占用同一資源兩個(gè)任務(wù)不能同時(shí)占用同一資源l不能夠發(fā)生優(yōu)先權(quán)倒置不能夠發(fā)生優(yōu)先權(quán)倒置l在使用這些資源時(shí),不允許死鎖的發(fā)生在使用這些資源時(shí),不允許死鎖的發(fā)生l訪(fǎng)問(wèn)資源不允許導(dǎo)致等待態(tài)訪(fǎng)問(wèn)資源不允許導(dǎo)致等待態(tài)61如果在中斷的層次擴(kuò)展資源管理,還必須確保兩個(gè)任務(wù)如果在中斷的層次擴(kuò)展資源管理,還必須確保兩個(gè)任務(wù)或者中斷例程不能同時(shí)占用同一資源或者中斷例程不能同時(shí)占用同一資源在以下的情況中,資源管理的功能是非常有用的:在以下的情況中,資源管理的功能是非常有用的:l搶占式任務(wù)搶占

43、式任務(wù)l在非搶占式任務(wù)的環(huán)境中,如果用戶(hù)計(jì)劃在其它的在非搶占式任務(wù)的環(huán)境中,如果用戶(hù)計(jì)劃在其它的調(diào)度策略下,執(zhí)行應(yīng)用程序代碼調(diào)度策略下,執(zhí)行應(yīng)用程序代碼l在任務(wù)或者中斷服務(wù)例程之間實(shí)現(xiàn)資源共享在任務(wù)或者中斷服務(wù)例程之間實(shí)現(xiàn)資源共享l在中斷服務(wù)例程中實(shí)現(xiàn)資源共享在中斷服務(wù)例程中實(shí)現(xiàn)資源共享62l該標(biāo)準(zhǔn)提供能用于臨界區(qū)的二進(jìn)制資源。優(yōu)先級(jí)該標(biāo)準(zhǔn)提供能用于臨界區(qū)的二進(jìn)制資源。優(yōu)先級(jí)反轉(zhuǎn)和死鎖通過(guò)稱(chēng)之為反轉(zhuǎn)和死鎖通過(guò)稱(chēng)之為OSEKOSEK優(yōu)先級(jí)天花板協(xié)議來(lái)優(yōu)先級(jí)天花板協(xié)議來(lái)避免。避免。 l該協(xié)議在實(shí)際上采用的靜態(tài)優(yōu)先級(jí):該協(xié)議在實(shí)際上采用的靜態(tài)優(yōu)先級(jí): l每個(gè)資源被分配一個(gè)天花板,它是使用該資源的所有

44、任每個(gè)資源被分配一個(gè)天花板,它是使用該資源的所有任務(wù)(包括務(wù)(包括ISRISR)中最高優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí)。)中最高優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí)。 l當(dāng)一個(gè)任務(wù)請(qǐng)求一個(gè)資源時(shí),他的當(dāng)前優(yōu)先級(jí)升為資源當(dāng)一個(gè)任務(wù)請(qǐng)求一個(gè)資源時(shí),他的當(dāng)前優(yōu)先級(jí)升為資源的天花板。的天花板。l當(dāng)任務(wù)釋放一個(gè)資源,該任務(wù)的優(yōu)先級(jí)被重新設(shè)置為資當(dāng)任務(wù)釋放一個(gè)資源,該任務(wù)的優(yōu)先級(jí)被重新設(shè)置為資源請(qǐng)求以前的優(yōu)先級(jí)。源請(qǐng)求以前的優(yōu)先級(jí)。 63l采用該協(xié)議,優(yōu)先級(jí)反轉(zhuǎn)、鏈路阻塞、死鎖被避采用該協(xié)議,優(yōu)先級(jí)反轉(zhuǎn)、鏈路阻塞、死鎖被避免。而且,由于一個(gè)任務(wù)只有所有的資源被釋放免。而且,由于一個(gè)任務(wù)只有所有的資源被釋放時(shí)才能被調(diào)度,因此不需要等待隊(duì)列

45、。時(shí)才能被調(diào)度,因此不需要等待隊(duì)列。 l資源僅被任務(wù)使用。在資源僅被任務(wù)使用。在OSEKOSEK標(biāo)準(zhǔn)中,資源可以被標(biāo)準(zhǔn)中,資源可以被任務(wù)或任務(wù)或2 2類(lèi)中斷服務(wù)例程使用。當(dāng)一個(gè)中斷使用資類(lèi)中斷服務(wù)例程使用。當(dāng)一個(gè)中斷使用資源時(shí)被視為是最高優(yōu)先級(jí)任務(wù):它的執(zhí)行能被延源時(shí)被視為是最高優(yōu)先級(jí)任務(wù):它的執(zhí)行能被延遲當(dāng)更低優(yōu)先級(jí)中斷服務(wù)例程或任務(wù)采用天花板遲當(dāng)更低優(yōu)先級(jí)中斷服務(wù)例程或任務(wù)采用天花板的高于或等于該中斷例程優(yōu)先級(jí)訪(fǎng)問(wèn)該資源時(shí)。的高于或等于該中斷例程優(yōu)先級(jí)訪(fǎng)問(wèn)該資源時(shí)。 64資源使用時(shí)的限制資源使用時(shí)的限制l當(dāng)資源被占用時(shí),當(dāng)資源被占用時(shí), TerminateTask, ChainTask,

46、TerminateTask, ChainTask, ScheduleSchedule, , WaitEvent WaitEvent 不能調(diào)用。使用被占用的不能調(diào)用。使用被占用的資源的中斷服務(wù)程序?qū)⒉荒芡瓿?。資源的中斷服務(wù)程序?qū)⒉荒芡瓿伞當(dāng)一個(gè)任務(wù)占用多個(gè)資源時(shí),應(yīng)按后進(jìn)先出當(dāng)一個(gè)任務(wù)占用多個(gè)資源時(shí),應(yīng)按后進(jìn)先出(LIFOLIFO)的原則釋放資源。)的原則釋放資源。65調(diào)度器作為資源調(diào)度器作為資源l標(biāo)準(zhǔn)還提供特殊的資源,調(diào)度器成為標(biāo)準(zhǔn)還提供特殊的資源,調(diào)度器成為RES_SCHEDULER RES_SCHEDULER ,它能使搶占不能產(chǎn)生。當(dāng)搶占,它能使搶占不能產(chǎn)生。當(dāng)搶占式任務(wù)在處理某段程序時(shí)

47、要求連續(xù)運(yùn)行,可以通式任務(wù)在處理某段程序時(shí)要求連續(xù)運(yùn)行,可以通過(guò)獲取資源過(guò)獲取資源RES_SCHEDULERRES_SCHEDULER鎖住調(diào)度器。實(shí)際上,鎖住調(diào)度器。實(shí)際上,該資源的天花板等于系統(tǒng)最高優(yōu)先級(jí)。一個(gè)非搶該資源的天花板等于系統(tǒng)最高優(yōu)先級(jí)。一個(gè)非搶占任務(wù)可以認(rèn)為是使用了占任務(wù)可以認(rèn)為是使用了RES_SCHEDULER RES_SCHEDULER 資源的資源的任務(wù)。任務(wù)。 l此時(shí),中斷同樣會(huì)被響應(yīng)和處理,但不會(huì)產(chǎn)生調(diào)此時(shí),中斷同樣會(huì)被響應(yīng)和處理,但不會(huì)產(chǎn)生調(diào)度。度。66同步機(jī)制產(chǎn)生的問(wèn)題同步機(jī)制產(chǎn)生的問(wèn)題l優(yōu)先級(jí)反轉(zhuǎn)優(yōu)先級(jí)反轉(zhuǎn)67l死鎖死鎖68l外部資源:需要通過(guò)顯示調(diào)用外部資源:需要

48、通過(guò)顯示調(diào)用API進(jìn)行占有進(jìn)行占有69優(yōu)先級(jí)置頂優(yōu)先級(jí)置頂70搶占式任務(wù)和中斷服務(wù)程序之間的資源分配搶占式任務(wù)和中斷服務(wù)程序之間的資源分配71在中斷服務(wù)程序之間的資源分配在中斷服務(wù)程序之間的資源分配72內(nèi)部資源內(nèi)部資源l一個(gè)內(nèi)部資源是一個(gè)簡(jiǎn)單的資源,當(dāng)一個(gè)任務(wù)啟動(dòng)時(shí),一個(gè)內(nèi)部資源是一個(gè)簡(jiǎn)單的資源,當(dāng)一個(gè)任務(wù)啟動(dòng)時(shí),它被加鎖,當(dāng)這個(gè)任務(wù)結(jié)束時(shí)才被解鎖。內(nèi)部資源的它被加鎖,當(dāng)這個(gè)任務(wù)結(jié)束時(shí)才被解鎖。內(nèi)部資源的天花板可被視為任務(wù)的優(yōu)先權(quán)。天花板可被視為任務(wù)的優(yōu)先權(quán)。73l內(nèi)部資源:任務(wù)一運(yùn)行就占有內(nèi)部資源:任務(wù)一運(yùn)行就占有74l報(bào)警(報(bào)警(Alarm)l兩級(jí)報(bào)警兩級(jí)報(bào)警l報(bào)警動(dòng)作報(bào)警動(dòng)作l激活任務(wù)激

49、活任務(wù)l設(shè)置事件設(shè)置事件l調(diào)用回調(diào)函數(shù)調(diào)用回調(diào)函數(shù) 根據(jù)配置,當(dāng)該報(bào)警有根據(jù)配置,當(dāng)該報(bào)警有效時(shí),回調(diào)例程被調(diào)用或效時(shí),回調(diào)例程被調(diào)用或任務(wù)被激活,或者一個(gè)事任務(wù)被激活,或者一個(gè)事件被設(shè)置。在報(bào)警回調(diào)函件被設(shè)置。在報(bào)警回調(diào)函數(shù)運(yùn)行時(shí),數(shù)運(yùn)行時(shí),2 2類(lèi)中斷被禁類(lèi)中斷被禁止。止。7報(bào)警報(bào)警75計(jì)數(shù)器計(jì)數(shù)器l一個(gè)計(jì)數(shù)器通過(guò)硬件提供的節(jié)拍來(lái)實(shí)現(xiàn)計(jì)數(shù)。一個(gè)計(jì)數(shù)器通過(guò)硬件提供的節(jié)拍來(lái)實(shí)現(xiàn)計(jì)數(shù)。 OSEKOSEK不支持標(biāo)準(zhǔn)不支持標(biāo)準(zhǔn)APIAPI直接操作計(jì)數(shù)器。直接操作計(jì)數(shù)器。l操作系統(tǒng)關(guān)心的是怎樣管理報(bào)警。操作系統(tǒng)關(guān)心的是怎樣管理報(bào)警。lOSEKOSEK操作系統(tǒng)提供至少一個(gè)計(jì)數(shù)器(硬件或者軟操作系統(tǒng)提供至

50、少一個(gè)計(jì)數(shù)器(硬件或者軟件定時(shí)器)。件定時(shí)器)。76報(bào)警管理報(bào)警管理l操作系統(tǒng)在報(bào)警產(chǎn)生時(shí)提供任務(wù)激活、設(shè)置事件操作系統(tǒng)在報(bào)警產(chǎn)生時(shí)提供任務(wù)激活、設(shè)置事件或調(diào)用一個(gè)報(bào)警回調(diào)例程。報(bào)警回調(diào)例程是由應(yīng)或調(diào)用一個(gè)報(bào)警回調(diào)例程。報(bào)警回調(diào)例程是由應(yīng)用程序提供一個(gè)簡(jiǎn)短的函數(shù)。用程序提供一個(gè)簡(jiǎn)短的函數(shù)。l當(dāng)與報(bào)警關(guān)聯(lián)的計(jì)數(shù)器計(jì)數(shù)達(dá)到設(shè)定值時(shí),產(chǎn)生當(dāng)與報(bào)警關(guān)聯(lián)的計(jì)數(shù)器計(jì)數(shù)達(dá)到設(shè)定值時(shí),產(chǎn)生報(bào)警??梢酝ㄟ^(guò)相對(duì)值或絕對(duì)值來(lái)設(shè)置報(bào)警關(guān)聯(lián)報(bào)警。可以通過(guò)相對(duì)值或絕對(duì)值來(lái)設(shè)置報(bào)警關(guān)聯(lián)的計(jì)數(shù)器。的計(jì)數(shù)器。l報(bào)警可以定義為單次報(bào)警或周期報(bào)警。報(bào)警可以定義為單次報(bào)警或周期報(bào)警。l操作系統(tǒng)還提供取消報(bào)警和獲取報(bào)警值函數(shù)。操作系統(tǒng)

51、還提供取消報(bào)警和獲取報(bào)警值函數(shù)。77報(bào)警管理的分層模型報(bào)警管理的分層模型78報(bào)警回調(diào)例程報(bào)警回調(diào)例程l一個(gè)報(bào)警回調(diào)例程可以無(wú)參數(shù)或返回值。一個(gè)報(bào)警回調(diào)例程可以無(wú)參數(shù)或返回值。l回調(diào)例程應(yīng)按下面格式定義回調(diào)例程應(yīng)按下面格式定義:ALARMCALLBACK(AlarmCallbackRoutineName);ALARMCALLBACK(AlarmCallbackRoutineName);l例如:ALARMCALLBACK(BrakePedalStroke)ALARMCALLBACK(BrakePedalStroke) / /* * do application processing do appl

52、ication processing * */ / 798消息消息l消息主要用于處理器內(nèi)部和處理器之間進(jìn)行通信。消息主要用于處理器內(nèi)部和處理器之間進(jìn)行通信。lOSEK COMOSEK COM對(duì)消息進(jìn)行了詳細(xì)說(shuō)明。對(duì)消息進(jìn)行了詳細(xì)說(shuō)明。80本節(jié)提要本節(jié)提要OSEK標(biāo)準(zhǔn)介紹標(biāo)準(zhǔn)介紹OSEK OS標(biāo)準(zhǔn)標(biāo)準(zhǔn)AutoOSEK 內(nèi)核設(shè)計(jì)內(nèi)核設(shè)計(jì)OSEK COM標(biāo)準(zhǔn)標(biāo)準(zhǔn)OSEK OIL標(biāo)準(zhǔn)標(biāo)準(zhǔn)81OSEK COMlOSEKOSEK標(biāo)準(zhǔn)也包含了車(chē)輛內(nèi)部通信的接口和協(xié)議的規(guī)定,稱(chēng)標(biāo)準(zhǔn)也包含了車(chē)輛內(nèi)部通信的接口和協(xié)議的規(guī)定,稱(chēng)為為OSEK COMOSEK COM。通信條款規(guī)定了整個(gè)車(chē)輛中兩個(gè)結(jié)點(diǎn)之間的。通信條款規(guī)

53、定了整個(gè)車(chē)輛中兩個(gè)結(jié)點(diǎn)之間的通信和一個(gè)結(jié)點(diǎn)的內(nèi)部的通信。基本思想是為應(yīng)用層提供通信和一個(gè)結(jié)點(diǎn)的內(nèi)部的通信。基本思想是為應(yīng)用層提供一個(gè)易于實(shí)現(xiàn)不同硬件之間通信的獨(dú)立于具體通信介質(zhì)的一個(gè)易于實(shí)現(xiàn)不同硬件之間通信的獨(dú)立于具體通信介質(zhì)的標(biāo)準(zhǔn)的通信接口。標(biāo)準(zhǔn)的通信接口。lCOMCOM規(guī)范給內(nèi)部通信和外部通信定義了公共的軟件通信接口規(guī)范給內(nèi)部通信和外部通信定義了公共的軟件通信接口和服務(wù),這些接口和服務(wù)獨(dú)立于所采用的通信協(xié)議。通過(guò)和服務(wù),這些接口和服務(wù)獨(dú)立于所采用的通信協(xié)議。通過(guò)這些,就增加了應(yīng)用程序軟件模塊的可移植性。這些,就增加了應(yīng)用程序軟件模塊的可移植性。 82l OSEK COM OSEK COM

54、提供了在任務(wù)間、提供了在任務(wù)間、ISRISR間以及任務(wù)和間以及任務(wù)和ISRISR之間傳之間傳輸數(shù)據(jù)的服務(wù)。這些任務(wù)可以在一個(gè)輸數(shù)據(jù)的服務(wù)。這些任務(wù)可以在一個(gè)ECUECU里面也可以在不同里面也可以在不同的的ECUECU里面。只能通過(guò)指定的里面。只能通過(guò)指定的APIAPI函數(shù)訪(fǎng)問(wèn)函數(shù)訪(fǎng)問(wèn)OSEK COMOSEK COM服務(wù)。服務(wù)。這些這些APIAPI函數(shù)隱藏了內(nèi)部通信和外部通信的不同之處,同時(shí)函數(shù)隱藏了內(nèi)部通信和外部通信的不同之處,同時(shí)也隱藏了不同的通信協(xié)議、總線(xiàn)系統(tǒng)和網(wǎng)絡(luò)類(lèi)型。也隱藏了不同的通信協(xié)議、總線(xiàn)系統(tǒng)和網(wǎng)絡(luò)類(lèi)型。 83lCOM的概念模型的概念模型84lOSEK COMOSEK COM包括

55、包括: : l一個(gè)交互層:為消息的傳輸提供通信服務(wù)一個(gè)交互層:為消息的傳輸提供通信服務(wù) l一個(gè)網(wǎng)絡(luò)層:為不同的消息和分段傳輸提供服務(wù)。一個(gè)網(wǎng)絡(luò)層:為不同的消息和分段傳輸提供服務(wù)。l一個(gè)數(shù)據(jù)鏈路層接口:為上層不同數(shù)據(jù)包的網(wǎng)絡(luò)傳輸提一個(gè)數(shù)據(jù)鏈路層接口:為上層不同數(shù)據(jù)包的網(wǎng)絡(luò)傳輸提供服務(wù)。供服務(wù)。 lOSEK COM OSEK COM 提供豐富的通信工具集,但許多應(yīng)用只提供豐富的通信工具集,但許多應(yīng)用只會(huì)用到其中的一個(gè)子集。正因?yàn)榇?,該?biāo)準(zhǔn)定義會(huì)用到其中的一個(gè)子集。正因?yàn)榇?,該?biāo)準(zhǔn)定義了一個(gè)一致類(lèi)集合,使了一個(gè)一致類(lèi)集合,使OSEK COMOSEK COM能夠按照不同的能夠按照不同的要求進(jìn)行集成,為

56、不同的汽車(chē)供應(yīng)商提供不同集要求進(jìn)行集成,為不同的汽車(chē)供應(yīng)商提供不同集成軟件需求。成軟件需求。 85lOSEK COM OSEK COM 按照通信一致類(lèi)(按照通信一致類(lèi)(CCCsCCCsCommunication Conformance Classes)Communication Conformance Classes)定義這些定義這些分層。一致類(lèi)的主要目的是根據(jù)不同應(yīng)用需要和分層。一致類(lèi)的主要目的是根據(jù)不同應(yīng)用需要和CPUCPU特征定義不同功能的通信組成。特征定義不同功能的通信組成。OSEK COM OSEK COM 定定義了義了4 4個(gè)通信一致類(lèi)來(lái)為個(gè)通信一致類(lèi)來(lái)為ECUECU的內(nèi)部通信到外

57、部通的內(nèi)部通信到外部通信提供支持。信提供支持。通信一致類(lèi)通信一致類(lèi)86lCCCA:CCCA:lCCCA CCCA 定義最少的特征用于支持內(nèi)部通信。非隊(duì)列消息被支定義最少的特征用于支持內(nèi)部通信。非隊(duì)列消息被支持。持。lCCCB:CCCB:lCCCBCCCB定義的特征用于支持內(nèi)部通信。定義的特征用于支持內(nèi)部通信。 除了除了CCCACCCA支持以外,支持以外,還包括消息狀態(tài)信息和隊(duì)列消息。還包括消息狀態(tài)信息和隊(duì)列消息。lCCC0:CCC0:lCCC0 CCC0 定義最少的特征支持內(nèi)部通信和外部通信,所有的定義最少的特征支持內(nèi)部通信和外部通信,所有的CCCACCCA和和2 2類(lèi)通知,字節(jié)順序轉(zhuǎn)換,直接

58、傳輸模式。類(lèi)通知,字節(jié)順序轉(zhuǎn)換,直接傳輸模式。lCCC1:CCC1:l支持所用支持所用OSEK COMOSEK COM定義的特征。定義的特征。8788消息傳送和接收模型消息傳送和接收模型89外部接收模型外部接收模型90外部傳送模型外部傳送模型91外部消息的傳送模式外部消息的傳送模式l直接傳送直接傳送l消息根據(jù)應(yīng)用層調(diào)用直接發(fā)送。消息根據(jù)應(yīng)用層調(diào)用直接發(fā)送。l周期傳送周期傳送lIPDU中的消息按照設(shè)置的周期進(jìn)行傳送。中的消息按照設(shè)置的周期進(jìn)行傳送。l混合傳送混合傳送l消息采用直接和周期混合模式進(jìn)行發(fā)送。消息采用直接和周期混合模式進(jìn)行發(fā)送。92lOSEK COMOSEK COM只支持靜態(tài)長(zhǎng)度消息,

59、一個(gè)消息被定義成只支持靜態(tài)長(zhǎng)度消息,一個(gè)消息被定義成固定長(zhǎng)度,或者定義一個(gè)消息可以變化的最大長(zhǎng)度。固定長(zhǎng)度,或者定義一個(gè)消息可以變化的最大長(zhǎng)度。lOSEK COMOSEK COM提供超時(shí)監(jiān)測(cè)(死限)機(jī)制。提供超時(shí)監(jiān)測(cè)(死限)機(jī)制。lOSEK COMOSEK COM提供過(guò)濾機(jī)制。提供過(guò)濾機(jī)制。l在發(fā)送方,采用過(guò)濾算法,如果不滿(mǎn)足要求,在發(fā)送方,采用過(guò)濾算法,如果不滿(mǎn)足要求,IPDUIPDU數(shù)據(jù)不數(shù)據(jù)不會(huì)被更新。會(huì)被更新。l在發(fā)送方,內(nèi)部消息不需要過(guò)濾。在發(fā)送方,內(nèi)部消息不需要過(guò)濾。l在接收方,內(nèi)部消息和外部消息都可以采用過(guò)濾。在接收方,內(nèi)部消息和外部消息都可以采用過(guò)濾。93直接傳輸直接傳輸94周

60、期傳輸周期傳輸95混合傳輸混合傳輸96網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換小端模式小端模式大端模式大端模式97消息配置消息配置l配置主要包括配置主要包括: :l消息傳送屬性的配置,消息傳送屬性的配置,IPDUIPDU傳輸模式的配置。傳輸模式的配置。l消息的打包。消息的打包。 Packing of the messages to I-PDUs Packing of the messages to I-PDUs (see section 2.4 for details).(see section 2.4 for details).l接收是否采用隊(duì)列及隊(duì)列的大小接收是否采用隊(duì)列及隊(duì)列的大小98l內(nèi)部通信

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論