uboot配置 編譯 連接全過程.doc

uboot配置 編譯 連接全過程.doc

ID:56132424

大?。?68.50 KB

頁數(shù):32頁

時(shí)間:2020-06-20

uboot配置 編譯 連接全過程.doc_第1頁
uboot配置 編譯 連接全過程.doc_第2頁
uboot配置 編譯 連接全過程.doc_第3頁
uboot配置 編譯 連接全過程.doc_第4頁
uboot配置 編譯 連接全過程.doc_第5頁
資源描述:

《uboot配置 編譯 連接全過程.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、uboot配置編譯連接全過程分類:Uboot2011-11-1420:48415人閱讀評論(1)收藏舉報(bào)??根據(jù)README中PortingGuide的指示精神,我們要在新板子上移植UBoot,最快速的辦法就是查看當(dāng)前UBoot代碼中是否有對相似于待移植板子的其他板子的支持(這應(yīng)該又是一個(gè)可考慮成為習(xí)慣甚至本能的做法。也即拿到不熟悉的軟件包后,看看里面有沒有自己熟悉的、或者和自己目前要做的東西很相似的部分,從這個(gè)部分入手往往能很快的解決問題)。很幸運(yùn),我們在里面找到了三星公司所生產(chǎn)的SMDK2410參考板,這

2、是三星公司早先為推銷其生產(chǎn)的ARM9芯片-S3C2410所推出的一塊PCB參考設(shè)計(jì)板(推出時(shí)隨板子附加了很多的軟硬件資料)。知道這個(gè)后,我們很高興,因?yàn)槲覀冎牢覀儼遄由系腃PU——S3C2440正是S3C2410的升級版。所以,在真正動手移植之前,分析一下新版本UBoot中如何支持SMDK2410的,自然成為接下來要做的事情。UBoot本身是用GNU工具鏈開發(fā)的,那這就意味著其代碼包里面必然會有很多的Makefile文件,因?yàn)镚NUMake正是用來管理軟件項(xiàng)目編譯的GNU工具。而且,正如我們前面說的,UBo

3、ot能支持如此多的CPU體系結(jié)構(gòu)和操作系統(tǒng),那它就必定會有很多的配置選項(xiàng)用于配置。所以分析支持SMDK2410參考板的具體代碼之前,我們必須先弄懂UBoot的配置編譯過程。我們只有對此了然于胸了,才能比較順利的完成移植。所幸的是,不像Linux內(nèi)核代碼,UBoot的代碼量并不多,分析起來并不痛苦。作為UBoot學(xué)習(xí)移植系列的第一篇文章,我在這里就以SMDK2410板子的支持作為例子,分析新版本UBoot(2010.06)的配置編譯過程。作為前提,你應(yīng)該知道一些GNUMake以及一些BashShellScrip

4、t的知識。從UBOOT用戶的角度來講,其編譯配置過程倒是非常的簡單,只需要在命令行中切換到UBoot目錄下輸入兩個(gè)命令:[csicong@juliantecu-boot-2010.06]$makeARCH=armCROSS_COMPILE=arm-linux-smdk2410_config[csicong@juliantecu-boot-2010.06]$makeARCH=armCROSS_COMPILE=arm-linux-第一個(gè)命令完成UBootforsmdk2410參考板的配置,第二個(gè)命令則真正編譯出所

5、需要的UBoot二進(jìn)制映像文件,編譯出來之后我們需要將其下載到FLASH中。在這兩個(gè)命令中,參數(shù)ARCH表示我們要給具有何種體系結(jié)構(gòu)的CPU編譯UBoot,因?yàn)椴还躍MDK2410參考板上的CPU——S3C2410,還是我手頭板子上的CPU,皆為ARM9芯片,所以這里顯然應(yīng)該為arm;CROSS_COMPILE為交叉編譯工具鏈各工具的名稱前綴。我們需要用到arm-linux-gcc作為編譯器、arm-linux-ld為鏈接器。。。所以這里取值為arm-linux-。在第一個(gè)命令中,我們以smdk2410_co

6、nfig作為本次make的目標(biāo)。查找UBoot項(xiàng)目頂層Makefile得到關(guān)于此目標(biāo)的規(guī)則如下:smdk2410_config:unconfig@$(MKCONFIG)$(@:_config=)armarm920tsmdk2410samsungs3c24x0根據(jù)Makefile規(guī)則的定義,GNUMake在處理這條規(guī)則的時(shí)候,先判斷其依賴——也就是unconfig是否需要更新。而我們在同一Makefile中找到unconfig的規(guī)則為(482行):unconfig:???@rm-f$(obj)include/c

7、onfig.h$(obj)include/config.mk???$(obj)board/*/config.tmp$(obj)board/*/*/config.tmp???$(obj)include/autoconf.mk$(obj)include/autoconf.mk.dep由于目錄下沒有一個(gè)叫unconfig的文件存在,所以和unconfig相關(guān)的這條規(guī)則總是得到處理,也就是其中的rm命令總是得到執(zhí)行,該命令的目的是刪除一些配置編譯過程中產(chǎn)生的文件。在這些文件中,與本文討論密切相關(guān)的是前面兩個(gè),以及

8、后面兩個(gè)。前面兩個(gè)是用第一條命令來配置UBoot的過程中產(chǎn)生的,后面則是用第二條命令來編譯UBoot的過程中產(chǎn)生的。這條規(guī)則先把他們?nèi)縿h除。注意rm命令前面的@符號是取消該命令執(zhí)行時(shí)的回顯。執(zhí)行完對依賴——unconfig的處理,GNUMake回到對smdk2410_config的處理。它接下來執(zhí)行命令:@$(MKCONFIG)$(@:_config=)armarm920tsmdk2410sams

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。