999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于無MMU嵌入式系統實現應用軟件硬件無關性

2018-03-29 02:21:32楊會新
鐵路計算機應用 2018年3期
關鍵詞:嵌入式系統

楊會新

(河南思維軌道交通技術研究院有限公司,鄭州 450001)

隨著嵌入式系統的廣泛應用,其硬件升級提供更好性能的同時,也帶來一些嵌入式系統設計、應用的問題。嵌入式系統通常面向專用的功能,面向控制,其軟件一般和其運行的硬件平臺緊密相關。特別是那些微控制器沒有內存管理單元(MMU)的嵌入式硬件平臺,管理底層硬件的驅動代碼與實現應用功能的代碼作為一個軟件整體存在于嵌入式系統中。無論應用功能調整還是硬件部件更新均須完整更換其軟件。即使是局部變更,表現出來的卻是全部變更,使得升級的測試邊界被放大,導致增加系統測試、維護的成本。

如果在無MMU嵌入式系統中,能實現完成應用功能的代碼(簡稱:應用軟件)與硬件驅動代碼(簡稱:系統軟件)分離,以各自獨立的形態存在于嵌入式系統中,且應用軟件具有與硬件無關性,那么這種系統架構能提供清晰的變更邊界,軟、硬件變更的相互制約大大降低,同時也降低系統升級、變更的測試、維護成本,甚至有可能實現嵌入式應用軟件像通用計算機軟件一樣,不用重新生成即可運行于不同硬件條件的嵌入式設備上,添加新功能軟件,而不中斷現有的服務功能。

文獻[1]和文獻[2]提出軟件模擬MMU的方法,從實用角度考慮,無MMU的微處理器相對資源較少,運算能力較弱,增加軟件模擬MMU的開銷,值得商榷。文獻[3]的分析表明,能在無MMU平臺上支持應用分離的ucLinux最少內核也在100 KB以上,在無MMU嵌入式系統中運用也有頗多資源限制。文獻[4]~文獻[7]都涉及到軟硬件分離的討論,但基本都是基于建立一種軟件邏輯架構方面的研究,少有提及軟件部署方面的軟硬件分離。本文探索一種新的方法,在無MMU的嵌入式系統中實現應用軟件的硬件無關性,應用軟件與系統軟件以分離形式部署。

1 應用軟件實現硬件無關性原理

應用軟件要做到與硬件無關(本文不討論與硬件指令集的無關性),要實現以下幾方面的硬件無關性:(1)指令尋址與硬件無關性,即軟件運行不依賴于存儲位置或加載位置;(2)不直接操控實現其功能的硬件部件。

1.1 具有MMU的系統實現應用軟件硬件無關性的原理

在具有MMU的系統中,系統軟件通過使用MMU,建立了虛擬地址空間[8],系統軟件加載應用軟件運行時,進行重新定位操作,確定應用軟件運行的地址,應用軟件運行于虛擬地址空間,由MMU完成虛擬地址到物理地址的轉換。這樣應用軟件使用的地址與運行平臺的具體硬件無關,不僅實現了指令尋址與硬件無關,還可使用比實際物理地址空間大的多的虛擬地址空間。此技術極大地方便應用軟件的設計開發。

對支撐應用軟件完成其功能的硬件部件的訪問,都被封裝于操作系統及硬件驅動軟件中,應用軟件需要使用硬件部件完成某個功能,通常是通過操作系統提供的系統調用,由操作系統內核代碼或傳遞給硬件驅動軟件來完成,通過硬件驅動程序屏蔽具體硬件的差異[9]。系統調用在應用軟件代碼中,是使用類似軟中斷的指令碼實現控制流由應用軟件切換進入操作系統,并不像常規函數調用那樣使用的是函數地址,這樣就與系統調用代碼的位置無關了。這些系統調用接口都是高度抽象的,與實際硬件特性無關,由此實現了應用軟件與受控硬件的無關性。應用軟件并不用關心硬件部件的寄存器地址、位定義、操作時序等,即使硬件部件更換,也能保證系統調用接口不變,應用軟件也就無須做相應的變動。如圖1所示。

