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

下載本文檔

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

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論