U-Boot的移植之(一)基礎(chǔ)篇:添加新的目標(biāo)板定義_第1頁(yè)
U-Boot的移植之(一)基礎(chǔ)篇:添加新的目標(biāo)板定義_第2頁(yè)
U-Boot的移植之(一)基礎(chǔ)篇:添加新的目標(biāo)板定義_第3頁(yè)
U-Boot的移植之(一)基礎(chǔ)篇:添加新的目標(biāo)板定義_第4頁(yè)
U-Boot的移植之(一)基礎(chǔ)篇:添加新的目標(biāo)板定義_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、u-boot的移植之(一)基礎(chǔ)篇:添加新的目標(biāo)板定義u-boot practically porting guideauthor: aaron wong aaronwongu-boot的移植之(一)基礎(chǔ)篇:添加新的目標(biāo)板定義木文使用最新的u-boot-1. 3. 0-rc2ou-boot本身支持很多開發(fā)板,在其源代碼中,每個(gè)板子都對(duì)應(yīng)一個(gè)board/目錄下的文件夾(筆者注:這并 不確切,因?yàn)閮拥奈募A是供應(yīng)淘名稱,下面可以冇多個(gè)目標(biāo)板目錄,這里只考慮最簡(jiǎn)單的惜況),以及 include/configs/錄下的目標(biāo)板配置頭文件。因此,要添加u-boot對(duì)我們的目標(biāo)板的支持,首先就是要 建立目標(biāo)板

2、文件夾和配置頭文件,并修改相關(guān)的makefile。下呦以實(shí)例說明為c-boot添加新的目標(biāo)板定義的步驟和過程。(1)在board/目錄下建立目標(biāo)板目錄。筆者的冃標(biāo)板是xsbase270,處理器是pxa270。山于u-boot中本身支持很多開發(fā)板和處理器,可以從中找 出與口己處理器型號(hào)相同或相近的開發(fā)板,在此基礎(chǔ)上再做后續(xù)修改。adsvix使用的也是pxa27x處理器,因此可以把它作為模板。cd board/cp -arv adsvix xsbase270niv xsbase270/adsvix. c xsbase270/xsbase270. c(2)在inc 1 ude/conf i gs/目

3、錄下建立目標(biāo)板配置頭文件。cd includc/configs/cp adsvix. h xsbasc270. h(3) 修改 makefileo 一是要在總的makefile化-bool源碼頂層h錄下)屮加入h標(biāo)板的編譯配置選項(xiàng),這也可以參考adsvix的 進(jìn)行修改,只要把目標(biāo)板名稱改換為xsbase270即可:adsvix.config: unconfig$(mkconfig) $(: config=) arm pxa adsvixxsbase270_config: unconfig$ (mkconfig) $(©:_config=) arm pxa xsbase270這里xsb

4、ase270 -u board/ 錄卜目標(biāo)板文件夾名稱xsbase270 一致。另外,還需要注意,該makefile中定義了 cross-compile的值,以在交叉編譯時(shí)指定交叉編譯器。缺省情 況下對(duì)arm的cross一compile定義如下:ifeq ($(arch), arm)cross compile = arm-linux-endif即定義交叉編譯器名的前綴為arm-linux-,如果您使用的toolchain的名字不同,則需要作相應(yīng)修改。例 如筆者使用的是arm-itnmxt-linux-gnueabi-gcc,因此要將上血改為:cross compile - arm-iwmmxt

5、-1inux-gnueabi-。二是要修改 board/xsbase270 下的 makefi le#cobjs := adsvixo pcmciaocobjs :=xsbase270. o pcmciao這是因?yàn)榍斑蠈⒃搩袖浵碌脑次募dsvix. c改為了 xsbase270c°至此,將新的h標(biāo)板xsbase270的定義添加到u-boot中的工作就算完成了。下而的命令可以編譯得到 xsbase270 的 u-boot :# assuming you are at the top directory of u-boot# define a build directory to ke

6、ep object files during make process and also fin ally u-boot imageexport blild_dlr=/u-boot_xsbase270/build/make xsbase270_config# if you edit your source file and want to make again, just type "make distcleanvand then cal 1 the above commands again.make當(dāng)然,要使編譯出來的這個(gè)u-boot能克正適用于我們的h標(biāo)板,還有很多工作要做,包括

7、處理器工作狀態(tài). 存儲(chǔ)器映射設(shè)置、網(wǎng)卡驅(qū)動(dòng)的移植等等。所以,本篇的標(biāo)題只是在u-boot中添加對(duì)新目標(biāo)板的“定義”,而 非對(duì)新目標(biāo)板的“支持”,這些工作需要對(duì)u-boot的源代碼有整體的認(rèn)識(shí),并結(jié)合自己的目標(biāo)板的特性來完 成。后續(xù)的篇章將繼續(xù)介紹后呦的內(nèi)容。作為本篇的補(bǔ)充內(nèi)容,您也許仍有必要了解以下要點(diǎn):(1)在makeai丄文件中可以將新的目標(biāo)板xsbase270添加到下而的list中:# xscale systems#曲list_pxa=" adsvix cerf250 cradle csb226 delta innokom lubbock pleb2 pxa255_idp wc

8、pcp250 xaeniax xm250 xsengine xylonite 這并不是必須的,因?yàn)閙akeaix文件只用于為其中的所有忖標(biāo)板都編譯一個(gè)u-boot時(shí)使用。 如何在u-boot已有的h標(biāo)板屮找到與自c的h標(biāo)板相近的h標(biāo)板? 首要的是要找到少門己的目標(biāo)板所用的處理器相同或統(tǒng)一系列的的目標(biāo)板。在頂層目錄卜的makefile冇 各個(gè)板子的config列表,例如xscale系列的板子列表如下:# xscale systems#adsvix config : unconfig$(mkconfig) $(:_config=)armpxaadsvi xxsbaso270一config: unc

9、onfig$(mkconeig) $(:_config二)armpxaxsbcise270cerf250 config : unconfig$ (mkconftg) $(: config=)armpxacerf250cradle_config : unconfig$(mkconfig) $(:.config=)armpxacradlecsb226_config : unconfig$(mkconfig) $(:_config=)armpxacsb226delta_config :$(mkconfig) $(:_config=)armpxadel la以下省略。(3)修改h標(biāo)板的編譯優(yōu)化選項(xiàng)。在

10、cpu/pxa/config.mk文件中定義了目標(biāo)板的編譯優(yōu)化選項(xiàng)platform.relflags和platform cppflags,您可以根據(jù)口己的需耍進(jìn)行修改。筆者的交叉編譯器arm-iwninixt-linux-gnueabi-gcc默認(rèn)冇-march二iwmmxt,逍循新的arm eab1標(biāo)準(zhǔn),但仍 要保留platform_cppflags中的“-mapcs-32, -mabi二apcs-gnu”選項(xiàng),使用舊的ab1標(biāo)準(zhǔn)來編譯,因?yàn)閡-boot 的匯編代碼并非按照新的abi規(guī)范編寫??墒褂?march二armv5te來避免"warning: target cpu does n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論