圖1 具有MMU的系統實現應用軟件硬件無關性原理示意圖

此種系統架構的優勢顯而易見,引入MMU硬件部件,也提升了系統的成本和復雜性。這類系統一般都需要運行復雜的、大規模的操作系統軟件才能發揮其優勢。

1.2 具有段寄存器的系統實現應用軟件硬件無關性的原理

此類系統使用的是段地址+段內偏移地址的方式尋址,典型的代表是Intel的X86系統。

此類系統的應用軟件指令被編譯為基于段寄存器的尋址方式,在應用軟件加載和運行時,確定其段寄存器的內容,通過段寄存器與指令尋址偏移地址,硬件部件運算得出具體的硬件地址。這樣軟件代碼的尋址是相對于段寄存器,而段寄存器在加載運行時可重定位,實現應用軟件尋址與實際物理地址無關。

對于硬件部件訪問的硬件無關性,以X86經典的DOS操作系統為例,DOS提供了大量的中斷服務程序,完成對硬件部件的訪問,應用軟件正是通過中斷服務程序實現其控制硬件完成的功能。進入中斷服務程序的中斷指令與地址無關。應用軟件設計者一般是使用設計語言提供的系統調用庫函數,由庫函數使用中斷指令調用操作系統提供的中斷服務程序。當然DOS允許在應用軟件中實現中斷服務程序來操控硬件部件以實現特定的功能,這樣在提供靈活性的同時,也使得應用軟件不能完全做到硬件無關。如圖2所示。

此類系統架構有一定局限性,尋址空間有限,對應用軟件的設計有相當的限制。

1.3 無MMU嵌入式系統實現應用軟件硬件無關性的原理

無MMU嵌入式系統中,無前述兩類系統中的特殊硬件部件來支持實現應用軟件尋址的硬件無關性。要實現硬件無關性,首先從軟件架構設計上入手,對系統整個軟件劃分邏輯層次,明確應用功能與底層支撐層的界線,確定抽象調用接口。軟件邏輯架構方面的論述文獻較多,此處不作展開[10]。下文以實現應用軟件與系統軟件部署分離方面的原理進行闡述。

圖2 具有段寄存器的系統實現應用軟件硬件無關性原理示意圖

(1)應用軟件中的尋址可分為兩類:代碼與只讀數據的尋址;可讀寫數據的尋址。這兩類尋址在編譯應用軟件時,都要選擇編譯為位置無關目標碼。這樣應用軟件內部的尋址都是位置無關的相對尋址。

(2)系統軟件加載應用軟件運行時,由于其內部尋址為位置無關的相對尋址,只需轉入其加載位置的軟件入口地址,無須進行軟件重定位。對于可讀寫數據區,則需要為其分配存儲空間位置。應用軟件對位置無關的可讀寫數據區的訪問需要通過一個數據基址寄存器進行相對尋址實現。所以,由系統軟件切換至應用軟件運行時,還需要為其設置數據基址寄存器。至此實現應用軟件尋址的硬件無關性。

(3)系統軟件要提供系統調用函數,應用軟件通過系統調用來操控硬件部件完成其功能。系統調用的接口類似1.1中所述系統,是硬件特性無關的調用接口。這就要求無MMU嵌入式系統要提供軟件中斷或專用的系統調用機制來實現系統調用。例如ARM的Cortex-M系列處理器就提供了SVC機制用于實現系統調用。

無MMU嵌入式系統應用軟件硬件無關性原理如圖3所示。

圖3 無MMU嵌入式系統實現應用軟件硬件無關性原理示意圖

2 實現方法

硬件平臺為ARM Cortex-M系列處理器,使用Keil uVision5作為開發軟件。

2.1 應用軟件設計要求

編寫應用軟件代碼,需要使用位置無關的方式。比如不能使用“__attribute__((at(address))) variable attribute”指定變量的位置;不能使用“__attribute__((section("section_name")))”指定其放置位置。

