亚洲国产高清在线观看视频_日韩欧美国产aⅴ另类_奇米影视7777久久精品_欧美 国产 亚洲 卡通 综合

您的位置:首頁 > 熱點(diǎn) >

嵌入式Linux開發(fā)環(huán)境的搭建之:嵌入式開發(fā)環(huán)境的搭建

5.1嵌入式開發(fā)環(huán)境的搭建

5.1.1嵌入式交叉編譯環(huán)境的搭建

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

交叉編譯的概念在第4章中已經(jīng)詳細(xì)講述過,搭建交叉編譯環(huán)境是嵌入式開發(fā)的第一步,也是必備的一步。搭建交叉編譯環(huán)境的方法很多,不同的體系結(jié)構(gòu)、不同的操作內(nèi)容甚至是不同版本的內(nèi)核,都會(huì)用到不同的交叉編譯器,而且,有些交叉編譯器經(jīng)常會(huì)有部分的bug,這都會(huì)導(dǎo)致最后的代碼無法正常地運(yùn)行。因此,選擇合適的交叉編譯器對(duì)于嵌入式開發(fā)是非常重要的。

交叉編譯器完整的安裝一般涉及多個(gè)軟件的安裝(讀者可以從ftp://gcc.gnu.org/pub/下載),包括binutils、gcc、glibc等軟件。其中,binutils主要用于生成一些輔助工具,如objdump、as、ld等;gcc是用來生成交叉編譯器的,主要生成arm-linux-gcc交叉編譯工具(應(yīng)該說,生成此工具后已經(jīng)搭建起了交叉編譯環(huán)境,可以編譯Linux內(nèi)核了,但由于沒有提供標(biāo)準(zhǔn)用戶函數(shù)庫,用戶程序還無法編譯);glibc主要是提供用戶程序所使用的一些基本的函數(shù)庫。這樣,交叉編譯環(huán)境就完全搭建起來了。

上面所述的搭建交叉編譯環(huán)境比較復(fù)雜,很多步驟都涉及對(duì)硬件平臺(tái)的選擇。因此,現(xiàn)在嵌入式平臺(tái)提供廠商一般會(huì)提供在該平臺(tái)上測試通過的交叉編譯器,而且很多公司把以上安裝步驟全部寫入腳本文件或者以發(fā)行包的形式提供,這樣就大大方便了用戶的使用。如優(yōu)龍的FS2410開發(fā)光盤里就附帶了2.95.3和3.3.2兩個(gè)版本的交叉編譯器,其中前一個(gè)版本是用于編譯Linux2.4內(nèi)核的,而后一個(gè)版本是用于編譯Linux2.6版本內(nèi)核的。由于這是廠商測試通過的編譯器,因此可靠性會(huì)比較高,而且與開發(fā)板能夠很好地吻合。所以推薦初學(xué)者直接使用廠商提供的編譯器。當(dāng)然,由于時(shí)間滯后的原因,這個(gè)編譯器往往不是最新的版本,若需要更新時(shí)希望讀者另外查找相關(guān)資料學(xué)習(xí)。本書就以優(yōu)龍自帶的cross-3.3.2為例進(jìn)行講解(具體的名稱不同廠商可能會(huì)有區(qū)別)。

安裝交叉編譯器的具體步驟在第2章的實(shí)驗(yàn)二中已經(jīng)進(jìn)行了詳細(xì)地講解了,在此僅回憶關(guān)鍵步驟,對(duì)于細(xì)節(jié)請(qǐng)讀者參見第2章的實(shí)驗(yàn)二。

在/usr/local/arm下解壓cross-3.3.2.bar.bz2。

[root@localhostarm]#tar–jxvfcross-3.3.2.bar.bz2

[root@localhostarm]#ls

3.3.2cross-3.3.2.tar.bz2

[root@localhostarm]#cd./3.3.2

[root@localhostarm]#ls

arm-linuxbinetcincludeinfoliblibexecmansbinshareVERSIONS

[root@localhostbin]#whicharm-linux*

/usr/local/arm/3.3.2/bin/arm-linux-addr2line

/usr/local/arm/3.3.2/bin/arm-linux-ar

/usr/local/arm/3.3.2/bin/arm-linux-as

/usr/local/arm/3.3.2/bin/arm-linux-c++

/usr/local/arm/3.3.2/bin/arm-linux-c++filt

/usr/local/arm/3.3.2/bin/arm-linux-cpp

/usr/local/arm/3.3.2/bin/arm-linux-g++

/usr/local/arm/3.3.2/bin/arm-linux-gcc

/usr/local/arm/3.3.2/bin/arm-linux-gcc-3.3.2

/usr/local/arm/3.3.2/bin/arm-linux-gccbug

/usr/local/arm/3.3.2/bin/arm-linux-gcov

/usr/local/arm/3.3.2/bin/arm-linux-ld

/usr/local/arm/3.3.2/bin/arm-linux-nm

/usr/local/arm/3.3.2/bin/arm-linux-objcopy

/usr/local/arm/3.3.2/bin/arm-linux-objdump

/usr/local/arm/3.3.2/bin/arm-linux-ranlib

/usr/local/arm/3.3.2/bin/arm-linux-readelf

/usr/local/arm/3.3.2/bin/arm-linux-size

/usr/local/arm/3.3.2/bin/arm-linux-strings

/usr/local/arm/3.3.2/bin/arm-linux-strip

可以看到,在/usr/local/arm/3.3.2/bin/下已經(jīng)安裝了很多交叉編譯工具。用戶可以查看arm文件夾下的VERSIONS文件,顯示如下:

Versions

gcc-3.3.2

glibc-2.3.2

binutils-head

Toolchainbinutilsconfiguration:

../binutils-head/configure…

Toolchainglibcconfiguration:

../glibc-2.3.2/configure…

Toolchaingccconfiguration

../gcc-3.3.2/configure…

可以看到,這個(gè)交叉編譯工具確實(shí)集成了binutils、gcc、glibc這幾個(gè)軟件,而每個(gè)軟件也都有比較復(fù)雜的配置信息,讀者可以查看VERSIONS文件了解相關(guān)信息。

標(biāo)簽: 嵌入式Linux 交叉編譯 超級(jí)終端 minicom

相關(guān)閱讀

辽阳县| 威宁| 金乡县| 远安县| 开平市| 扬中市| 东宁县| 邵阳市| 凤台县| 海阳市| 龙游县| 双鸭山市| 蒲江县| 仙居县| 赫章县| 滕州市| 安徽省| 象山县| 赤峰市| 阳江市| 临安市| 正镶白旗| 太仓市| 广元市| 南康市| 连云港市| 武胜县| 葫芦岛市| 长武县| 同心县| 宁河县| 黔江区| 扎兰屯市| 梓潼县| 松滋市| 竹北市| 上饶县| 新民市| 上虞市| 满城县| 宁都县|