《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 開放實(shí)時(shí)嵌入式軟件平臺TOPPERS的研究現(xiàn)狀
開放實(shí)時(shí)嵌入式軟件平臺TOPPERS的研究現(xiàn)狀
現(xiàn)代電子技術(shù)
任 慰,何頂新,趙 金
摘要: 嵌入式系統(tǒng)開發(fā)趨勢之一是基于平臺的開發(fā),包括硬件平臺和軟件平臺。開放實(shí)時(shí)嵌入式軟件平臺TOPPERS(ToyohashiOpenPlatformforEmbeddedReal-timeSystem)是一個包含多種嵌入式實(shí)時(shí)操作系統(tǒng)、中間件以及軟件開發(fā)工具在內(nèi)的,可用于多個領(lǐng)域的綜合性平臺。本文介紹了TOPPERS的歷史、現(xiàn)狀及其下一個十年的發(fā)展計(jì)劃和目標(biāo),以及TOPPERS在國內(nèi)的發(fā)展情況和目前基于TOPPERS成果正在進(jìn)行的工作。
Abstract:
Key words :

引言
開放實(shí)時(shí)嵌入式軟件平臺TOPPERS(Toyohashi Open Platform for Embedded Real-time System)為一個包含多種嵌入式實(shí)時(shí)操作系統(tǒng)、中間件以及軟件開發(fā)工具在內(nèi)的,可用于多個領(lǐng)域的綜合性平臺。本文對TOPPERS的發(fā)展歷史、研究現(xiàn)狀和下一個十年的發(fā)展計(jì)劃和目標(biāo)進(jìn)行了介紹和分析,一方面可以使TOPPERS的發(fā)展成果能夠被更廣泛地分享;另一方面為國內(nèi)類似嵌入式軟件平臺的發(fā)展提供參考。TOPPERS的主要特色在于具有高質(zhì)量的設(shè)計(jì)和較完善的體系,開放源代碼,可免費(fèi)使用,靈活的許可證使得其在商業(yè)應(yīng)用上限制較少。

1 TOPPERS的歷史
TOPPERS的歷史并不長,但其起點(diǎn)是具有20多年歷史的TRON(The Real-time Operating system Nucleus)和ITRON(Industrial TRON)項(xiàng)目。ITRON規(guī)范為一系列關(guān)于實(shí)時(shí)操作系統(tǒng)的開發(fā)規(guī)范,而不是一個具體的實(shí)時(shí)操作系統(tǒng)的實(shí)現(xiàn),迄今共發(fā)布4個版本。任何組織或者個人都可以按照ITRON規(guī)范開發(fā)自己的實(shí)時(shí)操作系統(tǒng)。ITRON規(guī)范的開放性和弱標(biāo)準(zhǔn)性使其取得了巨大的成功,在日本已經(jīng)成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。
但也正是因?yàn)镮TRON規(guī)范的弱標(biāo)準(zhǔn)性,符合ITRON規(guī)范的實(shí)時(shí)操作系統(tǒng)版本彼此之間不能完全兼容,帶來了過剩的多樣性,造成過多重復(fù)開發(fā)。另外,隨著嵌入式系統(tǒng)越發(fā)復(fù)雜,除了實(shí)時(shí)操作系統(tǒng)內(nèi)核,其他中間件如文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧、設(shè)備驅(qū)動框架等也越發(fā)重要,而在這些方面,ITRON規(guī)范是比較薄弱的。
為了解決上述問題,適應(yīng)未來嵌入式系統(tǒng)發(fā)展趨勢,ITRON的發(fā)展在兩個方向上繼續(xù)進(jìn)行,一個是由坂村健教授主導(dǎo)的T-Engine,另一個便是TOPPERS。TOPPERS和T-Engine不同點(diǎn)在于TOPPERS是以μITRON4.0規(guī)范為基礎(chǔ),主要針對硬實(shí)時(shí)系統(tǒng),專注于工業(yè)控制領(lǐng)域,如汽車電子等;T-Engine由硬件上的T-Engine規(guī)范和軟件上的以T-Kernel為代表的一系列實(shí)時(shí)內(nèi)核以及相應(yīng)的中間件這兩大部分組成。

2 TOPPERS的現(xiàn)狀
最近一次ITRON規(guī)范的發(fā)布要上溯至1999年的μITRON4.0規(guī)范。進(jìn)入新世紀(jì)后,一方面嵌入式系統(tǒng)相關(guān)技術(shù)的發(fā)展日新月異;另一方面ITRON規(guī)范十多年未作更新,已經(jīng)無法滿足未來嵌入式系統(tǒng)應(yīng)用的需求。因此,從2006年開始,TOPPERS協(xié)會在μITRON4.0規(guī)范基礎(chǔ)之上開始制定新一代實(shí)時(shí)內(nèi)核規(guī)范并加以實(shí)現(xiàn),其大致路線圖如圖1所示。到2011年為止,該路線圖中的絕大部分目標(biāo)都已經(jīng)達(dá)成,產(chǎn)生一大批成果,并且在消費(fèi)電子和汽車電子等領(lǐng)域中得到廣泛應(yīng)用。

