基于ARM的Linux多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于ARM的Linux多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于ARM的Linux多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于ARM的Linux多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于ARM的Linux多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、題目:題目:基于基于 ARMARM 的的 LinuxLinux 多媒體播放器多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)的設(shè)計(jì)與實(shí)現(xiàn)系系 (部):光學(xué)與電子信息學(xué)院(部):光學(xué)與電子信息學(xué)院專專 業(yè)業(yè) 班:電子科學(xué)與技術(shù)班:電子科學(xué)與技術(shù)姓姓 名:名:學(xué)學(xué) 號:號:指導(dǎo)教師:指導(dǎo)教師: 20132013 年年 6 6 月月摘摘 要要當(dāng)今社會(huì)是一個(gè)信息化的社會(huì)。嵌入式技術(shù)在這個(gè)時(shí)代得到了日新月異的發(fā)展。嵌入式技術(shù)已經(jīng)引起了世界各國的高度關(guān)注。在這個(gè)背景下,本文提出了一種基于嵌入式 ARM9-Linux 的多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)方案。本文首先介紹了 S3C2440開發(fā)板的硬件情況,嵌入式 Linux 操作系統(tǒng)在 A

2、RM 微處理器上的移植技術(shù),包括Linux 系統(tǒng)環(huán)境建立,交叉編譯環(huán)境的建立、引導(dǎo)程序 vivi 的燒寫、移植嵌入式Linux 內(nèi)核,以及添加了 Qtopia 的根文件系統(tǒng)的建立。最終實(shí)現(xiàn)了 Linux 到S3C2440 開發(fā)板的移植。在此基礎(chǔ)上通過移植多功能視頻播放器 Mplayer 實(shí)現(xiàn)視頻文件的播放,最后列舉了編譯 mplayer 常見問題及解決方法,分析了 mplayer 的工作流程。關(guān)鍵詞:關(guān)鍵詞: 交叉編譯環(huán)境 ARM9-Linux 多媒體播放器 移植 mplayer AbstractThe contemporary world is an informationalized so

3、ciety. Embedded technology has achieved enormous development by leaps and bounds in this age, and raised great concerns of countries around the world. Under this background, this paper puts forward a scheme of design and implementation of the media player based on embedded ARM9-Linux of. The paper i

4、ntroduces the hardware of the S3C2440 development board and the technology of transplanting embedded Linux operating system into the ARM microprocessor, including the establishment of Linux system environment and cross-compiling environment, the establishment of the loader vivi and the application o

5、f the embedded Linux transplant kernel, and adds the Qt root file system building. On this basis, by transplanting versatile video player, the writer accomplish playing video files, list the frequently asked questions and the solutions of compiling mplayer and analyze the workflow of mplayer at last

6、.Key Words:cross-compiling environment media player based on embedded ARM9-Linux transplant mplayer目錄目錄摘摘 要要 .IABSTRACT.II1 引言引言.41.1 研究背景研究背景.41.2 發(fā)展?fàn)顩r和研究意義發(fā)展?fàn)顩r和研究意義.41.3 本文組織結(jié)構(gòu)本文組織結(jié)構(gòu).52 構(gòu)建硬件平臺(tái)構(gòu)建硬件平臺(tái).53 軟件配置和建立主機(jī)開發(fā)環(huán)境軟件配置和建立主機(jī)開發(fā)環(huán)境.83.1 宿主機(jī)開發(fā)環(huán)境的配置宿主機(jī)開發(fā)環(huán)境的配置.83.2 配置配置MINICOM.133.3 配置配置 NFS 服務(wù)服務(wù).143.4

7、編譯編譯 BOOTLOADER.163.5 編譯編譯 LINUX 內(nèi)核內(nèi)核.183.6 制作文件系統(tǒng)制作文件系統(tǒng).194 QT 開發(fā)環(huán)境的搭建開發(fā)環(huán)境的搭建.204.1 QT 簡介簡介.204.2 QTE 簡介簡介 .214.3 嵌入式圖形開發(fā)環(huán)境嵌入式圖形開發(fā)環(huán)境 QTE 的搭建的搭建.215 移植移植 MPLAYER.235.1 安裝安裝LIBMAD.245.2 交叉編譯交叉編譯 MPLAYER.255.3 移植移植 MPLAYER到開發(fā)板測試到開發(fā)板測試 .286 MPLAYER 功能及實(shí)現(xiàn)功能及實(shí)現(xiàn).306.1 播放器的工作流程播放器的工作流程.306.2 播放器的邏輯結(jié)構(gòu)播放器的邏輯

8、結(jié)構(gòu).306.3MPLAYER播放器的目錄文件組織結(jié)構(gòu)播放器的目錄文件組織結(jié)構(gòu).316.4 播放器對解碼器和輸出設(shè)備的管理方式播放器對解碼器和輸出設(shè)備的管理方式.327 結(jié)論或結(jié)論或總總結(jié)結(jié).33參參 考考 文文 獻(xiàn)獻(xiàn).351 引言引言1.1 研究背景研究背景伴隨著半導(dǎo)體技術(shù)、計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,現(xiàn)如今,我們已經(jīng)進(jìn)入了后 PC 時(shí)代。在這一階段電子產(chǎn)品的發(fā)展趨勢是智能化、數(shù)字化、網(wǎng)絡(luò)化、便攜輕巧、易于操作,而嵌入式技術(shù)(Embedded Technology)的發(fā)展為人們提供了一個(gè)很好的解決方案。所謂嵌入式是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件、硬件可裁剪,適用于應(yīng)用

9、系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)【1】 。嵌入式技術(shù)已經(jīng)被廣泛的應(yīng)用于科學(xué)研究、工程設(shè)計(jì)、軍事領(lǐng)域和文藝商業(yè)的方方面面,嵌入式產(chǎn)品更是隨處可見,比如消費(fèi)電子產(chǎn)品、車載電子設(shè)備、智能家電、MP3、MP4 等。如今人們隨著生活水平的提高,對視聽享受方面的要求也越來越高,人們不單僅僅滿足于在電腦上或電視上欣賞高品質(zhì)的音視頻,也渴望能夠隨時(shí)隨地的欣賞音樂觀看電影,所以基于嵌入式技術(shù)的便攜式多媒體播放器也成為了現(xiàn)今 IT 界研究的熱點(diǎn)之一。面對廣闊的市場需求,海內(nèi)外的各大廠商也在積極研發(fā)自己的產(chǎn)品以搶占市場?;谶@一背景,本文提出了一款基于嵌入式 Linux 操作系統(tǒng)和 A

