02 uboot編譯與啟動

2021-08-15 09:48:07 字數 2212 閱讀 9014

計算機系統的組成:cpu,記憶體,輸入/輸出裝置,外存(硬碟)。

微控制器:乙個晶元上就是乙個完整的計算機系統。

片上系統(system on chip, soc):功能更強大的微控制器。

arm:一種cpu核心(如:51(intel));arm公司不會生產具體的硬體晶元,只設計cpu核心,通過與晶元廠家合作,生產基於arm核心的具體cpu晶元。

usb轉ttl線:

紅色線:輸出5v(只用作uart時不需要接)

黑色線:gnd

綠色線:txd(資料傳送)(transmit data)

白色線:rxd(資料接收)(receive data)

板上的除錯介面:

gnd rx tx

紅色線(5v) ———— 白色箭頭所指的對面介面(02口)(如果不用此做電源可以不接)

黑色線(gnd)———— gnd

綠色線(txd) ———— rx

白色線(rxd) ————tx

pc機的啟動過程:bios —> grub —> kernel —> fs

arm啟動過程:bios(soc內部的rom) –> uboot —> kernel —> fs

grub與uboot都是bootloader的一種,用於引導linux核心啟動。

1.安裝dtc工具(用於linux核心的裝置樹):

(1)解包(dtc-master.zip):

unzip dtc-master.zip

(2)進入原始碼目錄:

cd dtc-master

(3)編譯安裝:

make && make install

(ubuntu安裝這個是不行的,要通過apt-get install device-tree-compiler命令,安裝device-tree-compiler)

2.編譯uboot,並燒寫到sdcard中,用於板的啟動:

(1)解包orangepi_sdk.tar.bz2:

tar -jxvf orangepi_sdk.tar.bz2

(2)進入orangepi_sdk目錄:

cd orangepi_sdk

(3)建立需要的目錄:

mkdir output //用於存放編譯生成的程式映象

mkdir output/u-boot/ //建立uboot子目錄

mkdir output/dtb/ //建立裝置樹子目錄

(4)安裝ncurses:(ncurses是個終端的圖形庫, 用於配置編譯項使用)

sudo apt install ncurses*

(5)進入toolchain/sunxi-tools目錄

(6)編譯出用於生成核心的script.bin工具(bin2fex、fex2bin):

make

(7)複製這幾個工具到系統的bin目錄:

sudo cp bin2fex fex2bin sunxi-fexc /bin/

(8)回到orangepi_sdk目錄

(9)配置uboot(出現配置介面後,直接退出就可以了):

make config_uboot

(10)複製source/u-boot-2016.07/tools/mkimage到系統的bin目錄(如果不複製會發生錯誤):(其實要先make uboot編譯後才會有mkimage檔案,才能拷貝到/bin/目錄,然後在編譯make uboot)

sudo cp source/u-boot-2016.07/tools/mkimage /bin/

(10)編譯uboot:

make uboot

(編譯完成後,在output/u-boot/目錄裡有:boot.scr、script.bin、u-boot-sunxi-with-spl.bin三個檔案)

(boot.src是uboot環境變數存放檔案)

(11)把sd卡放入讀卡器,再接入pc,確認它的裝置檔案(一般是/dev/sdb),然後把uboot映象燒入sd卡的指定扇區位置:

make install_uboot sdcard=/dev/sdb //其實就是把boot.scr、script.bin、u-boot-sunxi-with-spl.bin三個檔案拷貝到sd卡中,不用這個命令,手動拷貝也可以

3.啟動uboot:

將燒寫好的sd卡插入板上,接好電源線和燒寫線,接入pc接,啟動minicom,就可以啟動uboot了(重啟uboot(reset))。

u boot 的配置與編譯

這裡我是u boot mini6410為例 跟著就是要解壓u boot mini6410 20111018.tar.gz,解壓後就會產生乙個u boot mini6410檔案 二 配置編譯支援nand啟動的u boot 注 這裡要看開發板是128m的還是256m的 我這裡以256m為例 1 進入u ...

基於ARM開發平台的uboot映象編譯與燒寫

在基於arm的開發平台下,系統啟動需要核心,bootloader,根檔案系統三大塊,今天博主記錄給arm開發平台編譯並燒寫uboot的步驟 ps 在本次過程開始前,務必安裝對應版本的arm linux gcc交叉編譯器 如若不是自己設計的開發板,一般廠家會提供配套的開發原始碼,可以針對soc進行配置...

Linux系統移植 U Boot編譯 燒寫與使用

linux 系統要啟動就必須需要乙個 bootloader 程式,也就說晶元上電以後先執行一段bootloader程式。這段 bootloader 程式會先初始化 ddr等外設,然後將 linux 核心從flash nand nor flash,sd,mmc 等 拷貝到 ddr 中,最後啟動 lin...