x210开发板的三种启动方式(三星推荐的,分散加载,uboot采用的)
生活随笔
收集整理的這篇文章主要介紹了
x210开发板的三种启动方式(三星推荐的,分散加载,uboot采用的)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、三星推薦的啟動方式
(1)將bl1放在在SRAM中運行,將bl2也在SRAM中運行,就像datasheet中描述那樣。
(2)bootloader必須小于96KB并大于16KB,假定bootloader為80KB。
(3)啟動過程
- 先開機上電后BL0運行,BL0會加載外部啟動設備中的bootloader的前16KB(BL1)到SRAM中去運行;
- BL1運行時會加載BL2(bootloader中80-16=64KB)到SRAM中(從SRAM的16KB處開始用)去運行;
- BL2運行時會初始化DDR并且將OS搬運到DDR去執行OS,啟動完成。
2、分散加載(兩個鏈接地址)
文件太大,將整體分割成兩個獨立的部分bl1和bl2。
(1)分別燒錄到sd卡的不同扇區(其中bl1肯定位于第一扇區開始的地方;bl2放在適當的位置,可以由燒錄腳本知道bl2放在哪里);
(2)其中bl1在SRAM中運行,把DDR初始化后,將bl2加載到DDR中。
(3)BL1和BL2其實是2個獨立的程序,鏈接時也是獨立分開鏈接的,因此不能使用ldr pc, =main這種方式來通過鏈接地址實現遠跳轉到BL2。
- 使用地址進行強制跳轉。因為知道BL2在內存地址0x23E00000處,所以直接去執行這個地址即可。
- 實現例子見http://blog.csdn.net/oqqhutu12345678/article/details/78942667中第8點。
3、uboot的實現方式
(1)uboot大小隨意,假定為200KB。
(2)啟動過程
- 先開機上電后BL0運行,BL0會加載外部啟動設備中的uboot的前16KB(BL1)到SRAM中去運行;
- BL1運行時會初始化DDR,然后將整個uboot搬運到DDR中,然后用一句長跳轉(從SRAM跳轉到DDR)指令從SRAM中直接跳轉到DDR中繼續執行uboot直到uboot完全啟動。
- uboot啟動后在uboot命令行中去啟動OS。
(3)和分散加載的異同
- 程序代碼仍然包括BL1和BL2兩部分,但是uboot組織形式上不分為2部分而是作為一個整體來組織。
- 它的實現方式是:iROM啟動然后從SD卡的扇區1開始讀取16KB的BL1然后去執行BL1,BL1負責初始化DDR,然后從SD卡中讀取整個程序(BL1+BL2)到DDR中,然后從DDR中執行(利用ldr pc, =main這種方式以遠跳轉從SRAM中運行的BL1跳轉到DDR中運行的BL2)。
總結
以上是生活随笔為你收集整理的x210开发板的三种启动方式(三星推荐的,分散加载,uboot采用的)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C primer plus 第六版pdf
- 下一篇: 《跟我一起写Makefile》读书笔记(