bootloader啟動(dòng)過(guò)程

bootloader啟動(dòng)過(guò)程

ID:36284817

大小:356.00 KB

頁(yè)數(shù):25頁(yè)

時(shí)間:2019-05-08

bootloader啟動(dòng)過(guò)程_第1頁(yè)
bootloader啟動(dòng)過(guò)程_第2頁(yè)
bootloader啟動(dòng)過(guò)程_第3頁(yè)
bootloader啟動(dòng)過(guò)程_第4頁(yè)
bootloader啟動(dòng)過(guò)程_第5頁(yè)
資源描述:

《bootloader啟動(dòng)過(guò)程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、7.1BootLoader概述簡(jiǎn)單地說(shuō),BootLoader就是在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序之前運(yùn)行的一段小程序。通過(guò)這段小程序可以初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序準(zhǔn)備好正確環(huán)境。通常,BootLoader是依賴于硬件而實(shí)現(xiàn)的,因此,為嵌入式系統(tǒng)建立一個(gè)通用的BootLoader是很困難的。但是可以歸納出一些通用的概念,以便于了解特定BootLoader的設(shè)計(jì)與實(shí)現(xiàn)。BootLoader的主要任務(wù)如圖7.1所示。圖7.1BootLoader的主要任務(wù)7.2B

2、ootLoader與嵌入式系統(tǒng)的關(guān)系每種不同的處理器體系結(jié)構(gòu)都有不同的BootLoader。有些BootLoader也支持多種體系結(jié)構(gòu)的處理器。除了依賴處理器的體系結(jié)構(gòu)外,BootLoader實(shí)際上也依賴于具體的嵌入式板級(jí)設(shè)備的配置。即使是基于同一種處理器構(gòu)建的兩塊不同的嵌入式板級(jí)設(shè)備,它們的BootLoader也是不同的。BootLoader源程序是很關(guān)鍵的代碼,因?yàn)樗且恍┌烟囟ǖ臄?shù)字寫入指定硬件寄存器的指令序列。系統(tǒng)加電復(fù)位后,所有的處理器通常都從某個(gè)處理器制造商預(yù)先安排的地址上取指令。如基于S3C44B0x的處理器在復(fù)位時(shí)通常都從地

3、址0x00000000取它的第一條指令。而基于處理器構(gòu)建的嵌入式系統(tǒng)通常都有某種類型的固態(tài)存儲(chǔ)設(shè)備(如ROM、EEPPOM或FLASH等)被映射到這個(gè)預(yù)先安排的地址上。因此在系統(tǒng)加電后,處理器將首先執(zhí)行BootLoader程序。裝有BootLoader內(nèi)核的啟動(dòng)參數(shù),內(nèi)核映像和根文件系統(tǒng)映像的固態(tài)存儲(chǔ)設(shè)備的典型空間分配結(jié)構(gòu)如圖7.2所示。圖7.2存儲(chǔ)設(shè)備典型空間分配結(jié)構(gòu)7.2.1Bootloader的操作模式大多數(shù)Bootloader都包含啟動(dòng)加載模式及下載模式兩種不同的操作模式,但這種區(qū)別僅對(duì)于開發(fā)人員才有意義。從最終用戶的角度開,Boo

4、tLoader的作用就是用來(lái)加載操作系統(tǒng),而并不存在所謂的啟動(dòng)加載模式與下載工作模式的區(qū)別。1.啟動(dòng)加載模式(BootLoading)啟動(dòng)加載模式也稱為自主(Autonomous)模式,即BootLoader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過(guò)程并沒有用戶的介入。這種模式是BootLoader的正常工作模式。2.下載(DownLoading)模式當(dāng)采用下載模式時(shí),目標(biāo)機(jī)上的BootLoader將通過(guò)串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件,如應(yīng)用程序、數(shù)據(jù)文件、內(nèi)核映像等。從主機(jī)下載的文件通常首先被BootL

5、oader保存到目標(biāo)機(jī)的RAM中,然后再被BootLoader寫到目標(biāo)機(jī)上的固態(tài)存儲(chǔ)設(shè)備中。下載模式要求在BootLoader中完成對(duì)串口或以太網(wǎng)口的初始化,定義相關(guān)的命令,向其終端提供相應(yīng)簡(jiǎn)單的命令接口。BootLoader的這種模式通常在系統(tǒng)更新時(shí)使用。7.2.2BootLoader的總體設(shè)計(jì)1.階段設(shè)計(jì)BootLoader的啟動(dòng)可以是分階段的,因此在設(shè)計(jì)時(shí)也可將BootLoader分為階段1和階段2。將BootLoader分為2個(gè)階段的原因如下。(1)基于編程語(yǔ)言的考慮階段1主要用匯編語(yǔ)言編寫,這是因?yàn)樗饕羞M(jìn)與CPU核心及存儲(chǔ)設(shè)備

6、密切相關(guān)的處理工作,進(jìn)行一些必要的初始化工作,是依賴于CPU體系結(jié)構(gòu)的代碼,為了增加效率以及因?yàn)樯婕皡f(xié)處理器的設(shè)置,只能用匯編語(yǔ)言編寫,這部分直接在FLASH中執(zhí)行;階段2可以用一般的C語(yǔ)言編寫,用于實(shí)現(xiàn)一般的流程以及對(duì)板級(jí)的一些驅(qū)動(dòng)支持,這部分會(huì)被復(fù)制到RAM中執(zhí)行。(2)代碼具有更好的可讀性與移植性若對(duì)于相同的CPU以及存儲(chǔ)設(shè)備,要增加外設(shè)支持,階段1的代碼可以維護(hù)不變,只對(duì)階段2的代碼進(jìn)行修改;若要支持不同的CPU,則基礎(chǔ)代碼只需在階段1中修改。2.地址規(guī)劃設(shè)計(jì)當(dāng)BootLoader階段設(shè)計(jì)好之后,需要考慮的是鏡像存儲(chǔ)的地址分配:如總

7、鏡像保存在什么地方,階段2對(duì)應(yīng)的鏡像會(huì)被復(fù)制到什么地方,內(nèi)核鏡像原先存放在什么地方,BootLoader會(huì)把它又重新加載到什么地方;如何進(jìn)行準(zhǔn)確的地址規(guī)劃以保證沒有相互沖突等。3.模式設(shè)計(jì)對(duì)于普通用戶來(lái)說(shuō)只需要BootLoader的啟動(dòng)加載模式,但是對(duì)于開發(fā)者來(lái)說(shuō),則需要下載模式,因?yàn)樗麄冃枰獣r(shí)時(shí)刻刻地進(jìn)行一些鏡像的更新。為了在兩者之間做到兼顧,這里介紹一個(gè)既支持啟動(dòng)加載模式又支持下載模式的具體思路:在BootLoader做完一些硬件初始化的工作之后,而在加載內(nèi)核鏡像之前,先在一定的時(shí)間內(nèi)等待有沒有用戶有鍵盤輸入。如果沒有,則為啟動(dòng)加載模式

8、,直接加載內(nèi)核鏡像進(jìn)行啟動(dòng);如果有,則進(jìn)入命令行格式,這時(shí)開發(fā)者就可以根據(jù)自己的需要以及BootLoader的支持情況,做一些其他的工作。模式的轉(zhuǎn)換設(shè)計(jì)主要在階段2中實(shí)現(xiàn)。7.3

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。