UBOOT基礎(chǔ)知識PPT.ppt
《UBOOT基礎(chǔ)知識PPT.ppt》由會員分享,可在線閱讀,更多相關(guān)《UBOOT基礎(chǔ)知識PPT.ppt(71頁珍藏版)》請?jiān)趨R文網(wǎng)上搜索。
1、UBOOT中中 嵌嵌TeacherXie1 提提 綱綱理論:理論:nBootLoaderBootLoader介紹介紹nUbootUboot介紹介紹nUbootUboot命令命令nUbootUboot工作流程工作流程nUbootUboot移植移植nUbootUboot燒寫燒寫實(shí)驗(yàn):實(shí)驗(yàn):n移植移植UbootnUboot使用使用2第一節(jié)第一節(jié)BootLoader介紹介紹3概念概念什么是什么是BootLoaderBootLoader?4軟件層次軟件層次一個(gè)嵌入式系統(tǒng)從軟件角度來看分為三個(gè)層次:一個(gè)嵌入式系統(tǒng)從軟件角度來看分為三個(gè)層次:1.1.引導(dǎo)加載程序引導(dǎo)加載程序 包括固化在固件包括固化在固件(f
2、irmware)firmware)中的中的 boot boot 代碼代碼(可選可選),和,和 BootLoader BootLoader 兩大部分。兩大部分。2.2.Linux Linux 內(nèi)核內(nèi)核 特定于嵌入式平臺的定制內(nèi)核。特定于嵌入式平臺的定制內(nèi)核。3.3.文件系統(tǒng)文件系統(tǒng) 包括了系統(tǒng)命令和應(yīng)用程序。包括了系統(tǒng)命令和應(yīng)用程序。5軟件層次軟件層次一個(gè)同時(shí)裝有一個(gè)同時(shí)裝有 BootLoaderBootLoader、內(nèi)核的啟動內(nèi)核的啟動參數(shù)參數(shù)、內(nèi)核映像內(nèi)核映像和和根文件系統(tǒng)根文件系統(tǒng)映像的固映像的固態(tài)存儲設(shè)備的典型空間分配結(jié)構(gòu)圖:態(tài)存儲設(shè)備的典型空間分配結(jié)構(gòu)圖:6回憶回憶PCPCPC機(jī)中的引
3、導(dǎo)加載程序由機(jī)中的引導(dǎo)加載程序由BIOSBIOS(其本質(zhì)是一段固件程序)其本質(zhì)是一段固件程序)和位和位于于硬盤硬盤MBRMBR中的引導(dǎo)程序中的引導(dǎo)程序(GRUBGRUB或或LILO)LILO)一起組成。一起組成。BIOSBIOS在完成硬件在完成硬件檢測和資源分配后,將硬盤中的檢測和資源分配后,將硬盤中的引導(dǎo)程序讀到系統(tǒng)內(nèi)存中然后將引導(dǎo)程序讀到系統(tǒng)內(nèi)存中然后將控制權(quán)交給引導(dǎo)程序。引導(dǎo)程序控制權(quán)交給引導(dǎo)程序。引導(dǎo)程序的主要任務(wù)是的主要任務(wù)是將內(nèi)核從硬盤上讀將內(nèi)核從硬盤上讀到內(nèi)存中到內(nèi)存中,然后跳轉(zhuǎn)到內(nèi)核的入口然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,即啟動操作系統(tǒng)。點(diǎn)去運(yùn)行,即啟動操作系統(tǒng)。7定義定義在嵌入式
4、系統(tǒng)中,在嵌入式系統(tǒng)中,通常通常沒有像沒有像BIOSBIOS那樣的固那樣的固件程序,件程序,因此整個(gè)系統(tǒng)的加載啟動任務(wù)就完因此整個(gè)系統(tǒng)的加載啟動任務(wù)就完全由全由BootLoaderBootLoader來完成來完成。比如在一個(gè)基于。比如在一個(gè)基于ARM7TDMIARM7TDMIcorecore的嵌入式系統(tǒng)中,系統(tǒng)在的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)都從地址上電或復(fù)位時(shí)都從地址0 0 x00000000 x00000000開始執(zhí)行。開始執(zhí)行。而在這個(gè)地址處安排的通常就是系統(tǒng)的而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoaderBootLoader程序。程序。8定義定義簡單地說,簡單地說,Boot
5、LoaderBootLoader就是在操作系統(tǒng)就是在操作系統(tǒng)運(yùn)行之前運(yùn)行的運(yùn)行之前運(yùn)行的一段小程序一段小程序。通過這段。通過這段小程序,可以初始化硬件設(shè)備,從而將小程序,可以初始化硬件設(shè)備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備以便為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備。9功能功能BootLoader BootLoader 的的主要任務(wù)主要任務(wù)是是初始化硬件初始化硬件(如:串口,內(nèi)存)(如:串口,內(nèi)存),然后將內(nèi)核映,然后將內(nèi)核映象從象從 Flash Flash 中讀到中讀到 RAM RAM 中,然后跳中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,
6、也就是轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也就是啟啟動操作系統(tǒng)動操作系統(tǒng)。10安裝安裝系統(tǒng)加電或復(fù)位后,所有的系統(tǒng)加電或復(fù)位后,所有的CPUCPU通通常都從常都從CPUCPU制造商預(yù)先安排地址開制造商預(yù)先安排地址開始執(zhí)行始執(zhí)行。比如,比如,S3C2410S3C2410在復(fù)位后在復(fù)位后從地址從地址0 0 x00000000 x00000000起開始執(zhí)行起開始執(zhí)行。而而嵌入式系統(tǒng)則將固態(tài)存儲設(shè)備(比嵌入式系統(tǒng)則將固態(tài)存儲設(shè)備(比如:如:FLASHFLASH)安排在這個(gè)地址上)安排在這個(gè)地址上,而而bootloaderbootloader程序又安排在固態(tài)存程序又安排在固態(tài)存儲器的最前端儲器的最前端,這樣就能保證
7、在系這樣就能保證在系統(tǒng)加電后,統(tǒng)加電后,CPUCPU首先執(zhí)行首先執(zhí)行BootLoaderBootLoader程序。程序。11移植移植Q:Q:什么叫什么叫bootloaderbootloader移植?移植?Q:Q:為什么需要移植?為什么需要移植?12移植移植每種每種不同的不同的CPUCPU體系結(jié)構(gòu)體系結(jié)構(gòu)都有不同的都有不同的BootLoaderBootLoader。除了依賴于除了依賴于CPUCPU的體系結(jié)構(gòu)外,的體系結(jié)構(gòu)外,BootLoader BootLoader 還依還依賴于賴于具體的嵌入式板級設(shè)備的配置具體的嵌入式板級設(shè)備的配置,比如板卡的,比如板卡的硬件地址分配,外設(shè)芯片的類型等。這也就
8、是說,硬件地址分配,外設(shè)芯片的類型等。這也就是說,對于兩塊不同的開發(fā)板而言,對于兩塊不同的開發(fā)板而言,即使它們是基于同即使它們是基于同一種一種CPUCPU而構(gòu)建的,但如果他們的硬件資源或配置而構(gòu)建的,但如果他們的硬件資源或配置不一致的話,不一致的話,要想在一塊開發(fā)板上運(yùn)行的要想在一塊開發(fā)板上運(yùn)行的BootLoaderBootLoader程序也能在另一塊板子上運(yùn)行,還是程序也能在另一塊板子上運(yùn)行,還是需要作修改。需要作修改。13流程流程BootLoader BootLoader 的啟動過程可分為的啟動過程可分為單階段單階段(Single-StageSingle-Stage)和和多階段多階段(Mu
9、lti-StageMulti-Stage)兩種,通常多階段的兩種,通常多階段的 BootLoader BootLoader 具有更復(fù)雜具有更復(fù)雜的功能,更好的可移植性。從固態(tài)存儲設(shè)備上的功能,更好的可移植性。從固態(tài)存儲設(shè)備上啟動的啟動的 BootLoader BootLoader 大多大多采用兩階段采用兩階段,即啟動,即啟動過程可以分為過程可以分為 stage 1stage 1和和 stage2stage2:stage1stage1完完成初始化硬件,為成初始化硬件,為stage2stage2準(zhǔn)備內(nèi)存空間,并將準(zhǔn)備內(nèi)存空間,并將stage2stage2復(fù)制到內(nèi)存中,設(shè)置堆棧,然后跳轉(zhuǎn)到復(fù)制到內(nèi)存
10、中,設(shè)置堆棧,然后跳轉(zhuǎn)到stage2stage2。14流程流程BootLoader BootLoader 的的 stage1 stage1 通常包括以下步驟:通常包括以下步驟:硬件設(shè)備初始化硬件設(shè)備初始化為加載為加載 BootLoader BootLoader 的的 stage2 stage2 準(zhǔn)備準(zhǔn)備 RAM RAM 空間空間拷貝拷貝 BootLoader BootLoader 的的 stage2 stage2 到到 RAM RAM 空間空間中中設(shè)置好堆棧(設(shè)置好堆棧(why?why?)跳轉(zhuǎn)到跳轉(zhuǎn)到 stage2 stage2 的的 C C 入口點(diǎn)入口點(diǎn)15流程流程BootLoader Bo
11、otLoader 的的 stage2stage2 通常包括以下步驟:通常包括以下步驟:初始化本階段要使用到的硬件設(shè)備初始化本階段要使用到的硬件設(shè)備將內(nèi)核映像和根文件系統(tǒng)映像從將內(nèi)核映像和根文件系統(tǒng)映像從 flash flash 上讀上讀到到 RAM RAM 中中調(diào)用內(nèi)核調(diào)用內(nèi)核16內(nèi)存分布內(nèi)存分布17第二節(jié)第二節(jié)UBOOTUBOOT介紹介紹18作用作用UbootUboot是德國是德國DENXDENX小組開發(fā)的用于小組開發(fā)的用于多多種嵌入式種嵌入式CPUCPU(MIPS MIPS、x86x86、ARMARM、XScaleXScale等等)的的bootloaderbootloader程序程序,UB
12、ootUBoot不僅支持嵌入式不僅支持嵌入式LinuxLinux系統(tǒng)的系統(tǒng)的引導(dǎo),還支持引導(dǎo),還支持VxWorks,QNXVxWorks,QNX等等多種多種嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)。19下載下載從下面地址可以下載到從下面地址可以下載到ubootuboot的源代碼:的源代碼:http:/ 20目錄樹目錄樹進(jìn)入到進(jìn)入到UBOOTUBOOT目錄,可以得到如下的目錄,可以得到如下的目錄結(jié)構(gòu)目錄結(jié)構(gòu):|board|common|cpu|disk|doc|drivers|dtt|examples|fs|include21目錄樹目錄樹|lib_arm|lib_generic|lib_i386|lib_m
13、68k|lib_microblaze|lib_mips|lib_nios|lib_nios2|lib_ppc|net|post|rtctools22目錄結(jié)構(gòu)目錄結(jié)構(gòu)(展示展示)BoardBoard和開發(fā)板有關(guān)的文件。每一個(gè)開發(fā)板都以一個(gè)子目錄出現(xiàn)和開發(fā)板有關(guān)的文件。每一個(gè)開發(fā)板都以一個(gè)子目錄出現(xiàn)在當(dāng)前目錄中,比如在當(dāng)前目錄中,比如:SMDK2410,SMDK2410,子目錄中存放與開發(fā)板相子目錄中存放與開發(fā)板相關(guān)的文件。關(guān)的文件。CommonCommon實(shí)現(xiàn)實(shí)現(xiàn)UbootUboot支持的命令。支持的命令。CpuCpu與特定與特定CPUCPU架構(gòu)相關(guān)的代碼,每一款架構(gòu)相關(guān)的代碼,每一款Uboot
14、Uboot下支持的下支持的CPUCPU在該在該目錄下對應(yīng)一個(gè)子目錄,比如有子目錄目錄下對應(yīng)一個(gè)子目錄,比如有子目錄arm920tarm920t等。等。23DiskDisk 對磁盤的支持。對磁盤的支持。DocDoc文檔目錄。文檔目錄。UbootUboot有非常完善的文檔,推薦大家參考閱讀。有非常完善的文檔,推薦大家參考閱讀。DriversDriversUbootUboot支持的設(shè)備驅(qū)動程序都放在該目錄,比如各種網(wǎng)卡、支持的設(shè)備驅(qū)動程序都放在該目錄,比如各種網(wǎng)卡、支持支持CFICFI的的FlashFlash、串口和串口和USBUSB等。等。目錄結(jié)構(gòu)目錄結(jié)構(gòu)(展示展示)24目錄結(jié)構(gòu)目錄結(jié)構(gòu)(展示展示
15、)FsFs 文件系統(tǒng)的支持文件系統(tǒng)的支持。IncludeInclude Uboot Uboot使用的頭文件。該目錄下使用的頭文件。該目錄下configsconfigs目錄目錄有與開發(fā)板相關(guān)的配置頭文件,如有與開發(fā)板相關(guān)的配置頭文件,如smdk2410.hsmdk2410.h。該目錄下的該目錄下的asmasm目錄目錄有與有與CPUCPU體系結(jié)構(gòu)相關(guān)的頭體系結(jié)構(gòu)相關(guān)的頭文件。文件。25目錄結(jié)構(gòu)目錄結(jié)構(gòu)(展示展示)NetNet與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼,例如:與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼,例如:TFTPTFTP協(xié)議、協(xié)議、RARPRARP協(xié)議的實(shí)現(xiàn)。協(xié)議的實(shí)現(xiàn)。ToolsTools生成生成UbootUboot
16、的工具,如:的工具,如:mkimage,crcmkimage,crc等等等。等。26編譯編譯UbootUboot的的MakefileMakefile從從功能上功能上可以分成兩可以分成兩個(gè)部分:個(gè)部分:1 1、執(zhí)行每種、執(zhí)行每種boardboard相關(guān)的配置相關(guān)的配置2 2、編譯生成、編譯生成uboot.binuboot.bin文件文件27編譯編譯(演示演示)Uboot.binUboot.bin的生成也分為兩步,以的生成也分為兩步,以smdk2410smdk2410為為例來說明,如下:例來說明,如下:1.1.對于對于boardboard進(jìn)行配置:進(jìn)行配置:$make smdk2410_confi
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
19.9 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- UBOOT 基礎(chǔ)知識 PPT