//本文章基於hi35xx soc 與 u-boot-2010.06
具體有多少種啟動順序,這個是soc相關的,也就是說乙個soc製造出來,就已經確定了有幾種啟動順序.
具體可以看soc 的晶元手冊
這裡只是概述出了作者見過的各種啟動順序的集合
1/上電執行塊:索引**
存放位置:未知
執行位置:未知
上序:無
功能:檢查硬體的config,去判斷從**啟動,並執行對應的操作
下序:多種可能.可能1
:bootrom中的bootimage.可能2
:類似sram介面的norflash中的uboot第一階段.
其他1:我也不知道他是什麼,有人說這一塊是硬體電路.但是我不確定.
其他2:cpu需要從sram或者norflash中取指.這個介面必須要初始化或者這個介面根本不需要初始化
2/ 從bootrom啟動執行塊:bootimage
存放位置:
bootrom
(soc中的irom)
執行位置:
sram
(也叫iram,也叫l2 cache)
上序:索引**
功能:1.初始化串列埠
2.初始化spi介面
2.檢測上位機是否傳送東西
2.1.如果沒有,則從norflash
(spi介面)上讀取uboot第一階段到sram.
2.2.如果有,則從串列埠讀取資料到sram,並嘗試啟動從串列埠來的資料(程式)
//該路徑不會執行到uboot第一階段
其他:1.cpu與sram的介面是不需要初始化的.
2.cpu與irom的介面也是不需要初始化的.
2.所以cpu可以直接讀irom裡面的資料到sram.
3/ 從norflash(類sram介面)啟動執行塊:uboot第一階段
存放位置 :norflash 0x00000000處
執行位置 :norflash
上序 :索引**
功能 :
uboot第一階段的功能
其他 :
1.cpu與sram的介面是不需要初始化的.
2.cpu與norflash
(類sram)的介面也是不需要初始化的.
2.所以cpu可以直接讀norflash裡面的資料到sram.
存在一種特殊情況,晶元手冊上寫著支援norflash啟動,且norflash是spi介面.其實是從bootrom啟動的.
當bootrom_sel=
1 時,晶元從片內rom 啟動,將會啟動串列埠通訊機制,通過串列埠與pc 端相應的軟體建立通
信 如果與串列埠通訊超時,置bootrom_sel為0
,並判斷boot_sel1
(與晶元外部管腳nf_ale 復用)和boot_sel0(與晶元外部管腳nf_cle 復用)的上下拉電平.
當bootrom_sel=
0、boot_sel1=
1、boot_sel0=
0 時,nand flash 啟動。
當bootrom_sel=
0、boot_sel1=
0、boot_sel0=
0 時,spi flash 啟動。
當bootrom_sel=
0、boot_sel1=
0、boot_sel0=
1 時,ddr 啟動。
一般情況下,一開始在硬體上都是置bootrom_sel為1
嵌入式UBOOT學習
之前還學習了在虛擬機上安裝ubuntu16.04系統,使用命令安裝一些必需的軟體包,以及常用的終端命令 以後再作補充。今天學習的內容總結如下,主要是對編譯uboot前的環境變數進行配置,以及elftosb轉換工具的安裝,使用該工具編譯出mx28 ivt uboot.sb檔案。uboot的概念 ubo...
嵌入式學習筆記 uboot
1 linux啟動方式比較 一上電pc linux 嵌入式系統 bios硬碟讀入核心 boot loader 最終目的是啟動核心,有很多種,我用的是uboot 從flash讀出核心,放到sdram中 引導作業系統windows 引導核心 識別c,d盤 掛接根檔案系統 執行應用程式qq等 應用程式 2...
嵌入式 uboot預設引數的修改
由於沒有設定uboot引數的分割槽,只能在uboot原始碼中修改預設引數以使uboot正常工作。boot u boot include configs ap123.h define gen cmd n,a,f,ec,cc,el n tftp 0x80060000 f ec a el cc filea...