10、RM 處理器的視頻播放器設(shè)計(jì)方案。1.2 發(fā)展?fàn)顩r和研究意義發(fā)展?fàn)顩r和研究意義自從 2002 年法國的愛可視推出全球第一款 MP4多媒體 Jukebox 以來,基于嵌入式技術(shù)的便攜式視頻播放器已經(jīng)發(fā)展了十年,經(jīng)過這十年的發(fā)展,視頻播放器技術(shù)已日趨成熟,市面上的產(chǎn)品支持的視頻格式也越來越多,功能也越來越強(qiáng)大,很多 MP4 都集成了上網(wǎng)、游戲、個(gè)人事務(wù)處理甚至是視頻錄制、數(shù)碼照相等功能。目前。很多提供視頻播放器處理器的半導(dǎo)體廠商都推出有自己的視頻播放器硬件解決方案,這些方案可以概括為以下四類:一類是以德州儀器、飛利浦為代表的基于CPU+DSP 芯片的解決方案;一類則是以 Intel 和 AMD 為

11、代表的基于通用 CPU 的解決方案;第三種則是以飛思卡爾和深圳安凱為代表的基于 MCU 芯片的解決方案;第四種是基于雙 CPU 的解決方案。在軟件方面基本上市面上的便攜式視頻播放器都帶有嵌入式操作系統(tǒng),主要的操作系統(tǒng)有 Vxworks、Palm OS、Windows CE、Linux、Android 以及廠家自己開發(fā)的操作系統(tǒng)【2】 。生產(chǎn)廠商在設(shè)計(jì)自己的產(chǎn)品時(shí)如果采用上述的硬件方案,都要支付一筆不菲的授權(quán)費(fèi)用,而在嵌入式操作系統(tǒng)的選擇上也只有 Linux 是開源免費(fèi)的,所以產(chǎn)品成本比較高。ARM 處理器具有體積小、功耗低、低成本、高性能等優(yōu)點(diǎn),并且支持 Linux系統(tǒng)。所以可以選用 ARM

12、處理器配合 Linux 進(jìn)行產(chǎn)品的設(shè)計(jì),這樣可以充分的利用 Linux 開源的特性,根據(jù)需要修改和移植一些免費(fèi)的開源軟件,這樣不僅能降低產(chǎn)品研發(fā)的難度,加快產(chǎn)品的上市時(shí)間,還能省去一筆不菲的軟硬件授權(quán)費(fèi)用【3】 。1.3 本文組織結(jié)構(gòu)本文組織結(jié)構(gòu)本文介紹了一款便攜式視頻播放器的設(shè)計(jì)工作,該視頻播發(fā)器是以 ARM 處理器為硬件開發(fā)平臺(tái),嵌入式 Linux 作為操作系統(tǒng),通過移植 Linux 上的一款優(yōu)秀的開源視頻播放器軟件 MPlayer 來實(shí)現(xiàn)的。本文共分五章,內(nèi)容安排如下:第一章,引言。介紹了本文的選題背景,當(dāng)前國內(nèi)外的發(fā)展?fàn)顩r以及研究意義,并對論文的主要工作進(jìn)行了簡單介紹。第二章,播放器總

13、體設(shè)計(jì)方案介紹。主要介紹播放器的硬件整體架構(gòu)第三章,系統(tǒng)開發(fā)平臺(tái)的構(gòu)建。本章詳細(xì)介紹了 Linux 系統(tǒng)移植到 ARM 處理器的過程,Linux 的移植主要包括三個(gè)方面:Booterloader 的移植、Linux 內(nèi)核的移植和根文件的制作。第四章,嵌入式圖形開發(fā)環(huán)境 QTE 的搭建第五章,視頻播放器 mplayer 的移植。介紹 MPlayer 的移植過程以及移植過程中遇到的各種問題和解決方法。第六章,分析 mplayer 播放器的工作模式和框架。2 構(gòu)建硬件平臺(tái)構(gòu)建硬件平臺(tái)本設(shè)計(jì)使用的硬件開發(fā)平臺(tái)是北京奧爾斯電子科技有限公司的 OURS-2410-RP嵌入式實(shí)驗(yàn)開發(fā)系統(tǒng)。S3C2410RP

14、 是一款基于三星 S3C2410X 16/32 位 RISC 處理器( ARM920T)的為滿足嵌入式專業(yè)教學(xué)的新要求而設(shè)計(jì)研發(fā)的新一代嵌入式實(shí)驗(yàn)基礎(chǔ)平臺(tái)。該款實(shí)驗(yàn)平臺(tái)是一款集教學(xué)實(shí)驗(yàn)、課程設(shè)計(jì)、本科畢業(yè)設(shè)計(jì)、研究生課題研究與企業(yè)產(chǎn)品開發(fā)于一體的綜合平臺(tái)。這款設(shè)備主要包括核心板與底板兩個(gè)部分,核心板采用 6 層 PCB 板設(shè)計(jì)、底板采用 4 層 PCB 板設(shè)計(jì),核心處理器是基于目前行業(yè)內(nèi)主流使用的 SAMSUNG ARM9 S3C2410 處理器,主頻 202MHz ,配套的存儲(chǔ)器,網(wǎng)卡等設(shè)備;底板主要是各種類型的接口與擴(kuò)展口。圖圖 1 S3C2410 方框圖S3C2410A 采用了 ARM9

15、20T 內(nèi)核, 0.18um 工藝的 CMOS 標(biāo)準(zhǔn)宏單元和存儲(chǔ)器單元。它的低功耗、精簡和出色的全靜態(tài)設(shè)計(jì)特別適用于對成本和功耗敏感的應(yīng)用。同樣它還采用了一種叫做 Advanced Microcontroller Bus Architecture(AMBA)新型總線結(jié)構(gòu)。 S3C2410A 的顯著特性是它的 CPU 核心,是一個(gè)由 Advanced RISC Machines(ARM)有限公司設(shè)計(jì)的 16/32 位 ARM920T RISC 處理器,如圖 1 所示。ARM920T 實(shí)現(xiàn)了 MMU,AMBA BUS 和 Harvard 高速緩沖體系結(jié)構(gòu)【4】。這一結(jié)構(gòu)具有獨(dú)立的 16KB 指令

16、Cache 和 16KB 數(shù)據(jù) Cache,每個(gè)都是由 8 字長的行(line)構(gòu)成。 通過提供一系列完整的系統(tǒng)外圍設(shè)備,S3C2410A 大大減少了整個(gè)系統(tǒng)的成本,消除了為系統(tǒng)配置額外器件的需要。 核心板( 6 層 PCB 電路)系統(tǒng)包括:CPU : SAMSUNG S3C2410 處理器(202MHz ) SDRAM:64M FLASH: 8M Inter Nor Flash NET : 10/100M Ethernet controller (DM9000) 總線驅(qū)動(dòng)器:若干 電源穩(wěn)壓器 LDO:2 個(gè) 音頻控制芯片 UDA1341: 1 個(gè) 雙排插座 2.0 X 80 Pin:2 個(gè)

17、4 個(gè)發(fā)光二極管底板(4 層 PCB 電路)包括: 接口部分: Etherne 100M 網(wǎng)口、UART 、USB1.1、并口、JTAG 接口、SMC顯示部分: 4.3 寸真彩 TFT 液晶屏、VGA 接口、8 段數(shù)碼管、LED 、LCDAIDIO 部分: AC97 耳機(jī)接、麥克風(fēng)其它部分: STN 觸摸屏、EEPROM、溫度傳感器、電位器等圖圖 2 S3C2410 開發(fā)板外觀圖3 軟件配置和建立主機(jī)開發(fā)環(huán)境軟件配置和建立主機(jī)開發(fā)環(huán)境3.1 宿主機(jī)開發(fā)環(huán)境的配置宿主機(jī)開發(fā)環(huán)境的配置3.1.1 安裝 VMware Workstation 軟件VM 主機(jī)簡稱 VM, 又稱 VM 服務(wù)器. VM 主

18、機(jī)是靈動(dòng)網(wǎng)絡(luò)利用虛擬機(jī)(Virtual Machine)技術(shù),將一臺(tái)服務(wù)器分割成多個(gè)虛擬機(jī)(VM 主機(jī))的優(yōu)質(zhì)服務(wù). 這些 VM 主機(jī)以最大化的效率共享硬件、軟件許可證以及管理資源。對其用戶和應(yīng)用程序來講, 每一個(gè) VM 主機(jī)平臺(tái)的運(yùn)行和管理都與一臺(tái)獨(dú)立主機(jī)完全相同, 因?yàn)槊恳粋€(gè) VM 均可獨(dú)立進(jìn)行重啟并擁有自己的 root 訪問權(quán)限、用戶、IP地址、內(nèi)存、過程、文件、應(yīng)用程序、系統(tǒng)函數(shù)庫以及配置文件。每個(gè) VM 主機(jī)都可分配獨(dú)立公網(wǎng) IP 地址、獨(dú)立操作系統(tǒng)、獨(dú)立超大空間、獨(dú)立內(nèi)存、獨(dú)立 CPU 資源、獨(dú)立執(zhí)行程序和獨(dú)立系統(tǒng)配置等. VM 主機(jī)用戶除了可以分配多個(gè)虛擬主機(jī)及無限企業(yè)郵箱外,

19、更具有獨(dú)立服務(wù)器功能,可自行安裝程序,單獨(dú)重啟服務(wù)器VMware 軟件包含一個(gè)用于英特爾 x86 相容電腦的虛擬機(jī)套裝,其允許用戶同時(shí)創(chuàng)建和運(yùn)行多個(gè) x86 虛擬機(jī)。每個(gè)虛擬機(jī)實(shí)例可以運(yùn)行其自己的客戶機(jī)操作系統(tǒng),如(但不限于)Windows、Linux、BSD 變生版本。VMware 軟件可以實(shí)現(xiàn)不需要重新開機(jī)就在同一臺(tái)電腦上使用幾個(gè)操作系統(tǒng),安裝完成后如圖 3 所示。 VMware 主要的功能有: 1 、不需要分區(qū)或重開機(jī)就能在同一臺(tái) PC 上使用兩種以上的操作系統(tǒng)OS。 2 、完全隔離并且保護(hù)不同 OS 的操作環(huán)境以及所有安裝在 OS 上面的應(yīng)用軟件和資料。 3 、不同的 OS 之間還能互

20、動(dòng)操作,包括網(wǎng)絡(luò)、周邊、文件分享以及復(fù)制貼上功能。 4 、有復(fù)原(Undo)功能。 5 、能夠設(shè)定并且隨時(shí)修改操作系統(tǒng)的操作環(huán)境,如:內(nèi)存、磁盤空間、周邊設(shè)備等等。 6 、安裝 Linux 操作系統(tǒng)就是基于 VMware Workstation 軟件進(jìn)行安裝的,也就是可以在一臺(tái) PC 機(jī)上同時(shí)運(yùn)行 Windows 操作系統(tǒng)和 Linux 操作系統(tǒng)。 圖圖 3 VMware Workstation 9 軟件3.1.2 安裝 RedHat 9.0 操作系統(tǒng)RedHat(紅帽公司)創(chuàng)建于 1993 年,是目前世界上最資深的 Linux 和開放源代碼提供商,同時(shí)也是最獲認(rèn)可的 Linux 品牌?;陂_

21、放源代碼模式,為全球企業(yè)提供專業(yè)技術(shù)和服務(wù)。他們的解決方案包括紅帽企業(yè) Linux 操作平臺(tái),以及其他內(nèi)容廣泛的服務(wù)。因此,Red Hat 不僅是全球最大的開源技術(shù)廠家,其產(chǎn)品 Red Hat Linux 也是全世界應(yīng)用最廣泛的 Linux。Red Hat 公司總部位于美國北卡羅來納州。在全球擁有 22 個(gè)分部。 Linux 是一種自由和開放源碼的類 Unix 操作系統(tǒng),存在著許多不同的 Linux 版本,但它們都使用了 Linux 內(nèi)核。Linux 可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)、平板電腦、路由器、視頻游戲控制臺(tái)、臺(tái)式計(jì)算機(jī)、大型機(jī)和超級計(jì)算機(jī)。Linux 是一個(gè)領(lǐng)先的操作系統(tǒng),世界

