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

下載本文檔

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

文檔簡介

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

6.1下?載?源?文?件

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

6.2建立工作目錄

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

進入工作目錄:

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

查看當前目錄:

[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)核打補?。?/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建立二進制工具

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

6.6建立初始編譯器

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

6.7建立c庫

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

6.8建立全套編譯器

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

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

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

查看文件是否為二進制文件:

[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測試和驗證交叉編譯工具

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論