1. 程式人生 > >嵌入式開發學習(2)<S5PV210啟動過程詳解>

嵌入式開發學習(2)<S5PV210啟動過程詳解>

nan ios eight img 啟動方式 margin 需要 外部 啟動

基本概念:

內存

  SRAM 靜態內存 特點:容量小、價格高,優點:不需要軟件初始化,上電就能用。

  DRAM 動態內存 特點:容量大、價格低,缺點:上電不能用,需要軟件初始化。

  單片機中:內存需求量小,而且希望開發盡量簡單,適合全部用SRAM。

  嵌入式系統:內存需求量大,而且沒有NorFlash等可啟動介質。(介於單片機和PC機中間)。

  PC機:內存需求量大,而且軟件復雜,不在乎DRAM的初始化開銷,適合全部用DRAM

外存

  NorFlash 容量小,價格高,可以和cpu總線式相連,上電cpu直接能讀取。所以一般用來作啟動。

  NandFlash(跟硬盤一樣,容量大,價格低,缺點:不能總線式訪問,不能上電

cpu直接讀取,需要cpu先運行一些軟件,然後通過時序接口讀寫)。

所以

一般的PC機都是:很小容量的BIOS(NorFlash)+很大容量的硬盤(類似於NorFlash)。

一般的單片機:很小容量的NorFlash + 很少容量的SRAM。

嵌入式系統:因為NorFlash很貴,所以現在的嵌入式系統不傾向於用NorFlash,直接用:外接的大容量的NandFlash+外接大容量的DRAM+Soc內置SRAM。

S5PV210啟動過程:

技術分享

S5PV210的啟動方式:外接的大容量的NandFlash+外接大容量的DRAM+Soc內置SRAM。

實際上啟動還要更復雜一些,210內置了一塊96kb大小的SRAM(叫iRAM),還有一塊內置的64kb的NorFlash

iROM)。

第一步:CPU上電後先從內部的IROM中讀取預先設置的代碼(BL0),並執行。這一段IROM代碼做了一些基本的初始化(cpu始終,看門狗。。。)(這一段IROM代碼是三星出廠前設置的,三星也不知道我們板子上將來要接什麽樣的DRAM,因此這一段代碼不負責初始化外接的DRAM的,因此這一段代碼只能初始化SoC內部的東西);然後這一段代碼會判斷我們選擇的啟動模式(我們可以設置硬件開關可以改變板子的啟動模式)然後從外部存儲器讀取相應的第一部分(BL1,16kb)啟動代碼(uboot)到內置的SRAM(iRAM)。

第二步:從iRAM去運行上一步讀取來的代碼(BL1 16kb),BL1負責初始化NandFlash,然後將BL2讀取到iRAM(剩余的80kb)

第三步:從iRAM運行BL2,BL2初始化DRAM(SDRAM),然後將OS讀取到DRAM(SDRAM)中,然後啟動OS,啟動過程結束。

嵌入式開發學習(2)<S5PV210啟動過程詳解>