uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立

uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立

ID:44871007

大小:75.00 KB

頁數(shù):4頁

時間:2019-10-31

uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立_第1頁
uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立_第2頁
uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立_第3頁
uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立_第4頁
資源描述:

《uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立1.Linux是一種很受歡迎的操作系統(tǒng)  uClinux這個英文單詞u中的表示小Micro.小的意思,C表示Control,控制的意思.所以uClinux就是Micro-control-Linux,字面上的理解就是針對微控制領(lǐng)域而設(shè)計的Linux系統(tǒng)。  uClinux以其優(yōu)異的性能、免費開放的代碼等優(yōu)點,博得眾多嵌入式開發(fā)者的青睞,和過去基于簡單RTOS甚至沒有使用任何操作系統(tǒng)的嵌入式程序設(shè)計相比,基于Linux這樣的成熟的,高效的、健壯的、可靠的、模塊化的、易于配置的操作系統(tǒng)來開發(fā)自己的應(yīng)用程序,無疑

2、能進一提高效率,并具有很好的可移植性?;赨CLINUX的嵌入式系統(tǒng)開發(fā)涉及到三個方面:開發(fā)環(huán)境的建立,配置UCLINUX內(nèi)核和bootloader以及應(yīng)用程序的設(shè)計,本文將從這幾個方面來闡述的基于UCLINUX的嵌入式系統(tǒng)的設(shè)計。  2.開發(fā)環(huán)境的建立  開發(fā)環(huán)境的建立也就是工具鏈,設(shè)置工具鏈在主機機器上創(chuàng)建一個用于編譯將在目標上運行的內(nèi)核和應(yīng)用程序的構(gòu)建環(huán)境?這是因為目標硬件可能沒有與主機兼容的二進制執(zhí)行級別。包括Gcc:編譯器,可以做成交駐編譯的形式,即在宿主機上開發(fā)編譯目標上可運行的二進制文件。Binutils:一些畏助工具,包括o

3、bjdump(可以反編譯二進制文件),as(匯編編譯器),id(連接器)等等?! db:調(diào)試器,可使用多種交叉方式,gdb-bdm(背景調(diào)試工具),gdbserver(使用以太網(wǎng)絡(luò)調(diào)試)。Glibc-所有用戶應(yīng)用程序都將鏈接到的C庫。避免使用任何C庫函數(shù)的內(nèi)核和其它應(yīng)用程序可以沒有該庫的情況下進行編譯?! ?gòu)建在工具鏈建立了一個交叉編譯器環(huán)境。本地編譯器編譯與本機同類的處理器的指令。交叉編譯器運行在某一種處理器上。卻可以編譯另一種處理器的指令。重頭設(shè)置交叉編譯器工具鏈可不是一項簡單的的任務(wù):它包括下載源代碼、修補補丁,配置、編譯、設(shè)置頭文

4、件、安裝以及很多很多的操作。另外,這一個徹底的的構(gòu)建過內(nèi)存和硬盤的需求是巨大的。如果沒有足夠的內(nèi)存和硬盤空間。在構(gòu)建除段由于相關(guān)性、配置或頭文件設(shè)置等問題會突然冒出許多問題?! ∫虼四軌驈囊蛱鼐W(wǎng)上獲得已預(yù)編譯的二進制文件是一件好事但不太好的一點是,目前它們大多只限于基于ARM的系統(tǒng)。但遲早會改變的)?! ?.配置UCLINUX內(nèi)核和bootloader  配置內(nèi)核的命令是makemenuconfig,會列出一些選項。根據(jù)你的硬件相應(yīng)選取就行了。然后保存,退出,運行makedep,然后再make一下,會生成四個文件。  1.image.glf

5、:ELF格式含調(diào)試信息和romfs的uClinux,可以用gdb裝載調(diào)試運行  2.romfs.ing:romfs的二進制文件  3.linux.bin:不含romfs的uclinux二進制文件  image.bin:linux.bin和romfs.bin合并而成,并多了4個字的校驗,這個文件的內(nèi)容拷貝到ram里后就可以直接從入口運行了。  Bootloader的任務(wù)是初始化芯片和板子,用得比較多的有Blob、Redboot和Bootldr,如果是買的開發(fā)板,開發(fā)商會附送bootloader程序,但發(fā)如果是自己做的板子就麻煩一些,需要根據(jù)硬

6、件修bootloader源碼,然后用前面說的交叉編譯成二進制文件(筆者經(jīng)常用redboot,就是redboot.bin),用燒寫器燒寫的flash里啟動板子。  4.應(yīng)用程序設(shè)計  我們知道,在主流的Linux平臺上,已經(jīng)有了非常豐富的、開源應(yīng)用程序,使得開發(fā)者很容易獲得前人的成果作為參考,編寫更適合自己的程序。然而,對于很多已經(jīng)在標準Linux環(huán)境中工作得很好的程序,并不能直接在uClinux環(huán)境上運行。一方面是由于嵌入式的uCLinux所使用的處理器和普通PC不同,指令集、CPU結(jié)構(gòu)上的差導(dǎo)致uClinux上運行和的程序需要專門為該類型

7、處理器交叉編譯產(chǎn)生:另一方面uCLinux是為了沒有內(nèi)存管理單元(MMU)的處理器、控制器設(shè)計,并做了較大幅度的精簡,所以,在標準Linux上可以作用的一些函數(shù)和系統(tǒng)調(diào)用在uCLinux上有可能就行不通了?! 藴蔐inux是針對有MMU的處理器設(shè)計的。在這種處理器上,虛擬地址被送到MMU,把虛擬地址映射為物理地址。通過賦予每個任務(wù)不同的虛擬一物理地址轉(zhuǎn)換映射,支持不同任務(wù)之間的保護?! CLinux來說,其設(shè)計針對沒有MMU的處理器,不能使用處理器的虛擬內(nèi)存管理技術(shù)。uCLinux仍然采用存儲器的分頁管理。系統(tǒng)在啟動時把實際存儲器進行

8、分頁。在加載應(yīng)用程序時程序分頁加載。但是由于沒有MMU管理,所以實際上uCLinux采用實存儲器管理策略。uCLinux系統(tǒng)對于內(nèi)存的訪問是直接的。所有程序中訪問的地址都是實際的

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。