當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]應(yīng)用PCS進(jìn)行嵌入式Linux的研究

1.引言

  嵌入式Linux是一種開放源碼的真正32位的操作系統(tǒng),并且可以進(jìn)行裁減和優(yōu)化,性能穩(wěn)定,并且支持多任務(wù)和軟實(shí)時(shí),所以深受開發(fā)者的信賴。它支持從Intel X86到Motorola Power PC,ARM,Compaq Alpha等多種硬件平臺,并且提供了豐富的軟件資源,具有強(qiáng)大的網(wǎng)絡(luò)支持功能,支持GUI開發(fā),并且嵌入式Linux的開發(fā)技術(shù)資源豐富。如何管理各個(gè)應(yīng)用在系統(tǒng)中無沖突安全地工作?如何把開發(fā)的系統(tǒng)快速的轉(zhuǎn)化為可發(fā)布的產(chǎn)品?如何優(yōu)化和管理嵌入式系統(tǒng)的開發(fā)過程,保證在有限的工期之內(nèi)完成高質(zhì)量的產(chǎn)品?使用平臺創(chuàng)建套件(PCS)來開發(fā)嵌入式Linux應(yīng)用可以很好地解決這些問題。
 

  2.平臺創(chuàng)建套件介紹

  平臺創(chuàng)建套件(Platform Creation Suit)是由Metrowerks公司開發(fā)的一套專門用于進(jìn)行嵌入式Linux應(yīng)用的一套系統(tǒng),它提供的主要功能有:配置操作系統(tǒng),開發(fā)自己的應(yīng)用,自動(dòng)編譯(Build) ,部署(Deploy),調(diào)試(Debug), 檢查許可文件,集成新的軟件等等。

  平臺創(chuàng)建套件包含三個(gè)主要的組成部分:

  目標(biāo)向?qū)Чぞ?Target Wizard Tools),用來管理,配置,擴(kuò)展,生成和部署傳統(tǒng)的開放源碼的Linux軟件元素,來全面的支持目標(biāo)產(chǎn)品的需要。如圖一。目標(biāo)向?qū)Чぞ咛峁┝藬U(kuò)展基本的Linux環(huán)境的功能,它允許集成千萬種可下載的開放源代碼和二進(jìn)制應(yīng)用,GNU工具集, 新的Linux內(nèi)核,或者用來提高內(nèi)核功能的改進(jìn)的設(shè)備支持,安全,實(shí)時(shí)性能,服務(wù)質(zhì)量(QOS)和網(wǎng)絡(luò)等部件。

  CodeWarrior可視化開發(fā)環(huán)境,用來進(jìn)行項(xiàng)目管理,創(chuàng)建和生成嵌入式Linux應(yīng)用軟件。CodeWarrior可視化開發(fā)環(huán)境是一個(gè)非常優(yōu)秀的可視化開發(fā)工具,包括編輯環(huán)境,調(diào)試環(huán)境和項(xiàng)目管理功能,快速開發(fā)工具,等等。因?yàn)镃odeWarrior可視化開發(fā)環(huán)境已被眾多的嵌入式應(yīng)用開發(fā)人員所熟悉,這里不再詳細(xì)介紹。

  板極支持包工具(Board Support Package),包括用來創(chuàng)建,部署和調(diào)試操作系統(tǒng),驅(qū)動(dòng)程序,和針對目標(biāo)硬件平臺的應(yīng)用所需要的所有元素,通常一個(gè)BSP中包括Linux內(nèi)核,設(shè)備驅(qū)動(dòng)程序,應(yīng)用和服務(wù),各種類庫,GNU工具集(編譯器,連接器,等等),部署向?qū)У鹊取?/p>

  圖一: 平臺創(chuàng)建套件

  這張圖是PCS中最常用的模塊:Target Wizard的界面。在Target Wizard中所有的部件都以樹型結(jié)構(gòu)顯示,部件的圖標(biāo)表明它的狀態(tài),這樣整個(gè)系統(tǒng)中各個(gè)部件及其狀態(tài)都一目了然。開發(fā)者可以很方便的對部件進(jìn)行裁減,只要通過簡單菜單操作來打開(Enable)和關(guān)閉(Disable)就可以對系統(tǒng)中的部件進(jìn)行配置。PCS會(huì)自動(dòng)管理各個(gè)部件之間的依賴和沖突關(guān)系,這就避免了開發(fā)者在研究部件依賴關(guān)系和解決部件沖突的時(shí)候花費(fèi)大量的時(shí)間。開發(fā)者在打開一個(gè)部件的時(shí)候,如果它所依賴的部件并沒有打開,那么在狀態(tài)窗口中會(huì)顯示出這個(gè)部件的依賴信息,開發(fā)者可以根據(jù)這些信息逐一地解決。當(dāng)有沖突的時(shí)候,在狀態(tài)窗口中會(huì)顯示出具體的沖突信息,開發(fā)者可以順利地解決問題。在沒有沖突檢測的情況下,開發(fā)者可能意識不到?jīng)_突的存在,而直到運(yùn)行的時(shí)候才發(fā)現(xiàn)沖突的存在,PCS在很大程度上避免了類似問題的發(fā)生。

  Target Wizard同時(shí)與其它的功能模塊緊密相連,Package Editor 是一個(gè)可視化的環(huán)境來導(dǎo)入新的驅(qū)動(dòng)程序、應(yīng)用和庫文件,PCS同時(shí)也提供了手動(dòng)方式來完成這些功能的方法;Linux Kernel Import Tool可以用來導(dǎo)入新的Kernel ;GNU Toolchain Import Tool可以用來導(dǎo)入新的toolchain; Debian Binary Import Tool 允許開發(fā)者下載并導(dǎo)入多種公開發(fā)布的Debian GNU/Linux 二進(jìn)制應(yīng)用程序;Export BSP tool可以用來導(dǎo)出BSP,是生成BSP的工具;Skeleton Deployment Wizard 是可以設(shè)置一些通用屬性的部署工具;GDB(GNU Debugger)和DDD(Data Display Debugger)是目標(biāo)鏡像文件已經(jīng)部署到目標(biāo)板上的調(diào)試工具。

  3.基于平臺創(chuàng)建套件的嵌入式Linux應(yīng)用的開發(fā)過程

  進(jìn)行嵌入式Linux的開發(fā)大致都采用以下的開發(fā)過程:

  1. 基于功能需求選擇一個(gè)目標(biāo)板(MCG, Force, PC104, PPC ,等等)或者根據(jù)需求選擇一個(gè)處理器(購買一個(gè)評估開發(fā)板)和外圍芯片,定制目標(biāo)板。

  2. 定制和配置操作系統(tǒng)。

  3. 開發(fā)定制的應(yīng)用。

  4. 重新配置軟件,進(jìn)行部署。

  5. 維護(hù)軟件。

  使用平臺創(chuàng)建套件(PCS)可以加速整個(gè)嵌入式系統(tǒng)的開發(fā)過程。下面介紹使用平臺創(chuàng)建套件(PCS)進(jìn)行嵌入式系統(tǒng)開發(fā)可以采用的詳細(xì)的開發(fā)過程。

  • 評估硬件和軟件

  根據(jù)功能需求購買評估目標(biāo)板或定制目標(biāo)板,并準(zhǔn)備開始進(jìn)行自己的設(shè)計(jì)。

  • 安裝PCS和BSP

  現(xiàn)在最新的PCS版本是3.0,它可以運(yùn)行在很多主流X86 Linux平臺上,其中包括RedHat 9.0,RedHat 8.0,SuSe 8.2,SuSe 8.1,Debian 3.0。Metrowerks提供了很多種平臺的參考BSP(Board Support Package,板極支持包) ,包括X86, Motorola PowerPC , MIPS,Toshiba Tx,ARM,ColdFire,Hitachi SH等多個(gè)系統(tǒng)的BSP。

  • 為目標(biāo)板創(chuàng)建一個(gè)項(xiàng)目

  基于BSP創(chuàng)建一個(gè)新的項(xiàng)目。PCS有一套非常優(yōu)秀的BSP管理系統(tǒng),幫助開發(fā)者在同一個(gè)開發(fā)環(huán)境里同時(shí)存在互相不干擾的不同的目標(biāo)板項(xiàng)目,每個(gè)不同的BSP中包含不同的Linux 內(nèi)核和工具鏈,為項(xiàng)目提供交叉編譯環(huán)境。PCS提供了一套界面非常友好的項(xiàng)目創(chuàng)建項(xiàng)目向?qū)?,幫助開發(fā)者選定BSP和進(jìn)行項(xiàng)目設(shè)置。選擇已經(jīng)存在的配置狀態(tài)文件,或者使用默認(rèn)的配置狀態(tài)文件。不同的配置狀態(tài)文件可以保證開發(fā)者在同一個(gè)項(xiàng)目中有不同的配置,這樣用戶可以很方便的不同的配置中切換,而不用重新進(jìn)行配置。下一步是進(jìn)行內(nèi)核裁減配置。大多數(shù)BSP已經(jīng)提供了一個(gè)默認(rèn)的內(nèi)核配置,可是根據(jù)功能需求的不同開發(fā)者經(jīng)常需要自己進(jìn)行內(nèi)核的裁減工作。在PCS中進(jìn)行內(nèi)核的裁減是相對簡單的多的事情,開發(fā)者不需要使用繁瑣的文本菜單進(jìn)行配置和手動(dòng)編譯內(nèi)核。

  • 軟件包配置

  PCS中包含了幾十個(gè)通用的常用軟件包,避免了開發(fā)者到處尋找的煩惱。用戶可以通過PCS自帶的Package Editor工具導(dǎo)入自己需要的軟件包。開發(fā)者可以在PCS中進(jìn)行軟件包的配置,例如打開gui library, 關(guān)閉web server 等工作都可以輕松完成。

  在PCS中進(jìn)行軟件包的配置是非常簡單的,只需要在軟件包的上下文菜單中選擇即可。

  圖二: 軟件包配置[!--empirenews.page--]編譯這個(gè)項(xiàng)目

 

  PCS允許開發(fā)者按照自己的期望來對Linux部件進(jìn)行編譯。開發(fā)者可以只編譯那些上次編譯之后重新配置的部件,也可以強(qiáng)制編譯項(xiàng)目所包含的全部的部件,不管是否已經(jīng)編譯過。

  • 部署Linux loader和開發(fā)包到板上

  對于已經(jīng)存在的SBC,應(yīng)該已經(jīng)提供了這些軟件包。對于定制的目標(biāo)板還需要做下面的工作:用于目標(biāo)板的bootload固件,板上bring-up,遠(yuǎn)程bootload等。這樣就完成了開發(fā)模式下最小板上環(huán)境。

  • 完成新的驅(qū)動(dòng)程序

  如果功能需求需要的話,開發(fā)者要完成為目標(biāo)板的特定硬件驅(qū)動(dòng)程序。

  • 開發(fā)應(yīng)用

  開發(fā)者開發(fā)運(yùn)行在目標(biāo)板上的應(yīng)用,開發(fā)者可以使用隨同PCS一同發(fā)布的Codewarrior IDE進(jìn)行應(yīng)用的開發(fā)和調(diào)試。

  • 重新配置:由開發(fā)模式轉(zhuǎn)換到產(chǎn)品模式

  修改目標(biāo)板固件:

  支持本地bootload。

  支持本地根文件系統(tǒng),通常將根文件設(shè)置為只讀模式。

  去除開發(fā)用的遺留部件:

  去除調(diào)試工具。

  去除用于方便開發(fā)而導(dǎo)入的無用部件。

  去除無用的類庫,只保留需要的那部分。

  為啟動(dòng)特殊的應(yīng)用而改變啟動(dòng)過程。

  最終產(chǎn)品測試。

  • 部署最終產(chǎn)品,發(fā)布產(chǎn)品。

  軟件的部署是一個(gè)比較復(fù)雜的過程,但是PCS提供了一個(gè)非常方便的部署向?qū)В梢栽诤艽蟮某潭壬蠝p少部署的工作量。部署的過程包括為目標(biāo)板生成嵌入式鏡像文件,然后部署到目標(biāo)板上。在部署之前需要使用PCS提供的交叉編譯環(huán)境對所有的軟件包進(jìn)行編譯。PCS會(huì)幫助開發(fā)者生成系統(tǒng)的鏡像文件,包括生成文件系統(tǒng),轉(zhuǎn)換格式使得鏡像文件可以下載到目標(biāo)板上。PCS提供了一個(gè)擴(kuò)展性很好的策略,就是開發(fā)者可以開發(fā)自己的部署向?qū)硗瓿梢恍┨厥獾牟渴鸩僮?,在PCS文檔中有非常詳細(xì)的關(guān)于這部分功能的介紹。

  • 在PCS中導(dǎo)出新的BSP,可以在以后的開發(fā)中應(yīng)用。

  PCS提供了一套圖形化的導(dǎo)出BSP的工具,用戶在圖形界面上進(jìn)行簡單的設(shè)置之后就可以導(dǎo)出的BSP以便在以后的開發(fā)中使用。大多數(shù)的項(xiàng)目是在一個(gè)已經(jīng)存在的BSP的基礎(chǔ)上創(chuàng)建的,導(dǎo)出的BSP可以讓很多成果和解決方案在以后的項(xiàng)目中得到應(yīng)用,這是非常必要的。

  4.結(jié)束語

  通過對使用平臺創(chuàng)建套件工具進(jìn)行嵌入式Linux應(yīng)用開發(fā)過程的研究我們可以看出平臺創(chuàng)建套件工具在Linux內(nèi)核配置,部件之間的依賴關(guān)系的管理和沖突的避免,生成在目標(biāo)板上可運(yùn)行的目標(biāo)文件,調(diào)試目標(biāo)板和導(dǎo)出BSP方面都有非常新穎且可行的處理方式。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

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

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

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

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

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

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

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

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

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

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

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

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(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)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

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