新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux開(kāi)發(fā)環(huán)境的搭建之:嵌入式開(kāi)發(fā)環(huán)境的搭建

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

        作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò) 收藏


        本文引用地址:http://www.104case.com/article/257141.htm

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

        5.1.1嵌入式環(huán)境的搭建

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

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


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


        上面所述的搭建交叉編譯環(huán)境比較復(fù)雜,很多步驟都涉及對(duì)硬件平臺(tái)的選擇。因此,現(xiàn)在嵌入式平臺(tái)提供廠商一般會(huì)提供在該平臺(tái)上測(cè)試通過(guò)的交叉編譯器,而且很多公司把以上安裝步驟全部寫入腳本文件或者以發(fā)行包的形式提供,這樣就大大方便了用戶的使用。如優(yōu)龍的FS2410開(kāi)發(fā)光盤里就附帶了2.95.3和3.3.2兩個(gè)版本的交叉編譯器,其中前一個(gè)版本是用于編譯Linux2.4內(nèi)核的,而后一個(gè)版本是用于編譯Linux2.6版本內(nèi)核的。由于這是廠商測(cè)試通過(guò)的編譯器,因此可靠性會(huì)比較高,而且與開(kāi)發(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)讀者參見(jiàn)第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)信息。

        linux相關(guān)文章:linux教程



        上一頁(yè) 1 2 3 4 5 6 7 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 上杭县| 南岸区| 潜山县| 昂仁县| 广元市| 沁水县| 大理市| 石林| 沛县| 柳州市| 巧家县| 连南| 宝应县| 商河县| 罗定市| 大姚县| 南川市| 株洲市| 兴山县| 秭归县| 黑河市| 营口市| 中卫市| 象州县| 浮梁县| 祁门县| 闻喜县| 绵竹市| 衡山县| 广西| 惠东县| 历史| 禹州市| 阳曲县| 林州市| 石阡县| 博乐市| 东宁县| 滕州市| 赤壁市| 凭祥市|