u-boot分析之启动简介(一)
目錄
u-boot啟動簡介(一)
- 啟動概述
- 內(nèi)部存儲布局
- Bootloader概述
- 內(nèi)核啟動參數(shù) taggedlist
- 體驗一下實際的Uboot
- U-boot的使用幫助
- U-boot基本要求
u-boot啟動簡介(一)
啟動概述
==U-boot的終極目的,是從FLASH中讀出內(nèi)核,加載到SDRAM中==
| Win | BIOS | 引導(dǎo)win | 識別C盤等 | 運(yùn)行應(yīng)用程序 |
| Linux | Bootloader | 引導(dǎo)啟動linux內(nèi)核 | 掛載根文件系統(tǒng) | 運(yùn)行應(yīng)用程序 |
?
==階段一引導(dǎo)==
這里包含芯片自身的引導(dǎo),BIOS固件的引導(dǎo),以及bootloader的引導(dǎo),jz2440這里首先可能有4ksram的搬運(yùn),然后執(zhí)行sram的程序,或者直接是Bootloader.所以Bootloader目的就是加載內(nèi)核,傳遞內(nèi)核參數(shù)
==階段二Linux內(nèi)核==
內(nèi)核的啟動參數(shù)分為固定參數(shù)和Bootloader傳遞參數(shù).
==階段三文件系統(tǒng)==
應(yīng)用程序都是存放在文件系統(tǒng)上的,不像win的C盤D盤,linux的目錄結(jié)構(gòu)就是一個樹形,樹形的頂部也就是/,這個稱之為根文件系統(tǒng),根文件系統(tǒng)有一些特殊的含義,比如shell命令等都是在根文件系統(tǒng)中存放的.
文件系統(tǒng)包含了應(yīng)用程序,以及庫,和動態(tài)鏈接需要的glibc或者Uclibc等.
==階段四應(yīng)用程序==
跑到這里,就是我們自己的應(yīng)用程序執(zhí)行的時候了.
內(nèi)部存儲布局
常見的內(nèi)部空間布局如下:
| u-boot,它會在內(nèi)存的某個地方存放著內(nèi)核啟動的一些參數(shù),也稱為tag | u-boot 參數(shù),包含傳遞給內(nèi)核的一些東西 | 內(nèi)核 | 根文件系統(tǒng) |
Bootloader概述
一般情況下,Bootloader分為兩個階段,第一個階段為匯編階段,我理解為為C語言提供環(huán)境.第二個階段就是C語言的階段,實現(xiàn)復(fù)雜的功能.
- Bootloader第一階段功能(匯編實現(xiàn)):完成一些依賴于CPU體系結(jié)構(gòu)的初始化,并調(diào)用第二階段代碼
- 硬件初始化,比如關(guān)WATCHDOG,關(guān)中斷,設(shè)置CPU速度和時鐘頻率(這個也可以在C階段)
- 如果Bootloader需要在SDRAM中運(yùn)行,則需要①sdram驅(qū)動②搬運(yùn)代碼到sdram
- 設(shè)置C函數(shù)調(diào)用、運(yùn)算所需要的棧(Sp)
- Bootloader第二階段功能(C實現(xiàn)):完成更復(fù)雜功能,代碼有更好的可讀性和可移植性
- 初始化本階段要使用到的硬件設(shè)備
- ==檢測系統(tǒng)內(nèi)存映射==,這里指的是確定板上使用了多少內(nèi)存、它們的地址空間是什么,告訴內(nèi)核
- 讀取內(nèi)核
- 讀取根文件系統(tǒng),有些格式的根文件系統(tǒng)不需要復(fù)制到RAM
- 為內(nèi)核設(shè)置啟動參數(shù)
- 調(diào)用內(nèi)核
- uboot啟動內(nèi)核之前要滿足以下條件:
- (一)CPU寄存器的設(shè)置
1,內(nèi)核入口函數(shù)有三個參數(shù),所以R0=0,R1=機(jī)器ID,R2=啟動參數(shù)的內(nèi)存地址
- (二)CPU工作模式
1,禁止中斷(IRQs和FIQs)
2,CPU處于SVC模式
- (三)Cache和MMU的設(shè)置
1,MMU必須關(guān)閉
2,指令cache不相關(guān)
3,數(shù)據(jù)Cache關(guān)閉
內(nèi)核啟動參數(shù) tagged list
內(nèi)核是這么讀取參數(shù)的:
所以很自然的,內(nèi)存單元的參數(shù)就是
size tag data體驗一下實際的Uboot
U-boot的使用幫助
U-boot基本要求
核心功能
需要以下程序模塊
?
轉(zhuǎn)載:https://www.cnblogs.com/zongzi10010/p/10023658.html#u-boot一啟動簡介
總結(jié)
以上是生活随笔為你收集整理的u-boot分析之启动简介(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u-boot分析之makefile分析(
- 下一篇: u-boot分析之编译体验(零)