朱老師ARM裸機(jī)學(xué)習(xí)筆記(四):S5PV210啟動(dòng)過(guò)程詳解
掃描二維碼
隨時(shí)隨地手機(jī)看文章
常用器件特性
內(nèi)存:
SRAM 靜態(tài)內(nèi)存 特點(diǎn)就是容量小、價(jià)格高,優(yōu)點(diǎn)是不需要軟件初始化直接上電就能用
DRAM 動(dòng)態(tài)內(nèi)存 特點(diǎn)就是容量大、價(jià)格低,缺點(diǎn)就是上電后不能直接使用,需要軟件初始化后才可以使用。
單片機(jī)中:內(nèi)存需求量小,而且希望開(kāi)發(fā)盡量簡(jiǎn)單,適合全部用SRAM
嵌入式系統(tǒng):內(nèi)存需求量大,而且沒(méi)有NorFlash等可啟動(dòng)介質(zhì)
PC機(jī): 內(nèi)存需求量大,而且軟件復(fù)雜,不在乎DRAM的初始化開(kāi)銷,適合全部用DRAM
外存:
NorFlash:特點(diǎn)是容量小,價(jià)格高,優(yōu)點(diǎn)是可以和CPU直接總線式相連,CPU上電后可以直接讀取,所以一般用作啟動(dòng)介質(zhì)。
NandFlash(跟硬盤(pán)一樣):特點(diǎn)是容量大,價(jià)格低,缺點(diǎn)是不能總線式訪問(wèn),也就是說(shuō)不能上電CPU直接讀取,需要CPU先運(yùn)行一些初始化軟件,然后通過(guò)時(shí)序接口讀寫(xiě)。
所以一般PC機(jī)都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盤(pán)(類似于NandFlash)+ 大容量的DRAM
一般的單片機(jī): 很小容量的NorFlash + 很小容量的SRAM
嵌入式系統(tǒng):因?yàn)镹orFlash很貴,所以現(xiàn)在很多嵌入式系統(tǒng)傾向于不用NorFlash,
直接用:外接的大容量Nand + 外接大容量DRAM + SoC內(nèi)置SRAM
S5PV210使用的啟動(dòng)方式是:外接的大容量Nand + 外接大容量DRAM + SoC內(nèi)置SRAM
S5PV210啟動(dòng)過(guò)程詳解概述關(guān)于S5PV210的啟動(dòng)過(guò)程和方式,samsung專門(mén)提供了一份文檔,《S5PV210_iROM_Application Note》,以下啟動(dòng)過(guò)程分析大多翻譯自這本手冊(cè)。
在這張圖中可以看出S5PV210的啟動(dòng)可大致分為五個(gè)步驟
1、iROM階段(BL0)
2、BL1階段
3、BL2階段
4、拷貝OS到SDRAM
5、啟動(dòng)OS
samsung在S5PV210內(nèi)部的IROM中固化了一段代碼,用于初始化時(shí)鐘,識(shí)別用戶選擇的啟動(dòng)模式,并從相應(yīng)的地方拷貝boot-loader第一階段代碼到SRAM中運(yùn)行。此外samsung在S5PV210內(nèi)部也集成了96KB的內(nèi)部SRAM,由于SRAM不需要初始化,上電就能使用,因此可當(dāng)作DRAM初始化之前的代碼運(yùn)行空間。
iROM都做了些什么?1、關(guān)閉看門(mén)狗;
2、初始化icache;
3、初始化棧;
4、初始化堆;
5、初始化塊設(shè)備拷貝函數(shù);
6、初始化PLL,設(shè)置系統(tǒng)時(shí)鐘;
7、拷貝BL1到內(nèi)部的SRAM區(qū)域;
8、檢查BL1的校驗(yàn)和;
9、檢查是否是安全啟動(dòng)模式;
10、跳轉(zhuǎn)到BL1的起始代碼處。
剛開(kāi)始看S5PV210的啟動(dòng)過(guò)程時(shí)有一個(gè)地方一直想不明白:Boot-loader代碼都在Flash中存儲(chǔ)著,iROM是怎么不初始化Flash并將BL1拷貝到SRAM中運(yùn)行的(Nand Flash 的初始化代碼在BL1階段才執(zhí)行),后來(lái)通讀了《S5PV210_iROM_Application Note》后才明白。iROM中固化了一系列的塊設(shè)備拷貝函數(shù),這個(gè)塊設(shè)備拷貝函數(shù),就是用來(lái)初始化不同種Nand并拷貝代碼的,關(guān)于這些函數(shù)手冊(cè)2.7節(jié)有介紹
從圖可以看出210在啟動(dòng)的時(shí)候首先會(huì)判斷,系統(tǒng)是從休眠中喚醒還是剛上電,從而決定是重新引導(dǎo)系統(tǒng)還是直接跳轉(zhuǎn)到OS繼續(xù)執(zhí)行休眠前的代碼。
然后還有一個(gè)”Checksum%20OK?”的判斷,如果BL1的代碼檢驗(yàn)出錯(cuò)會(huì)自動(dòng)跳轉(zhuǎn)嘗試用“2nd”方式啟動(dòng)。
S5PV210還提供了一個(gè)”Secure%20Boot”%20安全啟動(dòng)的模式。
S5PV210提供多種啟動(dòng)方式,其中”1st啟動(dòng)”可以通過(guò)引腳選擇,當(dāng)”1st啟動(dòng)”失敗后會(huì)嘗試從”2nd啟動(dòng)”,也就是從SD卡通道2,通過(guò)SD卡啟動(dòng)方式啟動(dòng)。如果”2nd啟動(dòng)”仍然失敗,會(huì)嘗試從“Uart%20boot”啟動(dòng),如果仍然失敗將會(huì)嘗試從%20“USB%20boot”啟動(dòng)。
iROM%202nd%20boot-up%20sequence%20when%201st%20bootfail%20(當(dāng)1st啟動(dòng)失敗后的2nd啟動(dòng)流程)啟動(dòng)方式選擇引腳的配置bootloader、Kernel、filesystem等在nand中的分布S5PV210的啟動(dòng)方式很多種,第一次學(xué)習(xí)的理解就這么多,做個(gè)記錄,相信隨著學(xué)習(xí)的深入理解也會(huì)不一樣,到時(shí)候再回來(lái)更新。