1、BL鎖是BootLoader的簡(jiǎn)稱,就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。
2、在嵌入式操作系統(tǒng)中,BootLoader是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行。
3、可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。
【資料圖】
4、擴(kuò)展資料:?jiǎn)?dòng)過程Bootloader啟動(dòng)大多數(shù)都分為兩個(gè)階段。
5、第一階段主要包含依賴于CPU的體系結(jié)構(gòu)硬件初始化的代碼,通常都用匯編語(yǔ)言來實(shí)現(xiàn)。
6、這個(gè)階段的任務(wù)有:基本的硬件設(shè)備初始化(屏蔽所有的中斷、關(guān)閉處理器內(nèi)部指令/數(shù)據(jù)Cache等)。
7、為第二階段準(zhǔn)備RAM空間。
8、如果是從某個(gè)固態(tài)存儲(chǔ)媒質(zhì)中,則復(fù)制Bootloader的第二階段代碼到RAM。
9、設(shè)置堆棧。
10、在第一階段中為什么要關(guān)閉Cache?通常使用Cache以及寫緩沖是為了提高系統(tǒng)性能,但由于Cache的使用可能改變?cè)L問主存的數(shù)量、類型和時(shí)間,因此Bootloader通常是不需要的。
11、跳轉(zhuǎn)到第二階段的C程序入口點(diǎn)。
12、第二階段通常用C語(yǔ)言完成,以便實(shí)現(xiàn)更復(fù)雜的功能,也使程序有更好的可讀性和可移植性。
13、這個(gè)階段的任務(wù)有:初始化本階段要使用到的硬件設(shè)備。
14、檢測(cè)系統(tǒng)內(nèi)存映射。
15、將內(nèi)核映像和根文件系統(tǒng)映像從Flash讀到RAM。
16、為內(nèi)核設(shè)置啟動(dòng)參數(shù)。
17、調(diào)用內(nèi)核。
18、參考資料:BootLoader-百度百科。
本文到此分享完畢,希望對(duì)大家有所幫助。
關(guān)鍵詞: