uboot啟動過程簡要分析筆記
第一階段
本文引用地址:http://cqxgywz.com/article/201611/322117.htm1:cup內硬件初始化(屏蔽所有中斷,設置cup的時鐘,存儲控制器初始化,指示燈初始化狀態為滅,關閉CPU內存指令/緩存);
2:拷貝第二階段代碼到RAM中以備第二階段代碼的執行;
3:設置好堆棧指針存放第二階段代碼的入口地址;
進入第二階段
當用戶按下任意鍵時進入下載模式(此過程只為開發人員所用得到),如果一段時間內用戶沒有任何操作,自動進入的啟動加載模式如下(此過程是為了加載操作系統內核鏡像和文件系統鏡像):
4:對arm開發板上硬件資源初始化(至少包含一個串口初始化,因為加載操作系當中通常需要通過彩屏接受串口發來的Linux內核版本信息,以及硬件的驅動的準備情況等;做到人機交互)
5:階段2的代碼檢測RAM存在的區域和容量大小并將其映射到(CPU的整個地址)地址空間中;
6:將操作系統鏡像以及文件系統鏡像從Flash讀取到RAM中;(經過一段時間的學習突然發現具體操作中了解了前面幾個步驟并沒有什么卵用僅僅是教科書中的一些內容 )
7:在啟動操作系統內核之前,需要設置操作系統內核的啟動參數(如Linux中的ATAG_MEM,ATAG——CNDLINE,等等);
8:哈哈,終于要進行操作系統內核啟動了,引導程序并將執行權交給操作系統;


評論