標籤:system ttl ase rbo moni 啟動 運行 核心 系統
http://blog.csdn.net/ooonebook/article/details/52939100
[uboot] uboot流程系列:
[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)
建議先看《[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)》,根據例子瞭解一下上電之後的BL0\BL1\BL2階段,以及各個階段的運行位置,功能。
=================================================================================
一、bootloader & uboot1、bootloader的概念
Bootloader是在作業系統運行之前執行的一段小程式。而這段小程式的最終目的,正確地設定好軟硬體環境,使之能夠成功地引導作業系統。
2、bootloader的核心功能
bootloader的核心功能就是引導作業系統,部分工作如下
- 初始化部分硬體,包括時鐘、記憶體等等
- 載入核心到記憶體上
- 負載檔案系統、atags或者dtb到記憶體上
- 根據作業系統啟動要求正確配置好一些硬體
- 啟動作業系統
3、bootloader的monitor功能
上述2是bootloader的核心功能,也就是引導作業系統的功能。
但是部分bootloader還支援monitor功能,提供了更多的命令列介面,具體部分功能如下:
- 進行調試
- 讀寫記憶體
- 燒寫Flash
- 配置環境變數
- 命令引導作業系統
4、嵌入式幾種常見的bootloader
- uboot
這也是最常見的bootloader,開源,常用於ARM,MIPS等平台。
支援monitor功能,也是在項目project X中,使用的bootloader
所以後續兩節會針對這個bootloader進行說明
- superboot
不開源,友善之臂的tiny210代碼中預設使用這個bootloader
- LK(Little Kernel)
常用於高通平台,支援monitor功能。
二、uboot-spl & uboot1、uboot-spl
由uboot編譯產生,對應於BL1階段,也就是BL1的鏡像,uboot-spl.bin。
根據《[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)》,其代碼運行於IRAM中
- 主要工作有:
- 初始化部分時鐘(和SDRAM相關)
- 初始化DDR(外部SDRAM)
- 從儲存介質上(比如SD\eMMC\nand flash)將BL2鏡像載入到SDRAM上
- 驗證BL2鏡像的合法性
- 跳轉到BL2鏡像所在的地址上
後續會從編譯和代碼流程兩方面來介紹uboot-spl。
對應文章:
《[uboot] (第二章)uboot流程——uboot-spl編譯流程》
《[uboot] (第三章)uboot流程——uboot-spl代碼流程》
2、uboot
由uboot編譯產生,對應於BL2階段,也就是BL2的鏡像,uboot.bin。
根據《[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)》,其代碼運行於SDRAM中.
- 主要工作有:
- 初始化部分硬體,包括時鐘、記憶體等等
- 載入核心到記憶體上
- 負載檔案系統、atags或者dtb到記憶體上
- 根據作業系統啟動要求正確配置好一些硬體
- 啟動作業系統
- monitor工作,主要是處理命令列的命令,以下是部分操作:
後續會從編譯、代碼整體流程以及部分功能的具體流程來介紹uboot-spl。
對應文章:
《[uboot] (第四章)uboot流程——uboot編譯流程》
《[uboot] (第五章)uboot流程——uboot整體代碼流程》
[uboot] (第一章)uboot流程——概述