22、上運(yùn)算最快的 10 臺(tái)超級計(jì)算機(jī)運(yùn)行的都是Linux 操作系統(tǒng)。嚴(yán)格來講,Linux 這個(gè)詞本身只表示 Linux 內(nèi)核,但實(shí)際上人們已經(jīng)習(xí)慣了用 Linux 來形容整個(gè)基于 Linux 內(nèi)核,并且使用 GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。Linux 得名于天才程序員林納斯托瓦茲。 從網(wǎng)絡(luò)上下載的 RedHat 9.0 是 3 個(gè) iso 文件在 VM 中依次加載這三個(gè)鏡像文件就可以實(shí)現(xiàn) RedHat 9.0 的安裝。注意在硬件窗口中添加串口和并口。安裝完成如圖4 所示。 圖圖 4 RedHat9.0 操作系統(tǒng)3.1.3 交叉編譯環(huán)境的建立交叉編譯(cross-compilation)是指

23、,在某個(gè)主機(jī)平臺(tái)上(比如 PC 上)用交叉編譯器編譯出可在其他平臺(tái)上(比如 ARM 上)運(yùn)行的代碼的過程。交叉編譯這個(gè)概念的出現(xiàn)和流行是和嵌入式系統(tǒng)的廣泛發(fā)展同步的。我們常用的計(jì)算機(jī)軟件,都需要通過編譯的方式,把使用高級計(jì)算機(jī)語言編寫的代碼(比如 C 代碼)編譯(compile)成計(jì)算機(jī)可以識(shí)別和執(zhí)行的二進(jìn)制代碼。比如,我們在 Windows 平臺(tái)上,可使用 Visual C+ 開發(fā)環(huán)境,編寫程序并編譯成可執(zhí)行程序。這種方式下,我們使用 PC 平臺(tái)上的 Windows 工具開發(fā)針對 Windows 本身的可執(zhí)行程序,這種編譯過程稱為 native compilation,中文可理解為本機(jī)編譯。

24、然而,在進(jìn)行嵌入式系統(tǒng)的開發(fā)時(shí),運(yùn)行程序的目標(biāo)平臺(tái)通常具有有限的存儲(chǔ)空間和運(yùn)算能力,比如常見的 ARM 平臺(tái),其一般的靜態(tài)存儲(chǔ)空間大概是 16 到 32 MB,而 CPU 的主頻大概在 100MHz 到 500MHz 之間。這種情況下,在 ARM 平臺(tái)上進(jìn)行本機(jī)編譯就不太可能了,這是因?yàn)橐话愕木幾g工具鏈(compilation tool chain)需要很大的存儲(chǔ)空間,并需要很強(qiáng)的 CPU 運(yùn)算能力。為了解決這個(gè)問題,交叉編譯工具就應(yīng)運(yùn)而生了。通過交叉編譯工具,我們就可以在 CPU 能力很強(qiáng)、存儲(chǔ)控件足夠的主機(jī)平臺(tái)上(比如 PC 上)編譯出針對其他平臺(tái)的可執(zhí)行程序。(一)armv4l-unkn

25、own-linux-gcc 2.95.2 交叉編譯器的安裝我首先安裝的是開發(fā)版自帶的 armv4l-unknown-linux-gcc 交叉編譯器,版本號是2.95.2,編譯器安裝在/opt/home/armv4l/bin 目錄下在掛載 U 盤之前可以通過 fdisk l 命令查看 U 盤的名稱,如圖 5 所示圖圖 5 fdisk l 命令查看 U 盤安裝步驟如下 mkdir /mnt /usb /*若有該目錄,則可以不必創(chuàng)建 */ mount t vfat /dev/sdb1 /mnt/usb /* 掛載 U 盤*/ cd /mnt/usb/Linux /* 進(jìn)入 U 盤的 Linux 安裝

26、目錄*/ ./Install /* 執(zhí)行開發(fā)環(huán)境自動(dòng)安裝腳本*/ 當(dāng)開發(fā)環(huán)境安裝完畢后,會(huì)在根目錄下生成一個(gè)目錄/2410RP_linux : /* 該目錄中包含以下目錄*/ CDROM:該目錄中包括光盤中的所有內(nèi)容。 Experiment_Key:該目錄中包含了所有 S3C2410-RP 目標(biāo)板所使用的實(shí)驗(yàn)代碼。 JFLASH_vivi :該目錄中包含了所有可以下載并燒寫到 S3C2410-RP 目標(biāo)板上運(yùn)行的內(nèi)核和文件系統(tǒng)。 kernel :該目錄中包含了嵌入式 Linux 操作系統(tǒng)的源碼,在此目錄中可以重新定制編譯內(nèi)核。 Qt:該目錄中包含了嵌入式圖形化界面應(yīng)用程序開發(fā)所需要的軟件安裝包

27、。 root :該目錄包含了 2410RP 的文件系統(tǒng)。 vivi :該目錄是 BootLoader 的源碼目錄,在此目錄中重新編譯 vivi 。注意在安裝中如果報(bào)錯(cuò)“找不到/2410RP_linux/CDROM/root”進(jìn)入/2410RP_linux文件夾后把所有文件夾的名字都改成大寫字母就能通過,錯(cuò)誤的原因可能是系統(tǒng)在復(fù)制 U 盤中文件時(shí)誤把大寫文件名變成了小寫。安裝成功后用armv4l-unknown-linux-gcc v 命令即可查看 gcc 版本信息,如圖 6圖圖 6 armv4l-unknown-linux-gcc 版本信息(二)arm-linux-gcc 3.3.2 編譯器的

28、安裝在這之后我又安裝 arm-linux-gcc 3.3.2 版本,因?yàn)殚_發(fā)版自帶的編譯器版本太低,后面編譯 mplayer 時(shí)會(huì)報(bào)錯(cuò),新編譯器安裝在/usr/local/arm/3.3.2/bin 下 下載 arm-linux-gcc-3.3.2.tar.bz2(有 71.3M) 解壓在/usr/local 中 修改環(huán)境 export PATH=/usr/local/arm/3.3.2/bin:$PATH 安裝成功后用arm -linux-gcc v 命令即可查看 gcc 版本信息,如圖 7圖圖 7 arm -linux-gcc 版本信息3.2 配置配置 minicomminicom 是一個(gè)

29、通信終端程序,通過 minicom 可以設(shè)置、監(jiān)控串口工作狀態(tài),接受、顯示串口收到的信息,并且在主機(jī)和開發(fā)板之間傳遞數(shù)據(jù)和控制指令,實(shí)現(xiàn)通過主機(jī)調(diào)試開發(fā)板的目的。在 PC 終端輸入命令#:minicom s 進(jìn)行配置。 port /dev/ttyS1 baudrate 115200 minit mreset rtscts No它表示端口為/dev/ttyS1,波特率為 115200、停止位 1 位、無奇偶驗(yàn)證位、無數(shù)據(jù)流控制,如圖 8 所示。注意這里的 ttyS1,首先由于筆記本電腦沒有串口,我這里用的是 usb 轉(zhuǎn)串口線,在 win7 系統(tǒng)下已經(jīng)把 usb 轉(zhuǎn)換為串口信息,所以在虛擬機(jī)中不能

