uCLinux嵌入式系統(tǒng)開發(fā)環(huán)境建立
1.Linux是一種很受歡迎的操作系統(tǒng)
本文引用地址:http://butianyuan.cn/article/150327.htm uClinux這個(gè)英文單詞u 中的表示小Micro. 小的意思,C表示Control,控制的 意思.所以u(píng)Clinux就 是Micro-control-Linux,字面上的理解就是針對(duì)微控制領(lǐng)域而設(shè)計(jì)的Linux系統(tǒng).
uClinux以其優(yōu)異的性能、免費(fèi)開放的代碼等優(yōu)點(diǎn),博得眾多嵌入式開發(fā)者的青睞,和過去基于簡(jiǎn)單RTOS甚至沒有使用任何操作系統(tǒng)的嵌入式程序設(shè)計(jì)相比,基于Linux這樣的成熟的,高效的、健壯的、可靠的、模塊化的、易于配置的操作系統(tǒng)來開發(fā)自己的應(yīng)用程序,無疑能進(jìn)一提高效率,并具有很好的可移植性。基于UCLINUX的嵌入式系統(tǒng)開發(fā)涉及到三個(gè)方面:開發(fā)環(huán)境的建立,配置UCLINUX內(nèi)核和bootloader以及應(yīng)用程序的設(shè)計(jì),本文將從這幾個(gè)方面來闡述的基于UCLINUX的嵌入式系統(tǒng)的設(shè)計(jì)。
開發(fā)環(huán)境的建立也就是工具鏈,設(shè)置工具鏈在主機(jī)機(jī)器上創(chuàng)建一個(gè)用于編譯將在目標(biāo)上運(yùn)行的內(nèi)核和應(yīng)用程序的構(gòu)建環(huán)境?這是因?yàn)槟繕?biāo)硬件可能沒有與主機(jī)兼容的二進(jìn)制執(zhí)行級(jí)別。包括Gcc:編譯器,可以做成交駐編譯的形式,即在宿主機(jī)上開發(fā)編譯目標(biāo)上可運(yùn)行的二進(jìn)制文件。Binutils:一些畏助工具,包括objdump(可以反編譯二進(jìn)制文件),as(匯編編譯器),id(連接器)等等。
Gdb:調(diào)試器,可使用多種交叉方式,gdb-bdm(背景調(diào)試工具),gdbserver(使用以太網(wǎng)絡(luò)調(diào)試)。Glibc-所有用戶應(yīng)用程序都將鏈接到的C庫。避免使用任何C庫函數(shù)的內(nèi)核 和其它應(yīng)用程序可以沒有該庫的情況下進(jìn)行編譯。
構(gòu)建在工具鏈建立了一個(gè)交叉編譯器環(huán)境。本地編譯器編譯與本機(jī)同類的處理器的指令。交叉編譯器運(yùn)行在某一種處理器上。卻可以編譯另一種處理器的指令。重頭設(shè)置交叉編譯器工具鏈可不是一項(xiàng)簡(jiǎn)單的的任務(wù):它包括下載源代碼、修補(bǔ)補(bǔ)丁,配置、編譯、設(shè)置頭文件、安裝以及很多很多的操作。另外,這一個(gè)徹底的的構(gòu)建過內(nèi)存和硬盤的需求是巨大的。如果沒有足夠的內(nèi)存和硬盤空間。在構(gòu)建除段由于相關(guān)性、配置或頭文件設(shè)置等問題會(huì)突然冒出許多問題。
因此能夠從因特網(wǎng)上獲得已預(yù)編譯的二進(jìn)制文件是一件好事但不太好的一點(diǎn)是,目前它們大多 只限于基于ARM的系統(tǒng)。但遲早會(huì)改變的)。
3.配置UCLINUX內(nèi)核和bootloader
配置內(nèi)核 的命令是make menuconfig,會(huì)列出一些選項(xiàng)。根據(jù)你的硬件相應(yīng)選取就行了。然后保存,退出,運(yùn)行make dep,然后再make一下,會(huì)生成四個(gè)文件。
1.image.glf:ELF格式含 調(diào) 試信息和romfs的uClinux,可以用gdb裝載調(diào)試運(yùn)行
2.romfs.ing:romfs的二進(jìn)制文件
3.linux.bin:不含romfs的uclinux二進(jìn)制文件
image.bin:linux.bin和romfs.bin合并而成,并多了4個(gè)字的校驗(yàn),這個(gè)文件的內(nèi)容拷貝到ram里后就可以直接從入口運(yùn)行了。
Bootloader的任務(wù)是初始化芯片和板子,用得比較多的有Blob、Redboot和Bootldr,如果是買的開發(fā)板,開發(fā)商會(huì)附送bootloader程序,但發(fā)如果是自己做的板子就麻煩一些,需要根據(jù)硬件修bootloader源碼,然后用前面說的交叉編譯成二進(jìn)制文件(筆者經(jīng)常用redboot,就是redboot.bin),用燒寫器燒寫的flash里啟動(dòng)板子。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
評(píng)論