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

      嵌入式Linux開發(fā)工具選擇和應(yīng)用分析

      更新時間: 2005-10-29 00:00:00來源: 粵嵌教育瀏覽量:4606

        嵌入式Linux具有穩(wěn)定、可伸縮及開放源代碼等特點,可兼容多種處理器和主機,廣泛適用于各種產(chǎn)品和應(yīng)用。但是,交叉編譯、設(shè)備驅(qū)動程序開發(fā)/調(diào)試,以及更小尺寸等要求對嵌入式Linux開發(fā)者來說都是嚴(yán)峻的挑戰(zhàn)。為應(yīng)對這些挑戰(zhàn),針對嵌入式Linux開發(fā)的專用工具應(yīng)運而生,而且發(fā)展十分迅猛。

          但是,許多這類開發(fā)工具都不兼容非X86平臺,而且也沒有很好地實現(xiàn)歸檔備案或集成。在其它開發(fā)環(huán)境下,組件間的高度集成并沒有完全兌現(xiàn)。因此,要想完全從這些免費的軟件組件開始創(chuàng)建一個完整的跨平臺開發(fā)環(huán)境,開發(fā)者應(yīng)意識到這將需要大量的調(diào)研、實施、培訓(xùn)和維護方面的工作。

          Linux是少數(shù)既可以在嵌入式設(shè)備上運行也可作為開發(fā)環(huán)境的操作系統(tǒng)之一。這一特性可讓開發(fā)者在轉(zhuǎn)向此開發(fā)系統(tǒng)之前于常用硬件(比如X86桌面系統(tǒng))之上開發(fā)、調(diào)試和測試應(yīng)用程序和庫,因此可減少對標(biāo)準(zhǔn)參考平臺和指令集仿真器的依賴。這一技術(shù)僅適用于應(yīng)用程序和庫,但不適用于設(shè)備驅(qū)動程序,因為后者的開發(fā)依賴于Linux架構(gòu)。

          開放源代碼團體及一些軟件供應(yīng)商可提供設(shè)備驅(qū)動程序開發(fā)工具。由于設(shè)備驅(qū)動程序比標(biāo)準(zhǔn)應(yīng)用程序距離硬件更近,因此它們的開發(fā)比較困難。所幸的是,Linux桌面系統(tǒng)可以利用一些Windows及其它操作系統(tǒng)所沒有的工具。有足夠經(jīng)驗開發(fā)設(shè)備驅(qū)動程序的開發(fā)人員可能已經(jīng)習(xí)慣將Linux作為他們的桌面開發(fā)系統(tǒng)了。

          Linux的快速發(fā)展及其桌面方案的不斷涌現(xiàn)提出了一個重要問題:所選擇的工具方案怎樣在不同的Linux分布式系統(tǒng)上運行?它們依賴于主機平臺的軟件配置嗎?

          有些Linux工具提供獨立于主機平臺的開發(fā)環(huán)境,包括一系列可支持開發(fā)工具的應(yīng)用軟件、庫和實用程序。這一方法幾乎將開發(fā)環(huán)境與主機配置完全隔離開來,因此主機可以是任何Linux分布式系統(tǒng),而且任何更新和修改都不會影響開發(fā)環(huán)境的功能。

          這種方法的主要缺點是對存儲空間的要求有所增加——約200MB,因為它自己實際上相當(dāng)于一個微型Linux分布式系統(tǒng)。

          可用的工具

          一個嵌入式Linux產(chǎn)品的開發(fā)需要幾個階段,包括為目標(biāo)板配置和構(gòu)建基本Linux OS;調(diào)試應(yīng)用程序、庫、內(nèi)核及設(shè)備驅(qū)動程序/內(nèi)核模塊;出貨前終方案的優(yōu)化、測試和驗證。

          有數(shù)百種開放源代碼開發(fā)工具可供選擇。只要開發(fā)者原意花時間和精力去調(diào)研、實施和維護一系列各不相同的工具,總能找出一個完整的解決方案,完成幾乎任何開發(fā)任務(wù)。

          在Linux應(yīng)用程序和庫的調(diào)試方面,GNU Debugger(GDB)作為一種標(biāo)準(zhǔn)已有幾年的歷史。它是一種命令行程序,由多個不同的圖形用戶界面前端予以支持,每個前端都能以多種方式提供調(diào)試控制功能。盡管GDB不是一個完美的方案,但它足夠應(yīng)對各種調(diào)試任務(wù),而且已經(jīng)得到開放源代碼團體的廣泛支持。

          Linux內(nèi)核或設(shè)備驅(qū)動程序的調(diào)試要比應(yīng)用程序的調(diào)試繁瑣得多。

          在做調(diào)研時,以下方面應(yīng)特別注意:
          什么調(diào)試方法支持要開發(fā)產(chǎn)品的硬件?
          需要什么內(nèi)核補丁程序?
          還需要其它什么補丁程序?
          調(diào)試界面怎么樣,如何使用?
          該工具需要調(diào)試內(nèi)核模塊及處理虛擬地址轉(zhuǎn)換嗎?
          還需要其它什么工具才能提供完整的方案?

          經(jīng)過進一步的調(diào)查,開發(fā)者往往發(fā)現(xiàn)工具A和工具B并沒有提供完全一致的功能,因為它們是在彼此獨立的情況下開發(fā)的。結(jié)果,開發(fā)者必須精確地考慮到這些工具的松散集合能提供什么樣的功能,還需要付出多大的努力才能形成完整的解決方案。

          如果不同處理器類型間的集成、可用性、互操作性和移植性很關(guān)鍵的話,開發(fā)者應(yīng)考慮購買商用開發(fā)工具。這主要是因為將開發(fā)一個“免費”方案所付出的努力考慮進去,商用開發(fā)工具并不算貴。

          Linux BSP

          Linux系統(tǒng)有兩大主要部分:帶設(shè)備驅(qū)動程序的Linux內(nèi)核;以及根文件系統(tǒng),包括系統(tǒng)所需的全部支持應(yīng)用程序、服務(wù)和庫。

          除了駐留在目標(biāo)板上的OS組件外,還需要創(chuàng)建一個由GNU Compiler Collection構(gòu)成的交叉編譯環(huán)境,為庫和二進制程序(binutils)提供支持。

          雖然幾乎每一個組件都可在網(wǎng)上找到,但在硬件或設(shè)備驅(qū)動程序支持、集成測試信息、交叉編譯指南或軟件兼容性方面卻很難收集到太多信息。盡管開發(fā)者可從網(wǎng)上免費下載各種組件以配置嵌入式Linux操作系統(tǒng),但每個組件在版本、支持、穩(wěn)定性和測試等方面的狀態(tài)則需要開發(fā)者自己決定。然后,開發(fā)者還要完成的OS集成和測試,以及為所開發(fā)產(chǎn)品提供終身Linux OS維護。

          另一方面,嵌入式Linux供應(yīng)商所提供的商用Linux板支持工具包一般都是經(jīng)過預(yù)先安裝和測試的,而且提供支持和維護。其它須考慮的因素包括Linux桌面主機將會添加不同的庫和內(nèi)核功能,以及由于組織內(nèi)的開發(fā)者變動而引起的長期維護問題。

          品質(zhì)保證部門一般會執(zhí)行一系列嚴(yán)格的驗證和性能測試,其中包括存儲器泄漏檢測/糾正、代碼優(yōu)化和任務(wù)跟蹤等。那些想利用開放源代碼工具開發(fā)面向非X86平臺的嵌入式Linux產(chǎn)品開發(fā)者將會發(fā)現(xiàn)這一任務(wù)甚至要比選擇開放源代碼調(diào)試方案難得多。Linux Trace Toolkit、Valgrind工具及其它存儲器分析程序可完成部分測試和驗證任務(wù)。但總的來說,它們?nèi)狈﹃P(guān)鍵特性、集成功能及廣泛的硬件支持。這些開放源代碼分析工具的評估過程與評估調(diào)試方案的過程基本相同。

          的分析就是,一個設(shè)計得恰到好處的開發(fā)環(huán)境應(yīng)能夠提供商用和開放源代碼兩個世界所具有的特性:
          * 交鑰匙開發(fā)能力;
          * 易于使用和集成;
          * 大型工程組織的協(xié)調(diào)控制;
          * 品質(zhì)和支持保證;
          * 持續(xù)性;
          * 按照自己的判斷力使用開放源代碼的能力。

      免費預(yù)約試聽課

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

      
      

      1. 亚州精品自在线拍视频播放 | 一本大道香蕉在线精品亚洲 | 亚洲成a∧人片在线播放 | 亚洲一区二区三区偷拍女厕 | 日韩一区二区三区免费AⅤ 午夜性刺激在线观看视频 综合偷自拍亚洲乱中文字幕 | 欧美中日韩国产精品卡通动漫一区二区 |