30、用 ttyUSB0,用了會(huì)報(bào)錯(cuò)。其次“S”一定要大寫,如果是小寫系統(tǒng)因無法識(shí)別而報(bào)錯(cuò)。最后 ttyS0 對應(yīng)COM1 口,ttyS1 對應(yīng) COM2 口以此類推,如果使用 ttyS0 系統(tǒng)報(bào)錯(cuò),可以嘗試ttyS1 和 ttyS2。3.3 配置配置 NFS 服務(wù)服務(wù)NFS (Network File System)指網(wǎng)絡(luò)文件系統(tǒng),是 Linux 系統(tǒng)中經(jīng)常使用的一種服務(wù),NFS 是一個(gè) RPC service ,很像 windows 中的文件共享服務(wù)。它的設(shè)計(jì)是為了在不同的系統(tǒng)間使用, 所以它的通訊協(xié)議設(shè)計(jì)與主機(jī)及作業(yè)系統(tǒng)無關(guān)。當(dāng)使用者想用遠(yuǎn)端檔案時(shí)只要用mount就可把 remote 檔案系統(tǒng)

31、掛接在自己的檔案系統(tǒng)之下,使得遠(yuǎn)端的檔案在使用上和 local 的檔案沒兩樣。 圖圖 8 minicom 設(shè)置界面 圖圖 9 setup 圖形化設(shè)置界面在 NFS 服務(wù)中,宿主機(jī)(Servers)是被掛載(mount)端,為了遠(yuǎn)端客戶機(jī)(Clients ) (如:S3C2410RP 目標(biāo)板)可以訪問宿主 PC 機(jī)的文件,我們需要配置宿主機(jī)兩方面內(nèi)容:打開 NFS 服務(wù),允許“指定用戶 ”訪問宿主 PC 機(jī)。a)在終端輸入“steup”進(jìn)入圖形化設(shè)置界面,如圖 9 所示。b)在 System services 選項(xiàng)中使用空格鍵選中 NFS 服務(wù)去掉 ipchains 和iptables 服務(wù)。c

32、)在 Firewall configuration 選項(xiàng)中選擇 No firewall 關(guān)掉防火墻,注意這里RedHat 有一個(gè)小 BUG,就是無論選擇哪個(gè)等級的防火墻,下次進(jìn)來時(shí)防火墻等級還是 HIGH。不用管它,只要選擇 No firewall 系統(tǒng)就已經(jīng)關(guān)閉了防火墻,盡管下次進(jìn)來時(shí)還是 HIGH。如圖 10 所示d)在 exports 文件寫入以下命令允許“指定用戶” 訪問宿主 PC 機(jī)/192.168.0.* (rw,insecure,no_root_squash,no_all_squash)e)設(shè)置主機(jī) IP 和開發(fā)板 IP,開發(fā)板 IP 在 minicom 中設(shè)置。圖圖 10 設(shè)置

33、防火墻連接完網(wǎng)線和串口線之后就可以實(shí)現(xiàn)開發(fā)板和主機(jī)的通信了,在這之前可以使用 PING 命令來檢測是否通暢。如果 PING 不通,可能是以下原因:1,開發(fā)板和主機(jī)不在同一網(wǎng)段,使用 ifconfig eth0 *.*.*.* up 命令。2,主機(jī)防火墻開啟了。3,看主機(jī)是否能 ping 通其他計(jì)算機(jī)。4,linux 虛擬機(jī)設(shè)置為橋接。5.關(guān)閉無線網(wǎng)卡,如果存在多網(wǎng)卡,一定要將其他網(wǎng)卡關(guān)閉。這里的第 4 條和 5 條我都遇到了,VM 虛擬機(jī)中網(wǎng)絡(luò)連接方式默認(rèn)為 NAT,要把它改成 BRIDGE。由于筆記本的網(wǎng)卡被開發(fā)板占用,我一直在用無線網(wǎng)上網(wǎng)查資料解決問題,最終才知道恰恰是要關(guān)閉無線網(wǎng)才能解決

34、問題。3.4 編譯編譯 BootloaderBootloader 是一段小程序,它在系統(tǒng)上電開始時(shí)執(zhí)行,初始化硬件設(shè)備準(zhǔn)備好軟件環(huán)境,最后調(diào)用操作系統(tǒng)內(nèi)核。由于 Bootloadr 需要直接操作硬件,所以它嚴(yán)重依賴于硬件,而且依據(jù)所引導(dǎo)的操作系統(tǒng)不同,也有不同的選擇。Bootloader 的啟動(dòng)過程分為單階段和多階段兩種。往往多階段 Bootloader 能提供更為復(fù)雜的功能和更好的移植性。從固態(tài)存儲(chǔ)設(shè)備上啟動(dòng)的 Bootloader 大多都是兩階段的。第一階段用匯編代碼來實(shí)現(xiàn);第二階段用 C 語言來實(shí)現(xiàn)。(一)VIVI 簡介Vivi 是韓國 mizi 公司開發(fā)的 bootloader, 適用

35、于 ARM9 處理器。 Vivi 有兩種工作模式:啟動(dòng)加載模式和下載模式【5】 。啟動(dòng)加載模式可以在一段時(shí)間后(這個(gè)時(shí)間可更改)自行啟動(dòng) linux 內(nèi)核,這時(shí) vivi 的默認(rèn)模式。在下載模式下,vivi 為用戶提供一個(gè)命令行接口,通過接口可以使用 vivi 提供的一些命令,見下表 1: 命令功能Load把二進(jìn)制文件載入 Flash 或 RAMPart操作 MTD 分區(qū)信息。顯示、增加、刪除、復(fù)位、保存 MTDParam設(shè)置參數(shù)Boot啟動(dòng)系統(tǒng)Flash管理 Flash,如刪除 Flash 的數(shù)據(jù) 表表 1 vivi 常用命令(二)vivi 代碼分析 vivi 的代碼包括 arch ,ini

36、t ,lib,drivers 和 include 等幾個(gè)目錄,共 200 多條文件。 Vivi 主要包括下面幾個(gè)目錄: arch:此目錄包括了所有 vivi 支持的目標(biāo)板的子目錄,例如 s3c2410 目錄。 drivers:其中包括了引導(dǎo)內(nèi)核需要的設(shè)備的驅(qū)動(dòng)程序(MTD 和串口) 。MTD目錄下分 map、nand 和 nor 三個(gè)目錄。 init : 這個(gè)目錄只有 main.c 和 version.c 兩個(gè)文件。和普通的 C 程序一樣, vivi 將從 main 函數(shù)開始執(zhí)行。 lib :一些平臺(tái)公共的接口代碼,比如 time.c 里的 udelay()和 mdelay()。 includ

37、e :頭文件的公共目錄,其中的 s3c2410.h 定義了這塊處理器的一些寄存器。Platform/smdk2410.h 定義了與開發(fā)板相關(guān)的資源配置參數(shù),我們往往只需要修改這個(gè)文件就可以配置目標(biāo)板的參數(shù),如波特率、引導(dǎo)參數(shù)、物理內(nèi)存映射等。(三)vivi 的運(yùn)行vivi 的運(yùn)行分為兩個(gè)階段,如圖 11 所示:vivi 的第一階段 完成含依賴于 CPU 的體系結(jié)構(gòu)硬件初始化的代碼,包括禁止中斷、初始化串口、復(fù)制自身到 RAM 等。相關(guān)代碼集中在 head.S(viviarchs3c2410 目錄下);vivi 的第二階段是從 main ()函數(shù)開始,同一般的 C 語言程序一樣,該函數(shù)在/ini

38、t/main.c 文件中,包括打印 vivi 版本、時(shí)鐘初始化和 IO 口初始化、內(nèi)存初始化、堆棧初始化、MTD 設(shè)備初始化、私有數(shù)據(jù)和內(nèi)置命令初始化。(四)vivi 的編譯VIVI 默認(rèn)是在文件夾/2410RP_linux/vivi 中,如果是第一次編譯,需要輸入下列 2 條命令: cd /2410RP_linux/vivi/ make clean make如果 vivi 工程沒有問題,會(huì)生成的二進(jìn)制文件 vivi, 保存在/2410RP_linux/vivi 文件夾下以供后面燒寫。3.5 編譯編譯 Linux 內(nèi)核內(nèi)核內(nèi)核移植主要是指操作系統(tǒng)從一種硬件平臺(tái)轉(zhuǎn)移到另一種硬件平臺(tái)上運(yùn)行。對于嵌

39、入式系統(tǒng)來說,有各種體系結(jié)構(gòu)的處理器平臺(tái),使用的外圍硬件也不一樣。嵌入式 Linux 嚴(yán)重依賴于具體硬件,所以只要硬件平臺(tái)有略微差別,也需要做一些移植的工作。Linux 內(nèi)核在 PC 上以文件的形式存在(保存成磁盤文件形式) ,就是所謂的“映圖圖 11 vivi 的啟動(dòng)過程像文件”。Linux 內(nèi)核映像文件最終是要燒錄到目標(biāo)板的 flash 中。 Linux 內(nèi)核映像文件有兩種:一種是非壓縮版本,叫 Image;另一種是它的壓縮版本,叫 zImage。zImage 是 Image 經(jīng)過壓縮形成的,所以它的大小比 Image 小。為了能使用 zImage 這個(gè)壓縮版本,必須在它的開頭加上解壓縮的

40、代碼,將 zImage 解壓縮之后才能執(zhí)行,因此它的執(zhí)行速度比 Image 要慢【6】 。但考慮到嵌入式系統(tǒng)的存儲(chǔ)空容量一般都比較小,內(nèi)核要常駐內(nèi)存,采用 zImage 可以占用較少的存儲(chǔ)空間,因此犧牲一點(diǎn)性能上的代價(jià)也是值得的,所以一般嵌入式系統(tǒng)均采用壓縮的內(nèi)核映像文件,即 zImage。為了達(dá)到生成 zImage.bin 文件,要分為下面兩步:1、配置;2、編譯。配置內(nèi)核有多種方式,我們選用一種操作性比較好的圖形界面,執(zhí)行 make menuconfig 命令可以進(jìn)入,通過此部分,我們可以方便的選擇,決定哪些部分被加載并編譯入LINUX 內(nèi)核,哪些部分被編譯為模塊,哪些部分不用。配置完成后

41、,執(zhí)行 make zImage 命令,編譯后得到 zImage.bin 文件,保存在/2410RP_linux/kernel/arch/arm/boot 下面make clean 后第一次使用 make zImage 命令,會(huì)占用相當(dāng)長的時(shí)間。宿主機(jī)會(huì)根據(jù) autoconfig.h 文件對系統(tǒng)進(jìn)行編譯【7】 。首先使用交叉編譯器( armv4l-unknown-gcc )把各個(gè)文件夾下用過的 .c 文件編譯為二進(jìn)制的目標(biāo)文件,其次用鏈接器 (armv4l-unknown -ld)把這些目標(biāo)文件連接到一起;最后壓縮,就得到了內(nèi)核的鏡像文件 zImage 。這個(gè)文件是可以下載并燒寫到 S3C241

42、0-RP 目標(biāo)板上運(yùn)行的內(nèi)核。3.6 制作文件系統(tǒng)制作文件系統(tǒng)嵌入式系統(tǒng)與通用 PC 機(jī)不同,一般沒有硬盤這樣的存儲(chǔ)設(shè)備而是使用 Flash閃存芯片、小型閃存卡等專為嵌入式系統(tǒng)設(shè)計(jì)的存儲(chǔ)裝置。Flash 是目前嵌入式系統(tǒng)中廣泛采用的主流存儲(chǔ)器,它的主要特點(diǎn)是按整體/扇區(qū)擦除和按字節(jié)編程,具有低功耗、高密度、小體積等優(yōu)點(diǎn)。目前,F(xiàn)lash 分為 NOR, NAND 兩種類型。鑒于 Flash 存儲(chǔ)介質(zhì)的讀寫特點(diǎn),傳統(tǒng)的 Linux 文件系統(tǒng)己經(jīng)不適合應(yīng)用在嵌入式系統(tǒng)中,基于這樣的原因,產(chǎn)生了很多專為 Flash 設(shè)備而設(shè)計(jì)的文件系統(tǒng),這里我使用的是 Cramfs 文件系統(tǒng)。Cramfs 是 Li

