freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm uclinux的嵌入式系統(tǒng)開發(fā)-文庫吧

2025-05-16 15:21 本頁面


【正文】 根據(jù)以上考慮和目前的開發(fā)情況,這套方案還是比較令人滿意。 今天先回家了,下回介紹具體開發(fā)步鄹吧。 2.開發(fā)環(huán)境的建立。 先說兩句廢話為和我以前一樣對操作系統(tǒng)(尤其是嵌入式操作系統(tǒng))迷惑的弟兄解釋些概 念。因為總是有人在問是不是一定要用操作系統(tǒng),我的 CPU能不能移植操作系統(tǒng),可以移植 什么 操作系統(tǒng),有了操作系統(tǒng)可不可以運行某些程序。 從我的個人經(jīng)歷來講,這其實就是許多硬件出身的弟兄對操作系統(tǒng)這個東西有神秘感(和 我一年前一樣)。說白了,操作系統(tǒng)就是一段設計非常巧妙的程序,和你自己的程序從本 質(zhì)講沒有區(qū)別,于是,以上問題轉(zhuǎn)為,我是不是一定要用這段程序,我的 CPU能不能運行這 段程序,可以跑什么樣的程序。這個程序可以跑,調(diào)用這個程序接口的另一個程序能不能 跑! 答案也就變得簡單,操作系統(tǒng)對任何一個 CPU都不是必須的(對嵌入式系統(tǒng)更是如此),你 可以自己編些程序在沒有操作系統(tǒng)的 PC裸機上跑( BIOS就是這樣的),像玩 C51一樣,(雖 然奢侈的讓人有些心痛),或者移植 UCOS到上面。另一方面,現(xiàn)代操作系統(tǒng)大多需要一些 硬件的支持,(像保護模式的實現(xiàn)),反過來說,高端 CPU中專門有針對支持操作系統(tǒng)的體 系結(jié)構(gòu),這樣,許多操作系統(tǒng)的實現(xiàn)是挑剔硬件平臺的。其實其它程序也一 樣,你編的程 序使用的片上外設另一 CPU上沒有,那這段程序就無法移植了。這就是話粗理不粗。書歸正 傳,還是聊聊 ARM+ uClinux開發(fā)模式下開發(fā)環(huán)境的建立(其實下面說到的東西不僅限于這 種硬件平臺和操作系統(tǒng)) 很久以前就在介紹嵌入式系統(tǒng)開發(fā)的書上見過“交叉編譯環(huán)境”這詞,當時覺得很玄,用 了以后才知道,其實就是解決在誰的地盤上用誰的工具編誰的代碼問題。 編譯的最 主要的工作就在將你的程序轉(zhuǎn)化成運行該程序的 CPU所能識別的機器代碼,不同的 CPU有相應的編譯器,另一方面。編譯器本身也是程序,當然也要在某一個 CPU平臺上運行 。于是交叉編譯的交叉點就在那個編譯器本身是 CPU1 上的一個程序,卻在為CPU2編譯代碼 (整個一個吃里扒外!)。這么一想,以前用 51和 dsp的開發(fā)軟件(大部分都是IDE-集成 開發(fā)環(huán)境)開發(fā)程序時,都算是交叉編譯啦。當然,假如在你的 ARM系統(tǒng)上,操作系統(tǒng) 已經(jīng) 正常運行,并且你的資源足夠多,你可以把 PC機上運行的 ARM編譯工具移植到ARM上,然后 所有該系統(tǒng)的應用程序都直接在 ARM系統(tǒng)上編譯,這就不算交叉編譯,但如果有條件這么作 ,程序的開發(fā)或者移植就方便多了,因為整個開發(fā)過程又回到在自己 PC機上編應用程序的 那種模式了,那就是在自己的地盤上用自己的編譯器編自己的應用程序。 與不使用操作系統(tǒng)的開發(fā)模式不同(此處的操作系統(tǒng)尤其指提供了專門的接 口函數(shù)庫的操 作系統(tǒng),目前的 UCOS就不算),在目標板(就是實現(xiàn)系統(tǒng)的板子)使用操作系統(tǒng)的開發(fā)模 式下,交叉編譯環(huán)境中還需要該對應該操作系統(tǒng)的庫。比如 uClinux 提供的uClibc。此時, 開發(fā)用的主機上不光要有目標板 CPU所需的編譯工具,還要有對應操作系統(tǒng)的庫,又因為一 般庫文件還要在開發(fā)機上拿目標 CPU的編譯器重新編譯一下,所以還要把操作系統(tǒng)的原碼也 放到開發(fā)機上。(唉,跟目標板沒什 么關系,卻要幫它背這么多東西,真是上輩子欠它的 !?。?。 雖然操作系統(tǒng)的接口庫至關重要,但大家似乎已經(jīng)淡忘了它的存在。這些多是因為大家已 經(jīng)遠離了刀耕火種的年代(需要告訴編譯器需要的 include 路徑, lib 路徑,以及 lib的名稱 ),集成的編譯環(huán)境讓我們編譯鏈接的所有繁瑣工作化作對 BUILD按鈕的瀟灑一擊。而且不 論是 windows環(huán)境,還是 linux環(huán)境,都有環(huán)境變量去記錄這些參數(shù)。 但嘗試將 /usr/lib 目錄改一個名字,你就會知道你不能無視他們的存在,因為操作系統(tǒng)的功能都是通過這些 庫來交給應用層程序使用的。當然如果你的系統(tǒng)不依靠任何操作系統(tǒng),像最原始的那種完 全自己實現(xiàn)所有代碼,就只需要一個編譯工具,少了這些羅嗦事。 以上的東西一般時候是沒有必要仔細研究,但交叉環(huán)境下開發(fā)或移植比較大的程序時,你 可能就需要了解編譯器,鏈接器等開發(fā)工具的幾乎所有重要參數(shù)。 我在開發(fā)時,主機完全使用的是 linux,如果有條件,建議大家這樣作, linux的使用沒有 想象的復雜(雖然我現(xiàn)在身邊還要放一本關于 linux使用的書籍),而且開發(fā)程序可以先在 主機上調(diào)通,然后用交叉編譯工具為目標系統(tǒng)重新編譯一遍,可以這樣做是因為主機是 li nux,目標系統(tǒng)跑 uClinux,兩個操作系統(tǒng)提供的應用程序接口幾乎是一樣的,所以程序幾 乎不用修改。 在我的系統(tǒng)上 ,建立基本的開發(fā)環(huán)境過程如下。 (1) 安裝 gnu開發(fā)工具鏈(是 GNU開發(fā)的針對 ARM CPU的一組編譯開發(fā)程序(是linux程序) 。包括 arm- elf- gcc, arm- elf- ld等 (2) 將 uClinux源代碼源代碼解壓到相應路徑下,按照編譯內(nèi)核的步鄹編譯一遍(此時使用 的編譯工具已經(jīng)是上面提到的 ARM編譯工具了,因為它要在 ARM CPU上運行,另外,和編譯 linux內(nèi)核一樣,此 時可以通過 menuconfig來對內(nèi)核提供的功能進行裁減 (3) 將庫( uClibc)解壓到相應路徑下,用以上工具編譯一遍。 這樣最基本的環(huán)境就算搭建好了。 以上工作對于做過的人來說比較簡單,這里介紹一下幫助沒有使用或剛開始使用這種開發(fā) 模式的弟兄們理清一下思路。 3.應用程序的開發(fā) 因為目標板上用 uClinux,它提供的程序接口和 linux 下的基本一致,不一致的部分主要在 于 uClinux不支持 MMU(應該說是 uClinux是為不帶 MMU的 cpu定制的),最明顯的就是 fork函 數(shù)要用 vfork函數(shù)替代,這也是編程時,感覺最不爽的一點 (沒辦法,誰讓咱們的 CPU有生理 缺陷 )。另一個不易覺察的差異在于 uClinu
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1