新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于OSEK/VDX標(biāo)準(zhǔn)的Trampoline操作系統(tǒng)研究

基于OSEK/VDX標(biāo)準(zhǔn)的Trampoline操作系統(tǒng)研究

作者: 時間:2009-05-08 來源:網(wǎng)絡(luò) 收藏

摘要 介紹了的開源嵌入式實(shí)時,詳細(xì)分析了該內(nèi)核調(diào)度、任務(wù)管理和中斷管理的實(shí)現(xiàn)機(jī)制,并指出了為實(shí)現(xiàn)高可移植性、小內(nèi)存的設(shè)計(jì)目標(biāo)時對0SEK任務(wù)管理和中斷管理所作的優(yōu)化。最后,給出了在Linux/x86平臺上使用開發(fā)應(yīng)用程序的方法。
關(guān)鍵詞 Trampoline 任務(wù)調(diào)度 任務(wù)管理 中斷管理

本文引用地址:http://m.butianyuan.cn/article/152492.htm


1 現(xiàn)狀及相關(guān)工作
OSEK/產(chǎn)生以后,很多操作系統(tǒng)供應(yīng)商對其進(jìn)行,并實(shí)現(xiàn)了商業(yè)化,例如國外Elektrobit Auto―motive、 Accelerated Techno1ogy、 dSPACE、 ETAS、Metrowerks、Hitex、iSYSTEM、Lauterbach Datentechnik、Vector、WindRiver等公司。這些公司的OSEK操作系統(tǒng)產(chǎn)品都通過了OSEK官方認(rèn)證,并提供了配套的集成開發(fā)環(huán)境來方便應(yīng)用程序的開發(fā)。
國內(nèi)依據(jù)0SEK/VDX開發(fā)的操作系統(tǒng)內(nèi)核,大部分參考了μC/OS操作系統(tǒng)內(nèi)核的設(shè)計(jì)或者是在它的基礎(chǔ)上修改的,也有在Linux的基礎(chǔ)上修改的。國內(nèi)OSEK操作系統(tǒng)配套的集成開發(fā)環(huán)境很少,目前有浙江大學(xué)開發(fā)的SmartIDE、清華大學(xué)開發(fā)的清華車用集成開發(fā)環(huán)境等,其他的基本上沒有配套的集成開發(fā)環(huán)境。因此目前國內(nèi)對OSEK和應(yīng)用還處于初級階段。
由于購買商業(yè)化的OSEK需要大量資金,并且很多時候不能獲取源代碼,因此希望有一些開源OSEK操作系統(tǒng)來滿足研究的需要?,F(xiàn)有的OSEK操作系統(tǒng)的開源實(shí)現(xiàn),有PICosl8,一個OSEK/VDX OS 2.1r1的部分實(shí)現(xiàn)。它專門為PICl8XXX系列微控制器設(shè)計(jì),針對該系列微控制器硬件,特別是在內(nèi)存使用方面作了高度優(yōu)化。但是,它的定制能力很差,并且移植到其他平臺時代碼修改量很大。另外還有openOSEK項(xiàng)目,但是該項(xiàng)目一直沒有開發(fā)出正式發(fā)布的版本。
Trampoline主要是由法國通信研究所(IRCCyN)的實(shí)時系統(tǒng)組負(fù)責(zé)開發(fā)的。它的源代碼是開放的,能夠兼容OSEK/VDX OS 2.2.3標(biāo)準(zhǔn)(當(dāng)前最新版本為1.1)。它目前還沒有通過OSEK/VDX的官方認(rèn)證,因此只能說它兼容OSEK標(biāo)準(zhǔn),而不能說它是通過OSEK認(rèn)證的操作系統(tǒng)。Trampoline目前能夠在4個平臺上運(yùn)行,分別是POSIX(包括Linux、Unix、Mac OS等)系列操作系統(tǒng)平臺、Infineon C166平臺、Freescale S12x平臺、Darwin/PowerPC平臺,其中在POSIX系列操作系統(tǒng)上運(yùn)行時需要libpcl庫的支持。因此,即使沒有微控制器,也可以在常見的Linux/x86平臺上使用Trampoline。
要對整個OSEK/VDX標(biāo)準(zhǔn)進(jìn)行研究,對OSEK操作系統(tǒng)的研究是基礎(chǔ)。只有有了一個可以使用的OSEK操作系統(tǒng),才能在它的基礎(chǔ)上進(jìn)行COM、NM及OIL標(biāo)準(zhǔn)的研究,才能進(jìn)行OSEK操作系統(tǒng)應(yīng)用程序開發(fā)、汽車電子集成開發(fā)環(huán)境的開發(fā)等方面的研究。Trampoline能夠在Linux平臺上運(yùn)行,并且有一個可用的GOIL OIL文件解析器,可以作為進(jìn)行OSEK/VDX標(biāo)準(zhǔn)研究的基礎(chǔ)。


