嵌入式OSEK配置器的設(shè)計(jì)與實(shí)現(xiàn)
隨著汽車工業(yè)的快速發(fā)展,汽車對控制、通信、網(wǎng)絡(luò)管理等方面的要求越來越高,基于32位微控制器的硬件平臺(tái)、基于嵌入式實(shí)時(shí)操作系統(tǒng)的軟件平臺(tái)和基于CAN總線的網(wǎng)絡(luò)通信平臺(tái)逐漸成為當(dāng)今汽車電子業(yè)的主流。
1 OSEK/VDX規(guī)范簡介
在嵌入式實(shí)時(shí)操作系統(tǒng)方面,為了滿足日益龐大、復(fù)雜的汽車電子控制軟件的開發(fā)需要,實(shí)現(xiàn)應(yīng)用軟件的可移植性和不同廠商控制模塊間的可兼容性,1993年德國汽車工業(yè)界聯(lián)合推出了汽車電子的開放式系統(tǒng)及接口——OSEK/VDX規(guī)范(以下簡稱“OSEK規(guī)范”),旨在為汽車上的分布控制單元提供一個(gè)開放結(jié)構(gòu)的工業(yè)標(biāo)準(zhǔn)。OSEK規(guī)范從實(shí)時(shí)操作系統(tǒng)(RTOS)、軟件接口、通信和網(wǎng)絡(luò)管理等方面對汽車電子控制軟件開發(fā)平臺(tái)作了較為全面的定義與規(guī)定。盡管該規(guī)范還處在不斷完善中,但它所提出的一整套解決方案將是未來汽車電子軟件開發(fā)的發(fā)展方向。
為了達(dá)到OSEK軟件可移植的目標(biāo),OSEK規(guī)范中定義了配置使用OSEK應(yīng)用程序的方法——通用實(shí)現(xiàn)語言O(shè)IL。OSEK配置器就是使用圖形化的用戶接口,根據(jù)用戶需求配置OIL文件,并最終生成OSEK實(shí)時(shí)操作系統(tǒng)初始化代碼的工具。它是開發(fā)符合OSEK規(guī)范的實(shí)時(shí)操作系統(tǒng)的重要組成部分。
2 OSEK配置器的主要功能
OSEK應(yīng)用程序的開發(fā)流程如圖1所示。用戶通過OSEK配置器根據(jù)軟硬件的需求,對操作系統(tǒng)的屬性和所有系統(tǒng)對象進(jìn)行靜態(tài)配置。配置完成后,OSEK配置器生成符合OSEK規(guī)范的OIL配置文件,并進(jìn)一步生成與操作系統(tǒng)相關(guān)的C代碼和頭文件,以提供OSEK實(shí)時(shí)操作系統(tǒng)初始化時(shí)必備的系統(tǒng)參數(shù)。為保證軟件的兼容性,OSEK配置器還能夠從外部直接讀取符合OSEK規(guī)范的OIL文件,完成生成OS靜態(tài)系統(tǒng)文件的過程。
用戶完成應(yīng)用程序代碼編寫和OIL文件配置后,OSEK配置器所產(chǎn)生的代碼、操作系統(tǒng)的部分內(nèi)核和應(yīng)用程序一起交叉編譯,而其他操作系統(tǒng)內(nèi)核代碼作為一個(gè)庫,被鏈接器整合在一起。本文主要研究通過OSEK配置器生成符合OSEK規(guī)范的OIL配置文件及靜態(tài)系統(tǒng)文件的過程(如圖1中虛線部分所示)。
3 OSEK配置器的實(shí)現(xiàn)
3.1 圖形用戶接口GUI的實(shí)現(xiàn)
OSEK應(yīng)用程序的OIL語言描述包含一組OIL對象描述,分別是CPU、OS(操作系統(tǒng))、APPMODE(應(yīng)用程序模式)、ISR(中斷服務(wù))、RESOURCE(資源)、TASK(任務(wù))、COUNTER(計(jì)數(shù)器)、EVENT(事件)、ALarm(警報(bào))、COM(通信子系統(tǒng))、MESSAGE(消息)、IPDU(外部通信)和NM(網(wǎng)絡(luò)管理)。其中,CPU是其余OIL對象的容器。OIL為它的對象定義了標(biāo)準(zhǔn)類型,每一個(gè)對象都可以用一些屬性和參數(shù)來描述。
對于不同的OSEK實(shí)現(xiàn),生成OIL配置文件的方法是不同的。由于用戶自己編寫OIL文件具有一定的復(fù)雜性,因此,在集成開發(fā)環(huán)境中帶有一個(gè)上下文相關(guān)幫助的、可視的圖形用戶接口GUI是非常必要的。在集成開發(fā)環(huán)境中,一個(gè)包含GUI的OSEK配置器需要包含以下組件:
◇一張遵循Windows Explorer格式的OSEK對象清單,用戶可以根據(jù)需要添加和刪除DIL對象;
◇一個(gè)圖表,用于顯示每個(gè)對象的屬性(包括標(biāo)準(zhǔn)屬性和與實(shí)現(xiàn)有關(guān)的屬性),用戶可更改對象的屬性并且實(shí)時(shí)更新OIL文件;
◇一個(gè)用于記錄和顯示的窗口。
集成開發(fā)環(huán)境的OSEK配置器工作界面如圖2所示,其數(shù)據(jù)的管理和顯示采用XML技術(shù)來實(shí)現(xiàn)。
XML以一種開放的自我描述方式定義了數(shù)據(jù)結(jié)構(gòu),在描述數(shù)據(jù)內(nèi)容的同時(shí)能突出對結(jié)構(gòu)的描述,從而體現(xiàn)出數(shù)據(jù)之間的關(guān)系。它相當(dāng)于一個(gè)容器,可用來存儲(chǔ)OSEK規(guī)范中OIL定義的各個(gè)對象。對每個(gè)OIL對象來說,其屬性和子屬性都包含不同的數(shù)據(jù)結(jié)構(gòu),可以通過XML樹型結(jié)構(gòu)方便地表示出來;而對于同一類對象又包含相同的屬性和子屬性,可用相同的XML模板來表示。
由于XML技術(shù)可以很方便地存儲(chǔ)、描述和管理結(jié)構(gòu)化的數(shù)據(jù),并且有效地將數(shù)據(jù)和數(shù)據(jù)的顯示相分離,因此,在OSEK配置器中采用XML技術(shù)來實(shí)現(xiàn)OIL文件圖形用戶接口的配置,是非常方便和高效的。
評論