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

正文內(nèi)容

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

2025-06-13 15:21本頁面
  

【正文】 程序開發(fā)過程中調(diào)試也是至關重要,因為可以先在主機上調(diào)試,所以可以使用linux下的 g db,(有點像 dos 下的 debug)。不一一介紹。也就是說,庫文 件并不是必須的,但它為經(jīng)常使用的目標文件中的函數(shù)提供了快速的檢索機制。首先,如果不同 的庫里有同名函數(shù),并且該函數(shù)被調(diào)用,那么在前面的就被鏈接進去了,這一點對于頭文 件路徑的指定也適用,如果你自己的頭文件和系統(tǒng)頭文件相同,并且你的頭文件路徑在系 統(tǒng)頭文件路徑前面,你的頭文件就會代替頭文件。你可以指定需要連接在一起的目標文件,也可以告訴編譯器庫文件的名字和路徑(指定 方法下次講)。只有在鏈接時才會報錯。當然這個時候外部函數(shù)等外部 符號都沒有引入,對于被編譯程序來說,這些外部符號還只是留一個倩影,壓根兒不知它 在不在。 (2) 編譯。在預編譯結(jié)束后,頭文件的使命就結(jié)束了。 主要工作就是處理所有#開頭的,包括頭文件。以下是幾個主要步鄹:(以下有 些我也不確認,如發(fā)現(xiàn)問題,請及時糾正。其實編譯程序也是一樣。另一個方面, IDE 就像是傻瓜照相機,很多工作他都幫你完成了,使用簡單。有人會說, IDE 招你惹你了,你老貶它。 編譯器的主要參數(shù)的使用下次將程序的移植時再講。提供從編譯到鏈接到格式轉(zhuǎn)化 的全套服務。(除此之外,還有其他一些參數(shù)也是如此)。 返回來說說你的目標編譯器,雖然占用了人家的地盤,編譯器,頭文件,庫文件,一 個都不少,但你要編一個程序編譯器照樣發(fā)暈,因為沒有環(huán)境變量告訴它自己需要的頭文 件和庫文件在哪里。因為編譯器看 見這樣的頭文件會到系統(tǒng)指定的路徑下尋找,而這個路徑是由環(huán)境變量保存的( linux和 w indows 下都是這樣的)。一切看起來天經(jīng)地義。想想在linux下將 m myprogram,最簡單的一句 gcc – o myprogram myprogram .c 就可以了。 其實類似的資源不計其數(shù),遇到問題時應該先到 google上狂搜一圈。因為作了些網(wǎng)絡應用,所以介紹一些網(wǎng)絡編程時要 用到的網(wǎng)站和書籍 。但只要多用多練,對提高效率很有幫助。對于以前沒用過 li nux 的人來說(比如我),開發(fā)程序前應該花 3, 4 天時間熟悉 linux環(huán)境,尤其是它的編輯 器,用慣集成編譯環(huán)境的人有時連編譯器和編輯器的概念都模糊了,所以一般是直接進入 集成編譯環(huán)境,連寫帶編一氣呵成,殊不知有 些集成編譯器提供的編輯器弱智的一塌胡涂 ,如果用熟了 linux 下的 emacs,你就會發(fā)現(xiàn)他們之間的差距大概??要像我和蓋茨那么大 吧。而且在實際中一般是編 好了程序先在主機上拿主機平臺上的編譯器編譯并且調(diào)試一下( linux 下的編譯器就是 gcc 了),當然前提是被調(diào)試的程序中需要的硬件條件主機具備,例如我的程序中有一段是針 對串口的,于是先在主機編一個串口程序,調(diào)通以后拿目標板的編譯器重新編譯一下(如 果看了 上一章“交叉編譯環(huán)境”,這里就不會暈了),下載到目標板上運行,一般來說就 可以直接用了。更適合于資源 緊張的嵌入式系統(tǒng)(上回分解已經(jīng)說了,應用程序很大一部分是在和庫函數(shù)打交道,而且 大家最 終是鏈在一起,所以庫函數(shù)大了,你的程序也小不了)。 3.應用程序的開發(fā) 因為目標板上用 uClinux,它提供的程序接口和 linux 下的基本一致,不一致的部分主要在 于 uClinux不支持 MMU(應該說是 uClinux是為不帶 MMU的 cpu定制的),最明顯的就是 fork函 數(shù)要用 vfork函數(shù)替代,這也是編程時,感覺最不爽的一點 (沒辦法,誰讓咱們的 CPU有生理 缺陷 )。 這樣最基本的環(huán)境就算搭建好了。 (1) 安裝 gnu開發(fā)工具鏈(是 GNU開發(fā)的針對 ARM CPU的一組編譯開發(fā)程序(是linux程序) 。 我在開發(fā)時,主機完全使用的是 linux,如果有條件,建議大家這樣作, linux的使用沒有 想象的復雜(雖然我現(xiàn)在身邊還要放一本關于 linux使用的書籍),而且開發(fā)程序可以先在 主機上調(diào)通,然后用交叉編譯工具為目標系統(tǒng)重新編譯一遍,可以這樣做是因為主機是 li nux,目標系統(tǒng)跑 uClinux,兩個操作系統(tǒng)提供的應用程序接口幾乎是一樣的,所以程序幾 乎不用修改。當然如果你的系統(tǒng)不依靠任何操作系統(tǒng),像最原始的那種完 全自己實現(xiàn)所有代碼,就只需要一個編譯工具,少了這些羅嗦事。而且不 論是 windows環(huán)境,還是 linux環(huán)境,都有環(huán)境變量去記錄這些參數(shù)。 雖然操作系統(tǒng)的接口庫至關重要,但大家似乎已經(jīng)淡忘了它的存在。此時, 開發(fā)用的主機上不光要有目標板 CPU所需的編譯工具,還要有對應操作系統(tǒng)的庫,又因為一 般庫文件還要在開發(fā)機上拿目標 CPU的編譯器重新編譯一下,所以還要把操作系統(tǒng)的原碼也 放到開發(fā)機上。 與不使用操作系統(tǒng)的開發(fā)模式不同(此處的操作系統(tǒng)尤其指提供了專門的接 口函數(shù)庫的操 作系統(tǒng),目前的 UCOS就不算),在目標板(就是實現(xiàn)系統(tǒng)的板子)使用操作系統(tǒng)的開發(fā)模 式下,交叉編譯環(huán)境中還需要該對應該操作系統(tǒng)的庫。這么一想,以前用 51和 dsp的開發(fā)軟件(大部分都是IDE-集成 開發(fā)環(huán)境)開發(fā)程序時,都算是交叉編譯啦。編譯器本身也是程序,當然也要在某一個 CPU平臺上運行 。書歸正 傳,還是聊聊 ARM+ uClinux開發(fā)模式下開發(fā)環(huán)境的建立(其實下面說到的東西不僅限于這 種硬件平臺和操作系統(tǒng)) 很久以前就在介紹嵌入式系統(tǒng)開發(fā)的書上見過“交叉編譯環(huán)境”這詞,當時覺得很玄,用 了以后才知道,其實就是解決在誰的地盤上用誰的工具編誰的代碼問題。其實其它程序也一 樣,你編的程 序使用的片上外設另一 CPU上沒有,那這段程序就無法移植了。這個程序可以跑,調(diào)用這個程序接口的另一個程序能不能 跑! 答案也就變得簡單,操作系統(tǒng)對任何一個 CPU都不是必須的(對嵌入式系統(tǒng)更是如此),你 可以自己編些程序在沒有操作系統(tǒng)的 PC裸機上跑( BIOS就是這樣的),像玩 C51一樣,(雖
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1