嵌入式開發手記(一)嵌入式系統啟動過程

2021-07-25 13:13:11 字數 2018 閱讀 8571

s5pv210啟動詳解

soc詳解。

2.bl1,bl2:為

bootloder1,bootloder

2.1(1)cpu

上電後先從內部

irom(

類似sram)

中讀取預先設定的**(

bl0),執行。這一段

irom

**首先做了一些基本的初始化(

cpu時鐘、關看門狗···)(這一段

irom

**是三星出廠前設定的,三星也不知道我們板子上將來接的是什麼樣的

dram

,因此這一段

irom

是不能負責初始化外接的

dram

的,因此這一段**只能初始化

soc內部的東西);

注:然後這一段**會判斷我們選擇的啟動模式(我們通過硬體跳線可以更改板子的啟動模式),

(2)然後從相應的外部儲存器去讀取第一部分啟動**(

bl1,大小為

16kb

)到內部

sram。

2.2從

iram

去執行剛上一步讀取來的

bl1(

16kb

),然後執行。

bl1負責初始化

nandflash

,然後將

bl2讀取到

iram

(剩餘的

80kb

)然後執行

2.3從

iram

執行bl2

,bl2

初始化dram

,然後將

os讀取到

dram

中,然後啟動

os,啟動過程結束。

注:因為啟動**的大小是不定的,有些公司可能96kb就夠了,有些公司可能

1mb都不夠。所以剛才說的

2步的啟動方式不合適。

三星的解決方案是:把啟動**分為2半(

bl1和

bl2),這兩部分協同工作來完成啟動。

記憶體知識點

記憶體:

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

2.  dram 動態記憶體 特點就是容量大、**低,缺點就是上電後不能直接使用,需要軟體初始化後才可以使用。

(1)微控制器中:記憶體需求量小,而且希望開發盡量簡單,適合全部用

sram

(2)嵌入式系統:記憶體需求量大,而且沒有

norflash

等可啟動介質

(3)pc機:

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

dram

外存:

1.norflash:特點是容量小,**高,優點是可以和

cpu直接匯流排式相連,

cpu上電後可以直接讀取,所以一般用作啟動介質。

2.nandflash(跟硬碟一樣):特點是容量大,**低,缺點是不能匯流排式訪問,也就是說不能上電

cpu直接讀取,需要

cpu先執行一些初始化軟體,然後通過時序介面讀寫。

所以(1)一般

pc機都是:很小容量的

bios

(norflash)+

很大容量的硬碟(類似於

nandflash)+

大容量的

dram

(2)一般的微控制器:

很小容量的norflash +很小容量的

sram

(3)嵌入式系統:因為

norflash

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

norflash,

直接用:外接的大容量nand + 外接大容量

dram + soc

內建sram

嵌入式系統啟動

嵌入式系統在啟動時,引導 作業系統的執行和應用程式的載入主要有兩種架構,一種是直接從nor flash啟動的架構,另一種是直接從nand flash啟動的架構。1.從nor flash啟動 nor flash具有晶元內執行 xip,execute in place 的特點,在嵌入式系統中常做為存放啟...

構建嵌入式系統 系統啟動

本篇翻譯自奧萊里出版社的 building embedded linux systems bykarim yaghmour 其著作權歸原作者所有 三個部分參與了系統啟動 啟動 核心,初始化程序。啟動 是在系統啟動時最先執行的軟體,並且高度依賴於目標板的硬體。正如我們第9章所說,現在有很多啟動 可以用...

嵌入式系統啟動過程

1.rom code.上電首先執行rom中的 rom code的目的是把第二部分boot code spl second stage program loader load 到 sram中。rom code執行時,屬於最小系統,ddr還沒有初始化,可以使用的ram 只有晶元中的sram。而sram的...