技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于ARM的嵌入式Linux應(yīng)用程序開發(fā)研究

基于ARM的嵌入式Linux應(yīng)用程序開發(fā)研究

時(shí)間:2008-12-15 09:25:00來源:ronggang

導(dǎo)語:?在嵌入式領(lǐng)域,ARM已取得了極大的成功,造就了IP核商業(yè)化、市場(chǎng)化的神話。據(jù)統(tǒng)計(jì),全球有103家巨型IT公司在采用ARM技術(shù),20家最大的半導(dǎo)體,一商中有19家是ARM的用戶
0 引 言   當(dāng)今社會(huì),嵌入式系統(tǒng)已經(jīng)滲透到人們工作、生活中的各個(gè)領(lǐng)域,嵌入式處理器已占分散處理器市場(chǎng)份額的94%。而嵌入式Linux系統(tǒng)也蓬勃發(fā)展,不僅繼承了Linux源碼開放、內(nèi)核穩(wěn)定高效、軟件豐富等優(yōu)勢(shì),還具備支持廣泛處理器結(jié)構(gòu)和硬件平臺(tái)、占有空間小、成本低廉、結(jié)構(gòu)緊湊等特點(diǎn)。 1 ARM處理器及開發(fā)板   在嵌入式領(lǐng)域,ARM已取得了極大的成功,造就了IP核商業(yè)化、市場(chǎng)化的神話。據(jù)統(tǒng)計(jì),全球有103家巨型IT公司在采用ARM技術(shù),20家最大的半導(dǎo)體,一商中有19家是ARM的用戶。ARM系列芯片已經(jīng)被廣泛的應(yīng)用于移動(dòng)電活、手持式計(jì)算機(jī)以及各種各樣的嵌入式應(yīng)用領(lǐng)域,成為世界上銷量最大的32位微處理器。ARM已成為業(yè)界實(shí)際的RISC芯片標(biāo)準(zhǔn)。   ARM系列處理器根據(jù)各自特點(diǎn)應(yīng)用于不同領(lǐng)域。從應(yīng)用的角度上ARM芯片選擇的一般原則:MMU;處理器速度;內(nèi)置存儲(chǔ)器容量;USB接口;GPIO數(shù)量;中斷控制器;IIS(integrate interface ofsound)音頻接口;nWAIT信號(hào);RTC(real timeclock);LCD控制器;PWM輸出等各項(xiàng)指標(biāo)。   本文使用的是ARM9,其性能遠(yuǎn)遠(yuǎn)高過ARM7。開發(fā)板使用的是廣州斯道信息技術(shù)有限公司的開發(fā)板,中央處理器是三星公司的S3C2410。ARM9具有以下特點(diǎn):5級(jí)流水線;采用哈佛結(jié)構(gòu);高速緩存和寫緩存的引入;支持MMU。 2嵌入式Linux系統(tǒng)   嵌入式操作系統(tǒng)是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái),它的出現(xiàn)解決了嵌入式軟件開發(fā)標(biāo)準(zhǔn)化的難題。嵌入式系統(tǒng)具有操作系統(tǒng)的最基本的功能。目前主流的嵌入式系統(tǒng)有以下兒種:Linux、VxWorks、QNX、Windows CE、Palm OS。   嵌入式Linux操作系統(tǒng)具有一些獨(dú)特的優(yōu)勢(shì):層次結(jié)構(gòu)及內(nèi)核完全開放;強(qiáng)大的網(wǎng)絡(luò)支持功能;具備一整套工具鏈;廣泛的硬件支持特性。   嵌入式Linux系統(tǒng)有很多種。本文使用的是Red Hat9操作系統(tǒng)。   在安裝有Windows和Linux雙系統(tǒng)的PC上,系統(tǒng)會(huì)以Linux的GRUB作為引導(dǎo)裝入器來選擇啟動(dòng)二者。此時(shí)若直接刪除Linux分區(qū),會(huì)導(dǎo)致系統(tǒng)無法啟動(dòng)Windows或者是需要用行命令才能啟動(dòng)Windows??梢韵仁褂锰摂M機(jī)安裝Linux系統(tǒng),練習(xí)使用,熟悉后再在PC上安裝。 3應(yīng)用程序開發(fā)   一般嵌入式開發(fā)流程如圖1所示。
  這里省略前面三步,從開發(fā)應(yīng)用程序開始。   3.1交叉開發(fā)環(huán)境建立   對(duì)嵌入式系統(tǒng)而言,只裝備必要的資源是前提條件,這也決定了嵌入式應(yīng)用程序的開發(fā)環(huán)境不可能是資源有限的嵌入式系統(tǒng),只能利用資源豐富的PC開發(fā),然后建立交叉開發(fā)平臺(tái)。   交叉編譯器(cross-compiler)是進(jìn)行交叉平臺(tái)開發(fā)的主要軟件工具。它是運(yùn)行在一種處理器體系結(jié)構(gòu)上,但是可以生成在另一種不同的處理器體系結(jié)構(gòu)上運(yùn)行的目標(biāo)代碼的編譯器。 要建立交叉開發(fā)環(huán)境,主要需要幾個(gè)工具包:gcc,glib,binutils,gdb等。一般開發(fā)板都提供這些工具,如果不是使用的開發(fā)板,在網(wǎng)上也是可以下載到全部軟件包的。依次將它們安裝在PC上即可。   Linux的軟件安裝方法與Windows不同。Linux中根據(jù)不同的壓縮打包方式使用不同的命令安裝。在安裝過程中,由于軟件包之間的依賴關(guān)系,系統(tǒng)可能會(huì)警告還有哪些沒有安裝,可以忽略這些警告。   3.2 U-Boot   在U-Boot(UniversalBootloader)之前,先介紹一下Bootloader。簡單的說,Bootloader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前的一段引導(dǎo)程序,類似于PC中的BIOS。通過它,可以完成對(duì)應(yīng)硬件設(shè)備的初始化,并建立內(nèi)存空間的映射圖的功能,為最終調(diào)用系統(tǒng)內(nèi)核做好準(zhǔn)備。   U-Boot是遵循GPL條款的開放源碼項(xiàng)目,它不僅僅支持嵌人式Linux系統(tǒng)的引導(dǎo),U-Boot中Universal的一層含義就是在于U-Boot支持多種嵌入式操作系統(tǒng),就目前來看,U-Boot對(duì)Linux的支持最完善。另外一層含義則是U-Boot支持多種常用系列的處理器。   U-Boot支持的主要功能:系統(tǒng)引導(dǎo);基本輔助功能(操作系統(tǒng)接口功能;可靈活設(shè)置、傳遞多個(gè)關(guān)鍵參數(shù)給操作系統(tǒng);支持目標(biāo)板多種存儲(chǔ)方式;CRC32校驗(yàn));設(shè)備驅(qū)動(dòng);上電自檢功能;特殊功能(XIP內(nèi)核引導(dǎo))。   U-Boot移植主要分為兩步:配置主板和設(shè)置Flash和SDRAM時(shí)序。   3.3嵌入式Linux系統(tǒng)內(nèi)核編譯和移植   嵌入式Linux內(nèi)核的編譯都是通過make的不同命令實(shí)現(xiàn)的,一般分為3步:(1)內(nèi)核配置。主要是用戶用于為目標(biāo)板選擇處理器架構(gòu)的選項(xiàng)。內(nèi)核支持4種方法的配置,雖然界面不同,但功能是一樣的,其中make menuconfig使用最廣泛;(2)建立依賴關(guān)系。在第一次編譯時(shí)發(fā)生,產(chǎn)生".de-pend"文件,運(yùn)行"make dep"即可;(3)建立內(nèi)核。這里建立的是壓縮的內(nèi)核映像,使用"make zIm-age"或"make bzImage"。這樣就完成了編譯,下載在開發(fā)板即可。   一般來說與開發(fā)板通信有3種方式:網(wǎng)絡(luò)下載(tftp,ftp等),串口下載和USB下載。用tftp下載,需要配置Linux下的tftp服務(wù),然后將PC和開發(fā)板直連線(非網(wǎng)線)即可;用串口下載,需要配置Linux下的串日通信工具M(jìn)inicom。配置的主要是一些重要參數(shù),如波特率。   但是只有系統(tǒng)內(nèi)核是不夠的,要使系統(tǒng)正常啟動(dòng),還需要加載文件系統(tǒng),所以需要制作文件系統(tǒng)。可以手工制作,但是工作量太大,一般是把現(xiàn)有文件系統(tǒng)加載到目標(biāo)板,包括制作文件系統(tǒng)鏡像和用NFS加載文件系統(tǒng)方法。   開發(fā)板上一般已經(jīng)燒寫好了嵌入式系統(tǒng)內(nèi)核鏡像,文件系統(tǒng)和前面講的U-Boot,在掌握了燒寫方法后,可以自己下載。   3.4源程序的獲得、編譯和調(diào)試   由于Linux是開源軟件,所以運(yùn)行在其下的應(yīng)用軟件也是開源軟件,不管是哪一類的都免費(fèi)獲得源代碼??梢灾苯釉谝延械脑创a上進(jìn)行修改得到符合要求的代碼。論文中使用的就是已有的源代碼,如圖2所示。
  Linux操作系統(tǒng)支持匯編,C,C++,Basic,F(xiàn)ortran,Pascal,JAVA,PHP等多種編程語言。其下的文本編輯器是Vi和Emacs,二者均有強(qiáng)大的編輯功能。圖形界面的編程用的是Qt或是MiniGUI。利用以上軟件,跟在Windows和其他操作系統(tǒng)下的軟件編寫方法完全相同。   編寫軟件的過程與在其他系統(tǒng)下沒有什么不同,不同的地方在與編譯和調(diào)試。嵌入式中稱之為交叉編譯和交叉調(diào)試。   交叉編譯就是將在PC上編寫好的源代碼經(jīng)過編譯、鏈接生成可以在嵌入式系統(tǒng)上運(yùn)行的代碼,如圖2所示。   在交叉調(diào)試中,調(diào)試器和被調(diào)試程序分別在PC系統(tǒng)和嵌入式系統(tǒng)中,這是與一般調(diào)試不同的地方。交叉調(diào)試一般分為軟件調(diào)試和硬件調(diào)試。   軟件調(diào)試插入調(diào)試樁的方式進(jìn)行。典型的是GDB調(diào)試器,它分為GdbServer和GdbClient,前者作為調(diào)試樁安裝在arm的嵌入式系統(tǒng)中,后者駐于本地PC中,二者可通過串口、網(wǎng)口、并口通信。   硬件調(diào)試一般都使用的是仿真器,常用的如ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。硬件調(diào)試功能更強(qiáng)大,性能更優(yōu)秀,但是有的價(jià)格昂貴,額外的設(shè)備增加了成本。而ARM的JTAG端口實(shí)現(xiàn)在CPU內(nèi)部調(diào)試,通過端口發(fā)送命令和接收信息。   JTAG采用的主要技術(shù)為邊界掃描技術(shù),它的基本思想就是在靠近芯片的輸入輸出管腳上增加一個(gè)移位寄存器單元。當(dāng)芯片處于調(diào)試狀態(tài)時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實(shí)現(xiàn)對(duì)芯片輸入輸出信號(hào)的觀察和控制,它提供了一個(gè)便捷的方式用于觀測(cè)和控制所需要調(diào)試的芯片。通過JTAG接口可以方便地對(duì)目標(biāo)系統(tǒng)進(jìn)行測(cè)試,同時(shí),還可以實(shí)現(xiàn)Flash的編程,是非常受人歡迎的調(diào)試方式。 4結(jié) 論   主機(jī)從網(wǎng)絡(luò)下載mp3格式歌曲,通過串口(或tftp)傳送到開發(fā)板上,用經(jīng)過調(diào)試的播放器,結(jié)合教研室開發(fā)的功率放大器,很好的實(shí)現(xiàn)了播放音頻的功能。   在此基礎(chǔ)上,還可以進(jìn)一步開發(fā)視頻播放功能。除了播放器應(yīng)用軟件,還可以根據(jù)存儲(chǔ)器的大小增加其他應(yīng)用程序。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:鋁箔軋機(jī)電液伺服系統(tǒng)的調(diào)試

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)