引言
開放實時嵌入式軟件平臺TOPPERS(Toyohashi Open Platform for Embedded Real-time System)為一個包含多種嵌入式實時操作系統、中間件以及軟件開發工具在內的,可用于多個領域的綜合性平臺。本文對TOPPERS的發展歷史、研究現狀和下一個十年的發展計劃和目標進行了介紹和分析,一方面可以使TOPPERS的發展成果能夠被更廣泛地分享;另一方面為國內類似嵌入式軟件平臺的發展提供參考。TOPPERS的主要特色在于具有高質量的設計和較完善的體系,開放源代碼,可免費使用,靈活的許可證使得其在商業應用上限制較少。
1 TOPPERS的歷史
TOPPERS的歷史并不長,但其起點是具有20多年歷史的TRON(The Real-time Operating system Nucleus)和ITRON(Industrial TRON)項目。ITRON規范為一系列關于實時操作系統的開發規范,而不是一個具體的實時操作系統的實現,迄今共發布4個版本。任何組織或者個人都可以按照ITRON規范開發自己的實時操作系統。ITRON規范的開放性和弱標準性使其取得了巨大的成功,在日本已經成為事實上的工業標準。
但也正是因為ITRON規范的弱標準性,符合ITRON規范的實時操作系統版本彼此之間不能完全兼容,帶來了過剩的多樣性,造成過多重復開發。另外,隨著嵌入式系統越發復雜,除了實時操作系統內核,其他中間件如文件系統、網絡協議棧、設備驅動框架等也越發重要,而在這些方面,ITRON規范是比較薄弱的。
為了解決上述問題,適應未來嵌入式系統發展趨勢,ITRON的發展在兩個方向上繼續進行,一個是由坂村健教授主導的T-Engine,另一個便是TOPPERS。TOPPERS和T-Engine不同點在于TOPPERS是以μITRON4.0規范為基礎,主要針對硬實時系統,專注于工業控制領域,如汽車電子等;T-Engine由硬件上的T-Engine規范和軟件上的以T-Kernel為代表的一系列實時內核以及相應的中間件這兩大部分組成。
2 TOPPERS的現狀
最近一次ITRON規范的發布要上溯至1999年的μITRON4.0規范。進入新世紀后,一方面嵌入式系統相關技術的發展日新月異;另一方面ITRON規范十多年未作更新,已經無法滿足未來嵌入式系統應用的需求。因此,從2006年開始,TOPPERS協會在μITRON4.0規范基礎之上開始制定新一代實時內核規范并加以實現,其大致路線圖如圖1所示。到2011年為止,該路線圖中的絕大部分目標都已經達成,產生一大批成果,并且在消費電子和汽車電子等領域中得到廣泛應用。
2.1 實時內核
TOPPERS/ASP(Advanced Standard Profile)內核是整個TOPPERS平臺的基石和TOPPERS新一代實時內核的出發點,它遵循μITRON4.0規范標準功能集,并在TOPPERS/JSP內核基礎上做了許多改進和擴展,包括可靠性和代碼的可復用性,其內存占用較小,功能完善且有著不錯的性能。通過擴展包的形式可以對該內核的功能進行擴展,如任務優先級可擴展到256級,支持優先級置頂協議的互斥量擴展和受限任務(類似FreeRTOS中的協程)擴展等。
TOPPERS/FMP(Flexible MultiProcessor)內核是TOPPERS/ASP內核針對多核處理器的擴展。該內核以靜態的方式把任務分配給每個處理器,任務調度也在每個處理器上單獨進行,任務可以在處理器之間靈活地進行遷移,并引入了自旋鎖,支持粗粒度鎖和細粒度鎖。該內核主要適用于對稱性多核處理器系統,以應對嵌入式系統多核化的趨勢,目前支持ARM系列的多核處理器和瑞薩SH系列多核處理器。
TOPPERS/ATK1(Automotive Kernel)內核為一個面向汽車電子領域且遵循OSEK/VDX Version 2.2.1規范的實時內核。該內核通過了車載軟件的相關認證,并且在代碼實現上遵循MISRA-C設計規范,車載軟件是TOPPERS的優勢所在。除了實時內核外,TOPPERS還提供面向車載網絡的CAN/LIN中間件和FlexRay中間件。目前,符合AUTOSAR規范的新一代車載實時內核TOPPERS/ATK2也正在開發中。
TOPPERS/HRP(High Reliable Profile)內核以μITRON4.0規范的保護功能擴展為基礎,帶有內存保護和時間保護功能,適用于帶有MPU(Memory ProtectionUnit)或者MMU(Memory Management Unit)單元的系統。該內核主要應用于對可靠性有很高要求的領域,如航空航天等。內存保護主要包括防止對內存模塊特定區域的訪問,防止對特定系統數據的訪問和防止分配過多內存等。時間保護主要指防止系統中某個任務或中斷處理函數過多地占用處理器。
TOPPERS/ASP Safety內核基于TOPPERS/ASP內核1.3.1版本,對內核進行了大量的功能安全分析,在文檔、代碼注釋和部分功能上做了相應修改,符合功能安全規范IEC61058中SIL3的要求,主要應用于強調功能安全的領域,如核電、石化等。
TOPPERS/SSP(Smallest Set Profile)以TOPPERS/ASP內核為基礎,以盡可能地減少ROM/RAM使用量為目的,功能上遵循μITRON4.0規范中最低限度功能集。該內核主要針對資源非常有限的小規模嵌入式系統,如無線傳感器應用等,刪除了任務間通訊功能,精簡了任務管理功能。在該內核中,每個任務優先級上只允許存在一個任務,最多允許16個任務存在,并且所有任務共享一個任務堆棧。該內核針對ARM Cortex-M3內核處理器的典型應用只需占用3.5 KB左右的ROM,附加上時間管理擴展包后也只占用5 KB左右的ROM。
2.2 中間件
TECS(TOPPERS Embedded Component System)是一個針對嵌入式系統,將各種軟件模塊封裝為組件,并將組件結合在一起以實現快速構建大規模嵌入式軟件的規范和工具的集合。其目的在于通過組件化的開發方式降低嵌入式軟件的開發難度,減少重復開發,提高設計的抽象度和嵌入式軟件的可復用性。在TECS中,通過組件描述語言CDL(Component Description Language)來描述組件的接口和屬性等,然后解析器分析CDL并生成相應的C語言代碼模板,最后用C語言實現相應的組件。由于TECS的底層是基于C語言的,且整個過程是靜態的,所以其在代碼大小和性能上開銷很小,適合于嵌入式系統應用。TECS支持遠程過程調用(Remote Procedure Call),可用于分布式嵌入式系統的開發。
TINET為一個面向嵌入式系統的精簡TCP/IP協議棧,遵循ITRON TCP/IP API規范,并同時支持IPv4和IPv6協議。TINET的IPv4協議部分來源于FreeBSDVersion 3.4中的網絡協議棧,IPv6協議部分來源于著名的IPv6實現KAME。TINET中許多概念與BSD套接字的概念類似,但重點考慮嵌入系統各種限制中最為嚴格的內存容量的限制,刪除了一些傳統BSD套接字接口的TCP/IP協議棧中對于嵌入式系統多余的功能。
SafeG為一個基于ARM TrustZone技術的嵌入式虛擬機(Embedded Hypervisor),支持在同一個處理器上同時運行實時操作系統(運行在信任狀態下)和通用操作系統(運行在非信任狀態下)并以硬件實現空間和時間上的隔離。SafeG負責信任狀態和非信任狀態之間的切換,并監控中斷的產生,通用操作系統作為實時操作系統的若干任務被調度。通過SafeG,可以結合多種操作系統的特點于一體,帶來更多的靈活性,同時保證安全性和可靠性。
2.3 TOPPERS內核的主要特征
不同的TOPPERS內核覆蓋不同的嵌入式系統領域,但以下兩點幾乎為所有TOPPERS內核的主要特征。
(1)靜態配置
常見的實時操作系統中,系統的配置通過C語言頭文件中的宏定義來實現,系統資源是通過調用C語言API來創建的。在TOPPERS內核中,系統的配置和系統資源的創建是通過靜態API來完成的。靜態API的相關概念在μITRON4.0規范中引入。使用者通過編寫由靜態API組成的系統配置文件(文件后綴為.cfg)來描述系統的組成和所需的系統資源。TOPPERS內核配置器(configurator)將解析系統配置文件,并依據事先定義好的模板文件生成相應的C語言具體實現。
以TOPPERS/ASP內核為例,對靜態配置流程進行簡要描述。靜態配置流程圖如圖2所示,靜態配置可以分為3個階段:
①配置器階段1。在該階段中,配置器讀取系統配置文件和符號取值表生成用于參數計算的C源文件,再經交叉C編譯器編譯、鏈接,生成包含具體參數的結果文件(Motorola S格式)和對應的符號表。
②配置器階段2。在該階段中,配置器依據上一階段生成的符號表從參數計算結果文件中取得實際值,再依據事先定義好的模板文件,生成包含具體內核資源實現的內核,構成與初始化文件和相應的頭文件(也可生成其他文件,由使用者自定義)。所生成的源文件與內核和應用一起編譯、鏈接,即可生成最終的目標文件和相應的符號表。
③配置器階段3。該階段為一個可選的檢查階段。配置器依據定義在模板文件中的規則,結合符號表對最終的目標文件(Motorola S格式)進行檢查,如違反規則,輸出相應錯誤信息。
采用靜態配置,可以自動化高效地實現對系統的配置和系統資源的創建和分配,減少系統資源的浪費。由于所有系統資源在編譯時就已經創建完畢,不需要在運行時再進行創建工作,所以系統的啟動過程也將得到加快。另外在靜態配置過程中可以實現一些編譯器所不能完成的復雜驗證工作,如堆棧的起始地址是否對齊、堆棧的大小是否對齊等。
(2)TOPPERS標準中斷模型
由于中斷處理和硬件緊密相關,常見的實時操作系統中,中斷具體怎樣處理沒有過多的要求,而是留給移植時實現。在所有TOPPERS內核中,中斷處理都遵循如圖3所示的TOPPERS標準中斷處理模型。
該模型旨在提高中斷處理的抽象度,提升中斷相關代碼的復用性和可移植性。在該模型中,所有中斷都具有相應的中斷優先級,中斷優先級(默認-1~-7)和任務優先級(默認1~15)之間過渡平滑,構成一個完整的優先級體系。在該模型中,每一個中斷都有一條中斷請求線接收一個或多個設備的中斷請求。當一個中斷請求發生后,經過相應的判斷和比較之后,由中斷處理函數處理。中斷處理函數可以由使用者定義,也可由配置器自動生成。在中斷處理函數中調用由使用者定義的中斷服務例程。在某個中斷的處理過程中,可以允許被具有更高優先級的中斷打斷,即允許中斷嵌套。
TOPPERS標準中斷處理模型中定義的所有環節都可以由硬件實現,大部分處理器的中斷控制器也包含這些環節的功能,如ARM Cortex-M3架構處理器的嵌套向量中斷控制器。若某個特定處理器無法硬件實現該模型中某個環節的功能,則可以通過軟件的方式模擬實現。軟件模擬的方式會帶來相應的開銷,如延長中斷響應時間等。然而這種開銷相對于該模型所帶來的中斷處理抽象度的提升是可以接受的。
結語
本文對開放實時嵌入式軟件平臺TOPPERS的發展歷史、目前研究現狀(包括主要成果物和主要特點)以及未來十年的發展方針進行了介紹和分析。其主要特色在于:TOPPERS為一個相對完善的體系,覆蓋了嵌入式系統的多個領域;TOPPERS以ITRON項目20多年發展成果為基礎,具有較高的品質和可靠性;靈活的許可證,使得可以自由使用TOPPERS的成果(包括商業應用),同時有較少的限制。
-
嵌入式
+關注
關注
5088文章
19160瀏覽量
306598 -
內核
+關注
關注
3文章
1379瀏覽量
40348 -
操作系統
+關注
關注
37文章
6862瀏覽量
123532 -
嵌入式實時操作系統
+關注
關注
1文章
127瀏覽量
7859
發布評論請先 登錄
相關推薦
評論