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