最近在研究從友堅買回來的s5pv210開發板,發現是通過usb和nand來啟動的,而s3c6410的板子大多數是支援sd卡和nand啟動的,所以感覺比較模糊,但一直都沒有時間研究這個。但是最近想要在210板子上實現從sd卡啟動,所以不得不開始研究這些問題了。(其實就是晶元手冊沒有好好看的原因)
。之後再給出s5pv210的啟動模式。
一、先讀一下
s3c6410 user manual的第3
章system controller
,在123
頁列了一張表,如圖:
這張表列出了
s3c6410
om[4:0]
:選擇啟動裝置及時鐘源。
om[0]
為 0
選擇xxtlpll
,為1 選擇
xextclk
。 gpn[15:13]
:用於識別所支援的
nandflash
的型別,包括
page
的型別和位址週期。
xselnand
:選擇nand
啟動或者是
onenand
啟動。0 為
onenand
, 1
為 nand
。 下面來總結一下
s3c6410
所支援的啟動模式:
1. norflash
啟動通過
nor flash
啟動,此時
om[4:1]
為 0100
或 0101
,對應8bit
和 16bit
。 2. nandflash
啟動雖然在
s3c6410 user manual
中沒有提到,但是也是支援的,從
s3c6400 user manual
可以找到。
om[4:1]
四個硬體管腳決定了
nandflash
啟動,以及支援的
nandflash
的型別,包括大
page
和小page
,位址週期為
3 ,
4 ,
5 。當然,
xselnand
管腳也要為
1 。
3. onenand
啟動首先
xselnand
管腳為0 ,其次
om[4:1]
為 0110
,為onenand
啟動模式。
4. modem
啟動 當
om[4:1]
為 0111
的時候,為
modem
啟動。s3c6410
通過modem
boot
**到內部
ram中,然後進行引導。
5. irom
啟動 當
om[4:1]
為 1111
的時候,從
internal rom
中啟動,此時
gpn[15:13]
用於識別裝置的型別。這種模式以前沒見過,這裡具體介紹一下。
irom
模式可以支援
movinand
,sd/mmc
,inand
,onenand
和nand
等。關於
irom
的引導,具體過程如圖:
1. 處理器上電後,當
om[4:1]=1111
時,執行
irom
中的程式,這個程式被稱為
bootloader0(bl0)
,它會做一些初始化的工作。
2. 然後根據
gpn[15:13]
的管腳設定,選擇從相應的裝置
(sd/mmc/onenand/nand)
中的指定區域讀取
4kb的程式到
steppingstone
中執行,這段**被稱為
bootloader1(bl1)
。 3. bl1
可以初始化系統時鐘,
uart
, sdram
等裝置,然後拷貝
bootloader2(bl2)
到 sdram
中。4.
跳轉到sdram
中的bl2
,繼續執行,
bl2可以支援更強大的功能,可以將
os載入到
sdram
中,然後執行
os。
整個過程中,
irom
是最先被執行的,它會首先做一些初始化,具體
irom
的流程如下:
1. 禁用
watch-dog
2. 初始化
tcm
3. 初始化裝置拷貝函式,用於拷貝
bl1到 steppingstone
中 4.
初始化棧區域
5. 初始化
pll
6. 初始化指令
cache
7. 初始化堆區域
8. 拷貝
bl1到 steppingstone
中 9.
驗證bl1
10.
跳轉到steppingstone
中執行
二、 s5pv210
的啟動模式可以參照上面的介紹,這裡給出
datasheet
中對應的**,可以幫助理解。
首先是s5pv210
支援的啟動模式的設定。
其次是引導過程的執行順序圖。
最後是啟動的流程圖。
S5PV210 裸機中斷
這裡我以外部中斷為例畫出了中斷響應的過程。當外部中斷得到響應,會由硬體自動轉到異常向量表,執行對應的異常處理程式。在這裡指的就是irq的處理程式。在異常處理程式irq handle中將會執行現場的保護與恢復,以及最重要的中斷處理函式 注意,這裡就來到了中斷處理部分,而不是異常處理了,相當於是乙個兩級...
S5PV210控制蜂鳴器
s5pv210帶有乙個蜂鳴器,十分吵鬧,本章將學習如何控制蜂鳴器。相關引腳 蜂鳴器的操作十分簡單,原理跟操作led一樣,通過控制gpdo o這個引腳就可以達到控制蜂鳴器的目的。1.start.s start.s做了下面3件事 第一步 關看門狗 第二步 設定棧,以便呼叫c函式 第三步 呼叫main函式...
S5PV210控制蜂鳴器
s5pv210帶有乙個蜂鳴器,十分吵鬧,本章將學習如何控制蜂鳴器。相關引腳 蜂鳴器的操作十分簡單,原理跟操作led一樣,通過控制gpdo o這個引腳就可以達到控制蜂鳴器的目的。1.start.s start.s做了下面3件事 第一步 關看門狗 第二步 設定棧,以便呼叫c函式 第三步 呼叫main函式...