a.JPG

2.1 實(shí)時(shí)內(nèi)核
TOPPERS/ASP(Advanced Standard Profile)內(nèi)核是整個TOPPERS平臺的基石和TOPPERS新一代實(shí)時(shí)內(nèi)核的出發(fā)點(diǎn),它遵循μITRON4.0規(guī)范標(biāo)準(zhǔn)功能集,并在TOPPERS/JSP內(nèi)核基礎(chǔ)上做了許多改進(jìn)和擴(kuò)展,包括可靠性和代碼的可復(fù)用性,其內(nèi)存占用較小,功能完善且有著不錯的性能。通過擴(kuò)展包的形式可以對該內(nèi)核的功能進(jìn)行擴(kuò)展,如任務(wù)優(yōu)先級可擴(kuò)展到256級,支持優(yōu)先級置頂協(xié)議的互斥量擴(kuò)展和受限任務(wù)(類似FreeRTOS中的協(xié)程)擴(kuò)展等。
TOPPERS/FMP(Flexible MultiProcessor)內(nèi)核是TOPPERS/ASP內(nèi)核針對多核處理器的擴(kuò)展。該內(nèi)核以靜態(tài)的方式把任務(wù)分配給每個處理器,任務(wù)調(diào)度也在每個處理器上單獨(dú)進(jìn)行,任務(wù)可以在處理器之間靈活地進(jìn)行遷移,并引入了自旋鎖,支持粗粒度鎖和細(xì)粒度鎖。該內(nèi)核主要適用于對稱性多核處理器系統(tǒng),以應(yīng)對嵌入式系統(tǒng)多核化的趨勢,目前支持ARM系列的多核處理器和瑞薩SH系列多核處理器。
TOPPERS/ATK1(Automotive Kernel)內(nèi)核為一個面向汽車電子領(lǐng)域且遵循OSEK/VDX Version 2.2.1規(guī)范的實(shí)時(shí)內(nèi)核。該內(nèi)核通過了車載軟件的相關(guān)認(rèn)證,并且在代碼實(shí)現(xiàn)上遵循MISRA-C設(shè)計(jì)規(guī)范,車載軟件是TOPPERS的優(yōu)勢所在。除了實(shí)時(shí)內(nèi)核外,TOPPERS還提供面向車載網(wǎng)絡(luò)的CAN/LIN中間件和FlexRay中間件。目前,符合AUTOSAR規(guī)范的新一代車載實(shí)時(shí)內(nèi)核TOPPERS/ATK2也正在開發(fā)中。
TOPPERS/HRP(High Reliable Profile)內(nèi)核以μITRON4.0規(guī)范的保護(hù)功能擴(kuò)展為基礎(chǔ),帶有內(nèi)存保護(hù)和時(shí)間保護(hù)功能,適用于帶有MPU(Memory ProtectionUnit)或者M(jìn)MU(Memory Management Unit)單元的系統(tǒng)。該內(nèi)核主要應(yīng)用于對可靠性有很高要求的領(lǐng)域,如航空航天等。內(nèi)存保護(hù)主要包括防止對內(nèi)存模塊特定區(qū)域的訪問,防止對特定系統(tǒng)數(shù)據(jù)的訪問和防止分配過多內(nèi)存等。時(shí)間保護(hù)主要指防止系統(tǒng)中某個任務(wù)或中斷處理函數(shù)過多地占用處理器。
TOPPERS/ASP Safety內(nèi)核基于TOPPERS/ASP內(nèi)核1.3.1版本,對內(nèi)核進(jìn)行了大量的功能安全分析,在文檔、代碼注釋和部分功能上做了相應(yīng)修改,符合功能安全規(guī)范IEC61058中SIL3的要求,主要應(yīng)用于強(qiáng)調(diào)功能安全的領(lǐng)域,如核電、石化等。
TOPPERS/SSP(Smallest Set Profile)以TOPPERS/ASP內(nèi)核為基礎(chǔ),以盡可能地減少ROM/RAM使用量為目的,功能上遵循μITRON4.0規(guī)范中最低限度功能集。該內(nèi)核主要針對資源非常有限的小規(guī)模嵌入式系統(tǒng),如無線傳感器應(yīng)用等,刪除了任務(wù)間通訊功能,精簡了任務(wù)管理功能。在該內(nèi)核中,每個任務(wù)優(yōu)先級上只允許存在一個任務(wù),最多允許16個任務(wù)存在,并且所有任務(wù)共享一個任務(wù)堆棧。該內(nèi)核針對ARM Cortex-M3內(nèi)核處理器的典型應(yīng)用只需占用3.5 KB左右的ROM,附加上時(shí)間管理擴(kuò)展包后也只占用5 KB左右的ROM。
2.2 中間件
TECS(TOPPERS Embedded Component System)是一個針對嵌入式系統(tǒng),將各種軟件模塊封裝為組件,并將組件結(jié)合在一起以實(shí)現(xiàn)快速構(gòu)建大規(guī)模嵌入式軟件的規(guī)范和工具的集合。其目的在于通過組件化的開發(fā)方式降低嵌入式軟件的開發(fā)難度,減少重復(fù)開發(fā),提高設(shè)計(jì)的抽象度和嵌入式軟件的可復(fù)用性。在TECS中,通過組件描述語言CDL(Component Description Language)來描述組件的接口和屬性等,然后解析器分析CDL并生成相應(yīng)的C語言代碼模板,最后用C語言實(shí)現(xiàn)相應(yīng)的組件。由于TECS的底層是基于C語言的,且整個過程是靜態(tài)的,所以其在代碼大小和性能上開銷很小,適合于嵌入式系統(tǒng)應(yīng)用。TECS支持遠(yuǎn)程過程調(diào)用(Remote Procedure Call),可用于分布式嵌入式系統(tǒng)的開發(fā)。
TINET為一個面向嵌入式系統(tǒng)的精簡TCP/IP協(xié)議棧,遵循ITRON TCP/IP API規(guī)范,并同時(shí)支持IPv4和IPv6協(xié)議。TINET的IPv4協(xié)議部分來源于FreeBSDVersion 3.4中的網(wǎng)絡(luò)協(xié)議棧,IPv6協(xié)議部分來源于著名的IPv6實(shí)現(xiàn)KAME。TINET中許多概念與BSD套接字的概念類似,但重點(diǎn)考慮嵌入系統(tǒng)各種限制中最為嚴(yán)格的內(nèi)存容量的限制,刪除了一些傳統(tǒng)BSD套接字接口的TCP/IP協(xié)議棧中對于嵌入式系統(tǒng)多余的功能。
SafeG為一個基于ARM TrustZone技術(shù)的嵌入式虛擬機(jī)(Embedded Hypervisor),支持在同一個處理器上同時(shí)運(yùn)行實(shí)時(shí)操作系統(tǒng)(運(yùn)行在信任狀態(tài)下)和通用操作系統(tǒng)(運(yùn)行在非信任狀態(tài)下)并以硬件實(shí)現(xiàn)空間和時(shí)間上的隔離。SafeG負(fù)責(zé)信任狀態(tài)和非信任狀態(tài)之間的切換,并監(jiān)控中斷的產(chǎn)生,通用操作系統(tǒng)作為實(shí)時(shí)操作系統(tǒng)的若干任務(wù)被調(diào)度。通過SafeG,可以結(jié)合多種操作系統(tǒng)的特點(diǎn)于一體,帶來更多的靈活性,同時(shí)保證安全性和可靠性。
2.3 TOPPERS內(nèi)核的主要特征
不同的TOPPERS內(nèi)核覆蓋不同的嵌入式系統(tǒng)領(lǐng)域,但以下兩點(diǎn)幾乎為所有TOPPERS內(nèi)核的主要特征。
(1)靜態(tài)配置
常見的實(shí)時(shí)操作系統(tǒng)中,系統(tǒng)的配置通過C語言頭文件中的宏定義來實(shí)現(xiàn),系統(tǒng)資源是通過調(diào)用C語言API來創(chuàng)建的。在TOPPERS內(nèi)核中,系統(tǒng)的配置和系統(tǒng)資源的創(chuàng)建是通過靜態(tài)API來完成的。靜態(tài)API的相關(guān)概念在μITRON4.0規(guī)范中引入。使用者通過編寫由靜態(tài)API組成的系統(tǒng)配置文件(文件后綴為.cfg)來描述系統(tǒng)的組成和所需的系統(tǒng)資源。TOPPERS內(nèi)核配置器(configurator)將解析系統(tǒng)配置文件,并依據(jù)事先定義好的模板文件生成相應(yīng)的C語言具體實(shí)現(xiàn)。

