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

正文內(nèi)容

基于armuclinux的嵌入式系統(tǒng)開發(fā)-預(yù)覽頁

2025-07-13 08:59 上一頁面

下一頁面
 

【正文】 放到開發(fā)機上。而且不 論是windows環(huán)境,還是linux環(huán)境,都有環(huán)境變量去記錄這些參數(shù)。 我在開發(fā)時,主機完全使用的是linux,如果有條件,建議大家這樣作,linux的使用沒有 想象的復(fù)雜(雖然我現(xiàn)在身邊還要放一本關(guān)于linux使用的書籍),而且開發(fā)程序可以先在 主機上調(diào)通,然后用交叉編譯工具為目標系統(tǒng)重新編譯一遍,可以這樣做是因為主機是li nux,目標系統(tǒng)跑uClinux,兩個操作系統(tǒng)提供的應(yīng)用程序接口幾乎是一樣的,所以程序幾 乎不用修改。 這樣最基本的環(huán)境就算搭建好了。更適合于資源 緊張的嵌入式系統(tǒng)(上回分解已經(jīng)說了,應(yīng)用程序很大一部分是在和庫函數(shù)打交道,而且 大家最終是鏈在一起,所以庫函數(shù)大了,你的程序也小不了)。對于以前沒用過li nux的人來說(比如我),開發(fā)程序前應(yīng)該花3,4天時間熟悉linux環(huán)境,尤其是它的編輯 器,用慣集成編譯環(huán)境的人有時連編譯器和編輯器的概念都模糊了,所以一般是直接進入 集成編譯環(huán)境,連寫帶編一氣呵成,殊不知有些集成編譯器提供的編輯器弱智的一塌胡涂 ,如果用熟了linux下的emacs,你就會發(fā)現(xiàn)他們之間的差距大概……要像我和蓋茨那么大 吧。因為作了些網(wǎng)絡(luò)應(yīng)用,所以介紹一些網(wǎng)絡(luò)編程時要 用到的網(wǎng)站和書籍。 重點想說些關(guān)于編譯器的東西,不了解它,在交叉編譯環(huán)境下編譯程序就寸步難行了,這 無非是因為交叉編譯環(huán)境下目標板編譯器所處的寄人籬下的悲慘環(huán)境。 但試著把/usr/include路徑改一個名字(比如改成stupid_include),再這樣編譯一下, 會發(fā)現(xiàn)程序中被 引用的頭文件(比如include)都找不到了。看來只有兩種辦法,一個是搶占了主機的環(huán)境變量改成自己的(整個 兒一個土匪),或者在編譯時加上必要參數(shù)(還是這樣紳士一些),告訴編譯器需要的文件 的位置。你可以用arm-elf-gcc命令一步到底直接產(chǎn)生可執(zhí)行文件(其實也是在自己 的任務(wù)完成后調(diào)用下一個程序),也可以每一步加上自己的參數(shù),只作自己的事。其實不然,首先以 上說的東西一般在IDE的project菜單下的option或build option中找到,只是一般不用管 罷了。(你可以 對優(yōu)化,警告級,宏定義等諸多選項進行自己的選擇)。以前搞不清頭文件和可執(zhí)行 文件有沒有什么聯(lián)系(因為總看見兩個文件名字取一樣的),現(xiàn)在知道,他們之間沒有任 何聯(lián)系。編譯應(yīng)該是最主要的一步,就是將源文件生成CPU能識別的語言,一般是 后綴 ,應(yīng)該說,此時的文件就已經(jīng)可以執(zhí)行了。(呵呵,夠弱智?。? (3) 鏈接:鏈接才是清帳的時候,以前在程序里用到的外部符號都要把真正的東西交出來 。庫文件是由相應(yīng)的程序(linux下是ar命 令)將需要被添加到庫里的目標文件(該文件是編譯階段生成的)組織起來生成檔案文件 ,同時可以建立一個檢索,檢索內(nèi)容為所包含的目標文件中定義的符號。知 道編譯器的細節(jié)對于程序的開發(fā)和移植都是很有好處的。 研究程序移植的那兩周是最痛苦的兩周,沒有太多可以借鑒的東西,只能摸黑向前走,于 是更加堅定決心要整理些東西給后來的弟兄。 為什么可以移植程序,為什么要移植程序? 程序可以移植首先要感謝開發(fā)出高級語言的大牛們,記住,無論多么漂亮的代碼經(jīng)過編譯 以后都要變成CPU可以識別的機器語言,而幾乎一千種CPU說著一千種語言。(由此已經(jīng)可以看出編譯工具在程序移植中 的重要性)。 可以移植已有的程序還要感謝開放源代碼的弟兄,沒有這些C文件和H文件讓你重新編譯一 下,怎么在你的CPU上跑?其實不止這些,后面還會看見開源組織的牛人專為程序可移植性 所作的專門的工作。(就像現(xiàn)在地上有個錢包也千萬別上去就揣自己兜里,說不定就是套)。 什么時候可以考慮移植程序? 在基于嵌入式操作系統(tǒng)進行開發(fā)時,具有一定規(guī)模的程序都 可以到網(wǎng)上查一查都沒有成熟的源代碼可用。只能找該操作系統(tǒng)支持的 類似的功能來實現(xiàn)。 由上可知,如果是在各種嵌入式linux(除了uClinux以外,還有好幾種)平臺上開發(fā),那 么針對該平臺以及l(fā)inux平臺上的源代碼都可以使用,但是要牢記他們之間的差異。 下面簡單列出一些我認為移植時需要考慮的問題: (1) 自己的操作系統(tǒng)的特點以及在當前版本下支持的特性。 (2) 程序運行空間。 gcc –c gcc –o hello 產(chǎn)生可執(zhí)行文件,上回說過,主機編譯器參數(shù)都有環(huán)境變量保存 ,所以看起來很簡單。 Armelfgcc 是gnu的arm編譯工具 1)Include地址:參數(shù):I 值:root/uClibc/include(這是在主機上我的uClinux的頭文 件路徑) 用法:I root/uClibc/include I參數(shù)保證后面的頭文件路徑在搜索系統(tǒng)頭文件路徑前被搜索從而有可能替代系統(tǒng)的頭文 件,如果有多個這樣的參數(shù),則搜索的順序是從左到右,然后是系統(tǒng)的頭文件。 以下是鏈接: armelfld L/root/uClibc/lib L/usr/local/gnu/armelf/lib L/usr/local/gnu/li b/gcclib/armelf/ elf2flt –o hello /root/uClibc/lib/ /usr/local/ gnu/lib/gcclib/armelf/ /usr/local/gnu/lib/gcclib/armelf/–lc 其中 1) 鏈接工具: armelfld 2) L指明需要鏈接的庫的路徑,用法和I一樣,自己的庫的路徑也可以在這里加入。 當然這只是簡單程序的移植,復(fù)雜案例在下一次
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1