日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
[轉(zhuǎn)]ARM/uClinux開發(fā)環(huán)境的建立
[轉(zhuǎn)]ARM/uClinux開發(fā)環(huán)境的建立
 更新時(shí)間:2008-8-18 9:59:36  點(diǎn)擊數(shù):7
【字體: 字體顏色
先說(shuō)兩句廢話為和我以前一樣對(duì)操作系統(tǒng)(尤其是嵌入式操作系統(tǒng))迷惑的弟兄解釋些概念。因?yàn)榭偸怯腥嗽趩?wèn)是不是一定要用操作系統(tǒng),我的CPU能不能移植操作系統(tǒng),可以移植什么操作系統(tǒng),有了操作系統(tǒng)可不可以運(yùn)行某些程序。
從我的個(gè)人經(jīng)歷來(lái)講,這其實(shí)就是許多硬件出身的弟兄對(duì)操作系統(tǒng)這個(gè)東西有神秘感(和我一年前一樣)。說(shuō)白了,操作系統(tǒng)就是一段設(shè)計(jì)非常巧妙的程序,和你自己的程序從本質(zhì)講沒(méi)有區(qū)別,于是,以上問(wèn)題轉(zhuǎn)為,我是不是一定要用這段程序,我的CPU能不能運(yùn)行這段程序,可以跑什么樣的程序。這個(gè)程序可以跑,調(diào)用這個(gè)程序接口的另一個(gè)程序能不能跑!
答案也就變得簡(jiǎn)單,操作系統(tǒng)對(duì)任何一個(gè)CPU都不是必須的(對(duì)嵌入式系統(tǒng)更是如此),你可以自己編些程序在沒(méi)有操作系統(tǒng)的PC裸機(jī)上跑(BIOS就是這樣的),像玩C51一樣,(雖然奢侈的讓人有些心痛),或者移植UCOS到上面。另一方面,現(xiàn)代操作系統(tǒng)大多需要一些硬件的支持,(像保護(hù)模式的實(shí)現(xiàn)),反過(guò)來(lái)說(shuō),高端CPU中專門有針對(duì)支持操作系統(tǒng)的體系結(jié)構(gòu),這樣,許多操作系統(tǒng)的實(shí)現(xiàn)是挑剔硬件平臺(tái)的。其實(shí)其它程序也一樣,你編的程序使用的片上外設(shè)另一CPU上沒(méi)有,那這段程序就無(wú)法移植了。這就是話粗理不粗。書歸正傳,還是聊聊ARM+uClinux開發(fā)模式下開發(fā)環(huán)境的建立(其實(shí)下面說(shuō)到的東西不僅限于這種硬件平臺(tái)和操作系統(tǒng))

