嵌入式系統(tǒng)移植的簡單介紹_第1頁
嵌入式系統(tǒng)移植的簡單介紹_第2頁
嵌入式系統(tǒng)移植的簡單介紹_第3頁
嵌入式系統(tǒng)移植的簡單介紹_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

嵌入式操作系統(tǒng)的移植綜述:嵌入式操作系統(tǒng)與通用操作系統(tǒng)的最顯著的區(qū)別之一就是它的可移植性。一款嵌入式操作系統(tǒng)通??梢赃\(yùn)行在不同體系結(jié)構(gòu)的處理器和開發(fā)板上。為了使嵌入式操作系統(tǒng)可以在某款具體的目標(biāo)設(shè)備上運(yùn)行,嵌入式操作系統(tǒng)的編寫者通常無法一次性完成整個操作系統(tǒng)的代碼,而必須把一部分與具體硬件設(shè)備相關(guān)的代碼作為抽象的接口保留出來,讓提供硬件的OEM廠商來完成。這樣才可以保證整個操作系統(tǒng)的可移植性。一、移植的定義及其目的由于嵌入式系統(tǒng)所使用的芯片型號多種多樣,很多芯片不能直接兼容,所以通過修改部分代碼,把能在甲芯片上運(yùn)行的程序,也能在與之不完全兼容的乙芯片上正確運(yùn)行,就叫移植.嵌入式操作系統(tǒng)移植的目的是指使操作系統(tǒng)能在某個微處理器或微控制器上運(yùn)行。二、移植的方法與具體操作步驟2.1在進(jìn)行移植時,我們的首要任務(wù)就是要建立一個最基本的開發(fā)環(huán)境。該環(huán)境具備一套跨平臺開發(fā)工具。它包含有編譯器、連接器、除錯器等,另外還要準(zhǔn)備制作文檔系統(tǒng)所需的軟件。以PC機(jī)作為宿主機(jī)構(gòu)建一套完整的交叉編譯系統(tǒng)來調(diào)試目標(biāo)板。而在目標(biāo)平臺上只需要準(zhǔn)備一段開機(jī)程序,如Etherboot,Redboot等,此程序可以在除錯階段取得系統(tǒng)的映像(image)文件后啟動或者直接從Flashroom中來引導(dǎo)系統(tǒng)。一旦啟動后就進(jìn)入Linux操作系統(tǒng),同時也可以使用GDBserver作為遠(yuǎn)端除錯工具。2.2內(nèi)核的移植為了使Linux內(nèi)核能在不同的目標(biāo)平臺上運(yùn)行,要求我們根據(jù)平臺的處理器類型和外圍接口,對Linux內(nèi)核文件進(jìn)行正確的配置,同時。修改內(nèi)核文件Linux移植的主要步驟。如果修改完Linux的內(nèi)核文件,使其能在目標(biāo)平臺上正確跑起來,那么整個移植過程就基本完成了。2.3移植的具體步驟(1)首先獲取某一版本的Linux內(nèi)核源碼,根據(jù)具體的目標(biāo)平臺對源碼進(jìn)行必要的改寫(主要是修改體系結(jié)構(gòu)相關(guān)的部分);(2)添加一部分外設(shè)驅(qū)動(如網(wǎng)卡驅(qū)動、USB驅(qū)動),打造一款適合于目標(biāo)平臺的新的操作系統(tǒng),也就是常說的內(nèi)核配置或內(nèi)核定制;(3)對該系統(tǒng)進(jìn)行針對目標(biāo)平臺的交叉編譯,生成一個內(nèi)核映象文件;(4)最后通過一些手段將該映象燒寫到目標(biāo)平臺中。三、移植過程中如何進(jìn)行剪裁3.1進(jìn)行方式進(jìn)行的方式必須有效率的建立系統(tǒng),基本可行的方法有兩種:(1)從其中一個發(fā)行版本中把不必要的部份全部刪掉,留下我們想要的系統(tǒng)。(2)把系統(tǒng)所有的功能依規(guī)格從新建立起來。3.2開發(fā)環(huán)境要建立一個最基本的開發(fā)環(huán)境,必需具備一套跨平臺的開發(fā)工具(CrossDevelopmentKit),包含有編譯器,連接器,調(diào)試器等。另外還要準(zhǔn)備制作文件系統(tǒng)所需的程序。而目標(biāo)平臺上,只需準(zhǔn)備一段系統(tǒng)開機(jī)程序,如etherboot[5],redboot[6]等。此程序可以在調(diào)試階段時,從網(wǎng)絡(luò)取得系統(tǒng)映像檔(image)后啟動,或是直接從閃存中,把系統(tǒng)啟動。一旦啟動后,就進(jìn)入Linux的操作系統(tǒng),同時亦可使用GDBserver作為遠(yuǎn)端調(diào)試的工具。3.3開發(fā)過程可以分為幾個部份。首先要準(zhǔn)備Linux的內(nèi)核,配上根目錄所在的文件系統(tǒng),再加上守護(hù)進(jìn)程程序和應(yīng)用程序等,經(jīng)過壓縮后,打包成一個含有內(nèi)核的映像文件。目標(biāo)平臺透過網(wǎng)絡(luò)或閃存,取得映像文件后,進(jìn)行解壓縮,經(jīng)過系統(tǒng)啟動,初始化后,就是一臺使用嵌入式Linux為操作系統(tǒng)的機(jī)器。四、“軟件編程”如何應(yīng)用嵌入式操作系統(tǒng)的多任務(wù)實時處理的特點(diǎn)一方面,實時操作中的多任務(wù)引起的并發(fā)性和實時性,要求操作系統(tǒng)對資源分配具有更強(qiáng)的控制能力。通常的辦法是采取設(shè)立前臺與后臺兩個作業(yè)的分配辦法。前臺作業(yè)中包含實時采集、控制、處理有關(guān)的任務(wù),任務(wù)優(yōu)先級較高;后臺作業(yè)一般是對數(shù)據(jù)進(jìn)行分析、輸出數(shù)據(jù)、響應(yīng)操作員請求等任務(wù),優(yōu)先級較低。后臺作業(yè)中與后臺作業(yè)并非完全孤立的;后臺作業(yè)所需數(shù)據(jù)由前臺作業(yè)存儲共享內(nèi)存區(qū)內(nèi),作業(yè)之間通過共享存儲區(qū)進(jìn)行數(shù)據(jù)交換。另一方面,實時任務(wù)總是由某個事件發(fā)生或時間條件滿足來激活。事件有兩種:內(nèi)部事件和外部事件。時間驅(qū)動也有兩種:按絕對時間驅(qū)動和按相對時間驅(qū)動。內(nèi)部事件驅(qū)動是指某一程序運(yùn)行的結(jié)果導(dǎo)致另一任務(wù)的啟動,這個結(jié)果可能是數(shù)據(jù)滿足一定條件,也可能是釋放了某一資源;而最典型的實時任務(wù)是由外部事件驅(qū)動的。在實時系統(tǒng)中,外部事件發(fā)生有時是不可預(yù)測的,由外部事件驅(qū)動的任務(wù)一般是需要立即執(zhí)行的任務(wù),它的優(yōu)先級最高。絕對時間驅(qū)動是指在某指定時刻執(zhí)行的任務(wù),也就是在自然時鐘的絕對時間執(zhí)行。相對時間驅(qū)動是指周期性執(zhí)行的任務(wù),總是相對上一次執(zhí)行時間計時,執(zhí)行時間間隔一定。除了周期性任務(wù)外,還有一些同步任務(wù)也可能由相對時間驅(qū)動,如等待某種條件到來。等待時間是編程設(shè)定的。相對時間可用計算機(jī)內(nèi)部時鐘或軟件計時。我們在實時設(shè)計當(dāng)中,這兩方面的問題都有所體

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論