在嵌入匯編代碼中不能使用“LDR Rn, = 標號”這樣的語句,因為這種語句生成目標代碼時,會寫入標號的地址值,這破壞了代碼運行位置無關性,也就不能實現硬件無關性。

所有對硬件部件的訪問都通過系統軟件提供的系統調用進行。系統調用的實現可以用Cortex-M處理器提供SVC機制或軟中斷方式。推薦使用SVC機制來實現。對于應用軟件而言,就像使用標準庫函數一樣。

在 keil軟 件“Options of target” 對 話 框 的C/C++、ASM選項卡選擇“Read-Only Position Independent”和“Read-Write Position Independent”編譯選項,也就是編譯命令行參數“/ropi”和“/rwpi”;linker選 項 卡 選 擇“Make RW Sections Independent”、“Make RO Sections Position Independent”,也就是鏈接命令行參數“--rwpi”、“--ropi”。注意使用位置無關編譯、鏈接選項時,不能使用分散加載文件“*.sct”來描述存儲空間。如果使用了分散加載文件,編譯鏈接時,會有警告錯誤,指出忽略位置無關命令行選項開關。

如上所述,就可以生成運行位置無關的應用軟件了。

2.2 系統軟件設計要求

(1)應用軟件加載運行的要求。如前文所述,系統軟件要加載應用軟件運行,需要做一些特定的工作。對通用的編譯器產生的可執行應用軟件文件,要通過自制工具軟件附加一些信息,生成系統軟件使用的文件。附加的信息主要包括應用軟件執行入口地址(相對文件頭的偏移)、數據區大小、堆棧大小。系統軟件啟動運行后,根據應用軟件描述信息(類似啟動腳本),加載應用軟件,根據應用軟件文件附加的信息,為其分配所需資源,轉入應用軟件入口執行。

(2)系統調用的要求。使用SVC機制提供滿足應用軟件訪問硬件部件的系統調用,如_svc(svc_no)func_ret func(func_param)。系統調用的接口設計可參考通用操作系統的系統調用接口,便于應用軟件的開發、仿真驗證、移植等工作。在實際響應系統調用,返回應用軟件時,應設置應用軟件的數據基址寄存器,保證應用軟件能正確訪問靜態數據區數據。

2.3 實現的局限性

無MMU嵌入式系統微處理器的存儲空間通常是不連續的,另外處理器廠商可能為平衡性價比,不同存儲區域的性能也有所不同。由于應用軟件使用位置無關編譯鏈接選項時,不能使用分散加載文件描述不連續的存儲空間,使得應用軟件只能使用一塊連續代碼區和一塊連續的靜態數據區,這對代碼規模大和要求大數據區的應用而言就有很大限制。對于應用軟件代碼規模大的,只能拆分成多個應用。對于數據區要求大的,只能通過系統軟件提供的系統調用動態分配存儲空間,在軟件設計及數據使用上有所不便。

3 結束語

本文闡述了無MMU嵌入式系統實現應用軟件硬件無關性的意義,討論了在無MMU嵌入式系統中實現應用軟件的原理,并結合Cortex-M系列處理器,Keil開發環境,提出了無MMU嵌入式系統下實現應用軟件硬件無關的方法,為改變目前大部分此類系統只能建立單一的硬件相關軟件的現狀進行了有價值的探索,便于建立更加靈活、易于升級、性價比更高的嵌入式系統。進一步發展,有望在無MMU嵌入式系統中實現應用軟件一次發布運行于不同硬件條件的嵌入式設備;在運行設備上添加新功能軟件,而不中斷現有服務功能。

參考文獻:

[1]張秀平,楊國武,李曉瑜. MMU協處理器的一種軟件模擬模型[J]. 計算機工程與應用,2011,47(3):57-60.

[2]張加林,王海琳. 中低端微處理器平臺軟件仿真MMU的設計與實現[J]. 計算機光盤軟件與應用,2014,17(6):67-70.

