在編譯uboot之前需要進行配置(帶引數執行mkconfig指令碼+其他)以
make x210_sd_config
為例:主要完成的內容
make x210_sd_config
時會相應的去執行makefile中的:
x210_sd_config : unconfig
@$(mkconfig) $(@:_config=) arm s5pc11x x210 samsung s5pc110
@echo "text_base = 0xc3e00000" > $(obj)board/samsung/x210/config.mk
@$(mkconfig)
就表示呼叫目錄下的mkconfig指令碼,後面是mkconfig指令碼的6個引數,不是五個
$(@:_config=)
arm
s5pc11x
x210
samsung
s5pc110
$和@結合: 是makefile自動變數的一種,會被替換成目標x210_sd
冒號表示加工,怎麼加工呢?就是把目標中的_config等於空(等號後面沒東西表示空)。即x210_sd_config裡的_config部分用空替換,得到:x210_sd,這就是第乙個引數,則:
$1: x210_sd
$2: arm
$3: s5pc11x
$4: x210
$5: samsumg
$6: s5pc110
所以,$# = 6
text_base = 0xc3e00000:指定uboot的鏈結位址,因為uboot中啟用了虛擬位址對映,因此這個c3e00000位址就等於0x23e00000(也可能是33e00000具體位址要取決於uboot中做的虛擬位址對映關係
下面開啟mkconfig指令碼分析:
總結uboot編譯前的配置(mkconfig指令碼+其他)主要完成的內容:
1.建立符號鏈結,用於將來在寫**過程中能自動索引具體平台的檔案
2.在include目錄下建立config.mk檔案並向裡面寫內容(其實就是把$2到$6
的內容寫入)讓主makefile去包含
3.在include目錄下建立config.h檔案並向裡面寫內容(其實就一行#include )
用於makefile作為生成autoconf.mk的依賴和讓start.s去包含
4.直接建立$(obj)board/samsung/x210/config.mk檔案並向裡面寫內容(text_base = 0xc3e00000
)讓根目錄下的config.mk去包含
u boot的配置過程
1.頂層makefile 這裡我們將以smdk2410為例來介紹,uboot是u boot 2009.03,首先我們應該開啟u boot的頂層makefile,這裡按照人的思維來說,我們應該首先去看看smdk2410的配置項 smdk2410 config 2830 smdk2410 config ...
uboot配置過程詳解
當我們在編譯uboot的時候,要分為兩個階段,乙個階段是配置,配置用的命令是make x210 sd config。配置完成後開始正式的編譯,命令為make,當然,編譯命令可以加什麼的引數,比如多執行緒編譯 make j4,比如靜默編譯 make s等。在這一篇文章中,我將單獨詳細分析uboot的配...
uboot學習 配置過程分析
一 uboot的功能分析 結合uboot 1.1.16版本說明uboot的配置過程。二 uboot的配置 編譯和鏈結過程分析 結合頂層makefile 編譯乙個可用的uboot.bin檔案一般經過以下步驟 首先是配置,make smdk2410 config,然後是make all完成編譯,最後生成...