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

下載本文檔

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

文檔簡介

嵌入式操作系統(tǒng)的移植 以Linux系統(tǒng)移植為例摘要:本文簡述了嵌入式操作系統(tǒng)及其移植的目的,分析了嵌入式操作系統(tǒng)移植的過程與具體操作步驟,提供了移植過程中的剪裁方法,并介紹了多任務(wù)實時處理在軟件編程中的應(yīng)用。0引言隨著科技的發(fā)展,微機的硬件規(guī)模越來越大,功能越來越強,從而給運行嵌入式操作系統(tǒng)提供了物質(zhì)基礎(chǔ)。各種操作系統(tǒng)就此應(yīng)運而生。嵌入式操作系統(tǒng),是一種運行在嵌入式硬件平臺上,對整個系統(tǒng)及其所操作的部件、裝置等資源進行統(tǒng)一配置、協(xié)調(diào)和控制的系統(tǒng)軟件,負責嵌入系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制協(xié)調(diào)并發(fā)活動。與普通的操作系統(tǒng)相比,嵌入式操作系統(tǒng)主要有微型化、可裁剪性、高可靠性、易一致性幾個不同點。按應(yīng)用范圍劃分,有通用型和專用型兩種。通用型可用于多種應(yīng)用環(huán)境,如:WindowsCE、VxWorks、MLinux以及M7OSTI等;專用型則有Symbian、PlamOS等。1嵌入式操作系統(tǒng)移植的目的在電子技術(shù)高速發(fā)展的今天,單片機嵌入式技術(shù)的應(yīng)用越來越廣泛。嵌入式實時操作系統(tǒng)在目前的嵌入式應(yīng)用中,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中也愈來愈重要,其能大大提高系統(tǒng)可靠性和開發(fā)效率。市場上單片機的品牌、種類、型號繁多,如:Inter公司的51系列單片機、德州儀器(TI)的TMS370和MSP430兩大系列通用單片機等。由于嵌入式操作系統(tǒng)的可移植性,我們只需對嵌入操作系統(tǒng)做一些修改,就可以使其運行在不同的硬件平臺上,幫助我們?nèi)ス芾砗涂刂撇煌挠布Y源和調(diào)度任務(wù)。這個修改的過程就可以稱作移植,對于嵌入式操作系統(tǒng)在實際工程中的推廣應(yīng)用有著重要的意義。由于嵌入式系統(tǒng)所使用的芯片型號多種多樣,很多芯片不能直接兼容,所以通過修改部分代碼,把能在甲芯片上運行的程序,也能在與之不完全兼容的乙芯片上正確運行,就叫移植。系統(tǒng)移植的概念也相近,只是涉及到的芯片更多。2嵌入式操作系統(tǒng)移植的方法及具體步驟對不同的操作系統(tǒng),其移植方法不同。以下以Linux操作系統(tǒng)的移植為例進行說明。2.1移植準備在進行移植時,首要任務(wù)是建立一個最基本的開發(fā)環(huán)境。該環(huán)境具備一套跨平臺開發(fā)工具。它包含有編譯器、連接器、除錯器等,另外還要準備制作文檔系統(tǒng)所需的軟件。以PC機作為宿主機構(gòu)建一套完整的交叉編譯系統(tǒng)來調(diào)試目標板。而在目標平臺上只需要準備一段開機程序,如Etherboot,Redboot等,此程序可以在除錯階段取得系統(tǒng)的映像(image)文件后啟動或者直接從Flashroom中來引導(dǎo)系統(tǒng)。一旦啟動后就進入Linux操作系統(tǒng),同時也可以使用GDBserver作為遠端除錯工具。2.2移植過程及具體操作步驟Linux操作系統(tǒng)的移植總共三大部分:內(nèi)核的重新編譯,bootloader的重新編譯和根文件系統(tǒng)的移植。主要有以下幾個過程:(1) 內(nèi)核配置(2) 體系結(jié)構(gòu)相關(guān)代碼修改(3) 連接腳本(4) 中斷處理(5) 加載文件系統(tǒng)(6) 編寫驅(qū)動程序(7) 編譯文件系統(tǒng)2.2.1內(nèi)核的重新編譯為了使Linux內(nèi)核能在不同的目標平臺上運行,需要根據(jù)平臺的處理器類型和外圍接口,對Linux內(nèi)核文件進行正確的配置。如果修改完Linux的內(nèi)核文件,使其能在目標平臺上正確跑起來,那么整個移植過程就基本完成了。具體步驟如下:(1) 首先獲取某一版本的Linux內(nèi)核源碼,根據(jù)具體的目標平臺對源碼進行必要的改寫(主要是修改體系結(jié)構(gòu)相關(guān)的部分);(2) 添加一部分外設(shè)驅(qū)動(如網(wǎng)卡驅(qū)動、USB驅(qū)動),打造一款適合于目標平臺的新的操作系統(tǒng),也就是常說的內(nèi)核配置或內(nèi)核定制;(3) 對該系統(tǒng)進行針對目標平臺的交叉編譯,生成一個內(nèi)核映象文件;(4) 最后通過一些手段將該映象燒寫到目標平臺中。2.2.2bootloader的重新編譯bootloader的重新編譯一般分為兩個階段:(1) 根據(jù)開發(fā)板的硬件資料做一些初始化的工作(匯編):初始化PLL;初始化存儲空間,SDRAM,地址空間分配;初始化串口,LED等基本調(diào)試硬件;設(shè)置系統(tǒng)運行模式,設(shè)置各種模式的堆棧。(2) 實現(xiàn)bootloader通用的一些功能:用戶界面(命令行);串口驅(qū)動,網(wǎng)口驅(qū)動,usb驅(qū)動,flash驅(qū)動;下載協(xié)議xmoden,tftp;下載功能(內(nèi)核,ramdisk等),燒寫flash。2.2.3根文件系統(tǒng)的移植移植根文件系統(tǒng)需要文件:busybox-1.13.4.tar.bz2(1) 解壓busybox-1.13.4.tar.bz2(2) 編輯Makefile文件(3) 進行默認配置(4) 對配置信息進行修改(5) 編譯(6) 對配置信息進行修改(7) 創(chuàng)建配置文件(8) 復(fù)制常用的庫文件3移植過程中的剪裁方法3.1進行方式進行方式必須高效地建立系統(tǒng),基本可行的方法有兩種:從其中一個發(fā)行版本中把不必要的部份全部刪掉,留下我們想要的系統(tǒng)。把系統(tǒng)所有的功能依規(guī)格從新建立起來。3.2開發(fā)環(huán)境要建立一個最基本的開發(fā)環(huán)境,必須具備一套跨平臺的開發(fā)工具(CrossDevelopmentKit),包含有編譯器,連接器,調(diào)試器等。另外還要準備制作文件系統(tǒng)所需的程序。而在目標平臺上,只需準備一段系統(tǒng)開機程序,如etherboot,redboot等。此程序可以在調(diào)試階段時,從網(wǎng)絡(luò)取得系統(tǒng)映像檔(image)后啟動,或是直接從閃存中,把系統(tǒng)啟動。一旦啟動后,就進入Linux的操作系統(tǒng),同時亦可使用GDBserver作為遠端調(diào)試的工具。3.3開發(fā)過程首先要準備Linux的內(nèi)核,配上根目錄所在的文件系統(tǒng),再加上守護進程程序和應(yīng)用程序等,經(jīng)過壓縮后,打包成一個含有內(nèi)核的映像文件。目標平臺透過網(wǎng)絡(luò)或閃存,取得映像文件后,進行解壓縮,經(jīng)過系統(tǒng)啟動,初始化后,就是一臺使用嵌入式Linux為操作系統(tǒng)的機器。4多任務(wù)實時處理在軟件編程中的應(yīng)用實時設(shè)計中,主要涉及到兩方面的問題:多任務(wù)實時處理的并發(fā)性與實時性以及其激活方式。所有的事件驅(qū)動和時間驅(qū)動都體現(xiàn)在設(shè)置相應(yīng)的任務(wù)標識和線程標識。當硬件環(huán)境一定時,依據(jù)這些標識,通過安排系統(tǒng)內(nèi)中斷響應(yīng)方式和調(diào)整任務(wù)調(diào)度算法,可以有效解決多任務(wù)并行問題,因為系統(tǒng)的實時性主要取決于這兩點。4.1并發(fā)性與實時性實時操作中的多任務(wù)引起的并發(fā)性和實時性,要求操作系統(tǒng)對資源分配具有更強的控制能力。通常的分配辦法是設(shè)立前臺與后臺兩個作業(yè)。前臺作業(yè)中包含實時采集、控制、處理有關(guān)的任務(wù),任務(wù)優(yōu)先級較高;后臺作業(yè)一般是對數(shù)據(jù)進行分析、輸出數(shù)據(jù)、響應(yīng)操作員請求等任務(wù),優(yōu)先級較低。后臺作業(yè)中與后臺作業(yè)并非完全孤立的;后臺作業(yè)所需數(shù)據(jù)由前臺作業(yè)存儲共享內(nèi)存區(qū)內(nèi),作業(yè)之間通過共享存儲區(qū)進行數(shù)據(jù)交換。4.2激活方式實時任務(wù)總是由某個事件發(fā)生或時間條件滿足來激活。事件有兩種:內(nèi)部事件和外部事件。時間驅(qū)動也有兩種:按絕對時間驅(qū)動和按相對時間驅(qū)動。內(nèi)部事件驅(qū)動是指某一程序運行的結(jié)果導(dǎo)致另一任務(wù)的啟動,這個結(jié)果可能是數(shù)據(jù)滿足一定條件,也可能是釋放了某一資源;而最典型的實時任務(wù)是由外部事件驅(qū)動的。在實時系統(tǒng)中,外部事件發(fā)生有時是不可預(yù)測的,由外部事件驅(qū)動的任務(wù)一般是需要立即執(zhí)行的任務(wù),

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論