[3]孫魯毅. 四種流行的嵌入式實時操作系統的比較研究—VxWorks,QNX,ucLinux,RTEMS[J]. 計算機應用與軟件,2007,24(8):196-197.

[4]王 君,王志杰,樂 浪. 基于SOIS的星載平臺軟件架構設計探索[J]. 航天器工程,2017,26(3):84-89.

[5]饒天貴,李 凱,李宇鋒. 機車顯示器應用軟件模塊化設計[J]. 機車電傳動,2016 (1):71-74.

[6]趙 勇,陳香蘭. 基于模型驅動的實時嵌入式系統[J]. 計算機系統應用,2017,26(8):83-87.

[7]甄 君,梁 超,夏俊清. 信息對抗偵察系統開放架構計算環境[J]. 太赫茲科學與電子信息學報,2015,13(4):590-595.

[8]閆路平,龔樂中. 基于MILS架構的高可信嵌入式操作系統研究[J]. 通信技術,2017,50(5):1029-1035.

[9]張國強.《操作系統原理》課程教學中的結構思維培養[J].軟件導刊,2016,15(2):180-184.

[10]王繼剛,方 芳,張華強. 嵌入式操作系統異常處理框架設計與實現[J]. 電子技術應用,2017,43(5):60-63+66.

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 欧美一级片在线| 日韩一级毛一欧美一国产| 免费一级无码在线网站| 亚洲性影院| 最新精品久久精品| 亚洲第一香蕉视频| 色婷婷天天综合在线| 国产h视频免费观看| 91精品久久久久久无码人妻| 日日噜噜夜夜狠狠视频| 97青草最新免费精品视频| 欧美精品在线视频观看| 亚洲精品天堂自在久久77| 中文字幕一区二区视频| 国产色婷婷| 91美女视频在线| 欧美笫一页| 国产91特黄特色A级毛片| 99精品国产自在现线观看| 婷婷色中文| 亚洲中文字幕在线观看| 波多野结衣一区二区三区AV| av在线人妻熟妇| 欧美一级大片在线观看| 亚洲精品视频在线观看视频| 天堂久久久久久中文字幕| 国产99视频免费精品是看6| 亚洲欧美国产五月天综合| 欧美日韩一区二区三区四区在线观看 | 日本一区二区三区精品AⅤ| 国产一级裸网站| 亚洲天堂免费在线视频| 国产玖玖玖精品视频| 免费看av在线网站网址| 免费视频在线2021入口| 亚洲国产精品成人久久综合影院| 久久久无码人妻精品无码| 日本黄色不卡视频| 国产一区三区二区中文在线| 国产成人啪视频一区二区三区| 亚洲精品成人片在线播放| 成人午夜久久| 国产va视频| 真人高潮娇喘嗯啊在线观看| 99久久免费精品特色大片| 国产成人1024精品| 成人综合在线观看| 毛片一区二区在线看| 免费黄色国产视频| 国产精品林美惠子在线播放| 亚洲三级成人| 一区二区影院| 熟妇丰满人妻| 亚洲AV成人一区国产精品| 日韩欧美国产另类| 91成人免费观看| 91亚洲影院| 国产午夜精品一区二区三区软件| 18禁黄无遮挡网站| 欧美性精品| 国产欧美日韩精品综合在线| 欧美一区二区自偷自拍视频| 国产精品对白刺激| 伊人五月丁香综合AⅤ| 中文字幕在线看| 久久a级片| 色婷婷成人网| 狼友av永久网站免费观看| 亚洲香蕉久久| 国产精品视频猛进猛出| 又粗又大又爽又紧免费视频| 亚洲一级毛片在线观| 99精品国产高清一区二区| 亚洲国产无码有码| 综合色亚洲| 在线日韩一区二区| 亚洲综合亚洲国产尤物| 国产另类乱子伦精品免费女| 亚洲综合香蕉| 91高清在线视频| 欧美成人免费一区在线播放| 国产91精品久久|