《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實(shí)踐》課件第6章_第1頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實(shí)踐》課件第6章_第2頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實(shí)踐》課件第6章_第3頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實(shí)踐》課件第6章_第4頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實(shí)踐》課件第6章_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章創(chuàng)建嵌入式Linux交叉開發(fā)工具鏈6.1下載源文件6.2建立工作目錄6.3輸出環(huán)境變量6.4建立內(nèi)核頭文件6.5建立二進(jìn)制工具6.6建立初始編譯器6.7建立c庫6.8建立全套編譯器6.9完成工具鏈的設(shè)置6.10測試和驗(yàn)證交叉編譯工具本章小結(jié)

6.1下?載?源?文?件

要想選用適當(dāng)?shù)陌姹?,以保證建立的工具鏈可用,就必須找到適合主機(jī)和目標(biāo)板的組合。這些可以自己測試,也可以從網(wǎng)上尋找已經(jīng)測試過的版本組合,即binutils、gcc、glibc的版本組合。

6.2建立工作目錄

本章所有的工作都在?/home/mxl/diliuzhang下面建立完成。

進(jìn)入工作目錄:

[root@localhostroot]#cd/home/mxl/diliuzhang

查看當(dāng)前目錄:

[root@localhostdiliuzhang

]#pwd

/home/mxl/diliuzhang

創(chuàng)建工具鏈文件夾:

[root@localhostdiliuzhang]#mkdirembedded-toolchains

6.3輸出環(huán)境變量

輸出如下的環(huán)境變量方便后面編譯。

6.4建立內(nèi)核頭文件

內(nèi)核頭文件的配置是建立工具鏈的第一步。它與后面將要執(zhí)行的其他步驟有著類似性,大多需要執(zhí)行下面幾步操作:

(1)解壓縮包;

(2)為跨平臺開發(fā)設(shè)定包的配置;

(3)編譯包;

(4)安裝包。

[root@localhostembedded-toolchains]#pwd

/home/mxl/diliuzhang/embedded-toolchains

[root@localhostembedded-toolchains]#cdkernel解壓縮:

[root@localhostkernel]#tarxvzf../setup-dir/linux-2.4.21.tar.gz

[root@localhostkernel]#gunzip../setup-dir/patch-2.4.21-rmk1.gz

[root@localhostkernel]#cdlinux-2.4.21

給Linux內(nèi)核打補(bǔ)?。?/p>

[root@localhostlinux-2.4.21]#patch-p1<../../setup-dir/patch-2.4.21-rmk1配置:

[root@localhostlinux-2.4.21]#makeARCH=armCROSS_COMPILE=arm-linux-menuconfig

圖6-1Linux2.4.21內(nèi)核配置界面

6.5建立二進(jìn)制工具

binutils是GNU工具之一,它包括連接器、匯編器和其他用于目標(biāo)文件和檔案的工具,它是二進(jìn)制代碼的處理維護(hù)工具。安裝binutils工具包含的程序有addr2line、ar、as、c++filt、gprof、ld、nm、objcopy、objdump、ranlib、readelf、size、strings、strip、libiberty、libbfd和libopcodes。圖6-2編譯成功后的結(jié)果圖6-3驗(yàn)證binutils成功后的結(jié)果

6.6建立初始編譯器

這一步的目的主要是建立arm-linux-gcc工具。注意,這個(gè)gcc沒有g(shù)libc庫的支持,所以只能用于編譯內(nèi)核、BootLoader等不需要c庫支持的程序,后面創(chuàng)建c庫也要用到這個(gè)編譯器,所以創(chuàng)建它主要是為創(chuàng)建c庫做準(zhǔn)備,如果只想編譯內(nèi)核和BootLoader,那么安裝完這個(gè)就可以到此結(jié)束。圖6-4編譯初始編譯器錯(cuò)誤示例圖6-5編譯初始編譯器成功后的結(jié)果圖6-6驗(yàn)證初始編譯器成功后的結(jié)果

6.7建立c庫

建立c庫是最為繁瑣的過程,目標(biāo)板必須靠它來執(zhí)行或者是開發(fā)大部分的應(yīng)用程序。glibc套件常被稱為c鏈接庫,但是glibc實(shí)際產(chǎn)生很多鏈接庫,其中之一是c鏈接庫libc。因?yàn)榍度胧较到y(tǒng)的限制,標(biāo)準(zhǔn)GNUc鏈接庫顯得太大,不適合應(yīng)用在目標(biāo)板上。圖6-7編譯glibc成功后的結(jié)果圖6-8安裝glibc成功后的結(jié)果

6.8建立全套編譯器

由于第一次安裝的gcc沒有交叉glibc的支持,現(xiàn)在已經(jīng)安裝了glibc,因此需要重新編譯來支持交叉glibc。并且上面的gcc也只支持C語言,現(xiàn)在可以讓它同時(shí)支持C語言和C++語言。圖6-9編譯全套編譯器成功后的結(jié)果

6.9完成工具鏈的設(shè)置

[root@localhostbuild-gcc]#cd$TARGET_PREFIX/bin

查看文件是否為二進(jìn)制文件:

[root@localhostbin]#fileasargccldnmranlibstrip

查看缺省的搜尋路徑:

[root@localhostbin]#arm-linux-gcc-print-search-dirs

轉(zhuǎn)移文件:

[root@localhostbin]#mvasargccldnmranlibstrip

$PREFIX/lib/gcc-lib/arm-linux/2.95.3

[root@localhostbin]#forfileinasargccldnmranlibstrip

>do

>ln-s$PREFIX/lib/gcc-lib/arm-linux/2.95.3/$file

>done

6.10測試和驗(yàn)證交叉編譯工具

下面編寫一個(gè)簡單的C程序,使用建立的工具鏈。圖6-10交叉編譯器編譯示例本章小結(jié)

本章介紹了如何一步一步制作交叉開發(fā)工具鏈。要使制作成功,必須找到適合的主機(jī)

溫馨提示

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

最新文檔

評論

0/150

提交評論