嵌入式系統(tǒng)軟件開(kāi)發(fā)概述課件_第1頁(yè)
嵌入式系統(tǒng)軟件開(kāi)發(fā)概述課件_第2頁(yè)
嵌入式系統(tǒng)軟件開(kāi)發(fā)概述課件_第3頁(yè)
嵌入式系統(tǒng)軟件開(kāi)發(fā)概述課件_第4頁(yè)
嵌入式系統(tǒng)軟件開(kāi)發(fā)概述課件_第5頁(yè)
已閱讀5頁(yè),還剩106頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第4章嵌廴式系統(tǒng)軟件開(kāi)發(fā)概述內(nèi)容·嵌廴式軟件開(kāi)發(fā)環(huán)境·嵌入式軟件開(kāi)發(fā)流程嵌入式系統(tǒng)調(diào)試典型的開(kāi)發(fā)工具鏈nte開(kāi)發(fā)工具鏈·開(kāi)發(fā)例子4.1嵌入式軟件開(kāi)發(fā)環(huán)境·交叉開(kāi)發(fā)·編程語(yǔ)言4.1.1交叉開(kāi)發(fā)通用計(jì)算機(jī)的軟件開(kāi)發(fā)一般都是以本地(Native)編譯方式進(jìn)行的嵌廴式系統(tǒng)一般不支持本地環(huán)境開(kāi)發(fā),其軟件開(kāi)發(fā)通常采用交叉開(kāi)發(fā)(CrossCompile的方式。交叉開(kāi)發(fā)環(huán)境建立在宿主機(jī)(Host)上,宿主機(jī)又稱(chēng)開(kāi)發(fā)機(jī)、上位機(jī),一般是一臺(tái)通用計(jì)算機(jī),如PC。對(duì)應(yīng)嵌入式系統(tǒng)稱(chēng)為目標(biāo)機(jī)。目標(biāo)機(jī)指各式各樣的嵌入式設(shè)備,例如手機(jī)、掌上電腦等;或者是嵌人式廠商提供的一套專(zhuān)用的評(píng)估板(evaluationboard),所以又稱(chēng)開(kāi)發(fā)板;甚至是基于軟件的模擬器。開(kāi)發(fā)時(shí)使用宿主機(jī)上的交叉編譯、匯編和鏈接工具形成可在目標(biāo)機(jī)上執(zhí)行的二進(jìn)制代碼,然后把可執(zhí)行文件下載到目標(biāo)機(jī)上運(yùn)行。此外嵌入式系統(tǒng)的調(diào)試也常采用交叉的方式。4.1.1交叉開(kāi)發(fā)為什么要交叉編譯?目標(biāo)機(jī)上往往無(wú)法進(jìn)行有效的本地編譯目標(biāo)機(jī)硬件本身在開(kāi)發(fā)過(guò)程中,還不能使用或還不夠穩(wěn)定目標(biāo)機(jī)平臺(tái)上缺乏完整的Inative編譯工具、環(huán)境目標(biāo)機(jī)系統(tǒng)本身性能不夠,導(dǎo)致編譯太慢嵌廴式系統(tǒng)的軟件編譯,與windows開(kāi)發(fā)不一樣,不僅要編譯應(yīng)用程序,還要編譯相應(yīng)的依賴(lài)庫(kù)、操作系統(tǒng)內(nèi)核等。所以次完整的編譯非常費(fèi)時(shí)比如編譯一個(gè)Lnux內(nèi)核在奔4級(jí)別的PC上都需要十幾分鐘而從硬件角度,決定編譯速度的主要因素是CPU速度、內(nèi)存容量和文件系統(tǒng)O速度。一這些在嵌入式系統(tǒng)上往往都要比PC差很多所以在目標(biāo)機(jī)系統(tǒng)上進(jìn)行本地編譯效率太低4.1.1交叉開(kāi)發(fā)宿主機(jī)與目標(biāo)機(jī)的區(qū)別體系結(jié)構(gòu)的不同。宿主機(jī)和目標(biāo)機(jī)通常是異構(gòu)的。宿主機(jī)一般栗用x86體系結(jié)構(gòu),但是目標(biāo)機(jī)的體系結(jié)構(gòu)則司能非x86的,如是ARM、M|PS、PowerPC等各式各樣對(duì)于某些系統(tǒng)這一點(diǎn)不一定成立。如Atom系統(tǒng),宿主機(jī)和目標(biāo)機(jī)一般都是x86系統(tǒng),當(dāng)然執(zhí)行的指爺集可能不一樣,如宿主機(jī)(如core2Duo)可能支持SSE4,而Atom支持到SSE3和SSSE因此編譯時(shí)還是要考慮到目標(biāo)機(jī)型號(hào)和指爺集的選擇處理能力不同。通常宿主機(jī)的處理速度。存儲(chǔ)容量等會(huì)遠(yuǎn)遠(yuǎn)大于目標(biāo)機(jī)。運(yùn)行的操作系統(tǒng)不同。宿主機(jī)一般運(yùn)行通用操作系統(tǒng),而目標(biāo)機(jī)通常運(yùn)行各種嵌入式操作系統(tǒng)。輸廴輸出方式不同。相對(duì)宿主機(jī),目標(biāo)機(jī)的輸入輸出功能可能比較單交叉開(kāi)發(fā)的主要工作有交叉編譯(包括交叉鏈接)和交叉調(diào)試。4.1.2編程語(yǔ)言·嵌入式系統(tǒng)比較常用編程語(yǔ)言有C/C++、ADAPython和Modula-2等級(jí)別常用的編程語(yǔ)營(yíng)應(yīng)用程序CC++、Java、NET、腳本、Python操作系統(tǒng)級(jí)別C/C++、匯編驅(qū)動(dòng)程序級(jí)別后動(dòng)代碼,硬件抽象層(HAL)匯編、C/C+在底層方面又不得不用到匯編語(yǔ)詈,雖然其使用量不大。復(fù)雜的嵌廴式系統(tǒng)一般由多種語(yǔ)言混合編寫(xiě)而成。由于C/C++擁有便于底層編程等諸多優(yōu)點(diǎn),目前CC++為大多數(shù)嵌入式系統(tǒng)開(kāi)發(fā)的首選語(yǔ)言。4.2嵌入式軟件開(kāi)發(fā)流程般地來(lái)說(shuō),嵌廴式軟件編寫(xiě)代碼使用匯斜O(jiān)C+編寫(xiě)開(kāi)發(fā)依次要經(jīng)歷編輯(代碼源代碼準(zhǔn)備)、編譯、重定位(定址使用專(zhuān)用編譯器、鏈交叉編譯、鏈接和打包)、燒寫(xiě)、下載、調(diào)試接器生成目標(biāo)代碼優(yōu)化等步驟,在某些嵌入使用打包工具生成可映像生成式系統(tǒng)中可能還需要測(cè)試以執(zhí)行的二進(jìn)制映像和驗(yàn)證等步驟。使用燒寫(xiě)器或Loader下載或燒寫(xiě)到目標(biāo)機(jī)從流程上說(shuō),大致可分為把映像燒寫(xiě)到目標(biāo)設(shè)編碼階段、構(gòu)建階段、部署執(zhí)行并查看代碼的結(jié)階段、調(diào)優(yōu)和其他階段。運(yùn)行調(diào)試、優(yōu)化調(diào)試程序、優(yōu)化性能典型的嵌入式軟件開(kāi)發(fā)流程圖4.2嵌廴式軟件開(kāi)發(fā)流程1.編碼階段編碼階段是軟件開(kāi)發(fā)的開(kāi)始,其任務(wù)是編寫(xiě)軟件的源代碼代碼,使用的工具是各種編輯器。2.構(gòu)建階段構(gòu)建階段的任務(wù)是把代碼轉(zhuǎn)化成可以在嵌入式硬件上可執(zhí)行程序的過(guò)程。此階段包括截然不同的步驟,包括編譯,鏈接、定址和打包。C/C++源程序源程序源程序編譯器

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論