很久以前就在介紹嵌入式系統(tǒng)開發(fā)的書上見過(guò)“交叉編譯環(huán)境”這詞,當(dāng)時(shí)覺(jué)得很玄,用了以后才知道,其實(shí)就是解決在誰(shuí)的地盤上用誰(shuí)的工具編誰(shuí)的代碼問(wèn)題。
編譯的最主要的工作就在將你的程序轉(zhuǎn)化成運(yùn)行該程序的CPU所能識(shí)別的機(jī)器代碼,不同的CPU有相應(yīng)的編譯器,另一方面。編譯器本身也是程序,當(dāng)然也要在某一個(gè)CPU平臺(tái)上運(yùn)行。于是交叉編譯的交叉點(diǎn)就在那個(gè)編譯器本身是CPU1上的一個(gè)程序,卻在為CPU2編譯代碼(整個(gè)一個(gè)吃里扒外。_@么一想,以前用51和dsp的開發(fā)軟件(大部分都是IDE-集成開發(fā)環(huán)境)開發(fā)程序時(shí),都算是交叉編譯啦。當(dāng)然,假如在你的ARM系統(tǒng)上,操作系統(tǒng)已經(jīng)正常運(yùn)行,并且你的資源足夠多,你可以把PC機(jī)上運(yùn)行的ARM編譯工具移植到ARM上,然后所有該系統(tǒng)的應(yīng)用程序都直接在ARM系統(tǒng)上編譯,這就不算交叉編譯,但如果有條件這么作,程序的開發(fā)或者移植就方便多了,因?yàn)檎麄(gè)開發(fā)過(guò)程又回到在自己PC機(jī)上編應(yīng)用程序的那種模式了,那就是在自己的地盤上用自己的編譯器編自己的應(yīng)用程序。
與不使用操作系統(tǒng)的開發(fā)模式不同(此處的操作系統(tǒng)尤其指提供了專門的接口函數(shù)庫(kù)的操作系統(tǒng),目前的UCOS就不算),在目標(biāo)板(就是實(shí)現(xiàn)系統(tǒng)的板子)使用操作系統(tǒng)的開發(fā)模式下,交叉編譯環(huán)境中還需要該對(duì)應(yīng)該操作系統(tǒng)的庫(kù)。比如uClinux提供的uClibc。此時(shí),開發(fā)用的主機(jī)上不光要有目標(biāo)板CPU所需的編譯工具,還要有對(duì)應(yīng)操作系統(tǒng)的庫(kù),又因?yàn)橐话銕?kù)文件還要在開發(fā)機(jī)上拿目標(biāo)CPU的編譯器重新編譯一下,所以還要把操作系統(tǒng)的原碼也放到開發(fā)機(jī)上。(唉,跟目標(biāo)板沒(méi)什么關(guān)系,卻要幫它背這么多東西,真是上輩子欠它的。。。
雖然操作系統(tǒng)的接口庫(kù)至關(guān)重要,但大家似乎已經(jīng)淡忘了它的存在。這些多是因?yàn)榇蠹乙呀?jīng)遠(yuǎn)離了刀耕火種的年代(需要告訴編譯器需要的include路徑,lib路徑,以及l(fā)ib的名稱),集成的編譯環(huán)境讓我們編譯鏈接的所有繁瑣工作化作對(duì)BUILD按鈕的瀟灑一擊。而且不論是windows環(huán)境,還是linux環(huán)境,都有環(huán)境變量去記錄這些參數(shù)。。但嘗試將/usr/lib目錄改一個(gè)名字,你就會(huì)知道你不能無(wú)視他們的存在,因?yàn)椴僮飨到y(tǒng)的功能都是通過(guò)這些庫(kù)來(lái)交給應(yīng)用層程序使用的。當(dāng)然如果你的系統(tǒng)不依靠任何操作系統(tǒng),像最原始的那種完全自己實(shí)現(xiàn)所有代碼,就只需要一個(gè)編譯工具,少了這些羅嗦事。
以上的東西一般時(shí)候是沒(méi)有必要仔細(xì)研究,但交叉環(huán)境下開發(fā)或移植比較大的程序時(shí),你可能就需要了解編譯器,鏈接器等開發(fā)工具的幾乎所有重要參數(shù)。
我在開發(fā)時(shí),主機(jī)完全使用的是linux,如果有條件,建議大家這樣作,linux的使用沒(méi)有想象的復(fù)雜(雖然我現(xiàn)在身邊還要放一本關(guān)于linux使用的書籍),而且開發(fā)程序可以先在主機(jī)上調(diào)通,然后用交叉編譯工具為目標(biāo)系統(tǒng)重新編譯一遍,可以這樣做是因?yàn)橹鳈C(jī)是linux,目標(biāo)系統(tǒng)跑uClinux,兩個(gè)操作系統(tǒng)提供的應(yīng)用程序接口幾乎是一樣的,所以程序幾乎不用修改。
在我的系統(tǒng)上,建立基本的開發(fā)環(huán)境過(guò)程如下。
(1) 安裝gnu開發(fā)工具鏈(是GNU開發(fā)的針對(duì)ARM CPU的一組編譯開發(fā)程序(是linux程序)。包括arm-elf-gcc,arm-elf-ld等
(2) 將uClinux源代碼源代碼解壓到相應(yīng)路徑下,按照編譯內(nèi)核的步鄹編譯一遍(此時(shí)使用的編譯工具已經(jīng)是上面提到的ARM編譯工具了,因?yàn)樗贏RM CPU上運(yùn)行,另外,和編譯linux內(nèi)核一樣,此時(shí)可以通過(guò)menuconfig來(lái)對(duì)內(nèi)核提供的功能進(jìn)行裁減
(3) 將庫(kù)(uClibc)解壓到相應(yīng)路徑下,用以上工具編譯一遍。
這樣最基本的環(huán)境就算搭建好了。


  • 上一篇: [轉(zhuǎn)]ARM的開發(fā)步驟
  • 下一篇: [轉(zhuǎn)]80C31和SED1335控制320×240LCD模塊
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1