43、nux 的創(chuàng)始人 Linus Torvalds 開發(fā)的一種可壓縮只讀文件系統(tǒng)在 Cramfs 文件系統(tǒng)中,每一頁被單獨(dú)壓縮,可以隨機(jī)頁訪問,其壓縮比高達(dá) 2:1, 為嵌入式系統(tǒng)節(jié)省大量的 Flash 存儲(chǔ)空間。Cramfs 文件系統(tǒng)以壓縮方式存儲(chǔ),在運(yùn)行時(shí)解壓縮,所以不支持應(yīng)用程序以 XIP 方式運(yùn)行,所有的應(yīng)用程序要求被拷到RAM 里去運(yùn)行,但這并不代表比 Ramfs 需求的 RAM 空間要大一點(diǎn),因?yàn)?Cramfs 是采用分頁壓縮的方式存放檔案,在讀取檔案時(shí),不會(huì)一下子就耗用過多的內(nèi)存空間,只針對目前實(shí)際讀取的部分分配內(nèi)存,尚沒有讀取的部分不分配內(nèi)存空間,當(dāng)我們讀取的檔案不在內(nèi)存時(shí), Cr

44、amfs 文件系統(tǒng)自動(dòng)計(jì)算壓縮后的資料所存的位置,再即時(shí)解壓縮到 RAM 中。另外,它的速度快,效率高,其只讀的特點(diǎn)有利于保護(hù)文件系統(tǒng)免受破壞,提高了系統(tǒng)的可靠性; 但是它的只讀屬性同時(shí)又是它的一大缺陷,使得用戶無法對其內(nèi)容對進(jìn)擴(kuò)充。Cramfs 映像通常是放在 Flash 中,但是也能放在別的文件系統(tǒng)里,使用 loopback 設(shè)備可以把它安裝別的文件系統(tǒng)里。使用 mkcramfs 工具可以創(chuàng)建 Cramfs 映像【8】 。文件系統(tǒng)是 Linux 系統(tǒng)必備的一個(gè)部分,主要是一些系統(tǒng)文件和應(yīng)用文件存儲(chǔ)的地方,但是通常使用的 PC 上的文件系統(tǒng)包括很多功能,但是體積比較大通常有幾百兆之多,但是在

45、嵌入式系統(tǒng)中要使用這樣的文件系統(tǒng)是不可能的,所以,嵌入式系統(tǒng)中的文件系統(tǒng)是一個(gè)簡化版,包括必須的幾個(gè)目錄和文件,完成需要的功能即可。下面我們就來對文件系統(tǒng)中包含的東西和文件進(jìn)行些簡要的說明。 文件系統(tǒng)要求建立的目錄有/bin ,/sbin ,/etc ,/dev ,/lib ,/mnt ,/proc,/usr 。 /bin 目錄下需要包含常用的用戶命令,如 sh 等。 /sbin 目錄要包含所有系統(tǒng)命令,如 reboot 等 。 /etc 目錄下是系統(tǒng)配置文件。 /boot 目錄下是內(nèi)核映像 /dev 目錄含有系統(tǒng)所有的特殊設(shè)備文件 /lib 目錄包含系統(tǒng)所有的庫文件 /mnt 目錄只用于掛接

46、,可以是空目錄 /proc 目錄是/proc 文件系統(tǒng)的主目錄,包含了系統(tǒng)的啟動(dòng)信息 /usr 目錄含有用戶選取的命令。cramfs 是一種可讀/ 寫的文件系統(tǒng)。制作它的工具叫做 mkcramfs ??梢杂孟旅娴拿顏砩梢粋€(gè) cramfs 的文件系統(tǒng)。輸入下列 2 條命令 cd /2410RP_linux/root ./mkcramfs rootfs 2410RP.cramfs 就會(huì)在 root 目錄下生成一個(gè)名字叫做 2410RP.cramfs 的文件系統(tǒng)。4 QT 開發(fā)環(huán)境的搭建開發(fā)環(huán)境的搭建4.1 QT 簡介簡介Qt 是 1991 年奇趣科技開發(fā)的一個(gè)跨平臺(tái)的 C+圖形用戶界面應(yīng)用程序

47、框架。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。Qt 很容易擴(kuò)展,并且允許真正地組件編程?;旧?,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平臺(tái)上的 MFC,OWL,VCL,ATL 是同類型的東西,有著以下優(yōu)點(diǎn)優(yōu)良的跨平臺(tái)特性:Qt 支持下列操作系統(tǒng): Microsoft Windows 95/98,Microsoft Windows NT,Linux,Solaris,SunOS,HP-UX,Digital UNIX (OSF/1,Tru64),Irix,F(xiàn)reeBSD,BSD/OS, SCO,AIX,OS390

48、,QNX 等等。面向?qū)ο驫t 的良好封裝機(jī)制使得 Qt 的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常方便的。Qt 提供了一種稱為 signals/slots 的安全類型來替代callback,這使得各個(gè)元件之間的協(xié)同工作變得十分簡單。豐富的 APIQt 包括多達(dá) 250 個(gè)以上的 C+ 類,還提供基于模板的collections,serialization, file,I/O device,directory management,date/time 類。甚至還包括正則表達(dá)式的處理功能。支持 2D/3D 圖形渲染,支持 OpenGL大量的開發(fā)文檔XML 支持。4.2 QTE 簡介簡

49、介Qte 即 Qt/embedded 它是 Qt 的一個(gè)版本,是一個(gè)專門為嵌入式系統(tǒng)設(shè)計(jì)圖形用戶界面的工具包,是挪威 Trolltech 公司的 Qt 的嵌入式版本。其特點(diǎn)包括:開源代碼和詳盡的 API 文檔;可移植性好;模塊化設(shè)計(jì)可裁減(最小只有 600k 左右) ;有自己的窗口系統(tǒng),可直接對底層圖形驅(qū)動(dòng)進(jìn)行操作;提供壓縮字體格式;多種硬件和軟件的輸入;支持反鋸齒文本和 Alpha 混合圖片;可連接數(shù)據(jù)庫;可使程序本地化;可與 java 集成等。QtE 雖開源,但商業(yè)應(yīng)用需付 license 費(fèi)用。Qt/Emebbed 通過 Qt API 與 Linux I/O 設(shè)備直接交互,同 Qt/X1

