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的體系結構,還依賴於嵌入式系統板級裝置...