【正文】
經(jīng)成功地被移植到包括PowerPC、ARM、X8MIPS、NIOS、XScale等主流體系結(jié)構(gòu)上的百種開(kāi)發(fā)板,成為功能最多、靈活性最強(qiáng),開(kāi)發(fā)性最積極的開(kāi)源Bootloader。例如,UBoot就可以同時(shí)支持PowerPC、ARM、MIPS和X86等體系結(jié)構(gòu)??梢园袯ootloader當(dāng)成PC機(jī)的BIOS來(lái)理解。 交叉開(kāi)發(fā)模型本文是以紅帽公司發(fā)行的Red Hat Enterprise Linux 5作為宿主機(jī)的操作系統(tǒng)進(jìn)行相關(guān)軟件開(kāi)發(fā)的。 由于嵌入式系統(tǒng)的特殊性,其硬件資源十分有限,所以不可能在嵌入式操作系統(tǒng)上安裝開(kāi)發(fā)工具,也就不可能直接在嵌入式系統(tǒng)上直接進(jìn)行軟件的開(kāi)發(fā),所以有了交叉開(kāi)發(fā)模型。 硬件平臺(tái)Linux內(nèi)核 設(shè)備驅(qū)動(dòng)應(yīng)用層MPlayer 視頻播放器軟件系統(tǒng)層次第三章 系統(tǒng)開(kāi)發(fā)平臺(tái)的構(gòu)建 軟件開(kāi)發(fā)環(huán)境介紹在嵌入式系統(tǒng)中,由于硬件資源的有限性、差異性,所以需要開(kāi)發(fā)者根據(jù)不同的硬件資源對(duì)嵌入式的操作系統(tǒng)作出相應(yīng)的剪裁,從而定制出能夠運(yùn)行在特定目標(biāo)平臺(tái)上的嵌入式操作系統(tǒng)。而視頻播器軟件是通過(guò)移植Linux下一款優(yōu)秀的開(kāi)源視頻播放軟件MPlayer來(lái)實(shí)現(xiàn)的。其中S3C2440處理器除了負(fù)責(zé)對(duì)音視頻文件進(jìn)行解碼工作外,還要負(fù)責(zé)對(duì)整個(gè)視頻播放器進(jìn)行管理和控制;LCD為播放器的視頻輸出模塊;UDA1341芯片為音頻的輸出模塊,負(fù)責(zé)將經(jīng)處理器解碼后得到的音頻數(shù)據(jù)轉(zhuǎn)換為模擬信號(hào),并傳遞給麥克風(fēng)等輸出裝置;Flash存儲(chǔ)器負(fù)責(zé)對(duì)Linux內(nèi)核、根文件系統(tǒng)、應(yīng)用軟件和視頻文件的存儲(chǔ)工作;按鍵用于完成對(duì)視頻播放器的控制工作。 第二章 播放器總體設(shè)計(jì)方案介紹 播發(fā)器硬件系統(tǒng)架構(gòu)本設(shè)計(jì)將選用國(guó)嵌公司生產(chǎn)的GQ2440開(kāi)發(fā)板作為硬件平臺(tái),GQ2440是一款A(yù)RM9開(kāi)發(fā)板。介紹MPlayer的移植過(guò)程和播放器相關(guān)控件的設(shè)計(jì)工作。本章詳細(xì)介紹了Linux系統(tǒng)移植到ARM處理器的過(guò)程,Linux的移植主要包括三個(gè)方面:Booterloader的移植、Linux內(nèi)核的移植和根文件的制作。主要介紹播放器的硬件整體架構(gòu)和軟件系統(tǒng)的層次結(jié)構(gòu)。介紹了本文的選題背景,當(dāng)前國(guó)內(nèi)外的發(fā)展?fàn)顩r以及研究意義,并對(duì)論文的主要工作進(jìn)行了簡(jiǎn)單介紹。本文介紹了一款便攜式視頻播放器的設(shè)計(jì)工作,該視頻播發(fā)器是以ARM處理器為硬件開(kāi)發(fā)平臺(tái),嵌入式Linux作為操作系統(tǒng),通過(guò)移植Linux上的一款優(yōu)秀的開(kāi)源視頻播放器軟件MPlayer來(lái)實(shí)現(xiàn)的。ARM處理器具有體積小、功耗低、低成本、高性能等優(yōu)點(diǎn),并且支持Linux系統(tǒng)[6]。在軟件方面基本上市面上的便攜式視頻播放器都帶有嵌入式操作系統(tǒng),主要的操作系統(tǒng)有Vxworks、Palm OS、Windows CE、Linux、Android以及廠家自己開(kāi)發(fā)的操作系統(tǒng)。目前。基于這一背景,本文提出了一款基于嵌入式Linux操作系統(tǒng)和ARM處理器的視頻播放器設(shè)計(jì)方案。如今人們隨著生活水平的提高,對(duì)視聽(tīng)享受方面的要求也越來(lái)越高,人們不單僅僅滿足于在電腦上或電視上欣賞高品質(zhì)的音視頻,也渴望能夠隨時(shí)隨地的欣賞音樂(lè)觀看電影,所以基于嵌入式技術(shù)的便攜式多媒體播放器也成為了現(xiàn)今IT界研究的熱點(diǎn)之一。所謂嵌入式是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件、硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)[1]。關(guān)鍵詞:嵌入式,視頻播放器,嵌入式Linux,ARM920TDesign of Video Player Based on Embedded ARM920TAbstractEmbedded technology has bee the core technology of the postPC era, and based on embedded technology of portable video player for small volume, light weight, convenient to carry have a very wide prospect of market, and so embedded video player to bee a research focus of the IT industry. This paper puts forward a kind of embedded video player design scheme,the scheme is based on the ARM9 processor ,and the Embedded Linux as the underlying operating platform.This paper first introduced the video player overall design scheme of software and hardware ,then detailed in detail how to transplant Bootloader, Linux kernel and make a root file system to plete the work to build a video player underlying operating platform ,finally ,through transplantation of open source multimedia player software MPlayer and design controls to plete the design work of the video player.Finally, summarize the work of this paper, points out the embedded player which need to be solved and perfected problem.Keywords: Embedded,Video player,Embedded Linux,ARM目錄第一章 引言 1 1 1 2第二章 播放器總體設(shè)計(jì)方案介紹 3 播發(fā)器硬件系統(tǒng)架構(gòu) 3 播發(fā)器軟件系統(tǒng)架構(gòu) 3第三章 系統(tǒng)開(kāi)發(fā)平臺(tái)的構(gòu)建 4 軟件開(kāi)發(fā)環(huán)境介紹 4 Bootloader的移植 5 Linux內(nèi)核的移植 7 Linux內(nèi)核移植步驟 7 Flash驅(qū)動(dòng)的移植 8 LCD驅(qū)動(dòng)的移植 11 UDA1341音頻驅(qū)動(dòng)的移植 15 根文件系統(tǒng)的制作 15 根文件系統(tǒng)介紹 16 根文件系統(tǒng)構(gòu)建 16第四章 視頻播放器的設(shè)計(jì)與實(shí)現(xiàn) 18 MPlayer多媒體播放器介紹 18 MPlayer的移植 19 20 21 23第五章 總結(jié) 23參考文獻(xiàn) 24附錄A 26第一章 引言伴隨著半導(dǎo)體技術(shù)、計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,現(xiàn)如今,我們已經(jīng)進(jìn)入了后PC時(shí)代。本文首先介紹了視頻播放器軟硬件的整體設(shè)計(jì)方案,然后詳細(xì)介紹了如何通過(guò)移植Bootload、Linux內(nèi)核和制作根文件系統(tǒng)來(lái)完成搭建視頻播放器底層操作平臺(tái)的工作,最后通過(guò)移植開(kāi)源的多媒體播放器軟件MPlayer和設(shè)計(jì)相關(guān)控件完成了整個(gè)視頻播放器的設(shè)計(jì)工作。基于嵌入式ARM920T的視頻播放器設(shè)計(jì)摘要嵌入式技術(shù)已經(jīng)成為了后PC時(shí)代的核心技術(shù),而基于嵌入式技術(shù)的便攜式視頻播放器由于體積小、重量輕、攜帶方便等特點(diǎn),具有極廣的市場(chǎng)前景,所以嵌入式視頻播放器成為了現(xiàn)在IT行業(yè)研究的熱點(diǎn)。本文提出了一種基于ARM9處理器,以嵌入式Linux為底層操作平臺(tái)的嵌入式視頻播放器的設(shè)計(jì)方案。最后,總結(jié)了論文所做的工作,指出了嵌入式播放器所需要進(jìn)一步解決和完善的問(wèn)題。在這一階段電子產(chǎn)品的發(fā)展趨勢(shì)是智能化、數(shù)字化、網(wǎng)絡(luò)化、便攜輕巧、易于操作,而嵌入式技術(shù)(Embedded Technology)的發(fā)展為人們提供了一個(gè)很好的解決方案。嵌入式技術(shù)已經(jīng)被廣泛的應(yīng)用于科學(xué)研究、工程設(shè)計(jì)、軍事領(lǐng)域和文藝商業(yè)的方方面面,嵌入式產(chǎn)品更是隨處可見(jiàn),比如消費(fèi)電子產(chǎn)品、車載電子設(shè)備、智能家電、MPMP4等。面對(duì)廣闊的市場(chǎng)需求,海內(nèi)外的各大廠商也在積極研發(fā)自己的產(chǎn)品以搶占市場(chǎng)。自從2002年法國(guó)的愛(ài)可視推出全球第一款MP4——多媒體Jukebox以來(lái),基于嵌入式技術(shù)的便攜式視頻播放器已經(jīng)發(fā)展了十年,經(jīng)過(guò)這十年的發(fā)展,視頻播放器技術(shù)已日趨成熟,市面上的產(chǎn)品支持的視頻格式也越來(lái)越多,功能也越來(lái)越強(qiáng)大,很多MP4都集成了上網(wǎng)、游戲、個(gè)人事務(wù)處理甚至是視頻錄制、數(shù)碼照相等功能。很多提供視頻播放器處理器的半導(dǎo)體廠商都推出有自己的視頻播放器硬件解決方案,這些方案可以概括為以下四類:一類是以德州儀器、飛利浦為代表的基于CPU+DSP芯片的解決方案;一類則是以Intel和AMD為代表的基于通用CPU的解決方案;第三種則是以飛思卡爾和深圳安凱為代表的基于MCU芯片的解決方案;第四種是基于雙CPU的解決方案[4]。生產(chǎn)廠商在設(shè)計(jì)自己的產(chǎn)品時(shí)如果采用上述的硬件方案,都要支付一筆不菲的授權(quán)費(fèi)用,而在嵌入式操作系統(tǒng)的選擇上也只有Linux是開(kāi)源免費(fèi)的,所以產(chǎn)品成本比較高。所以可以選用ARM處理器配合Linux進(jìn)行產(chǎn)品的設(shè)計(jì),這樣可以充分的利用Linux開(kāi)源的特性,根據(jù)需要修改和移植一些免費(fèi)的開(kāi)源軟件,這樣不僅能降低產(chǎn)品研發(fā)的難度,加快產(chǎn)品的上市時(shí)間,還能省去一筆不菲的軟硬件授權(quán)費(fèi)用。本文共分五章,內(nèi)容安排如下:第一章,引言。第二章,播放器總體設(shè)計(jì)方案介紹。第三章,系統(tǒng)開(kāi)發(fā)平臺(tái)的構(gòu)建。第四章,視頻播放器的設(shè)計(jì)與實(shí)現(xiàn)。第五章,總結(jié)。GQ2440采用的是三星公司生產(chǎn)的S3C2440A處理芯片,主頻400MHz,最高可達(dá)533MHz。S3C 2440處理器LCD顯示音頻(UDA1341)SDRAMFLASH電源按鍵 播放器硬件系統(tǒng)框架 播發(fā)器軟件系統(tǒng)架構(gòu)由于Linux具有源代碼開(kāi)放、可移植性好、資源豐富、可靠、穩(wěn)定、免費(fèi)等特點(diǎn),所以本文將選用嵌入式Linux作為視頻播放器的底層操作平臺(tái)。其中Linux內(nèi)核中的設(shè)備驅(qū)動(dòng)負(fù)責(zé)完成LCD顯示器、UDA1314聲卡芯片等設(shè)備的驅(qū)動(dòng)工作,MPlayer為視頻播放器,處于應(yīng)用層,利用其完成對(duì)各種音視頻文件的解碼工作。構(gòu)建一個(gè)嵌入式Linux操作系統(tǒng)主要包括三個(gè)方面的工作:移植Bootloader,移植Linux內(nèi)核,構(gòu)建Linux根文件系統(tǒng)。交叉開(kāi)發(fā)模式是指先在主機(jī)上編寫(xiě)程序,然后通過(guò)交叉編譯工具編譯程序,生成目標(biāo)平臺(tái)上可運(yùn)行的二進(jìn)制文件,最后下載到具體的目標(biāo)平臺(tái)上進(jìn)行運(yùn)行[7]。 Bootloader的移植Bootloader是在操作系統(tǒng)運(yùn)行之前執(zhí)行的一小段程序,它在系統(tǒng)上電時(shí)開(kāi)始執(zhí)行,初始化硬件設(shè)備、建立內(nèi)存空間的映射表,從而建立適當(dāng)?shù)南到y(tǒng)軟硬件環(huán)境,為最終調(diào)用操作系統(tǒng)內(nèi)核做好準(zhǔn)備[6]。嵌入式系統(tǒng)的硬件存在很大的差異性, Bootloader對(duì)硬件有很大的依賴性,并且Bootloader引導(dǎo)的操作系統(tǒng)也可能不同,所以在嵌入式世界中建立一個(gè)通用的Bootloader是不可能的,不過(guò)由于大部分Bootloader任然具有很多共性,所以某些Bootloader也能支持多種不同架構(gòu)的處理器和操作系統(tǒng)。UBoot是遵循GPL條款的開(kāi)放源碼項(xiàng)目。本文將選取UBoot作為開(kāi)發(fā)板的Bootloader。選擇的原則為,首先選擇MCU相同的開(kāi)發(fā)板,如果沒(méi)有,則選擇MPU相同的開(kāi)