UBoot的編譯與燒寫


每當我們學習任何編譯語言之前,第一節課都是介紹我們要學習的是什么,以及編譯語言和工具,最后寫一個小程序編譯並運行就算入門,也就是所謂的“Hello, world!”。這里也不例外,帶想學習UBoot的小伙伴學習UBoot的編譯和燒寫(主要是記錄一下個人學習的過程),也就是UBoot的“Hello, world!”。
首先我們要弄明白是什么是U-Boot,注意我們常說的UBoot就是U-boot。

一、准備材料

可以根據自己的需要准備相應材料,以下是我自己使用的:
開發環境:VMware
操作系統:ubuntu
開發版:湃兔i2S-6UB
燒寫工具:SD卡

二、環境配置

學習ARM架構的移植和應用開發主要用到的工具是交叉編譯工具,所以需要在ubuntu安裝配置交叉編譯鏈工具。
交叉編譯器的安裝配置https://www.cnblogs.com/jzcn/p/14889438.html
注意:安裝交叉編譯器時需要注意版本號,有的開發版會提供自己更改的交叉編譯器,我使用的版本號是6.2的,如下圖所示:

三、下載UBoot文件

這里主要是下載開發版對應的UBoot文件,每個開發版都有對應的下載地址,一般都會在相應的學習資料里,如果沒有的小伙伴可以找相應的店家。
這里是湃兔的下載地址http://i2som-zh.oss-cn-beijing.aliyuncs.com/i2SOM-iMX-uboot-904f545.tar.gz
下載完成后將文件拷貝到linux系統下進行解壓,解壓后會的目錄如下圖所示:

注意:編譯時一定要在當前路徑下才能編譯

四、編譯UBoot

1.清理項目工程

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

2.設置UBoot的默認配置文件

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- i2som_imx6ull_14x14_emmc_defconfig

編譯完成后會生成“.config”,如下圖所示:

注意:湃兔的默認配置文件是“i2som_imx6ull_14x14_emmc_defconfig”,不同廠商的默認配置文件有所不同,可與根據相應的資料查看。如湃兔官網的說明,如下圖所示

3.編譯UBoot項目工程

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8

編譯完成后會生成u-boot.imx文件,如下圖所示:

注意:到這里UBoot的編譯就算完成了,如果細心的小伙伴就會發現,為啥我的命令會長一些。每個指令中都用“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”,這是設置編譯器為交叉編譯器。
以后在做UBoot移植時會經常用到這些編譯指令。為了使編譯指令簡介一些,可以在Makefile文件中添加ARCH和CROSS_COMPILE的配置,以后就可以編譯時就可以省掉命令中的“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”部分,如下圖所示:

四、燒寫UBoot

將編譯好的u-boot.imx拷貝到SD卡中,SD卡的格式是VFAT格式,不然開發版會識別不了。拷貝完成后將SD卡插入開發版,然后進入UBoot執行更新命令。
湃兔通過SD卡更新UBoot命令

update uboot mmc 0 1 u-boot.imx

更新過程如下圖所示:

更新完成后,可以通過啟動時的第一行日志的編譯時間觀察是燒寫成功,如下圖所示:

到這里“Hello, world!”也算是完成,有興趣的小伙伴可以進行UBoot的移植學習了。
注意:每個廠商的燒寫過程可能不一樣,使用不同開發版的小伙伴可以去相應的學習資料中查找自己的燒寫過程。

五、參考資料

湃兔資料:https://wiki.i2som.com/pages/viewpage.action?pageId=65576
原子哥的視屏教程:https://www.bilibili.com/video/BV12E411h71h?p=4&share_source=copy_web


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM