linux uboot 源码分析,UBoot源码分析1.pdf
UBoot源碼分析1
? UBoot源碼解析(一)
主要內(nèi)容
? 分析UBoot是如何引導Linux內(nèi)核
? UBoot源碼的一階段解析
BootLoader概念
? Boot Loader 就是在操作系統(tǒng)內(nèi)核運行之前運行
的一段小程序。通過這段小程序,我們可以初始
化硬件設備、建立內(nèi)存空間的映射圖,從而將系
統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最
終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境
? 通常,Boot Loader 是嚴重地依賴于硬件而實現(xiàn)
的,特別是在嵌入式世界。因此,在嵌入式世界
里建立一個通用的Boot Loader 幾乎是不可能的。
盡管如此,我們?nèi)匀豢梢詫oot Loader 歸納出
一些通用的概念來,以指導用戶特定的Boot
Loader 設計與實現(xiàn)。
UBoot來源
? U-Boot 是 Das U-Boot 的簡稱,其含義是 Universal Boot
Loader GPL
,是遵循 條款的開放源碼項目。最早德國
DENX 軟件工程中心的 Wolfgang Denk 基于 8xxROM 和
FADSROM 的源碼創(chuàng)建了 PPCBoot 工程項目,此后不斷
添加處理器的支持。而后,Sysgo Gmbh 把 PPCBoot 移
植到 ARM 平臺上,創(chuàng)建了 ARMBoot 工程項目。最終,
以 PPCBoot 工程和 ARMBoot 工程為基礎,創(chuàng)建了 U-
Boot 工程。
? 而今,U-Boot 作為一個主流、通用的 BootLoader,成功
地被移植到包括 PowerPC、ARM、X86 、MIPS、NIOS、
XScale 等主流體系結(jié)構(gòu)上的百種開發(fā)板,成為功能最多、
BootLoader
靈活性最強,并且開發(fā)最積極的開源 。目前。
U-Boot 仍然由 DENX 的 Wolfgang Denk 維護
UBoot存儲空間分布
? UBoot OS
是用來引導 系統(tǒng)啟動,那么它是如何引
OS
導 啟動的呢?
啟動參數(shù)
內(nèi)核 根文件系統(tǒng)
bootloader
bootloader
bboooottllooaaddeerr
UBoot和內(nèi)核的交互
? UBoot如何調(diào)用Linux內(nèi)核?
– UBoot通過命令把Linux內(nèi)核鏡像文件從Flash中讀取到內(nèi)存的某一
, PC UBoot Linux
位置然后設置 寄存器執(zhí)向該位置 調(diào)用 內(nèi)核的
前提條件是?
– R0 =0
– R1= linux/arch/arm/mach-type
適當?shù)臋C器碼機器碼的位置存放在
文件中
– R2 =啟動參數(shù)標記列表在內(nèi)存中的位置
– CPU必須設置為SVC模式并關閉中斷
– MMU必須關閉
? UBoot如何給內(nèi)核傳遞參數(shù)?
– UBoot和內(nèi)核交互是單向的,兩個程序不能同時運行,那么要實
現(xiàn)參數(shù)傳遞只能通過把參數(shù)存
總結(jié)
以上是生活随笔為你收集整理的linux uboot 源码分析,UBoot源码分析1.pdf的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直面苦难作文800字议论文
- 下一篇: linux双wan网关负载均衡,Csic