2 OSEK OS及Trampoline分析
OSEK操作系統(tǒng)是一種單處理器操作系統(tǒng),主要用于汽車電子的分布電子控制單元ECU(Electronic ControlUnit)上。
OSEK操作系統(tǒng)對不同版本OSEK操作系統(tǒng)提供的應(yīng)用程序接口進(jìn)行了標(biāo)準(zhǔn)化,這樣,為一個OSEK操作系統(tǒng)設(shè)計(jì)的應(yīng)用程序不用修改就可以移植到其他OSEK操作系統(tǒng)上運(yùn)行。
為了使OSEK操作系統(tǒng)能夠在有不同計(jì)算能力(不同CPU、不同存儲容量)的ECU上運(yùn)行,OSEK定義了4個符合類,分別是BCCl、ECCl、BCC2、ECC2。每一個符合類包括一組操作系統(tǒng)特性,代表一類應(yīng)用程序的需求,也包含了這些操作系統(tǒng)特性運(yùn)行所需要的硬件需求。使用符合類的概念既方便用戶根據(jù)自己的需求及自己的硬件條件來選擇符合自己需要的操作系統(tǒng)特性集合,也使得操作系統(tǒng)供應(yīng)商可以先提供一部分操作系統(tǒng),也就是先提供對部分符合類的支持,然后再增加更多操作系統(tǒng)特性,支持其他符合類,從而方便了操作系統(tǒng)的開發(fā)。
OSEK操作系統(tǒng)是靜態(tài)配置的,而不是動態(tài)生成的,用戶在系統(tǒng)生成階段能夠使用OIL語言對系統(tǒng)進(jìn)行配置,指定系統(tǒng)里使用多少個任務(wù)、使用哪些資源、需要調(diào)用哪些系統(tǒng)服務(wù)等。通過這種方式,用戶可以選擇需要的部分,裁剪掉不需要的,以減少不必要的系統(tǒng)資源。另外,由于系統(tǒng)是靜態(tài)生成的,既減少了動態(tài)生成系統(tǒng)對象的開銷,減少系統(tǒng)內(nèi)存的使用,又可以使系統(tǒng)運(yùn)行時的行為可預(yù)知,提高系統(tǒng)的可靠性和確定性。
由于OSEK操作系統(tǒng)是靜態(tài)生成的,系統(tǒng)運(yùn)行時的很多信息在系統(tǒng)生成階段就可以確定,于是它提供的任務(wù)間同步和通信方法比其他常用的嵌入式實(shí)時操作系統(tǒng)要少。它用OSEK PCP(Priority Ceiling Protoco1)協(xié)議來同步資源的并發(fā)訪問,從而提供了任務(wù)與ISR之間及ISR與ISR之間共享資源的機(jī)制。另外,OSEK操作系統(tǒng)還提供了完善的錯誤處理機(jī)制,提高了系統(tǒng)的可靠性和容錯能力。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