U-Boot編譯

U-Boot從2014年開始,引入了kernel編譯機制,提高了U-Boot移植的靈活性。

2.1. 編譯流程

2.1.1. make xxx_defconfig

從U-Boot的原始碼目錄下,可以在configs資料夾下看到上千個xxx_defconfig檔案。這些檔案是市面上比較常見的開發板的最小預設配置。U-Boot移植適配的第一步,就是基於已有的xxx_defconfig檔案構造自己的xxx_defconfig。

執行make xxx_defconfig的最終目的是生成一個初始的。config檔案,用於在後面執行menuconfig時初始化各個配置選項。其流程如下:

U-Boot編譯

2.1.2. 配置U-Boot

這一步和kernel一樣,執行:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig

即可進入到U-Boot的配置介面,按需選擇對應的功能,配置結束後生成。config檔案。

U-Boot編譯

2.1.3. 編譯U-Boot

執行

make

ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-,可以看出最終生成了如下的檔案:

U-Boot編譯

2。2。 編譯選項

執行make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- help,可檢視U-Boot支援的編譯選項,如下所示:

U-Boot編譯

2。2。1。 Cleaning targets

U-Boot編譯

2.2.2. Configuration targets

U-Boot編譯

2。2。3。 Other generic targets

U-Boot編譯

U-Boot的編譯流程相對而言已經程式化,只要按照網上的方式進行操作,就可以完成編譯過程,生成自己的目標下載檔案。而編譯的實現原理,需要研究U-Boot頂層的Makefile檔案、架構相關的lds檔案、核心配置的Kconfig檔案。