50、1 相比,QtE 不需要 X 服務(wù)器或Xlib 庫,采用 frame-buffer 作為底層圖形接口,同時(shí)將外部輸入設(shè)備抽象為keyboard 和 mouse 輸入事件【9】 。 QtE 開發(fā)采用交叉編譯的方式,在宿主機(jī)開發(fā)時(shí)通過 qvfb(virtual frame-buffer)來模擬 frame-buffer。qvfb 是 X 窗口用來運(yùn)行和測試 Qtopia 的系統(tǒng)程序。4.3 嵌入式圖形開發(fā)環(huán)境嵌入式圖形開發(fā)環(huán)境 QTE 的搭建的搭建 cd /home/tmake/tmake export TMAKEDIR=$PWD export TMAKEPATH=$TMAKEDIR/lib/qw

51、s/linux-arm-g+ cd /home/qte/qt-2.3.2-new export QTDIR=$PWD export QTEDIR=$QTDIR export LD_LIBRARY_PATH=$QTDIR/lib:$QTEDIR/lib:$ LD_LIBRARY_PATH make clean ./configure -xplatform linux-arm-g+ -shared -qvfb -depths 4,8,16,32 i. 在 configure 過程中,會(huì)出現(xiàn)如下打印的信息,進(jìn)行如下對話選擇:ii. Type G to view the GNU General Pub

52、lic License. iii. Type yes to accept this license offer. iv. Type no to decline this license offer. v. Do you accept the terms of the license? 輸入: yes 回車 i. Choose a feature configuration: 2. Minimal (630 kB) 3. Small (960 kB) 4. Medium (1.5 MB) 5. Large (3 MB) 6. Everything (5 MB) 7. Your own local

53、 configuration (src/tools/qconfig-local.h) i. Sizes are stripped dynamic 80386 bu ild. Static builds are smaller. ii. Your choice (default 5): 輸入: 5 回車 i. Building on: linux-x86-g+-shared ii. Building for: linux-arm-g+-shared iii. Thread support. no iv. GIF support. no v. MNG support.no vi. JPEG sup

54、port. no vii. Creating makefiles. viii. Qt is now configured for building. Just run make. ix. To reconfigure, run make clean and configure. x. 當(dāng)生成 Makefile 之后,就可以在上面同一個(gè)終端窗口下輸入 make 對QTExi. 源碼進(jìn)行編譯了。 make i. 若編譯過程中沒有出現(xiàn)任何 error ,則會(huì)有如下提示: ii. The Qt library is now built in ./lib iii. The Qt examples are

55、 built in the directories in ./examples iv. The Qt tutorials are built in the directories in ./tutorial v. Note: be sure to set $QTDIR to point to here or to wherever you move these directories. vi. Enjoy! - the Trolltech team vii. 現(xiàn)在 QTE 環(huán)境已經(jīng)編譯成功了。5 移植移植 mplayerMPlayer 是一個(gè)開源的軟件,我們可以從他的官網(wǎng)得到他的全部源碼。MP

56、layer被認(rèn)為是目前 LinUx 下的最好的媒體播放工具,它能支持幾乎所有流行的音頻和視頻格式的解碼及播放。因此,他也被移植到了 Windows 操作系統(tǒng)下,使其應(yīng)用變得更加廣泛。相比于其它播放器,MPlayer 在運(yùn)行時(shí)只占用很少的資源,它不需要系統(tǒng)提供任何硬件或軟件解碼器就可以播放各種媒體格式,對于 MPEG 格式文件的支持尤其好。MPlayer 不僅在拖動(dòng)播放進(jìn)度時(shí)快得不可思議,而且在播放有些破損的文件時(shí)效果也好得出奇,在低主頻處理器的機(jī)器上 MPlayer 更是占盡優(yōu)勢。此外,MPlayer 還支持除 X86 外的多種處理器,在我們的應(yīng)用中就是要把它移植到 ARM上的 Linux 系

57、統(tǒng)下【10】 。Mplaver 本身自帶了多種類型的解碼器,包括xvid、ae3filter、ffdshow、099、vobsub 等等看 DVDrip 必備的解碼器,因此它能支持大多數(shù)的媒體格式如:MPEG/VOB、ASF/WMA/WMV、AVI、OGM、RM、QT/MOVP4、MKV、VIVO、FILMFLI、NuppelVidco、mPeg 和 RoQ 文件,還能觀看VCD、SvCo、3ivx、DVD、DivX3/4/5 甚至 WMV 電影。當(dāng)然,我們移植到 ARM上的 MPtayer,由于收到嵌入式系統(tǒng)本身能力的限制,可以播放的格式就少了很多。Mplayer 的另一大特點(diǎn)是能廣泛地支持

58、各種音視頻輸出驅(qū)動(dòng)。它不僅可以使用Xll、Xv、DGA、OPenGL、DirectFB、SVGAlib、fbdev、AAlib、libeaca 也能使用GGI 和 SDL,還能使用 VESA 兼容顯卡上的 VESA,以及某些低級的顯卡相關(guān)的驅(qū)動(dòng)和一些硬件 MpEG 解碼器卡,比如 SiemensnVB,DXRZ,HauPpau。它們中絕大多數(shù)支持軟件或硬件縮放,所以你可以享受全屏電影。5.1 安裝安裝 libmadarm 系列的 cpu 一般都沒浮點(diǎn)運(yùn)算單元,而 mplayer 的 mp3 解碼默認(rèn)使用mp3lib,這個(gè)是浮點(diǎn)運(yùn)算庫,在 arm 上是不能運(yùn)行的,這就需要額外的音頻解碼器 lib

59、mad,在交叉編譯 mplayer 時(shí),加上 -enable-mad 就可以調(diào)用 mad.ha)下載 libmad 包(libmad-0.15.1b.tar.gz) ;b)打開一個(gè)終端,進(jìn)入 libmad 的目錄,輸入配置命令:./configure -enable-fpm=arm -host=arm-linux -disable-shared -disable-debugging -prefix=/usr/local/arm/3.3.2/libCC=arm-linux-gccc)maked)make install參數(shù)解析: -enable-fpm=arm -host=armlinux -d

60、isable-shared -disable-debugging -prefix=/usr/local/arm/3.3.2/lib (make install 安裝路徑) CC=arm-linux-gcc(3.3.2 的交叉編譯工具鏈)這樣就可以看到 /usr/local/arm/3.3.2/lib 目錄下多了 include 和 lib 目錄,liclude 目錄下有文件 mad.h,lib 目錄有文件 libmad.a libmad.la,這些就是 libmad 相關(guān)的庫。5.2 交叉編譯交叉編譯 Mplayer5.2.1Mplayer 安裝步驟我用的版本是 MPlayer-1.0pre8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論