當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件

Linux嵌入式系統(tǒng)操作系統(tǒng)開發(fā)簡介

  嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ)、軟硬件均可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。其發(fā)展已有二十多年的歷史,國際上也出現(xiàn)了一些著名的嵌入式操作系統(tǒng),如VxWorks,Palm OS,Windows CE等等,但這些操作系統(tǒng)均屬于商品化產(chǎn)品,價格昂貴且由于源代碼不公開導(dǎo)致了諸如對設(shè)備的支持 ,應(yīng)用軟件的移植等一系列的問題。而Linux作為一種優(yōu)秀的Free OS,近幾年在嵌入式領(lǐng)域異軍突起,成為了最有潛力的嵌入式操作系統(tǒng)。

  嵌入式Linux融合了嵌入式和Linux的特點,其開發(fā)與一般的應(yīng)用程序開發(fā)相比有著自己的特點,下面簡要的介紹一下嵌入式Linux開發(fā)的一般過程。

  了解硬件是首要的一步,這是嵌入式開發(fā)的特點決定的。了解硬件指的是了解整個硬件,判斷硬件對于當(dāng)前的應(yīng)用來說是否合適。嵌入式系統(tǒng)中需要使用到CPU和各種外圍設(shè)備,由此需要收集相關(guān)硬件的資料,包括CPU,芯片手冊和各種外圍設(shè)備的手冊以及相關(guān)的各種電路圖等,并對整體系統(tǒng)有較深入的了解。

  了解硬件后,下一步就該準(zhǔn)備需要使用的Linux工具以及其他工具,這些工具包括:針對所用CPU的編譯器/匯編器/連接器,相應(yīng)的庫工具,目標(biāo)文件分析/管理工具,符號查看器等等。幸運的是,由于Linux的開放性,針對不同目標(biāo)平臺的Linux工具都可在網(wǎng)上免費得到,絕大部分的這些工具都由GNU提供。所需要的其他工具還包括硬件廠商提供給公司的工具,如編程器,下載工具和查錯器等等。所有這些工具對以后的開發(fā)、調(diào)試等都可說是必不可少的。

  做好以上的準(zhǔn)備工作后,就要進入實質(zhì)性的工作階段了。首先需要安排內(nèi)存地址,如SDRAM的內(nèi)存地址,F(xiàn)lash的內(nèi)存地址等,這需要與實際應(yīng)用和硬件狀況相結(jié)合來考慮,要根據(jù)硬件的限制以及實際應(yīng)用的需要對內(nèi)存地址進行合理的安排,同時要注意內(nèi)存地址的安排要具有一定的伸縮性,以便于將來需要改動時所做的變動達到最小。一般來說,嵌入式Linux的內(nèi)存地址安排體現(xiàn)在連接腳本當(dāng)中。

  接著就該進入編寫啟動代碼和機器相關(guān)代碼階段了。各種不同目標(biāo)系統(tǒng),甚至相同目標(biāo)系統(tǒng)的啟動代碼和機器相關(guān)代碼也是不相同的。啟動代碼一般需要完成硬件初始化,裝載內(nèi)核及安裝根文件系統(tǒng)以及開始內(nèi)核執(zhí)行的工作,不同目標(biāo)平臺的啟動代碼一般可通過參考Linux下已有的啟動代碼和相關(guān)CPU的手冊進行編寫。

  啟動代碼和機器相關(guān)代碼編程完成并可以啟動系統(tǒng)后,下一步就可以開始驅(qū)動程序的編寫了。Linux編寫驅(qū)動程序與一般情況下編寫驅(qū)動程序并沒有太大的區(qū)別,都需要對相關(guān)的硬件作出了解,同時需要遵循Linux編寫驅(qū)動程序的一些規(guī)則進行,編寫完一個驅(qū)動程序后,一般就寫一個相應(yīng)的測試程序已便隨時進行測試。Linux下各種不同類型的設(shè)備都有相當(dāng)多的驅(qū)動程序源碼可以參考,因此實際編寫時更多的時間是花在對特定硬件特性的熟悉上。

  除了以上提到的這些步驟外,進行實際開發(fā)時,很多時候還要進行庫(這里所提到的庫均指C庫),GUI和系統(tǒng)程序的移植。這是因為嵌入式Linux中所用的庫一般不能直接使用標(biāo)準(zhǔn)庫,而需要進行精簡,雖然已有些精簡的C庫如uClibc等可供使用,但還是需要經(jīng)常對其進行修改。嵌入式Linux常用的GUI有Microwindows,MiniGUI,QT/Embedded,TinyX等等,各自均有其使用的場合,所針對的目標(biāo)平臺和應(yīng)用層次也不一樣,必須根據(jù)實際需要進行選擇。系統(tǒng)程序如mount,ls等等有些是應(yīng)用時所必須的,有些則是進行調(diào)試時所需要的,初始時則需要一些通用的系統(tǒng)程序即可。

