1. 程式人生 > >ARM第一部分-S5PV210啟動過程詳解1

ARM第一部分-S5PV210啟動過程詳解1

記憶體:

SRAM          靜態記憶體特點就是容量小、價格高,優點是不需要軟體初始化直接上電就能用

DRAM          動態記憶體特點是容量大、價格低,缺點是上電後不能直接使用,需要軟體初始化後才可以使用

PC記憶體需求大,而且軟體複雜,不在乎DRAM的初始化開銷,適合全部用DRAM.

外存:

NorFlash:特點是容量小,價格高,優點是可以和CPU直接匯流排式相連,CPU上電後可以直接讀取,所以一般用作啟動介質。

NandFlash(跟硬碟一樣):特點是容量大,價格低,缺點是不能匯流排式訪問,也就是說上電CPU直接讀取,需要CPU直接讀取,需要一些初始化軟體,通過時序介面讀寫。

所以一般PC機都是:很小容量的BIOSNorFlash+很大容量的硬碟(類似與NandFlash+大容量的DRAM

一般的微控制器:很小容量的NorFlash+很小容量的SROM

嵌入式系統:因為NorFlash很貴,隨意現在很多嵌入式系統傾向於不用NorFlash,

直接用:外接的大容量Nand+外接大容量DRAN+Soc內建SRAM

210使用的啟動方式是:外接的大容量Nand+外接大容量DRAN+Soc內建SRAM

實際上210的啟動還要更好玩一些,210內建了一塊96KB大小的SRAM(叫iRAM),同時還有一塊核心的64KB大小的NorFlash(叫iROM.

實際上210的啟動還要更好玩一些,210內建了一塊96KB大小的SRAM(叫iRAM),同時還有一塊內建的64KB大小的NorFlash(叫iROM)。210的啟動過程大致是:

第一步:CPU上電後先從內部IROM中讀取預先設定的程式碼(BL0),執行。這一段IROM程式碼首先做了一些基本的初始化(CPU時鐘、關看門狗···)(這一段IROM程式碼是三星出廠前設定的,三星也不知道我們板子上將來接的是什麼樣的DRAM,因此這一段IROM是不能負責初始化外接的DRAM的,因此這一段程式碼只能初始化SoC內部的東西);然後這一段程式碼會判斷我們選擇的啟動模式(我們通過硬體跳線可以更改板子的啟動模式),然後從相應的外部儲存器去讀取第一部分啟動程式碼(BL1,大小為16KB)到內部SRAM。

第二步:從IRAM去執行剛上一步讀取來的BL1(16KB),然後執行。BL1負責初始化NandFlash,然後將BL2讀取到IRAM(剩餘的80KB)然後執行

第三步:從IRAM執行BL2,BL2初始化DRAM,然後將OS讀取到DRAM中,然後啟動OS,啟動過程結束。