bootloader学习笔记
1.Bootloader是在操作系統運行之前執行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射表,從而建立適當的系統軟硬件環境,為最終調用操作系統內核做好準備。
2.Bootloader的多種啟動方式:
?網絡啟動方式
?磁盤啟動方式
?Flash啟動方式
3.Flash啟動方式介紹:
?NOR Flash可以支持隨機訪問,所以代碼是可以直接在Flash上執行的。Bootloader一般是存儲在Flash芯片上的。另外,Linux內核映像和RAMDISK也可以存儲在Flash上。通常需要把Flash分區使用,每個區的大小應該是Flash擦除塊大小的整數倍。
?Bootloader一般放在Flash的底端或者頂端;
?分配參數區作為Bootloader的參數保存區域;
?內核映像區,Bootloader引導Linux內核,就是要從這個地方把內核映像解壓到RAM中去,然后跳轉到內核映像入口執行;
?文件系統區,如果使用JFFS2文件系統,將直接掛接為根文件系統;
?數據區。
4.Bootloader的種類:
?LILO
?GRUB
?Loadlin
?ROLO
?Etherboot
?LinuxBIOS
?BLOB
?U-boot
?RedBoot
5.關于U-boot:
ARM處理器的芯片商很多,所以每種芯片的開發板都有自己的Bootloader。結果ARM bootloader也變得多種多樣。最早有為ARM720處理器的開發板的固件,又有了armboot,StrongARM平臺的blob,還有S3C2410處理器開發板上的vivi等。現在armboot已經并入了U-Boot,所以U-Boot也支持ARM/XSCALE平臺。U-Boot已經成為ARM平臺事實上的標準Bootloader。
6.U-Boot源碼結構:
?文件分為3類:
?第1類目錄與處理器體系結構或者開發板硬件直接相關;
?第2類目錄是一些通用的函數或者驅動程序;
?第3類目錄是U-Boot的應用程序、工具或者文檔。
?
7.U-Boot的源碼頂層目錄說明:
目??? 錄?????????? 特??? 性???????? 解 釋 說 明
board????????????? 平臺依賴???????? 存放電路板相關的目錄文件,例如:RPXlite(mpc8xx)、smdk2410(arm920t)、sc520_cdp(x86) 等目錄
cpu??????????????? 平臺依賴???????? 存放CPU相關的目錄文件,例如:mpc8xx、ppc4xx、arm720t、arm920t、 xscale、i386等目錄
lib_ppc?????????? 平臺依賴???????? 存放對PowerPC體系結構通用的文件,主要用于實現PowerPC平臺通用的函數
lib_arm????????? ?平臺依賴???????? 存放對ARM體系結構通用的文件,主要用于實現ARM平臺通用的函數
lib_i386??????????平臺依賴???????? 存放對X86體系結構通用的文件,主要用于實現X86平臺通用的函數
include??????????? 通用???????????? 頭文件和開發板配置文件,所有開發板的配置文件都在configs目錄下
common????????? 通用???????????? 通用的多功能函數實現
lib_generic?????? 通用???????????? 通用庫函數的實現
Net????????????? ?? 通用???????????? 存放網絡的程序
Fs??????????????? ? 通用???????????? 存放文件系統的程序
Post?????????????? 通用???????????? 存放上電自檢程序
drivers??????????? 通用???????????? 通用的設備驅動程序,主要有以太網接口的驅動
Disk??????????? ??? 通用???????????? 硬盤接口程序
Rtc?????????????? ? 通用???????????? RTC的驅動程序
Dtt??????????????? ?通用???????????? 數字溫度測量器或者傳感器的驅動
examples???????應用例程???????? 一些獨立運行的應用程序的例子,例如helloworld
tools????????????? 工具???????????? 存放制作S-Record 或者 U-Boot格式的映像等工具,例如mkimage
Doc??????????????? 文檔???????????? 開發使用文檔
轉載于:https://www.cnblogs.com/ziqiuqiandao/archive/2012/03/25/2417094.html
總結
以上是生活随笔為你收集整理的bootloader学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象基本原则
- 下一篇: vc使用opencv库 读取图像