![畢業(yè)設(shè)計(jì)(論文)基于mini2440的mp3音樂(lè)播放器_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad1.gif)
![畢業(yè)設(shè)計(jì)(論文)基于mini2440的mp3音樂(lè)播放器_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad2.gif)
![畢業(yè)設(shè)計(jì)(論文)基于mini2440的mp3音樂(lè)播放器_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad3.gif)
![畢業(yè)設(shè)計(jì)(論文)基于mini2440的mp3音樂(lè)播放器_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad4.gif)
![畢業(yè)設(shè)計(jì)(論文)基于mini2440的mp3音樂(lè)播放器_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad/0c68b67a-20ee-4cf8-8ff1-906b5d9409ad5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 工程組號(hào) 9 密 級(jí) 公 開(kāi) X X X X X X X X X X X學(xué)校二一一屆畢業(yè)設(shè)計(jì)文檔 項(xiàng) 目 名 稱(chēng) 基于mini2440的mp3播放器 專(zhuān) 業(yè) 嵌入式軟件技術(shù) 指 導(dǎo) 教 師 工程組成員 二一一年六月 摘 要本文設(shè)計(jì)了一種基于mini2440的MP3音樂(lè)播放器。設(shè)計(jì)中采用廣州友善之臂科技提供的mini2440進(jìn)行控制,利用U盤(pán)和SD卡作為存儲(chǔ)器芯片,通過(guò)mini2440上的6個(gè)按鍵來(lái)控制播放。由于Linux具有可移植度高、自由、免費(fèi)等特性,最近幾年,它在移動(dòng)設(shè)備和個(gè)人電腦領(lǐng)域的應(yīng)用也越來(lái)越廣泛,因此我們選擇Linux操作系統(tǒng),本文就以linux系統(tǒng)的移植為核心來(lái)描述一個(gè)MP3播
2、放器實(shí)現(xiàn)的整個(gè)過(guò)程。目 錄前 言4第一章 系統(tǒng)方案設(shè)計(jì)與選型論證81.1 硬件設(shè)計(jì)方案81.2 軟件設(shè)計(jì)方案10第二章 搭建嵌入式開(kāi)發(fā)環(huán)境13 在windows中配置虛擬機(jī)13 在虛擬機(jī)中安裝linux系統(tǒng)24其它常用工具的介紹與安裝47 Linux下建立建立交叉編譯環(huán)境.48 第三章 Linux系統(tǒng)移植513.1 Linux源碼修改513.2 相關(guān)驅(qū)動(dòng)移植643.2.1 按鍵驅(qū)動(dòng)移植643.2.2 添加yaffs2文件系統(tǒng)到內(nèi)核733.2.3 移植UDA1341音頻驅(qū)動(dòng)773.2.4 SD卡驅(qū)動(dòng)移植823.2.5 USB驅(qū)動(dòng)移植843.3 編譯鏡像883.4 構(gòu)建文件系統(tǒng)88第四章 應(yīng)用程序
3、編程1014.1 madplay的下載與安裝1014.2 基于Mini2440的按鍵控制108結(jié)束語(yǔ)110謝 辭111附 錄112參考文獻(xiàn)114前 言隨著計(jì)算機(jī)技術(shù)、微處理器技術(shù)、電子技術(shù)、通信技術(shù)、集成電路技術(shù)的開(kāi)展,嵌入式系統(tǒng)已成為計(jì)算機(jī)技術(shù)和應(yīng)用領(lǐng)域的一個(gè)重要組成局部,嵌入式產(chǎn)品在人們的日常生活中也扮演著越來(lái)越重要的角色。目前,計(jì)算機(jī)和網(wǎng)絡(luò)已經(jīng)全面滲透到日常生活的每一個(gè)角落。對(duì)于我們每個(gè)人來(lái)說(shuō),需要的已經(jīng)不再僅僅是那種放在桌上處理文檔、進(jìn)行工作管理和生產(chǎn)控制的計(jì)算機(jī)機(jī)器。任何一個(gè)普通人都可能擁有從小到大的各種使用嵌入式技術(shù)的電子產(chǎn)品,小到MP3、PDA等微型數(shù)字化產(chǎn)品,大到網(wǎng)絡(luò)家電、智能
4、家電、車(chē)載電子設(shè)備等。目前,各種各樣的新型嵌入式系統(tǒng)設(shè)備在應(yīng)用數(shù)量上已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)了通用計(jì)算機(jī)。在工業(yè)和效勞領(lǐng)域中,使用嵌入式技術(shù)的數(shù)字機(jī)床、智能工具、工業(yè)機(jī)器人、效勞機(jī)器人正在逐漸改變著傳統(tǒng)的工業(yè)生產(chǎn)和效勞方式。MP3是嵌入式的最主要應(yīng)用之一,高端的MP3已經(jīng)不僅僅著眼于實(shí)現(xiàn)音樂(lè)播放這一簡(jiǎn)單功能,而是同時(shí)具備了文本瀏覽、圖片瀏覽、甚至視頻播放等強(qiáng)大功能。本文重點(diǎn)討論了基于mini2440的MP3的功能的實(shí)現(xiàn),包括開(kāi)發(fā)環(huán)境建立、內(nèi)核配置與編譯、按鍵控制等一系列詳細(xì)過(guò)程。近幾年,嵌入式系統(tǒng)技術(shù)得到了廣泛的應(yīng)用,普適計(jì)算、無(wú)線傳感器網(wǎng)絡(luò)、可重構(gòu)計(jì)算等新興技術(shù)的出現(xiàn)又為嵌入式系統(tǒng)技術(shù)的研究與應(yīng)用注入了
5、新的活力。智能 、信息家電、汽車(chē)電子、家用機(jī)器人嵌入式系統(tǒng)已“無(wú)處不在。嵌入式系統(tǒng)是當(dāng)今最熱門(mén)的概念之一。作為一個(gè)系統(tǒng),往往是在硬件和軟件雙螺旋式交替開(kāi)展的支撐下逐漸趨于穩(wěn)定和成熟,嵌入式系統(tǒng)也不例外。嵌入式系統(tǒng)的最初應(yīng)用時(shí)基于單片機(jī)的。20世紀(jì)70年代單片機(jī)的出現(xiàn),使得汽車(chē)、家電、工業(yè)機(jī)器、通信裝置以及成千上萬(wàn)種產(chǎn)品可以通過(guò)內(nèi)嵌電子裝置來(lái)獲得更佳的使用性能,更容易使用、更快、更廉價(jià)。這些裝置已經(jīng)初步具備了嵌入式的應(yīng)用特點(diǎn),但是這時(shí)的應(yīng)用只是使用8位的芯片,執(zhí)行一些單線程的程序,還談不上系統(tǒng)的概念。從20世紀(jì)80年代早期開(kāi)始,嵌入式系統(tǒng)的程序員開(kāi)始用商業(yè)級(jí)的“操作系統(tǒng)編寫(xiě)嵌入式應(yīng)用軟件,這使得
6、開(kāi)發(fā)人員可以進(jìn)一步縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)本錢(qián)并提高開(kāi)發(fā)效率。1981年,Ready System開(kāi)發(fā)出世界上第一個(gè)商業(yè)嵌入式實(shí)時(shí)內(nèi)核VTRX32。這個(gè)實(shí)時(shí)內(nèi)核包含了許多傳統(tǒng)操作系統(tǒng)的特征,包括任務(wù)管理、任務(wù)間通信、同步與相互互斥、中斷支持和內(nèi)存管理等功能。此后,一些公司也紛紛推出了自己的嵌入式操作系統(tǒng),如Integrated System IncorporationISI的PSOS、WindRiver的VxWorks和QNX公司的QNX等。這些嵌入式操作系統(tǒng)都具有嵌入式的典型特點(diǎn):它們均采用占先式的調(diào)度,響應(yīng)的時(shí)間很短,任務(wù)執(zhí)行的時(shí)間可以確定;系統(tǒng)內(nèi)核很小,具有可裁剪性、可擴(kuò)充性和可移植性,可
7、以移植到各種處理器上;較強(qiáng)的實(shí)時(shí)性和可靠性,適合嵌入式應(yīng)用。這些嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)的出現(xiàn),使得應(yīng)用開(kāi)發(fā)人員從小范圍的開(kāi)發(fā)中解放出來(lái),同時(shí)也促使嵌入式有了更為廣闊的應(yīng)用空間。20世紀(jì)90年代以后,隨著對(duì)實(shí)時(shí)性要求的提高,軟件規(guī)模不斷上升,實(shí)時(shí)內(nèi)核逐漸開(kāi)展為實(shí)時(shí)多任務(wù)操作系統(tǒng)RTOS,并作為一種軟件平臺(tái)逐步成為目前國(guó)際嵌入式操作系統(tǒng)的主流。這時(shí)更多的公司看到了嵌入式系統(tǒng)的廣闊的開(kāi)展前景,開(kāi)始大力開(kāi)展自己的嵌入式操作系統(tǒng)。除了上面的幾家老牌公司以外,還出現(xiàn)了Palm OS、Windows CE、嵌入式Linux、Lynx、Nucleus以及國(guó)內(nèi)的Hopen、Delta OS等嵌入式操作系統(tǒng)。隨
8、著嵌入式技術(shù)的開(kāi)展前景日益廣闊,相信會(huì)有更多的嵌入式操作系統(tǒng)軟件出現(xiàn)。根據(jù)IEEE國(guó)際電氣和電子工程師協(xié)會(huì)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車(chē)間運(yùn)行的裝置(原文為devices used to control,monitor,or assist the operation of equipment,machinery or plants)。這主要是從應(yīng)用上加以定義的,從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。不過(guò),上述定義并不能充分表達(dá)出嵌入式系統(tǒng)的精髓。目前,國(guó)內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為根底,軟硬件可剪裁,適應(yīng)應(yīng)用系統(tǒng)
9、對(duì)功能、可靠性、本錢(qián)、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。一般而言,嵌入式系統(tǒng)的構(gòu)架可以分成4個(gè)局部,即處理器、存儲(chǔ)器、輸入/輸出(I/O)和軟件由于多數(shù)嵌入式設(shè)備的應(yīng)用軟件和操作系統(tǒng)都是緊密結(jié)合的,在這里對(duì)其不加區(qū)分,這也是嵌入式系統(tǒng)和Windows系統(tǒng)的最大區(qū)別。從前面對(duì)嵌入式系統(tǒng)所作的定義可以看出嵌入式系統(tǒng)的幾個(gè)重要特征。 (1) 系統(tǒng)內(nèi)核小,由于嵌入式系統(tǒng)一般應(yīng)用于小型電子裝置,系統(tǒng)資源相對(duì)有限,所以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多。例如ENEA公司的OSE分布式系統(tǒng),內(nèi)核只有5KB,而Windows的內(nèi)核那么要大得多。 (2) 專(zhuān)用性強(qiáng)。嵌入式系統(tǒng)的個(gè)性化很強(qiáng),其中的軟件系統(tǒng)和硬件的結(jié)
10、合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植,即使在同一品牌,同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進(jìn)行修改。同時(shí)針對(duì)不同的任務(wù),往往需要對(duì)系統(tǒng)進(jìn)行較大更改,程序的編譯下載要和系統(tǒng)相結(jié)合,這種修改和通用軟件的升級(jí)是完全不同的概念。 (3) 系統(tǒng)精簡(jiǎn)。嵌入式系統(tǒng)一般沒(méi)有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)別,不要求其功能設(shè)計(jì)及實(shí)現(xiàn)上過(guò)于復(fù)雜,這樣一方面利于控制系統(tǒng)本錢(qián),同時(shí)也利于實(shí)現(xiàn)系統(tǒng)平安。 (4) 高實(shí)時(shí)性的操作系統(tǒng)軟件是嵌入式軟件的根本要求。而且軟件要求固化存儲(chǔ),以提高速度。軟件代碼要求高質(zhì)量和高可靠性。 (5) 嵌入式軟件開(kāi)發(fā)要想走向標(biāo)準(zhǔn)化,就必須使用多任務(wù)的操作系統(tǒng)。嵌入式系統(tǒng)的應(yīng)用程序
11、可以沒(méi)有操作系統(tǒng)而直接在芯片上運(yùn)行;但是為了合理地調(diào)度多任務(wù),利用系統(tǒng)資源、系統(tǒng)函數(shù)以及專(zhuān)家?guī)旌瘮?shù)接口,用戶必須自行選配RTOS開(kāi)發(fā)平臺(tái),這樣才能保證程序執(zhí)行的實(shí)時(shí)性、可靠性,并減少開(kāi)發(fā)時(shí)間,保障軟件質(zhì)量。嵌入式系統(tǒng)的應(yīng)用領(lǐng)域主要有以下幾個(gè)方面:(1) 工業(yè)控制?;谇度胧叫酒墓I(yè)自動(dòng)化設(shè)備具有很大的開(kāi)展空間,目前已經(jīng)有大量的8位、16位、32位嵌入式微控制器應(yīng)用于數(shù)控機(jī)床、電力系統(tǒng)、電網(wǎng)平安、電網(wǎng)設(shè)備檢測(cè)、石油化工系統(tǒng)等領(lǐng)域。就傳統(tǒng)的工業(yè)控制產(chǎn)品而言,低端型往往采用的是8位單片機(jī),但是隨著技術(shù)的開(kāi)展,32位、64位的微處理器逐漸成為工業(yè)控制設(shè)備的核心,在未來(lái)幾年內(nèi)必將獲得更大的開(kāi)展。(2)
12、 交通管理。在車(chē)輛導(dǎo)航、流量控制、信息檢測(cè)與汽車(chē)效勞方面,嵌入式系統(tǒng)技術(shù)已經(jīng)獲得了廣泛的應(yīng)用,內(nèi)嵌GPS模塊、GSM模塊的移動(dòng)定位終端已經(jīng)在各種運(yùn)輸行業(yè)獲得了成功的使用。目前GPS設(shè)備已經(jīng)從尖端產(chǎn)品進(jìn)入了普通百姓的家庭,很多私人汽車(chē)上都配備了GPS導(dǎo)航和定位設(shè)備。(3) 信息家電。信息家電將成為嵌入式系統(tǒng)最大的應(yīng)用領(lǐng)域,冰箱、空調(diào)等的網(wǎng)絡(luò)化、智能化將引領(lǐng)人們的生活步入一個(gè)嶄新的空間。即使不在家里,也可以通過(guò) 線、網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程控制。在這些設(shè)備中,嵌入式系統(tǒng)將大有用武之地。(4) 家庭智能管理系統(tǒng)。水、電、煤氣表的遠(yuǎn)程自動(dòng)抄表和平安防火、防盜系統(tǒng),其中嵌有的專(zhuān)用控制芯片將代替?zhèn)鹘y(tǒng)的人工檢查,并實(shí)現(xiàn)
13、更高、更準(zhǔn)確和更平安的性能。目前在效勞領(lǐng)域中,一些手持設(shè)備已經(jīng)表達(dá)出了嵌入式系統(tǒng)的優(yōu)勢(shì)。(5) POS網(wǎng)絡(luò)及電子商務(wù)。公共交通無(wú)接觸智能卡發(fā)行系統(tǒng)、公用 卡發(fā)行系統(tǒng)、自動(dòng)售貨機(jī)、各種智能ATM終端將全面進(jìn)入人們的生活,到時(shí)手持一卡就可以行遍天下。(6) 環(huán)境監(jiān)測(cè)。環(huán)境監(jiān)測(cè)包括水文資料實(shí)時(shí)監(jiān)測(cè)、防洪體系及水土質(zhì)量檢測(cè)、堤壩平安、地震監(jiān)測(cè)網(wǎng)、實(shí)時(shí)天氣信息網(wǎng)、水源和空氣污染監(jiān)測(cè)。在很多環(huán)境惡劣、地礦復(fù)雜的地區(qū),嵌入式系統(tǒng)將實(shí)現(xiàn)無(wú)人監(jiān)測(cè)。(7) 機(jī)器人。嵌入式芯片的開(kāi)展將使機(jī)器人在微型化、高智能方面優(yōu)勢(shì)更加明顯,同事會(huì)大幅度降低機(jī)器人的價(jià)格,使其在工業(yè)領(lǐng)域和效勞領(lǐng)域獲得更廣泛的應(yīng)用。信息時(shí)代、數(shù)字時(shí)代
14、的到來(lái)為嵌入式產(chǎn)品應(yīng)用帶來(lái)了巨大的開(kāi)展契機(jī),為嵌入式市場(chǎng)展現(xiàn)了美好的前景,從中我們可以看出嵌入式系統(tǒng)應(yīng)用未來(lái)的開(kāi)展趨勢(shì)。(1) 為設(shè)備網(wǎng)絡(luò)通信提供標(biāo)準(zhǔn)接口。為適應(yīng)嵌入式分布處理結(jié)構(gòu)和應(yīng)用上網(wǎng)需求,面向21世紀(jì)的嵌入式系統(tǒng)要求配備標(biāo)準(zhǔn)的一種或多種網(wǎng)絡(luò)通信接口。(2) 支持小型電子設(shè)備實(shí)現(xiàn)小尺寸、微功耗和低本錢(qián)。為滿足這種特性,要求嵌入式產(chǎn)品設(shè)計(jì)者相應(yīng)降低處理器的性能,限制內(nèi)存容量和復(fù)用接口芯片。(3) 提供精巧的多媒體人機(jī)界面。嵌入式設(shè)備之所以為億萬(wàn)用戶樂(lè)于接受,重要原因之一是它們對(duì)使用者的親和力以及優(yōu)美的人機(jī)交互界面。(4) 嵌入式網(wǎng)絡(luò)。隨著信息時(shí)代的到來(lái),Internet技術(shù)已進(jìn)入人們?nèi)粘I?/p>
15、活中的各個(gè)領(lǐng)域,嵌入式網(wǎng)絡(luò)應(yīng)運(yùn)而生。從而在更好的利用Internet龐大的信息資源的同時(shí),也實(shí)現(xiàn)了嵌入式系統(tǒng)功能方面的一個(gè)飛躍。第一章 系統(tǒng)方案設(shè)計(jì)與選型論證硬件設(shè)計(jì)方案 方案一:采用高性能單片機(jī)作為主控平臺(tái),由于單片機(jī)自帶的數(shù)據(jù)存儲(chǔ)或是程序存儲(chǔ)區(qū)一般大小只有幾十KB,已經(jīng)很難滿足存儲(chǔ)MP3歌曲的需要,并且在單片機(jī)的數(shù)據(jù)存儲(chǔ)區(qū)或是程序存儲(chǔ)區(qū),寫(xiě)入數(shù)據(jù)十分不方便,因此我們選擇用SD卡作為外存儲(chǔ)設(shè)備,SD卡的容量大,一般在幾百兆到幾個(gè)G不等,并且價(jià)格低廉,是大容量存儲(chǔ)設(shè)備的首選,SD卡采用SPI的通信方式與單片機(jī)相連,單片機(jī)從SD卡讀取數(shù)據(jù)后,直接送至音頻解碼芯片進(jìn)行解碼,然后在音頻解碼電路中進(jìn)行
16、解碼輸出,同時(shí),單片機(jī)需通過(guò)HD7279外接鍵盤(pán),并設(shè)計(jì)定時(shí)器中斷來(lái)定時(shí)掃描鍵盤(pán),以實(shí)現(xiàn)通過(guò)鍵盤(pán)與用戶的交互,來(lái)控制音頻輸出。為了實(shí)時(shí)顯示相關(guān)MP3歌曲播放信息,如歌曲名,歌曲長(zhǎng)度等,通過(guò)外接液晶屏來(lái)實(shí)現(xiàn)。相關(guān)系統(tǒng)框圖如圖1.1所示。SD卡大容量存儲(chǔ)設(shè)備高性能單片機(jī)液晶屏顯示鍵盤(pán)輸入音頻解碼電路音箱輸出圖1.1 方案一系統(tǒng)框圖 方案二:采用mini2440開(kāi)發(fā)板,mini2440是廣州友善之臂科技開(kāi)發(fā)的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái),本開(kāi)發(fā)板采用ARM9系列芯片S3C2440作為主控芯片,搭配3.2英寸液晶觸摸屏,以及自帶音頻解碼芯片,配有豐富的硬件接口,是當(dāng)今最熱門(mén)的開(kāi)發(fā)開(kāi)發(fā)平臺(tái)之一。該開(kāi)發(fā)板可以實(shí)現(xiàn)車(chē)
17、載GPS,以及MP3音樂(lè)播放器,MP4視頻播放器等高端消費(fèi)電子產(chǎn)品。用本開(kāi)發(fā)板實(shí)現(xiàn)MP3播放器的整體思路是,在移植操作系統(tǒng)的根底上,只需添加USB驅(qū)動(dòng)或SD卡相關(guān)驅(qū)動(dòng)和液晶觸摸屏的相關(guān)驅(qū)動(dòng),便可以輕松掛載U盤(pán)或SD卡外設(shè),實(shí)現(xiàn)U盤(pán)或SD卡中文件的快速讀取,并通過(guò)相關(guān)軟件設(shè)計(jì)出又好的圖形用戶接口,用戶只需通過(guò)觸摸屏幕,便可實(shí)現(xiàn)和平臺(tái)的交互。并且,TQ2440開(kāi)發(fā)板自帶音頻解碼芯片UDA1341,能夠完全勝任MP3文件的解碼工作,該方案的系統(tǒng)框圖如圖1.2所示。SD卡或U盤(pán)大容量存儲(chǔ)設(shè)備TQ2440開(kāi)發(fā)板液晶觸摸屏音頻解碼電路音箱輸出顯 示 輸 出控 制 輸 入圖1.2 方案二系統(tǒng)框圖 方案論證:
18、方案一硬件本錢(qián)低廉,實(shí)現(xiàn)簡(jiǎn)單,但是單片機(jī)處理能力有限,對(duì)于高碼率的MP3歌曲以及視頻播放就顯得力不從心。方案二硬件本錢(qián)高,但是系統(tǒng)擴(kuò)展性強(qiáng),不只可以通過(guò)相關(guān)軟件設(shè)計(jì)出友好的界面以實(shí)現(xiàn)MP3的歌曲播放,還可以進(jìn)一步播放視頻,甚至可以實(shí)現(xiàn)網(wǎng)頁(yè)瀏覽等高端功能。綜合比擬以上三種方案,卻頂采用方案二。軟件設(shè)計(jì)方案 方案一:不帶任何操作系統(tǒng),在mini2440上直接開(kāi)發(fā)基于硬件層的程序,程序中同時(shí)實(shí)現(xiàn)數(shù)據(jù)的讀取、信息輸出、指令輸入、音頻解碼等工作。該方案同選擇單片機(jī)作為硬件平臺(tái)類(lèi)似,但是因?yàn)锳RM9芯片S3C2440的性能遠(yuǎn)遠(yuǎn)高于高性能單片機(jī),所以完全能夠完成高碼率音頻解碼,以及信息輸出等功能。軟件系統(tǒng)結(jié)
19、構(gòu)如圖1.3所示。系統(tǒng)硬件層數(shù)據(jù)讀取顯示輸出控制輸入音頻解碼圖1.3 方案一 無(wú)操作系統(tǒng)的結(jié)構(gòu)框圖 方案二:采用MicroSoft公司的Windows CE操作系統(tǒng)。Windows CE 關(guān)于 VC+ 5.0 開(kāi)發(fā)系統(tǒng)嵌入式工具包,提供系統(tǒng)庫(kù)、工具、文本和樣本代碼,以使 OEMS 能夠?qū)μ囟ǖ挠布脚_(tái)使 Windows CE 標(biāo)準(zhǔn)定制。在應(yīng)用程序開(kāi)發(fā)方面,使用標(biāo)準(zhǔn)Win32 API子集,很多Windows程序可以方便的移植到CE上,還支持.net等語(yǔ)言。在底層開(kāi)發(fā)方面CE文檔比擬完善,MSDN提供了詳細(xì)的參考資料,并且在應(yīng)用程序開(kāi)發(fā)方面,都有完善的IDE,開(kāi)發(fā)難度低。結(jié)構(gòu)框圖如圖1.4所示。標(biāo)
20、準(zhǔn)開(kāi)發(fā)板配置文件設(shè)備驅(qū)動(dòng)BootLoadr板級(jí)支持包BSP圖1.4 Win CE系統(tǒng)結(jié)構(gòu)框圖 方案三:采用開(kāi)源的Linux系統(tǒng)。Linux操作系統(tǒng)具有諸多優(yōu)點(diǎn),并且內(nèi)核可裁剪,在滿足系統(tǒng)要求的同時(shí),具有高度的可移植性,由于嵌入式設(shè)備硬件平臺(tái)的多樣性,CPU芯片的快速更新,嵌入式操作系統(tǒng)要求支持常用的嵌入式CPU,如X86, ARM, MIPS, POWERPC等,并具有良好的可移植性。另外還需要支持種類(lèi)繁多的外部設(shè)備。Linux支持以上幾乎所有的主流芯片,并且還在不斷的被移植到新的芯片上,嵌入式系統(tǒng)具有本錢(qián)敏感性,處理器速度較低 ,存儲(chǔ)器空間較少,這要求嵌入式OS體積小,速度快。Linux體系
21、結(jié)構(gòu)比擬靈活,易于裁減,可以小到2M flash,4M RAM?;贚inux的操作系統(tǒng)結(jié)構(gòu)框圖如圖1.5所示。系統(tǒng)硬件層設(shè)備驅(qū)動(dòng):SD卡、UDA1341系統(tǒng)內(nèi)核應(yīng)用層:Qt、madplay圖1.5 Linux系統(tǒng)結(jié)構(gòu)框圖 方案論證:方案一不需要移植系統(tǒng),但是卻要面對(duì)硬件層進(jìn)行編程,必須了解所用硬件的所有接口信息和特性,所有控制程序必須自行編寫(xiě),工作量大。方案二中采用的Windows CE系統(tǒng),目前并沒(méi)有免費(fèi)版本,如需使用,那么必須支付一定的費(fèi)用,增加了系統(tǒng)開(kāi)發(fā)本錢(qián)。方案三采用開(kāi)源的Linux系統(tǒng),不需要額外支付系統(tǒng)費(fèi)用,并且具有高度可移植性與可裁剪性,綜上所述,確定采用方案三。第二章 搭建嵌
22、入式開(kāi)發(fā)環(huán)境在windows中配置虛擬機(jī)由于Linux的兼容性差,目前很多常用軟件并不支持在Linux平臺(tái)上運(yùn)行,這就導(dǎo)致如果直接安裝Linux,那么在Linux環(huán)境中,將會(huì)有很多不便。因此,我們?cè)诖瞬捎锰摂M機(jī)下安裝Linux的方案。虛擬機(jī)的工具我們選擇Vmware Workstation。VMware Workstation 允許操作系統(tǒng)(OS)和應(yīng)用程序(Application)在一臺(tái)虛擬機(jī)內(nèi)部運(yùn)行。虛擬機(jī)是獨(dú)立運(yùn)行主機(jī)操作系統(tǒng)的離散環(huán)境。在 VMware Workstation中,你可以在一個(gè)窗口中加載一臺(tái)虛擬機(jī),它可以運(yùn)行自己的操作系統(tǒng)和應(yīng)用程序。你可以在運(yùn)行于桌面上的多臺(tái)虛擬機(jī)之間切
23、換,通過(guò)一個(gè)網(wǎng)絡(luò)共享虛擬機(jī)(例如一個(gè)公司局域網(wǎng)),掛起和恢復(fù)虛擬機(jī)以及退出虛擬機(jī) 這一切不會(huì)影響你的主機(jī)操作和任何操作系統(tǒng)或者它正在運(yùn)行的應(yīng)用程序。 VMware Workstation 是一款功能強(qiáng)大的桌面虛擬計(jì)算機(jī)軟件,提供用戶可在單一的桌面上同時(shí)運(yùn)行不同的操作系統(tǒng),和進(jìn)行開(kāi)發(fā)測(cè)試部署新的應(yīng)用程序的最正確解決方案。VMware Workstation 可在一部實(shí)體機(jī)器上模擬完整的網(wǎng)絡(luò)環(huán)境,以及可便于攜帶的虛擬機(jī)器,其更好的靈活性與先進(jìn)的技術(shù)勝過(guò)了市面上其他的虛擬計(jì)算機(jī)軟件。對(duì)于企業(yè)的 IT 開(kāi)發(fā)人員和系統(tǒng)管理員而言,VMware在虛擬網(wǎng)路,實(shí)時(shí)快照,拖曳共享文件夾,支持PXE 等方面的特點(diǎn)
24、使它成為必不可少的工具。本設(shè)計(jì)中將選用VMware Workstation 6.5版本進(jìn)行安裝介紹。 首先安裝虛擬機(jī)工作站,它的安裝方法跟普通的軟件安裝沒(méi)什么區(qū)別,只要雙擊可執(zhí)行文件Vmware_WorkStation_6.5.exe,然后按照提示一步一步做就行了,下面主要介紹一下在虛擬機(jī)工作站中新建一個(gè)虛擬機(jī)以及在虛擬機(jī)上安裝Linux系統(tǒng)的過(guò)程。1) 首先運(yùn)行虛擬機(jī)工作站,如圖2-1所示。 圖2-1 虛擬機(jī)工作站2) 點(diǎn)擊New Virtual Machine的圖標(biāo),出現(xiàn)如圖2-2所示的界面。 圖2-2 新建虛擬機(jī)向?qū)?) 選擇Typical,點(diǎn)擊Next,在出現(xiàn)的界面(圖2-3)中單擊B
25、rowse,選中所要安裝系統(tǒng)的光盤(pán)映像文件()。圖2-3 選擇安裝映像4) 點(diǎn)擊Next,選擇Linux選項(xiàng),如圖2-4所示。 圖2-4 選擇要安裝的系統(tǒng)5) 點(diǎn)擊Next,設(shè)置Linux的安裝目錄,如圖2-5所示。 圖2-5 設(shè)置安裝目錄6) 點(diǎn)擊Next,設(shè)置虛擬機(jī)占用的最大硬盤(pán)空間,默認(rèn)為8G,如果你的主機(jī)硬盤(pán)夠大,可適當(dāng)設(shè)大一點(diǎn),免得開(kāi)發(fā)過(guò)程受硬盤(pán)空間限制,此處將其設(shè)置為20G,如圖2-6所示。 圖 2-6 設(shè)置虛擬機(jī)硬盤(pán)最大容量7) 單擊Next,進(jìn)入2-7所示的界面,可以看到硬盤(pán)容量是20G,默認(rèn)的內(nèi)存大小是512M,網(wǎng)絡(luò)連接方式是NAT,還有CD/DVD驅(qū)動(dòng)、USB控制器等,如果
26、不需要更改這些配置或者增加其他的硬件設(shè)備,到這一步就可以單擊“Finish 圖2-7 配置向?qū)瓿山缑嫒绻€更改配置(如改變內(nèi)存大小),或者增加一個(gè)硬件設(shè)備(如串口),那就單擊“Customize Hardware,這是會(huì)出現(xiàn)如圖2-8所示的配置界面,下面將各局部的配置截圖做如下說(shuō)明。 內(nèi)存配置。內(nèi)存配置成512M差不多了,不過(guò)要配得比你主機(jī)的內(nèi)存小,如果你的主機(jī)內(nèi)存為2G,這里配置1G左右就行了(如圖2-8所示)。 圖2-8 內(nèi)存配置 在虛擬機(jī)的光驅(qū)中參加虛擬機(jī)系統(tǒng)的安裝映像。在虛擬機(jī)的光驅(qū)中參加虛擬機(jī)系統(tǒng)的安裝映像就和在無(wú)聊主機(jī)的光驅(qū)中插入系統(tǒng)安裝光盤(pán)是一個(gè)概念,這一步需要勾上“Conne
27、ct at power on選項(xiàng),如圖2-9所示。 圖2-9 安裝映像配置 配置虛擬機(jī)的網(wǎng)絡(luò)連接方式。網(wǎng)絡(luò)連接方式共有四種可以選擇,選擇NAT,如圖2-10所示。 圖2-10 網(wǎng)絡(luò)連接方式配置 增加一個(gè)串口設(shè)備,單擊“Add選項(xiàng),然后選擇“Serial Port,單擊“Next,選中“Use physical serial port on the host選項(xiàng)(如圖2-11所示),再單擊Next,在“physical serial port那一欄選擇“COM1,單擊“Finish(如圖2-12所示)就為虛擬機(jī)增加了一個(gè)串口設(shè)備,這個(gè)設(shè)備使得虛擬機(jī)系統(tǒng)可以使用宿主機(jī)的串口1與目標(biāo)機(jī)進(jìn)行通信。 圖
28、2-11 串口配置1圖2-12 串口配置2 其他幾項(xiàng)配置(USB Controller、Display、Processors)根本一般不用改,單擊圖2-12界面中的“Finish完成新建虛擬機(jī)的過(guò)程,就可以進(jìn)入Linux系統(tǒng)安裝了。在虛擬機(jī)中安裝Linux系統(tǒng)Linux是一類(lèi)Unix計(jì)算機(jī)操作系統(tǒng)的統(tǒng)稱(chēng)。Linux操作系統(tǒng)的內(nèi)核的名字也是“Linux。Linux操作系統(tǒng)也是自由軟件和開(kāi)放源代碼開(kāi)展中最著名的例子。嚴(yán)格來(lái)講,Linux這個(gè)詞本身只表示Linux內(nèi)核,但在實(shí)際上人們已經(jīng)習(xí)慣了用Linux來(lái)形容整個(gè)基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫(kù)的操作系統(tǒng)。Linux得名于計(jì)
29、算機(jī)業(yè)余愛(ài)好者Linus Torvalds。簡(jiǎn)單地說(shuō),Linux是一套免費(fèi)使用和自由傳播的類(lèi)Unix操作系統(tǒng),它主要用于基于x86系列CPU的計(jì)算機(jī)上。這個(gè)系統(tǒng)是由世界各地的成千上萬(wàn)的程序員設(shè)計(jì)和實(shí)現(xiàn)的。其目的是建立不受任何商品化軟件的版權(quán)制約的、全世界都能自由使用的Unix兼容產(chǎn)品。REDHAT創(chuàng)立于1993年,是目世界上最資深的Linux和開(kāi)放源代碼提供商,同時(shí)也是最獲認(rèn)可的Linux品牌。Red Hat Linux是商業(yè)上運(yùn)作最成功的一個(gè)Linux發(fā)行套件,普及程度很高,由Red Hat 公司發(fā)行。Red Hat Linux有一個(gè)圖形化的安裝程序Anaconda,目的是為了令新手更容易使
30、用。同時(shí),它有一個(gè)內(nèi)建的防火墻設(shè)置工具Lokkit。由Red Hat Linux 8.0開(kāi)始,UTF-8成為了系統(tǒng)默認(rèn)的字符編碼設(shè)定。這對(duì)于英語(yǔ)用戶來(lái)說(shuō)無(wú)甚影響,但當(dāng)用到ISO/IEC 8859-1字符集的較高位置字符時(shí),編碼方式那么完全不同。對(duì)于局部法語(yǔ)或瑞典語(yǔ)的用戶來(lái)說(shuō),這是一個(gè)冒犯性的舉動(dòng),因?yàn)樗麄兊呐f文件系統(tǒng)在這個(gè)設(shè)定下有可能變得不穩(wěn)定。這問(wèn)題可以透過(guò)移除LANG設(shè)定中的.UTF-8來(lái)解決。本設(shè)計(jì)中用到的linux系統(tǒng)為RedHat linux9.0版本,下面以圖解的方式介紹一下RedHat linux9.0的安裝全過(guò)程。翻開(kāi)虛擬機(jī),單擊左上方的啟動(dòng)按鈕(綠色的三角形),如下列圖所示。
31、接下來(lái)就將進(jìn)入RedHat Linux9.0的安裝界面,如下列圖所示。第1步:第一步:選擇安裝方式。 1、圖形安裝直接回車(chē) 2、文本安裝輸入 linux text第2步:選擇“OK為檢查光盤(pán) 選擇“Skip跳過(guò)檢查。我確認(rèn)我的光盤(pán)是好的,我跳過(guò)。第3步:點(diǎn)擊next!第4步:選擇安裝語(yǔ)言為簡(jiǎn)體中文!第5步:這一步,是讓你選擇你的鍵盤(pán), 選US(美式鍵盤(pán)),點(diǎn)擊下一步!第6步:選擇鼠標(biāo),它會(huì)自動(dòng)檢測(cè)出你鼠標(biāo)的接口類(lèi)型,點(diǎn)擊下一步!第7步:選擇安裝類(lèi)型,這里我們選擇“效勞器其實(shí)只要你懂,你選擇哪種類(lèi)型都行,點(diǎn)擊下一步!第8步:因?yàn)榇蠹沂歉易?,所以不要?dān)憂你懂不懂!我們選擇“手工分區(qū)!第9步:如
32、果你的硬盤(pán)只有一個(gè)分區(qū),你就會(huì)看到如下界面,如不是,你可以點(diǎn)刪除它們!下面我們點(diǎn)“新建!第10步:點(diǎn)“新建讓你添加一個(gè)分區(qū)!我們首先添加一個(gè),/boot分區(qū)想當(dāng)于windows下的引導(dǎo)分區(qū)類(lèi)型為ext3相當(dāng)于FAT32、NTFS大小為100 ,模仿我的圖就對(duì)了!第11步:再點(diǎn)“新建我們建一個(gè)swap文件系統(tǒng)內(nèi)存交換區(qū)在“文件系統(tǒng)類(lèi)型那一欄選擇 “swap 大小:你的內(nèi)存 512*2=1024,設(shè)這里要注意一下!大小要設(shè)成你內(nèi)存大小的雙倍,但要考慮到以后你要加內(nèi)存,我們就設(shè)高一點(diǎn),如果你以后內(nèi)存的極限為2G*2=4096,那么我們就提前設(shè)成4096!不過(guò)linux是低配置,高性能的操作系統(tǒng)!第1
33、2步:下面再建一個(gè) “/ linux下的根分區(qū) 這里設(shè)成“1000!第13步:上面新建的幾個(gè)分區(qū)為linux必須的分區(qū),下面我們就把剩下的硬盤(pán)分區(qū),分成一個(gè)分區(qū)! 這里要注意的是:/mnt/linux 這個(gè)路經(jīng),是你的分區(qū)路經(jīng)相當(dāng)于你的E盤(pán)一樣,選擇全部可用空間!第14步:上面所作的步驟,建好了所有的分區(qū)。 如果你照著我的話,應(yīng)該是如下列圖一樣! 下一步第15步:點(diǎn)擊下一步!第16步:網(wǎng)絡(luò)配置,點(diǎn)編輯!第17步:取消“使用DHCP進(jìn)行配置其它的按照說(shuō)明填寫(xiě)!第18步:如圖!只做為參考!第19步:選擇“無(wú)防火墻!如果你以后要設(shè)“防火墻你可以手動(dòng)寫(xiě)規(guī)那么!第20步:點(diǎn)擊下一步!第21步:點(diǎn)擊下一步
34、!第22步:這里設(shè)定“root超級(jí)用戶的密碼后,點(diǎn)擊下一步!第23步:如果你只想做電影效勞器和FTP效勞器!你把所有的“都去掉,只留下“FTP效勞器和“開(kāi)發(fā)工具前面的“。 我們只安裝“FTP效勞器用來(lái)傳電影和“開(kāi)發(fā)工具開(kāi)發(fā)包,是linux下經(jīng)常用到的!第24步:點(diǎn)擊下一步!第25步:等待安裝!第26步:換第二張光盤(pán)!第27步:換第三張光盤(pán)!第28步:隨便你選不選擇!第29步:完成安裝了!第30步:linux的啟動(dòng)界面!其它常用的軟件包括arm-linux-gcc-、Qt、Qtopia、Busybox等。 Linux下建立交叉編譯環(huán)境在Linux平臺(tái)下,要為開(kāi)發(fā)板編譯內(nèi)核,文件系統(tǒng),圖形界面,b
35、ootloader,還有其他一些應(yīng)用程序,均需要交叉編譯工具鏈。這里介紹下在RedHat9.0操作系統(tǒng)下叉編譯工具鏈的建立過(guò)程。操作環(huán)境:操作系統(tǒng):RedHat9.0主機(jī)系統(tǒng)為winXP,在虛擬機(jī)Vmware下安裝RedHat交叉編譯器:arm-linux-gcc-操作步驟:.tgz到任意的目錄下,進(jìn)入這個(gè)文件夾$ sudo tar xvzf arm-linux-gcc-.tgz C /或者在root用戶權(quán)限下:# tar xvzf arm-linux-gcc-.tgz C /注意:C 后面有個(gè)空格,并且C是大寫(xiě)的,它是英文單詞“Change的第一個(gè)字母,在此是改變目錄的意思。執(zhí)行該命令,將把
36、 arm-linux-gcc 安裝到/usr/loca/arm/ 目錄。2. 修改環(huán)境變量,把交叉編譯器的路徑參加到PATH,為了可以方便使用arm-linux-gcc編譯器系統(tǒng), 把a(bǔ)rm-linux工具鏈目錄參加到環(huán)境變量PATH中。方法一:修改/etc/bash.bashrc文件此文件只對(duì)當(dāng)前用戶適用在最后加上export PATH$PATH:/usr/local/arm/bin方法二:修改/etc/profile文件此文件屬于系統(tǒng)級(jí)別的環(huán)境變量,設(shè)置在里面的東西對(duì)所有用戶適用:$sudo gedit /etc/profile增加路徑設(shè)置,在末尾添加如下,保存/etc/profile文件
37、:export PATH$PATH:/usr/local/arm/bin方法三:修改/etc/environment文件$sudo gedit /etc/environment原文件應(yīng)為:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games將其改為PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/bin保存退出即可方法四:修改/root/.bashrc把編譯器路
38、徑參加系統(tǒng)環(huán)境變量$sudo gedit /root/.bashrc在最后加上export PATH$PATH:/usr/local/arm/bin設(shè)置環(huán)境變量后,立即使新的環(huán)境變量生效,不用重啟電腦:對(duì)應(yīng)方法一:$ source /root/.bashrc對(duì)應(yīng)方法二:$ source /etc/profile方法三:立即生效方法四:重啟或注銷(xiāo)一下不是winXP3. 在命令行輸入arm-linux-gcc v,會(huì)出現(xiàn)如下信息,這說(shuō)明交叉編譯環(huán)境已經(jīng)成功安裝。4.編譯Hello World程序,測(cè)試交叉工具鏈#include“stdio.h#include“stdlib.hint main()p
39、rintf(Hello World!n);return 0;執(zhí)行下面的命令:源程序有錯(cuò)誤的話會(huì)有提示,沒(méi)有任何提示的話,就是通過(guò)了,就可以下載到ARM目標(biāo)板上運(yùn)行了! 接著可以輸入file hello的命令,查看生成的hello文件的類(lèi)型,要注意的是生成的可執(zhí)行文件只能在ARM體系下運(yùn)行,不能在其于X86的PC機(jī)上運(yùn)行,至此交叉編譯環(huán)境已經(jīng)建立好了。第三章 Linux系統(tǒng)移植搭建Linux系統(tǒng),首先需要在相關(guān)網(wǎng)站獲得相應(yīng)源碼,下載得到的源碼一般為通用源碼,但是在一些個(gè)別方面仍不能完全匹配我們的硬件平臺(tái),所以得到源碼后,首先要進(jìn)行源碼的修改,以做到與Mini2440開(kāi)發(fā)板的完全匹配。源碼修改完成
40、后,就要對(duì)我們需要用到的硬件模塊進(jìn)行系統(tǒng)上的支持,也就是移植相應(yīng)設(shè)備的驅(qū)動(dòng),詳細(xì)過(guò)程下文一一給出。3.1 Linux源碼修改自從Linux-開(kāi)始,Linux內(nèi)核就已經(jīng)官方支持了mini2440,但是官方的內(nèi)核版本對(duì)Mini2440的支持比擬有限,所以還是需要一定的改變。不過(guò),隨著內(nèi)核的開(kāi)展,相信支持的也會(huì)越來(lái)越全面的。1.移植內(nèi)核的準(zhǔn)備工作(1) 使用的環(huán)境 操作系統(tǒng):虛擬機(jī)Vmware.0+ 交叉編譯工具使用:友善之臂的arm-linux-gcc-4.3.2(2) 獲取內(nèi)核 獲取內(nèi)核的網(wǎng)址是: :/rpub/linux/kernel/ 可以看到你里面有各種版本的Linux,下載現(xiàn)在要移植的L
41、inux-版本,如果Linux可以上網(wǎng)的話,可以使用wget n,命令直接在當(dāng)前的目錄下進(jìn)行下載。(3) 交叉編譯工具 交叉編譯工具使用友善之臂的arm-linux-gcc-4.3.2,他們提供的編譯器是符合EABI標(biāo)準(zhǔn)的編譯器。其中關(guān)于EABI的介紹可以參看下面的連接:/,交叉編譯器可以從網(wǎng)站下載。(4) 硬件平臺(tái) 友善之臂的Mini2440,NandFlash64M,NorFlash2M的。NandFlash容量的不同,在后邊制作根文件系統(tǒng)的時(shí)候會(huì)有所不同。2. 修改內(nèi)核以適應(yīng)本開(kāi)發(fā)板 (1)假設(shè)我們把內(nèi)核文件下載到了opt/kernel/目錄下,進(jìn)行解壓操作。cd opt
42、/kernel# tar -zxvf linux-得到Linux-文件夾(2)修改Makefile文件首先,我們要使Linux的默認(rèn)的平臺(tái)是arm平臺(tái),進(jìn)入Linux-2.6.32文件夾中,修改此目錄下的Makefile文件。大約在182行,修改成下面的代碼,使其平臺(tái)是ARM平臺(tái),交叉編譯是arm-linux-.export KBUILD_BUILDHOST := $(SUBARCH)ARCH?= arm /使用的目標(biāo)平臺(tái)CROSS_COMPILE?= arm-linux- /使用的交叉編譯器,這里使用的系統(tǒng)默認(rèn)的接下來(lái),測(cè)試一下Linux內(nèi)核是否可以順利的編譯通過(guò)。make s3c2410_
43、defconfig /使用缺省的配置文件,也就是SMDK2440的缺省配置文件# make /編譯時(shí)間大約在20分鐘左右(3)關(guān)于機(jī)器碼 很關(guān)鍵的一點(diǎn)是,在啟動(dòng)內(nèi)核時(shí),是根據(jù)bootloader傳入的機(jī)器碼MACH_TYPE,來(lái)決定應(yīng)啟動(dòng)那種目標(biāo)平臺(tái),在這一版本中,友善之臂申請(qǐng)了字節(jié)的機(jī)器碼1999,這和先前的版本的內(nèi)核,還是有所區(qū)別的。在文件opt/kernel/linux-/arch/arm/tools/mach-types中。exedaMACH_EXEDAEXEDA1994mx31sf005MACH_MX31SF005MX31SF0051995f5d8231_4_v2MA
44、CH_F5D8231_4_V2F5D8231_4_V21996q2440MACH_Q2440Q24401997qq2440MACH_QQ2440QQ24401998mini2440MACH_MINI2440MINI24401999 /機(jī)器碼colibri300MACH_COLIBRI300COLIBRI3002000jadesMACH_JADESJADES2001sparkMACH_SPARKSPARK2002如果傳入的機(jī)器碼和目標(biāo)板的機(jī)器碼不同時(shí),經(jīng)常出現(xiàn)下面的錯(cuò)誤:Uncompressing Linux. done, booting the kernel. 運(yùn)行到這就停止了。 在U-Boo
45、t2021.06版本中也參加了mini2440機(jī)器碼,在下面的文件中u-boot-2021.08/include/asm-arm/mach-typs.h,大約在1985行。#define MACH_TYPE_ARMATA 1993#define MACH_TYPE_EXEDA 1994#define MACH_TYPE_MX31SF005 1995#define MACH_TYPE_F5D8231_4_V2 1996#define MACH_TYPE_Q2440 1997#define MACH_TYPE_QQ2440 1998#define MACH_TYPE_MINI2440 1999#d
46、efine MACH_TYPE_COLIBRI300 2000#define MACH_TYPE_JADES 2001#define MACH_TYPE_SPARK 2002在/kernel/linux-.2/arch/arm/mach-s3c2440目錄下有一個(gè)mach-mini2440.c這個(gè)就是該版本自帶的一個(gè)mini2440的文件。不過(guò)我們不使用它,直接將其刪除。將/kernel/linux-/arch/arm/mach-s3c2440目錄下的mach-smdk2440.c,復(fù)制一份,命名為mach-mini2440.c文件,因?yàn)?,Mini2440和smdk2440的結(jié)
47、構(gòu)最為相似,上面的外圍的電路也很相似,所以在其根底上進(jìn)行修改移植。翻開(kāi)剛剛改名的mach-mini2440.c,找到MACHINE_START(S3C2440, SMDK2440)修改為下面的內(nèi)容MACHINE_START(MINI2440, FriendlyARM MINI2440 development board) (4)修改時(shí)鐘源 在 mach-mini2440.c的第 160 行static void _init smdk2440_map_io(void)函數(shù)中,把其中的 16934400(代表原 SMDK2440 目標(biāo)板上的晶振是 16.9344MHz)改為 mini2440 開(kāi)發(fā)
48、板上實(shí)際使用的 12000000(代表 mini2440 開(kāi)發(fā)板上的晶振 12MHz,元器件標(biāo)號(hào)為 X2), static void _init mini2440_map_io(void)s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc);s3c24xx_init_clocks(12000000); /修改為 12000000s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs);用VIM翻開(kāi)剛剛復(fù)制得到的mach-mini2440.c文件,原來(lái)
49、是smdk2440,所以將該文件中的所有的smdk2440替換成mini2440,可以在vim中,輸入下面的命令進(jìn)行替換;g表示全局替換,global.%s /smdk2440/mini2440/g 除此之外,還要在 mini2440_machine_init(void)函數(shù)中,把smdk_machine_init()函數(shù)調(diào)用注釋掉,因?yàn)槲覀兒竺鏁?huì)編寫(xiě)自己的初始化函數(shù),不需要調(diào)用smdk2440 原來(lái)的。static void _init mini2440_machine_init(void)s3c24xx_fb_set_platdata(&mini2440_fb_info);s3c_i2c0
50、_set_platdata(NULL);s3c_device_nand.dev.platform_data = &mini2440_nand_info; /添加platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices); /smdk_machine_init()編譯測(cè)試,#make mini2440_defconfig /使用mini2440官方自帶的配置文件/編譯的時(shí)間較長(zhǎng),最后在arch/arm/boot目錄下生成zImage,也就是要下載到板子上的內(nèi)核文件#make zImage 這時(shí)下載到板子上不會(huì)啟動(dòng)系統(tǒng),因
51、為根文件系統(tǒng)還沒(méi)有燒寫(xiě)。5內(nèi)核的配置菜單 在這里先不用任何的配置,不過(guò)我們?cè)谶@個(gè)版本的內(nèi)核中,還是可以看到了對(duì)mini2440的支持選項(xiàng)可以選擇。在kernel/Linux-.2/目錄下使用下面的命令make menuconfig 6修改Nand分區(qū)信息 在我們創(chuàng)立的mach-mini2440.c文件中添加NandFlash的分區(qū)信息,主要參考友善之臂的分區(qū)表。 內(nèi)容如下:添加下面的結(jié)構(gòu)體static struct mtd_partition mini2440_default_nand_part = 0 = .name= U-boot,/這里是 bootloader所在的分區(qū),可以放置 u-boot, .size= 0x00040000,/對(duì)應(yīng)/dev/mtdblock0 .offset= 0,1 = .name= param,/ ;這里是supervivi的參數(shù)區(qū),其實(shí)也屬于bootloader的.offset = 0x00040000,/一局部,如果u-boot 比擬大,可以把此區(qū)域覆蓋掉
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林省八年級(jí)數(shù)學(xué)下冊(cè)19矩形菱形與正方形19.1矩形19.1.1矩形的性質(zhì)聽(tīng)評(píng)課記錄1新版華東師大版
- 小學(xué)二年級(jí)數(shù)學(xué)口算競(jìng)賽試題
- 人教版地理七年級(jí)上冊(cè)《3.3降水的變化與分布》聽(tīng)課評(píng)課記錄
- 北師大版歷史八年級(jí)下冊(cè)第14課《各民族的團(tuán)結(jié)與發(fā)展》聽(tīng)課評(píng)課記錄
- 小學(xué)六年級(jí)數(shù)學(xué)下冊(cè)《面積的變化》聽(tīng)評(píng)課記錄
- 人教版七年級(jí)道德與法治七年級(jí)上冊(cè)聽(tīng)課評(píng)課記錄:第一單元成長(zhǎng)的節(jié)拍第三課 發(fā)現(xiàn)自己第一課時(shí)認(rèn)識(shí)自己
- 公司員工廉潔自律協(xié)議書(shū)范本
- 二零二五年度汽車(chē)修理廠汽車(chē)美容與維修一體化服務(wù)合同
- 二零二五年度網(wǎng)絡(luò)劇導(dǎo)演專(zhuān)項(xiàng)聘用合同
- 二零二五年度肉類(lèi)產(chǎn)品食品安全監(jiān)管合同協(xié)議
- 上海市2024年中考化學(xué)真題(含答案)
- 油氣儲(chǔ)運(yùn)節(jié)能優(yōu)化方案
- 腕踝針中醫(yī)技術(shù)
- 2024年二級(jí)建造師繼續(xù)教育考核題及答案
- 物流公司員工守則以及管理制度
- 2024人形機(jī)器人產(chǎn)業(yè)半年研究報(bào)告
- 【正當(dāng)防衛(wèi)的限度條件及司法認(rèn)定問(wèn)題淺析10000字(論文)】
- 市政管網(wǎng)工程投標(biāo)方案(技術(shù)方案)
- 購(gòu)買(mǎi)演唱會(huì)門(mén)票的合同模板
- 頂管工程施工及驗(yàn)收技術(shù)標(biāo)準(zhǔn)
- 【基于現(xiàn)金流的企業(yè)財(cái)務(wù)風(fēng)險(xiǎn)探究文獻(xiàn)綜述4100字】
評(píng)論
0/150
提交評(píng)論