1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      誰將引領嵌入式Linux開發?

      更新時間: 2007-11-27 09:11:42來源: 粵嵌教育瀏覽量:710

        近年來,計算機技術、通信技術及小型電子設備制造業均取得了飛速發展。以計算機、通信產品、消費電子為典型產品代表的這三大產業正呈現越發明顯的整合趨勢,即3C整合。

        產品制造方面,各廠家都爭相以微型化和專業化作為設計、制造產品的核心理念,這使得具備這些特點的產品(即嵌入式產品)成為產業中毫無爭議的主流;產品系統軟件方面,擁有開放源碼、高硬件兼容性、高穩定性、高定制性等特點的嵌入式Linux系統,已讓越來越多的企業和研發機構由傳統商業系統轉向對其的研究開發;新興的嵌入式操作系統市場上,嵌入式Linux正呈現出驚人增長率。

        針對這一熱點,本文以對目前嵌入式Linux的開發過程與工具選擇分析為主題,力爭向讀者展示一個清晰的開發框架及實際操作方法指向。

        系統開發復雜度確定及成本控制

        根據實際構建方法定義,嵌入式Linux是指對標準Linux經過裁剪、固化至設備存儲體中,完成特定嵌入式應用的專用Linux系統。

        進行系統開發需兼顧軟件、硬件兩方面資源,針對特定應用,軟件系統功能要配合硬件資源來設計。

        硬件方面,確定應用范圍和性能等級是首先要考慮的,因為二者的選型決定了整個產品的功能及性能,也就大體確定了產品的硬件成本。硬件資源固定后,就可針對所選資源進行軟件選型、功能裁剪需求、工具搭配等軟件系統方面的分析和定奪了。圖1是一般的系統開發流程:

      圖1一般的嵌入式Linux系統開發流程


        作為一個功能完整的操作系統,Linux能提供嵌入式系統所需的基本內核和所有用戶界面。具有內存管理、任務切換
      和時間服務及其它分拆的微內核到完整的服務器,支持所有的文件系統和網絡服務。要使其成為易用且高效的嵌入式系統,前期關鍵的工作分為Linux版本選擇、系統功能裁剪分析、文件系統及工具搭配幾步。

        首先,按照選定的硬件選擇合適的Linux系統版本,標準為系統要支持所選硬件且系統執行速度與硬件性能匹配較好。然后進行系統功能裁剪分析,標準為系統應在滿足應用的前提下,盡可能減小尺寸,去掉不需要的模塊。,為系統選擇合適的文件系統及工具,同樣以滿足應用和減小尺寸為標準。

        做好以上系統開發復雜度分析,不僅可較好規劃產品開發成本,而且對后續開發過程也起到了關鍵的需求參照作用。

        開發過程與對應開發工具選擇

        嵌入式Linux系統的開發過程與其對應的開發工具聯系十分緊密,完成一個系統的開發,不僅需要大量的工具,而且多以平臺交叉開發模式為主:

        嵌入式Linux開發工具選擇的基本依據

        工具選擇的基本依據主要有以下幾點:

        開源性,由于Linux系統本身的開源特性,從版權及成本兩方面考慮,配套開發工具也應使用開源軟件;
        跨平臺性,開發過程涉及宿主機與目標機,體系架構多有不同,因此有的工具需支持多平臺;
        精簡性,在滿足功能前提下,除應盡量使用較小體積的軟件外,多功能、高整合度工具的使用也是必不可少的。
        Linux原型系統選擇與工具準備

        終的嵌入式Linux系統來源都是完整的Linux操作系統。在開發時,對原型Linux系統的選擇及前期開發工具的準備對整個開發的效率及成果都有很大影響。

        選擇原型系統時,首先要從體系架構及設備兼容性進行分析,先找出滿足功能要求的版本及補丁,然后根據硬件實際性能及存儲容量決定終系統版本。

        前期工具準備包括2類工具的選擇:開發用工具和系統工具。前者只在開發過程中起作用,多為宿主機平臺工具。后者則是在終的嵌入式Linux系統中使用,多為目標平臺工具。

        Linux交叉開發環境建立

        Linux交叉開發環境基本都是由GNU開源工具鏈搭建,工具鏈同樣存在版本選擇的問題。針對所開發的目標平臺選擇相應編譯器及調試器等,同時對應原型Linux的版本、工具鏈版本需與其配合以保證工具可正常使用,具體版本相關性請參考kernel.org及GNU給出的說明文檔。

        將原型Linux及交叉開發環境都保存于宿主機上,使用串口或網口等連接設備將宿主機與目標機連接在一起,安裝好宿主機和目標機的通訊工具及服務;安裝TFTP服務器,為目標機從主機上下載文件提供服務;啟動Telnet服務;安裝串口通訊工具minicom,一個交叉編譯環境就基本建立完成了。然后即可在宿主機上用交叉工具鏈對原型Linux及其他目標機用軟件進行交叉編譯、調試,并使用通訊工具將編譯好的目標代碼傳至目標機運行。 

              內核及根文件系統開發

        一個完整的嵌入式Linux系統包括兩大部分:內核及根文件系統。

        內核

        內核開發移植完整過程包括:編寫針對特定處理器的任務調度、中斷處理等代碼;編寫針對特定硬件平臺的引導和初始化代碼;編寫針對特定外設的設備驅動程序代碼;交叉編譯內核。

       

        前兩個步驟在開源社區中基本能找到現成可用資源,第三個步驟目前也有很多典型設備驅動代碼可供使用,因此現今的開發過程已大大簡化,所做工作基本是對現有資源的整理及補充,如需編寫代碼,則可能涉及到匯編工具及C代碼編寫工具的使用。

        一步交叉編譯生成按照需求配置好的內核鏡像。完成這一任務的工具是安裝于宿主機上的GNU交叉工具鏈,其具體工具主要是gcc編譯器、ld鏈接器的目標平臺架構版本。

        首先安裝對應目標平臺的工具鏈,將工具鏈的二進制程序路徑輸出為PATH環境變量,將其依賴的庫文件路徑輸出為LD_LIBRARY_PATH變量,然后執行內核配置命令make menuconfig,根據實際系統需求對內核模塊進行裁剪配置并保存配置文件;然后執行編譯命令make bzImage進行交叉編譯生成所需內核鏡像,執行編譯模塊命令生成內核所需模塊。

        根文件系統

        對于根文件系統的開發,重點在于針對不同應用交叉編譯相應庫文件,并搭配適當系統命令和應用程序,完成整個系統的運作支持。一個基本的根文件系統一般包括以下幾個部分:

        系統命令:完成如文件查看、掛載、系統進程查看等基本工作的Linux命令集合。在對系統體積要求較高的嵌入式Linux系統開發中,常用的是busybox工具。

        配置文件:保存系統服務,應用程序等的配置信息。一般可參考完整Linux系統上的配置文件。

        設備文件:系統中使用的設備,以文件形式存放于/dev下,一般裝有udev工具即可動態生成設備文件。

        庫:內核模塊、應用程序等各程序運行所需庫文件。具體庫文件包含的內容應根據實際運行的程序來決定,可用ldd命令輔助查找程序所需庫。

        應用程序:完成系統應用所需的應用程序。如手持終端中常用的QT圖形程序。

        程序開發及GDB調試模式

        嵌入式上層應用軟件的開發及調試可使用本地調試和遠程調試兩種方法。

        本地調試:將所需的調試器移植到目標系統中,然后直接在目標機上運行調試器來調試應用程序。

        遠程調試:移植一個調試服務器到目標系統中,并通過它與宿主機上的調試器共同完成應用程序的調試。在嵌入式Linux系統開發中,遠程調試時目標機上使用的調試服務器通常是gdbserver,而宿主機上使用的調試器則是gdb,在建立遠程調試硬件層服務的基礎上進行調試。

        整體系統測試

        對整個系統的測試主要分為功能測試和性能測試兩部分。

        功能測試:測試系統在完成指定應用時的正確性、操控性等指標。具體測試標準視應用而定,由測試人員執行應用程序完成測試。

        性能測試:測試系統運行時的穩定性、效率等指標。具體測試工具可使用LTP、LMBench等行業通用開源測試套件,測試結果標準也可參照上述工具給出,由測試人員執行測試用例腳本等方式完成測試。

        嵌入式Linux開發及其工具的發展趨勢

        上述分析看出,嵌入式Linux系統對開發環境有較高要求,不僅要大量工具組合使用,且其版本兼容性問題也一直困擾開發者。鑒于此,很多Linux開發者、開源企業都將思路轉向研究開發一整套嵌入式集成開發環境以提高開發效率上來。

        一個完整的嵌入式Linux集成開發平臺通常包括上述各開發步驟涉及的工具和集成用戶界面。集成開發工具的開發,對嵌入式linux行業而言,是一項既有高技術生命周期,又有可觀經濟價值的綜合開發解決方案。和過去相比,越來越多的開發者開始使用集成開發工具。

        的嵌入式Linux集成開發平臺應具備完整的開發能力、易于使用和整合、方便進行大型工程組織的協調控制、有較好產品品質和支持,在現有嵌入式Linux集成開發工具中,這些功能都還需進一步提高以滿足行業開發專業性需求。當然其中也不乏一些較為成功的產品,例如本土Linux廠商中科紅旗公司新近推出的嵌入式開發工具DevsPartner1.0。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕高清看片欧美灰色 | 熟女丰满少妇精品一区二区 | 又色又爽又黄的视频日本 | 在线观看黄V免费网站免费 亚洲视频在线香蕉 | 午夜福利久久野草 | 亚洲视频中文字幕在线观看 |