新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > uboot啟動(dòng)過(guò)程簡(jiǎn)要分析筆記

uboot啟動(dòng)過(guò)程簡(jiǎn)要分析筆記

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
uboot啟動(dòng)類(lèi)似于pc機(jī)中bios的啟動(dòng)過(guò)程,簡(jiǎn)要說(shuō)明如下;

第一階段

本文引用地址:http://m.butianyuan.cn/article/201611/322117.htm

1:cup內(nèi)硬件初始化(屏蔽所有中斷,設(shè)置cup的時(shí)鐘,存儲(chǔ)控制器初始化,指示燈初始化狀態(tài)為滅,關(guān)閉CPU內(nèi)存指令/緩存);

2:拷貝第二階段代碼到RAM中以備第二階段代碼的執(zhí)行;

3:設(shè)置好堆棧指針存放第二階段代碼的入口地址;

進(jìn)入第二階段

當(dāng)用戶(hù)按下任意鍵時(shí)進(jìn)入下載模式(此過(guò)程只為開(kāi)發(fā)人員所用得到),如果一段時(shí)間內(nèi)用戶(hù)沒(méi)有任何操作,自動(dòng)進(jìn)入的啟動(dòng)加載模式如下(此過(guò)程是為了加載操作系統(tǒng)內(nèi)核鏡像和文件系統(tǒng)鏡像):

4:對(duì)arm開(kāi)發(fā)板上硬件資源初始化(至少包含一個(gè)串口初始化,因?yàn)榧虞d操作系當(dāng)中通常需要通過(guò)彩屏接受串口發(fā)來(lái)的Linux內(nèi)核版本信息,以及硬件的驅(qū)動(dòng)的準(zhǔn)備情況等;做到人機(jī)交互)

5:階段2的代碼檢測(cè)RAM存在的區(qū)域和容量大小并將其映射到(CPU的整個(gè)地址)地址空間中;

6:將操作系統(tǒng)鏡像以及文件系統(tǒng)鏡像從Flash讀取到RAM中;(經(jīng)過(guò)一段時(shí)間的學(xué)習(xí)突然發(fā)現(xiàn)具體操作中了解了前面幾個(gè)步驟并沒(méi)有什么卵用僅僅是教科書(shū)中的一些內(nèi)容 )

7:在啟動(dòng)操作系統(tǒng)內(nèi)核之前,需要設(shè)置操作系統(tǒng)內(nèi)核的啟動(dòng)參數(shù)(如Linux中的ATAG_MEM,ATAG——CNDLINE,等等);

8:哈哈,終于要進(jìn)行操作系統(tǒng)內(nèi)核啟動(dòng)了,引導(dǎo)程序并將執(zhí)行權(quán)交給操作系統(tǒng);



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