Linux嵌入式系統(tǒng)操作系統(tǒng)開發(fā)簡介

  嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ)、軟硬件均可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。其發(fā)展已有二十多年的歷史,國際上也出現(xiàn)了一些著名的嵌入式操作系統(tǒng),如VxWorks,Palm OS,Windows CE等等,但這些操作系統(tǒng)均屬于商品化產(chǎn)品,價格昂貴且由于源代碼不公開導(dǎo)致了諸如對設(shè)備的支持 ,應(yīng)用軟件的移植等一系列的問題。而Linux作為一種優(yōu)秀的Free OS,近幾年在嵌入式領(lǐng)域異軍突起,成為了最有潛力的嵌入式操作系統(tǒng)。

  嵌入式Linux融合了嵌入式和Linux的特點,其開發(fā)與一般的應(yīng)用程序開發(fā)相比有著自己的特點,下面簡要的介紹一下嵌入式Linux開發(fā)的一般過程。

  了解硬件是首要的一步,這是嵌入式開發(fā)的特點決定的。了解硬件指的是了解整個硬件,判斷硬件對于當(dāng)前的應(yīng)用來說是否合適。嵌入式系統(tǒng)中需要使用到CPU和各種外圍設(shè)備,由此需要收集相關(guān)硬件的資料,包括CPU,芯片手冊和各種外圍設(shè)備的手冊以及相關(guān)的各種電路圖等,并對整體系統(tǒng)有較深入的了解。

  了解硬件后,下一步就該準(zhǔn)備需要使用的Linux工具以及其他工具,這些工具包括:針對所用CPU的編譯器/匯編器/連接器,相應(yīng)的庫工具,目標(biāo)文件分析/管理工具,符號查看器等等。幸運的是,由于Linux的開放性,針對不同目標(biāo)平臺的Linux工具都可在網(wǎng)上免費得到,絕大部分的這些工具都由GNU提供。所需要的其他工具還包括硬件廠商提供給公司的工具,如編程器,下載工具和查錯器等等。所有這些工具對以后的開發(fā)、調(diào)試等都可說是必不可少的。

  做好以上的準(zhǔn)備工作后,就要進入實質(zhì)性的工作階段了。首先需要安排內(nèi)存地址,如SDRAM的內(nèi)存地址,F(xiàn)lash的內(nèi)存地址等,這需要與實際應(yīng)用和硬件狀況相結(jié)合來考慮,要根據(jù)硬件的限制以及實際應(yīng)用的需要對內(nèi)存地址進行合理的安排,同時要注意內(nèi)存地址的安排要具有一定的伸縮性,以便于將來需要改動時所做的變動達到最小。一般來說,嵌入式Linux的內(nèi)存地址安排體現(xiàn)在連接腳本當(dāng)中。

  接著就該進入編寫啟動代碼和機器相關(guān)代碼階段了。各種不同目標(biāo)系統(tǒng),甚至相同目標(biāo)系統(tǒng)的啟動代碼和機器相關(guān)代碼也是不相同的。啟動代碼一般需要完成硬件初始化,裝載內(nèi)核及安裝根文件系統(tǒng)以及開始內(nèi)核執(zhí)行的工作,不同目標(biāo)平臺的啟動代碼一般可通過參考Linux下已有的啟動代碼和相關(guān)CPU的手冊進行編寫。

  啟動代碼和機器相關(guān)代碼編程完成并可以啟動系統(tǒng)后,下一步就可以開始驅(qū)動程序的編寫了。Linux編寫驅(qū)動程序與一般情況下編寫驅(qū)動程序并沒有太大的區(qū)別,都需要對相關(guān)的硬件作出了解,同時需要遵循Linux編寫驅(qū)動程序的一些規(guī)則進行,編寫完一個驅(qū)動程序后,一般就寫一個相應(yīng)的測試程序已便隨時進行測試。Linux下各種不同類型的設(shè)備都有相當(dāng)多的驅(qū)動程序源碼可以參考,因此實際編寫時更多的時間是花在對特定硬件特性的熟悉上。

  除了以上提到的這些步驟外,進行實際開發(fā)時,很多時候還要進行庫(這里所提到的庫均指C庫),GUI和系統(tǒng)程序的移植。這是因為嵌入式Linux中所用的庫一般不能直接使用標(biāo)準(zhǔn)庫,而需要進行精簡,雖然已有些精簡的C庫如uClibc等可供使用,但還是需要經(jīng)常對其進行修改。嵌入式Linux常用的GUI有Microwindows,MiniGUI,QT/Embedded,TinyX等等,各自均有其使用的場合,所針對的目標(biāo)平臺和應(yīng)用層次也不一樣,必須根據(jù)實際需要進行選擇。系統(tǒng)程序如mount,ls等等有些是應(yīng)用時所必須的,有些則是進行調(diào)試時所需要的,初始時則需要一些通用的系統(tǒng)程序即可。

  除了智能數(shù)字終端領(lǐng)域以外,Linux在移動計算平臺、智能工業(yè)控制、金融業(yè)終端系統(tǒng),甚至軍事領(lǐng)域都有著廣泛的應(yīng)用前景。這些Linux被統(tǒng)稱為“嵌入式Linux”。下面就來看看都有哪些嵌入式Linux在以上領(lǐng)域縱橫馳騁吧!

  RT-Linux

  這是由美國墨西哥理工學(xué)院開發(fā)的嵌入式Linux操作系統(tǒng)。到目前為止,RT-Linux已經(jīng)成功地應(yīng)用于航天飛機的空間數(shù)據(jù)采集、科學(xué)儀器測控和電影特技圖像處理等廣泛領(lǐng)域。RT-Linux開發(fā)者并沒有針對實時操作系統(tǒng)的特性而重寫Linux的內(nèi)核,因為這樣做的工作量非常大,而且要保證兼容性也非常困難。為此,RT-Linux提出了精巧的內(nèi)核,并把標(biāo)準(zhǔn)的Linux核心作為實時核心的一個進程,同用戶的實時進程一起調(diào)度。這樣對Linux內(nèi)核的改動非常小,并且充分利用了Linux下現(xiàn)有的豐富的軟件資源。

  uClinux

  uCLinux是Lineo公司的主打產(chǎn)品,同時也是開放源碼的嵌入式Linux的典范之作。uCLinux主要是針對目標(biāo)處理器沒有存儲管理單元MMU(Memory Management Unit)的嵌入式系統(tǒng)而設(shè)計的。它已經(jīng)被成功地移植到了很多平臺上。由于沒有MMU,其多任務(wù)的實現(xiàn)需要一定技巧。uCLinux是一種優(yōu)秀的嵌入式Linux版本,是micro-Conrol-Linux的縮寫。它秉承了標(biāo)準(zhǔn)Linux的優(yōu)良特性, 經(jīng)過各方面的小型化改造,形成了一個高度優(yōu)化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,卻仍然保留了Linux的大多數(shù)的優(yōu)點:穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、對各種文件系統(tǒng)完備的支持和標(biāo)準(zhǔn)豐富的API。它專為嵌入式系統(tǒng)做了許多小型化的工作,目前已支持多款CPU。 其編譯后目標(biāo)文件可控制在幾百KB數(shù)量級,并已經(jīng)被成功地移植到很多平臺上。

  Embedix

  Embedix是由嵌入式Linux行業(yè)主要廠商之一Luneo推出的,是根據(jù)嵌入式應(yīng)用系統(tǒng)的特點重新設(shè)計的Linux發(fā)行版本。Embedix提供了超過25種的Linux系統(tǒng)服務(wù),包括Web服務(wù)器等。系統(tǒng)需要最小8MB內(nèi)存,3MB ROM或快速閃存。Embedix基于Linux 2.2內(nèi)核,并已經(jīng)成功地移植到了Intel x86和PowerPC處理器系列上。像其它的Linux版本一樣,Embedix可以免費獲得。Luneo還發(fā)布了另一個重要的軟件產(chǎn)品,它可以讓在Windows CE上運行的程序能夠在Embedix上運行。Luneo還將計劃推出Embedix的開發(fā)調(diào)試工具包、基于圖形界面的瀏覽器等??梢哉f,Embedix是一種完整的嵌入式Linux解決方案。

  XLinux

 XLinux是由美國網(wǎng)虎公司推出,主要開發(fā)者是陳盈豪。他在加盟網(wǎng)虎幾個月后便開發(fā)出了基于XLinux的、號稱是世界上最小的嵌入式Linux系統(tǒng),內(nèi)核只有143KB,而且還在不斷減小。XLinux核心采用了“超字元集”專利技術(shù),讓Linux核心不僅可能與標(biāo)準(zhǔn)字符集相容,還含蓋了12個國家和地區(qū)的字符集。因此,XLinux在推廣Linux的國際應(yīng)用方面有獨特的優(yōu)勢。

  PoketLinux

  PoketLinux由Agenda公司采用、作為其新產(chǎn)品“VR3 PDA”的嵌入式Linux操作系統(tǒng)。它可以提供跨操作系統(tǒng)構(gòu)造統(tǒng)一的、標(biāo)準(zhǔn)化的和開放的信息通信基礎(chǔ)結(jié)構(gòu),在此結(jié)構(gòu)上實現(xiàn)端到端方案的完整平臺。PoketLinux資源框架開放,使普通的軟件結(jié)構(gòu)可以為所有用戶提供一致的服務(wù)。PoketLinux平臺使用戶的視線從設(shè)備、平臺和網(wǎng)絡(luò)上移開,由此引發(fā)了信息技術(shù)新時代的產(chǎn)生。在PoketLinux中,稱之為用戶化信息交換(CIE),也就是提供和訪問為每個用戶需求而定制的“主題”信息的能力,而不管正在使用的設(shè)備是什么。

  MidoriLinux

  由Transmeta公司推出的MidoriLinux操作系統(tǒng)代碼開放,在GUN普通公共許可(GPL)下發(fā)布,該公司有個名為“MidoriLinux計劃”。“MidoriLinux”這個名字來源于日本的“綠色”——Midori,用來反映其Linux操作系統(tǒng)的環(huán)保外觀。

  紅旗嵌入式Linux

  由北京中科院紅旗軟件公司推出的嵌入式Linux是國內(nèi)做得較好的一款嵌入式操作系統(tǒng)。目前,中科院計算所自行開發(fā)的開放源碼的嵌入式操作系統(tǒng)——Easy Embedded OS(EEOS)也已經(jīng)開始進入實用階段了。該款嵌入式操作系統(tǒng)重點支持p-Java。系統(tǒng)目標(biāo)一方面是小型化,另一方面能重用Linux的驅(qū)動和其它模塊。由于有中科院計算所的強大科研力量做后盾,EEOS有望發(fā)展成為功能完善、穩(wěn)定、可靠的國產(chǎn)嵌入式操作系統(tǒng)平臺。

  思考與展望

  以上列舉的眾多嵌入式Linux操作系統(tǒng)中,國內(nèi)對于uClinux和RT-Linux研究的較多,很多基于它們的產(chǎn)品已經(jīng)面世,比如華恒公司已經(jīng)把uClinux成功移植,并投放到市場。
  正是由于Linux開放源代碼的特點,所以全世界的開發(fā)廠商都站在同一個起跑線上。國內(nèi)的研究機構(gòu)和企業(yè)也正在積極投入人力、物力,力爭在嵌入式操作系統(tǒng)上有所為。但應(yīng)該清醒認識到,絕大多數(shù)的嵌入式系統(tǒng)的硬件平臺還掌握在外國公司的手中。國產(chǎn)的嵌入式操作系統(tǒng)在技術(shù)含量、兼容性、市場運作模式等方面還有很多工作要做。國家對嵌入式領(lǐng)域的發(fā)展也極為重視。信息產(chǎn)業(yè)部《2003年度電子發(fā)展基金項目指南》在軟件類重點產(chǎn)品項目中,第五小類就是關(guān)于嵌入式軟件與系統(tǒng)開發(fā)的,并提出要重點進行如下重點項目的研制與開發(fā):嵌入式實時操作系統(tǒng)、嵌入式軟件集成開發(fā)平臺和嵌入式數(shù)據(jù)庫管理軟件。由于嵌入式系統(tǒng)研發(fā)在國內(nèi)起步比較晚,我國目前還基本處于實驗室階段。但是嵌入式操作系統(tǒng)的巨大的商業(yè)價值和Linux的開放性,為民族軟件產(chǎn)業(yè)的發(fā)展提供了難得的機會。在跟蹤國外嵌入式操作系統(tǒng)最新技術(shù)的同時,國內(nèi)廠商要堅持自主產(chǎn)權(quán),力爭找到自己的突破點,探索出一條適合中國國情的嵌入式操作系統(tǒng)的發(fā)展道路。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