版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1.引言在專用的嵌入式板子運行GNULinux系統(tǒng)已經(jīng)變得越來越流行。一個嵌入式Linux系統(tǒng)從軟件的角度看通??梢苑譃樗膫€層次:1.引導(dǎo)加載程序。引導(dǎo)加載程序。包括固化在固件(firmware)中的boot代碼(可選),和BootLoader兩大部分。2.LinuxLinux內(nèi)核。內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。3.文件系統(tǒng)。文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ramdisk來作為
2、rootfs。4.用戶應(yīng)用程序。用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。有時在用戶應(yīng)用程序和內(nèi)核層之間可能還會包括一個嵌入式圖形用戶界面。常用的嵌入式GUI有:MicroWindows和MiniGUI懂。引導(dǎo)加載程序是系統(tǒng)加電后運行的第一段軟件代碼?;貞浺幌翽C的體系結(jié)構(gòu)我們可以知道,PC機中的引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBR中的OSBootLoader(比如,LILO和GRUB等)一起組成。BIOS在完成硬
3、件檢測和資源分配后,將硬盤MBR中的BootLoader讀到系統(tǒng)的RAM中,然后將控制權(quán)交給OSBootLoader。BootLoader的主要運行任務(wù)就是將內(nèi)核映象從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行,也即開始啟動操作系統(tǒng)。而在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序(注,有的嵌入式CPU也會內(nèi)嵌一段短小的啟動程序),因此整個系統(tǒng)的加載啟動任務(wù)就完全由BootLoader來完成。比如在一個基于ARM7TDMIce
4、的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時通常都從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的BootLoader程序。本文將從BootLoader的概念、BootLoader的主要任務(wù)、BootLoader的框架結(jié)構(gòu)以及BootLoader的安裝等四個方面來討論嵌入式系統(tǒng)的BootLoader。2.BootLoader的概念簡單地說,BootLoader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序,我們
5、可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。通常,BootLoader是嚴重地依賴于硬件而實現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的BootLoader幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫ootLoader歸納出一些通用的概念來,以指導(dǎo)用戶特定的BootLoader設(shè)計與實現(xiàn)。1.BootLoader所支持的CPU和嵌入式板每種
6、不同的CPU體系結(jié)構(gòu)都有不同的BootLoader。有些BootLoader也支持多種體系結(jié)構(gòu)的CPU,比如UBoot就同時支持ARM體系結(jié)構(gòu)和MIPS體系結(jié)構(gòu)。除了依賴于CPU的體系結(jié)構(gòu)外,BootLoader實際上也依賴于具體的嵌入式板級設(shè)備的配置。這也就是說,對于兩塊不同的嵌入式板而言,即使它們是基于同一種CPU而構(gòu)建的,要想讓運行在一塊板子上的BootLoader程序也能運行在另一塊板子上,通常也都需要修改BootLoader的
7、源程序。次安裝內(nèi)核與根文件系統(tǒng)時被使用;此外,以后的系統(tǒng)更新也會使用BootLoader的這種工作模式。工作于這種模式下的BootLoader通常都會向它的終端用戶提供一個簡單的命令行接口。像Blob或UBoot等這樣功能強大的BootLoader通常同時支持這兩種工作模式,而且允許用戶在這兩種工作模式之間進行切換。比如,Blob在啟動時處于正常的啟動加載模式,但是它會延時10秒等待終端用戶按下任意鍵而將blob切換到下載模式。如果在1
8、0秒內(nèi)沒有用戶按鍵,則blob繼續(xù)啟動Linux內(nèi)核。6.BootLoader與主機之間進行文件傳輸所用的通信設(shè)備及協(xié)議最常見的情況就是,目標機上的BootLoader通過串口與主機之間進行文件傳輸,傳輸協(xié)議通常是xmodem/ymodem/zmodem協(xié)議中的一種。但是,串口傳輸?shù)乃俣仁怯邢薜模虼送ㄟ^以太網(wǎng)連接并借助TFTP協(xié)議來下載文件是個更好的選擇。此外,在論及這個話題時,主機方所用的軟件也要考慮。比如,在通過以太網(wǎng)連接和TFT
9、P協(xié)議來下載文件時,主機方必須有一個軟件用來的提供TFTP服務(wù)。在討論了BootLoader的上述概念后,下面我們來具體看看BootLoader的應(yīng)該完成哪些任務(wù)。3.BootLoader的主要任務(wù)與典型結(jié)構(gòu)框架在繼續(xù)本節(jié)的討論之前,首先我們做一個假定,那就是:假定內(nèi)核映像與根文件系統(tǒng)映像都被加載到RAM中運行。之所以提出這樣一個假設(shè)前提是因為,在嵌入式系統(tǒng)中內(nèi)核映像與根文件系統(tǒng)映像也可以直接在ROM或Flash這樣的固態(tài)存儲設(shè)備中直接
10、運行。但這種做法無疑是以運行速度的犧牲為代價的。從操作系統(tǒng)的角度看,BootLoader的總目標就是正確地調(diào)用內(nèi)核來執(zhí)行。另外,由于BootLoader的實現(xiàn)依賴于CPU的體系結(jié)構(gòu),因此大多數(shù)BootLoader都分為stage1和stage2兩大部分。依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在stage1中,而且通常都用匯編語言來實現(xiàn),以達到短小精悍的目的。而stage2則通常用C語言來實現(xiàn),這樣可以實現(xiàn)給復(fù)雜的功能
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- arduino燒錄引導(dǎo)程序詳解
- 嵌入式Linux設(shè)備驅(qū)動程序和引導(dǎo)程序的研究.pdf
- 基于CAN總線的DSP程序遠程加載原理研究與實現(xiàn).pdf
- 嵌入式固件二級引導(dǎo)加載及相關(guān)技術(shù)的研究與實現(xiàn).pdf
- 政府應(yīng)對突發(fā)事件的輿論引導(dǎo)程序研究.pdf
- 手機軟件開發(fā)中的程序加載方法研究及應(yīng)用.pdf
- 加載excel
- revit 2013里面用程序新建族然后加載到模型中
- Linux環(huán)境下DUET平臺引導(dǎo)程序設(shè)計與實現(xiàn).pdf
- 表格加載
- 汽車電動液壓助力轉(zhuǎn)向系統(tǒng)和CAN通訊程序遠程加載的研究.pdf
- Android系統(tǒng)啟動和應(yīng)用程序加載加速的研究與優(yōu)化.pdf
- 分頁加載
- Cortex-A7雙核MX7D-SDB上引導(dǎo)加載系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 金屬齒板連接輕型木桁架試驗方法及加載程序研究.pdf
- 8r6x系列燒寫引導(dǎo)及主程序方法
- 加載裝置.dwg
- 加載機構(gòu).dwg
- 基于DSP28335的程序加載和資源優(yōu)化配置的研究與實現(xiàn).pdf
- 自動變速器標準分析及試驗臺加載程序的開發(fā).pdf
評論
0/150
提交評論