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

2021-10-04 06:58:25 字數 2244 閱讀 1503

linux

系統要啟動就必須需要乙個

bootloader

程式,也就說晶元上電以後先執行一段bootloader程式。這段

bootloader

程式會先初始化

ddr等外設,然後將

linux

核心從flash(nand

, nor flash,sd,

mmc 等)

拷貝到

ddr

中,最後啟動

linux

核心。

(1)解壓uboot原始碼

tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2
(2)編譯 

uboot的命令

//清除工程

make arch=arm cross_compile=arm-linux-gnueabihf- distclean

//配置工程

make arch=arm cross_compile=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

//編譯uboot,使用12核編譯

make v=1 arch=arm cross_compile=arm-linux-gnueabihf- -j12

編譯完成:

編譯前後檔案對比:

編譯前:

編譯後:

是編譯出來的

uboot 二進位制檔案。uboot

是個裸機程式,因此需要在其前面加上頭部

(ivt

、dcd

等資料)

才能在i.mx6u 上執行。

u-boot.imx是新增頭部以後的

u-boot.bin

,u-boot.imx

就是要燒寫到開發板中的 uboot

映象檔案。

(1)新建mx6ull_tek_emmc.sh

的 shell

指令碼檔案,寫入以下內容。

shell

指令碼要求第一行必須是「

#!/bin/bash

」或者「

#!/bin/sh

」。

#!/bin/bash

make arch=arm cross_compile=arm-linux-gnueabihf- distclean

make arch=arm cross_compile=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

make v=1 arch=arm cross_compile=arm-linux-gnueabihf- -j12

(2)給指令碼檔案可執行許可權

chmod 777 mx6ull_tek_emmc.sh
(3)執行指令碼檔案

./mx6ull_tek_emmc.sh
imx6ull的 u-boot 與裸機sd卡燒寫與啟動

啟動:使用securecrt工具

,設定好串列埠引數並開啟,復位開發板。在

securecrt

上出現「

hit any key to stop autoboot: 」倒計時的時候按下鍵盤上的回車鍵,預設是

3 秒倒計時,在

3 秒倒計時結束以後如果沒有按下回車鍵的話 uboot

就會使用預設引數來啟動

linux

核心了。如果在

3 秒倒計時結束之前按下回車鍵,那麼就會進入 uboot

的命令列模式。

u-boot常見命令表

Linux系統移植 U boot工程目錄分析

u boot工程目錄 檔案 夾 名稱 描述i.mx6ull相關檔案 備註 資料夾 api與硬體無關的 api 函式 uboot 自帶arch 與架構體系有關的 arm imx common borad 不同板子 開發板 的定製 freescale mx6u相關 cmd命令相關 common 通用 c...

uboot移植 uboot啟動回顧

一 uboot啟動的第一階段start.s 路徑uboot cpu s5pc11x start.s 1 include 標頭檔案包含,config.件原始碼中不存 在,配置後自動生成 路徑 include linux config.h 2 include 標頭檔案包含,version.件原始碼中不存...

u boot移植詳解 初識u boot

u boot是一種普遍用於嵌入式系統中的bootloader。bootloader是基於特定硬體平台來實現的,因此幾乎不可能為所有的嵌入式系統建立乙個通用的bootloader,不同的處理器架構都有不同的bootloader,bootloader不但依賴於cpu的體系結構,還依賴於嵌入式系統板級裝置...