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時初始化各個配置選項。其流程如下:
2.1.2. 配置U-Boot
這一步和kernel一樣,執行:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
即可進入到U-Boot的配置介面,按需選擇對應的功能,配置結束後生成。config檔案。
2.1.3. 編譯U-Boot
執行
make
ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-,可以看出最終生成了如下的檔案:
2。2。 編譯選項
執行make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- help,可檢視U-Boot支援的編譯選項,如下所示:
2。2。1。 Cleaning targets
2.2.2. Configuration targets
2。2。3。 Other generic targets
U-Boot的編譯流程相對而言已經程式化,只要按照網上的方式進行操作,就可以完成編譯過程,生成自己的目標下載檔案。而編譯的實現原理,需要研究U-Boot頂層的Makefile檔案、架構相關的lds檔案、核心配置的Kconfig檔案。