b.JPG

以TOPPERS/ASP內(nèi)核為例,對靜態(tài)配置流程進(jìn)行簡要描述。靜態(tài)配置流程圖如圖2所示,靜態(tài)配置可以分為3個階段:
①配置器階段1。在該階段中,配置器讀取系統(tǒng)配置文件和符號取值表生成用于參數(shù)計(jì)算的C源文件,再經(jīng)交叉C編譯器編譯、鏈接,生成包含具體參數(shù)的結(jié)果文件(Motorola S格式)和對應(yīng)的符號表。
②配置器階段2。在該階段中,配置器依據(jù)上一階段生成的符號表從參數(shù)計(jì)算結(jié)果文件中取得實(shí)際值,再依據(jù)事先定義好的模板文件,生成包含具體內(nèi)核資源實(shí)現(xiàn)的內(nèi)核,構(gòu)成與初始化文件和相應(yīng)的頭文件(也可生成其他文件,由使用者自定義)。所生成的源文件與內(nèi)核和應(yīng)用一起編譯、鏈接,即可生成最終的目標(biāo)文件和相應(yīng)的符號表。
③配置器階段3。該階段為一個可選的檢查階段。配置器依據(jù)定義在模板文件中的規(guī)則,結(jié)合符號表對最終的目標(biāo)文件(Motorola S格式)進(jìn)行檢查,如違反規(guī)則,輸出相應(yīng)錯誤信息。
采用靜態(tài)配置,可以自動化高效地實(shí)現(xiàn)對系統(tǒng)的配置和系統(tǒng)資源的創(chuàng)建和分配,減少系統(tǒng)資源的浪費(fèi)。由于所有系統(tǒng)資源在編譯時(shí)就已經(jīng)創(chuàng)建完畢,不需要在運(yùn)行時(shí)再進(jìn)行創(chuàng)建工作,所以系統(tǒng)的啟動過程也將得到加快。另外在靜態(tài)配置過程中可以實(shí)現(xiàn)一些編譯器所不能完成的復(fù)雜驗(yàn)證工作,如堆棧的起始地址是否對齊、堆棧的大小是否對齊等。
(2)TOPPERS標(biāo)準(zhǔn)中斷模型
由于中斷處理和硬件緊密相關(guān),常見的實(shí)時(shí)操作系統(tǒng)中,中斷具體怎樣處理沒有過多的要求,而是留給移植時(shí)實(shí)現(xiàn)。在所有TOPPERS內(nèi)核中,中斷處理都遵循如圖3所示的TOPPERS標(biāo)準(zhǔn)中斷處理模型。

