ubbot編譯準備
(1)刪除無關(guān)代碼
arch下只保留arm
arch/arm/cpu下只保留armv7
arch/arm/cpu/arv7下只保留s5pc1xx和s5_common
board目錄下只保留samsung文件夾
board/samsung/下只保留goni、common文件夾
(2)在uboot的主目錄下有makefile、mkconfig和config.mk三個文件。作用如下:
Makefile:負責管理整個工程的文件編譯,會通過sinclude/include(同級目錄使用include)將其他文件包含進來并原地展開。
mkconfig:
主makefile會通過命令:@$(MKCONFIG) $(@:_config=) arm(架構(gòu)) s5pc11x(cpu) x210(soc) samsung(soc供應(yīng)商) s5pc110(板卡名稱)調(diào)用mkconfig
功能如下:
一、創(chuàng)建符號鏈接
符號鏈接asm:指向源碼/include/asm-arm文件夾
創(chuàng)建asm-arm目錄下的arch鏈接:指向arch-s5pc110
創(chuàng)建符號reg.h指向s5pc110.h
第二、創(chuàng)建include/config.mk,將arm(架構(gòu)) s5pc11x(cpu) x210(soc) samsung(soc供應(yīng)商) s5pc110(板卡名稱)輸出到其中,以便主makefile中引用這些變量和值。
第三、創(chuàng)建一個config.h文件,其中會包含我們指定的x210_sd.h。x210_sd.h會被用來生成autoconf.mk文件,指導編譯過程.
config.mk:Makefile中通過include $(TOPDIR)/config.mk將其包含進來,在該文件中使用sinclude $(OBJTREE)/include/autoconf.mk(開發(fā)板配置文件)引入開發(fā)板配置文件,
該文件是調(diào)用mkconfig編譯生成的,原材料為$(TOPDIR)/include/configs/x210_sd.h。此外,鏈接腳本和鏈接地址都是在config.mk文件中根據(jù)mkconfig生成的符號鏈接進行設(shè)置的。
(3)編譯uboot,確保編譯通過
制定鏈接地址的方式由兩種:
1、在makefile中使用-T text 地址 的方式制定
2、在鏈接腳本開頭使用 .=地址制定
綜上,uboot的編譯其實應(yīng)該分為兩個階段:
一、配置,給mkconfig傳入開發(fā)板的配置信息,例如arch、soc等,以產(chǎn)生uboot編譯需要的變量
命令:make x210_sd_config
二、編譯生成uboot.bin
make