嵌入式啟動順序 uboot之前

2021-08-31 18:38:03 字數 1913 閱讀 8677

//本文章基於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...