c.JPG


該模型旨在提高中斷處理的抽象度,提升中斷相關(guān)代碼的復(fù)用性和可移植性。在該模型中,所有中斷都具有相應(yīng)的中斷優(yōu)先級,中斷優(yōu)先級(默認(rèn)-1~-7)和任務(wù)優(yōu)先級(默認(rèn)1~15)之間過渡平滑,構(gòu)成一個完整的優(yōu)先級體系。在該模型中,每一個中斷都有一條中斷請求線接收一個或多個設(shè)備的中斷請求。當(dāng)一個中斷請求發(fā)生后,經(jīng)過相應(yīng)的判斷和比較之后,由中斷處理函數(shù)處理。中斷處理函數(shù)可以由使用者定義,也可由配置器自動生成。在中斷處理函數(shù)中調(diào)用由使用者定義的中斷服務(wù)例程。在某個中斷的處理過程中,可以允許被具有更高優(yōu)先級的中斷打斷,即允許中斷嵌套。
TOPPERS標(biāo)準(zhǔn)中斷處理模型中定義的所有環(huán)節(jié)都可以由硬件實(shí)現(xiàn),大部分處理器的中斷控制器也包含這些環(huán)節(jié)的功能,如ARM Cortex-M3架構(gòu)處理器的嵌套向量中斷控制器。若某個特定處理器無法硬件實(shí)現(xiàn)該模型中某個環(huán)節(jié)的功能,則可以通過軟件的方式模擬實(shí)現(xiàn)。軟件模擬的方式會帶來相應(yīng)的開銷,如延長中斷響應(yīng)時(shí)間等。然而這種開銷相對于該模型所帶來的中斷處理抽象度的提升是可以接受的。

結(jié)語
本文對開放實(shí)時(shí)嵌入式軟件平臺TOPPERS的發(fā)展歷史、目前研究現(xiàn)狀(包括主要成果物和主要特點(diǎn))以及未來十年的發(fā)展方針進(jìn)行了介紹和分析。其主要特色在于:TOPPERS為一個相對完善的體系,覆蓋了嵌入式系統(tǒng)的多個領(lǐng)域;TOPPERS以ITRON項(xiàng)目20多年發(fā)展成果為基礎(chǔ),具有較高的品質(zhì)和可靠性;靈活的許可證,使得可以自由使用TOPPERS的成果(包括商業(yè)應(yīng)用),同時(shí)有較少的限制。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。