bootloader介紹_第1頁(yè)
bootloader介紹_第2頁(yè)
bootloader介紹_第3頁(yè)
bootloader介紹_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、v1.0可編輯可修改BootLoader一.BootLoader 簡(jiǎn)介在專用的嵌入式板子運(yùn)行GNU/Linux系統(tǒng)已經(jīng)變得越來越流行。一個(gè)嵌入式 Linux系統(tǒng)從軟件的角度看通??梢苑譃樗膫€(gè)層次:1、引導(dǎo)加載程序。包括固化在固件 firmware)中的boot代碼(可選),和 BootLoader兩大部分。2、Linux內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動(dòng)參數(shù)。3、文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通 常用ramdisk來作為rootfs 。4、用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。有時(shí)在用戶應(yīng)用程序和內(nèi)核層 之間可能還會(huì)包括一個(gè)嵌入式圖形用戶界面。常用的

2、嵌入式GUI有: MicroWindows和 MiniGUI 懂。引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBFR的OSBootLoader (比如, LILO和GRU贊)一起組成。BIOS在完成硬件檢測(cè)和資源分配后,將硬盤 MBR 中的BootLoader讀到系統(tǒng)的 RAM中,然后將控制權(quán)交給 OS BootLoader。 BootLoader的主要運(yùn)行任務(wù)就是將內(nèi)核映象從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也即開始啟動(dòng)操作系統(tǒng)。而在嵌入式系統(tǒng)中,通常并沒有像 BIOS那樣的固件程序(注,有的嵌入式 CP

3、U也會(huì)內(nèi)嵌一段短小的啟動(dòng)程序),因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由 BootLoader來完成。比如在一個(gè)基于 ARM7TDMI core的嵌入式系統(tǒng)中,系統(tǒng)在 上電或復(fù)位時(shí)通常都從地址 0x00000000處開始執(zhí)行,而在這個(gè)地址處安排的通 常就是系統(tǒng)的BootLoader程序。簡(jiǎn)單地說,BootLoader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。 通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系 統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。通常,BootLoader是嚴(yán)重地依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。 因此,在嵌入式世

4、界里建立一個(gè)通用的 BootLoader幾乎是不可能的。盡管如此, 我們?nèi)匀豢梢詫?duì) BootLoader歸納出一些通用的概念來,以指導(dǎo)用戶特定的 BootLoader設(shè)計(jì)與實(shí)現(xiàn)。二、常見bootloader 介紹1. U-BOO介紹uboot是一個(gè)龐大的公開源碼的軟件。他支持一些系列的 arm體系,包含常 見的外設(shè)的驅(qū)動(dòng),是一個(gè)功能強(qiáng)大的板極支持包。其代碼可以從 projects/u-boot 下載U-BOO得由PPCBO飯展起來的,是 PowerPC ARM9 Xscale、X86等系統(tǒng) 通用的Boot方案,從官方版本0.3.2開始全面支持SC系列單板機(jī)。u-boot是 個(gè) open sou

5、rce 的 bootloader ,目前版本是。u-boot 是在 ppcboot 以及 armboot 的基礎(chǔ)上發(fā)展而來,雖然宣稱是版本,卻相當(dāng)?shù)某墒旌头€(wěn)定,已經(jīng)在許多嵌入式 系統(tǒng)開發(fā)過程中被采用。由于其開發(fā)源代碼,其支持的開發(fā)板眾多。唯一遺憾的 是并不支持我們現(xiàn)在學(xué)習(xí)所用 Samsung 44B0X的開發(fā)板。為什么我們需要u-boot顯然可以將ucLinux直接燒入flash ,從而不需要 額外的引導(dǎo)裝載程序(bootloader )。但是從軟件升級(jí)的角度以及程序修補(bǔ)的來 說,軟件的自動(dòng)更新非常重要。事實(shí)上,引導(dǎo)裝載程序(bootloader )的用途不 僅如此,但僅從軟件的自動(dòng)更新的需要

6、就說明我們的開發(fā)是必要的。同時(shí),u-boot移植的過程也是一個(gè)對(duì)嵌入式系統(tǒng)包括軟硬件以及操作系統(tǒng) 加深理解的一個(gè)過程。2。vivi介紹(下載地址)vivi是韓國(guó)mizi公司開發(fā)的bootloader, 適用于ARM處理器。Vivi有 兩種工作模式:?jiǎn)?dòng)加載模式和下載模式。啟動(dòng)加載模式可以在一段時(shí)間后 (這 個(gè)時(shí)間可更改)自行啟動(dòng)linux內(nèi)核,這時(shí)vivi的默認(rèn)模式。在下載模式下, vivi為用戶提供一個(gè)命令行接口,通過接口可以使用vivi提供的一些命令,如下:命令功能Load把二進(jìn)制文件載入Flash或RAMPart操彳MT說區(qū)信息。顯示、增加、刪除、復(fù)位、保存 MT防區(qū)Param設(shè)置參數(shù)B

7、oot啟動(dòng)系統(tǒng)Flash管理Flash ,如刪除Flash的數(shù)據(jù)vivi代碼分析vivi的代碼包括arch , init , lib , drivers 和include 等幾個(gè)目錄,共200 多條文件。Vivi主要包括下面幾個(gè)目錄:arch :此目錄包括了所有vivi支持的目標(biāo)板的子目錄,例如s3c2410目錄。drivers :其中包括了引導(dǎo)內(nèi)核需要的設(shè)備的驅(qū)動(dòng)程序(MTD和串口)。MTD目錄下分 map nand和 nor三個(gè)目錄。init :這個(gè)目錄只有和兩個(gè)文件。和普通的C程序一樣,vivi將從main函數(shù)開始執(zhí)行。lib : 一些平臺(tái)公共的接口代碼,比如里的udelay()和mdelay()。i

溫馨提示

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

評(píng)論

0/150

提交評(píng)論