占海燕++吳海坤
摘 要:本文簡要介紹了嵌入式操作系統應用背景和ReWorks;針對信息交互軟件設計需要,分析了ReWorks操作系統任務機制,給出了信息交互軟件的設計過程,介紹了ReWorks環境下使用ReDe集成環境進行軟件開發和調試過程,對同行進行同類型研究具有參考意義。
關鍵詞:ReWorks;信息交互軟件;多任務;ReDe
中圖分類號:TP31 文獻標識碼:A
0.引言
嵌入式操作系統面向特定的應用需求,能夠有針對性地進行設計、優化,進而提高效率降低成本。當前主流的通用型嵌入式操作系統主要有Linux, VxWorks, Windows CE.net等,其中面向控制、通信等領域的實時嵌入式操作系統有WindRiver公司的VxWorks等,國內主要的嵌入式操作系統有麒麟系列Linux,Reworks等。
嵌入式操作系統的廣泛應用給我們的生活工作帶來了巨大的便利,同時對嵌入式操作系統的可靠、可控也有了越來越高的要求,尤其在關系國家安全社會穩定的應用上。在國防、航天、電力、交通等領域的信息化系統建設中盡可能地使用國產化的硬件和軟件。
ReWorks是由華東計算技術研究所自主研發的一款國產化的嵌入式操作系統,與vxWorks全面兼容,具有實時、高效、安全和可裁減等特性。ReWorks操作系統是由微內核及一組可裁剪的核心組件構建的可伸縮的嵌入式實時操作系統,與通用嵌入式操作系統VxWorks高度兼容,具有中斷管理、內存管理、時鐘管理等功能,不僅能夠較好滿足一般嵌入式系統也能滿足大型嵌入式操作系統需求。
1.Reworks操作系統任務機制
在ReWorks操作系統中,任務是可以單獨執行的線程,具有唯一的任務編號,占用獨立的CPU和系統資源,一個時刻獨立占用處理器時間。任務信息包含在一組數據結構中,由名稱、優先級、狀態、棧信息和執行上下文組成。ReWorks任務包括Posix類型和VxWorks類型,各自擁有創建接口和相關管理接口,兩者除Posix部分管理接口可共用外,大部分管理接口不能混用,否則會導致接口錯誤。Posix的創建接口為:pthread_create();VxWorks創建接口為taskSpawn()。
任務狀態有就緒、等待、運行和僵死。狀態轉換關系如圖1所示。
根據ReWorks系統的實時性和多任務性,ReWorks任務可以劃分為并發任務和順序任務。并發任務之間相互競爭,操作系統通過信號量、隊列來實現不同任務之間的同步和通信問題。任務信息記錄在由系統分配與維護的一個數據結構中。ReWorks內核采用基于優先級的搶占調度算法,結合時間片輪轉法以及先進先出算法來進行同優先級任務的調度。在創建任務時,必須合理使用任務的優先級和時間片輪轉法。
ReWorks操作系統的消息隊列是應用動態創建的具有可變長度的緩沖區,消息的長度和存儲在其中的內容都是用戶定義的,可以是實際的數據指針或空。通過消息,任務和ISR發送和接收消息,實現帶有數據的通信和同步。消息隊列是系統管理的機構隊列允許任務傳遞可變長的消息,可使用隊列進行幾個同種資源的互斥訪問,隊列的長度相當于該資源的數目,它決定了有多少個任務能夠同時使用該資源。
ReWorks操作系統提供一個特殊的寄存器作為每個任務控制塊的一部分,即事件寄存器它是一個屬于任務的對象,并由一組跟蹤指定事件值的2進制事件標志組成任務和ISR可以使用事件標志來向其他任務發送信號。下面顯示的代碼例示了串口接收任務comRece1()在接收到n個數據后,通過事OS_EVENT_1激活接收處理任務rece_comm1task()的過程。
2.基于ReWorks的信息交互軟件設計思路
2.1 信息交互軟件特點
在大型軟件系統中,信息交互軟件承擔著各個軟件之間數據轉發、協議轉換任務,通常具有實時性要求高,數據量大、外部接口眾多等特點。作為軟件系統數據交換的主要部件,信息交互軟件對系統正常有效運行發揮必不可少的作用。軟件系統中各部分間數據接口方式主要有網絡、串口、總線等,不同的接口之間需要合理的互連實現信息互通。信息交互軟件的主要功能示意圖如圖2所示。
2.2 信息交互軟件設計思路
在信息交互軟件中,網絡和總線為主要的接口方式。通過網絡互連的軟件模塊之間,建立網絡連接后,采用TCP或UDP方式進行數據通信。信息交互軟件多為控制臺應用程序,無需進行界面設計,只在控制臺中打印必要的信息。針對信息交互軟件實時性要求高和數據量大的特點,信息交互軟件多采用多任務結構:數據接收任務、數據處理任務和數據發送任務。
信息交互軟件可分為:初始化、中斷處理、數據接收任務、數據處理任務、數據發送任務5部分。軟件初始化完成網絡接口、磁盤劃分、中斷設置、任務啟動等功能。由于其他軟件單元的數據發送是不可預知的,使用中斷設置來處理。當產生外部中斷時調用中斷服務程序,通知數據處理任務讀取數據。數據接收任務接收到中斷服務程序發出的通知,從網口接收來自其他軟件單元的數據并將數據存放到相應數據緩沖區中。數據處理任務從接收數據緩沖區中取出需要處理的數據,根據數據類型分別進行解析、處理、重組,然后將處理好的數據放入對應發送數據緩沖區。數據發送任務則是從數據發送緩沖區中取出需要發送的數據,增加幀頭幀尾及校驗信息后發送到相應目的地址。
一般信息交互軟件過程如下:
(1)對板卡的網絡、內存等進行初始化,設置網卡IP和可用內存大小等,同時進行必要參數設置,啟動數據接收、數據處理、數據發送三種任務;
(2)數據接收任務將接收到的數據放入數據接收緩沖區,同時向數據處理任務發送信號;
(3)數據處理任務接收到信號后從數據接收緩沖區取數據,進行解析,按照協議重新組幀并放入數據發送緩沖區;
(4)數據發送任務將數據發送緩沖區的數據發送到相應的目的地址。
3.ReWorks下的信息交互軟件開發和調試
ReWorks操作系統下的軟件開發需使用相應開發環境,一般包括宿主計算機和目標機,其中宿主計算機上安裝有軟件開發集成工具,目標機為ReWorks操作系統,兩者通過網絡連接。宿主計算機生成可供目標機運行的可執行文件,目標機直接執行該文件。ReDe是由華東計算技術研究所自主研發的ReWorks操作系統軟件開發集成工具,安裝在宿主計算機上,支持X86、ARM、PowerPC等多種目標機平臺,主要包括配置、工程管理、編輯、交叉編譯、引導、調試等工具。本文軟件開發和調試目標機為中電32所生產的通信處理板卡,采用ReWorks操作系統和集成開發環境ReDe。
在目標機上運行可執行文件之前,需配置目標機參數,包括目標機調試網口IP地址,目標機上軟件的啟動方式。用于信息交互的目標機擁有多個網口,其中一個網口作為調試網口與宿主計算機連接,剩余網口與其他軟件單元通信。調試網口通過指令esetifconfig設置,與宿主計算機位于同一網段,剩余網口可通過指令直接設置也可以在軟件初始化時設置。ReWorks有兩種啟動方式:網絡啟動和硬盤啟動,通過指令設置。
ReDe中軟件開發過程如下:
(1)在ReDe中對編寫好的工程源代碼進行構建,生成的可執行文件
(2)將可執行文件發送到ReWorks目標板卡上。可通過兩種方式進行:一是在ReDe文件視圖上將可執行文件所在文件夾設為TFTP文件路徑,啟動目標板卡后通過命令“load $al;g”,使ReWorks以網絡的方式啟動應用程序;二是在宿主計算機使用FTP工具將.bin可執行文件拷貝到ReWorks系統C盤目錄下,重啟目標機后ReWorks從硬盤啟動應用程序。
需要在ReDe對開發的程序進行程序調試時,需要在項目配置文件中開啟“允許程序調試連接”,重構項目,在目標機啟動重構后的可執文件后,在宿主計算機進行調試。
結語
通過文中的分析表明ReWorks操作系統能夠很好地滿足信息交互軟件設計需求,同時實踐結果證明了ReWorks下開發信息交互軟件實現開發過程簡單,在實時性、大數據快速傳輸方面表現良好。
參考文獻
[1]王小勇,鄭朝輝,蔡紅霞,等.基于ReWorks平臺的SD卡驅動程序設計[J]. 現代電子技術,2011(12):86-88,92.
[2]黃鑫.Reworks上下文切換在Tricore上的實現[J].計算機工程,2011(S1):368-370.
[3]周向爭.基于ReWorks操作系統的自動檢票機研究[J]. 計算機應用與軟件,2013(5):211-215+286.
[4]董巍,馬云.基于ReWorks操作系統的實時多任務程序設計[J]. 中國新技術新產品,2013(9):53.
[5]陳杰,谷世紅.基于ReWorks嵌入式操作系統的SNMP協議實現[J]. 電子技術與軟件工程,2014(14):211-212.
[6]王雯雋.嵌入式操作系統ReWorks中USB接口軟件的設計與實現[D].華東師范大學,2005.