999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM?Linux多媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)

2017-05-17 20:27:46陳洋君吳志勇崔明張維達(dá)
現(xiàn)代電子技術(shù) 2017年10期

陳洋君 吳志勇 崔明 張維達(dá)

摘 要: 針對(duì)目前大多數(shù)多媒體播放系統(tǒng)都需要通過專門的視頻編解碼芯片對(duì)視頻文件進(jìn)行編解碼,所帶來的成本高、開發(fā)繁瑣等問題,結(jié)合ARM微處理器、嵌入式Linux操作系統(tǒng)、MPlayer應(yīng)用程序等,設(shè)計(jì)一種基于ARM?Linux的嵌入式多媒體播放系統(tǒng)。該系統(tǒng)采用了低成本、低功耗、高性能的ARM處理器,嵌入了開源、移植性高,功能強(qiáng)大的Linux操作系統(tǒng)。同時(shí)使用了網(wǎng)絡(luò)文件系統(tǒng)NFS,實(shí)現(xiàn)不同操作平臺(tái)上的文件共享。最終在該嵌入式系統(tǒng)下,通過經(jīng)移植的應(yīng)用程序MPlayer將音視頻文件直接經(jīng)軟解碼后實(shí)現(xiàn)了多媒體播放器的功能,播放音畫質(zhì)流暢穩(wěn)定,達(dá)到預(yù)期效果。結(jié)果表明,該設(shè)計(jì)不僅降低了成本,且簡化了開發(fā)的過程。

關(guān)鍵詞: ARM微處理器; 嵌入式Linux; 多媒體播放器; NFS

中圖分類號(hào): TN912.23+1?34; TP368.1 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)10?0075?04

Abstract: As the most present multimedia player systems need the special codec chip to encode and decode video files, which leads to the high cost and cockamamie fussy development, an embedded multimedia player system based on ARM?Linux was designed in combination with ARM microprocessors, embedded Linux operating system, MPlayer application program, etc. The low cost, low power consumption and high performance ARM microprocessor are adopted in system, in which open source, high portability and powerful Linux operating system is embedded, and the network file system (NFS) is employed for sharing of files on different operating platforms. The function of the multimedia player was achieved after software direct decoding of audio and video files by means of the transplanted application program MPlayer. The expected effect of smooth and stable audio and video playback was realized. The result indicates that the design reduces costs and simplifies the development process.

Keywords: ARM microprocessor; embedded Linux; multimedia player; NFS

當(dāng)代,信息技術(shù)飛速發(fā)展,新穎便攜的消費(fèi)類電子產(chǎn)品得到了大眾的追捧,成為了IT市場的一個(gè)重要的經(jīng)濟(jì)增長點(diǎn)[1],嵌入式系統(tǒng)在消費(fèi)類電子產(chǎn)品得到了廣泛的應(yīng)用[2?3]。本文研究是在嵌入式系統(tǒng)下實(shí)現(xiàn)多媒體功能。近十年國內(nèi)多媒體播放器主要采用簡單控制芯片(如單片機(jī)等)加上音視頻解碼芯片的方式,雖然價(jià)格低,但功能單一,音畫質(zhì)差,且開發(fā)難度大。而國外采用專用解碼芯片的多媒體播放器,在處理性能和效果上得到了提升,卻因其高昂的價(jià)格,不適用于國內(nèi)市場。針對(duì)這些弊端,本文設(shè)計(jì)的多媒體播放器采用的是ARM?Linux的解決方案,即在ARM開發(fā)板上移植Linux操作系統(tǒng),并通過移植的應(yīng)用程序MPlayer對(duì)音視頻軟解碼后實(shí)現(xiàn)多媒體功能。該方案具有反應(yīng)速度快、移植性高、費(fèi)用低、功能可擴(kuò)展性強(qiáng)等特點(diǎn)。

1 ARM微處理器以及Linux嵌入式

1.1 ARM微處理器平臺(tái)

ARM處理器是一款RISC微處理器[4],共有37個(gè)寄存器,其中包括31個(gè)通用寄存器,6個(gè)狀態(tài)寄存器(標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài))。ARM處理器主要面向低預(yù)算市場。ARM特點(diǎn)主要體現(xiàn)在:成本低、功耗低,性能高,采用雙指令集,尋址方式靈活多樣等。

該系統(tǒng)采用的ARM處理器是S3C2440A[5],該處理器具有16/32位RISC體系架構(gòu)和ARM920T CPU核心強(qiáng)大的指令集,增強(qiáng)型的ARM架構(gòu)MMU以支持WinCE,EPOC32和Linux。共有8個(gè)Bank(每個(gè)128 MB),支持NOR以及NAND FLASH啟動(dòng),它具有低功耗,全靜態(tài)設(shè)計(jì)等優(yōu)點(diǎn),還提供豐富的外設(shè)資源,適合多媒體播放器的設(shè)計(jì)要求。

1.2 嵌入式Linux

嵌入式系統(tǒng)是依托于計(jì)算機(jī)技術(shù),以應(yīng)用為目標(biāo),并且軟硬件都可裁剪,在成本、性能、穩(wěn)定性、體積大小、功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)[6]。

嵌入式操作系統(tǒng)具有可裁剪、可配置、實(shí)時(shí)性高等特點(diǎn)。近年來,廣為人知的嵌入式操作系統(tǒng)有VxWorks,WinCE,嵌入式Linux等。但Linux得益于其免費(fèi),開源等優(yōu)勢(shì),Linux操作系統(tǒng)被廣泛應(yīng)用于嵌入式系統(tǒng)中。Linux是類Unix操作系統(tǒng)的一種,用戶可以免費(fèi)使用,也可自由傳播的。得益于其成本低以及可定制性,在嵌入式領(lǐng)域異軍突起。Linux特點(diǎn):自由軟件,免費(fèi)試用,多用戶、多任務(wù);極強(qiáng)的平臺(tái)可伸縮性(可裁剪);提供強(qiáng)大的管理功能;完全符合POSIX標(biāo)準(zhǔn);具有豐富的圖形用戶界面;具有強(qiáng)大的網(wǎng)絡(luò)功能。

2 ARM?Linux嵌入式系統(tǒng)總體設(shè)計(jì)

目前,在嵌入式ARM開發(fā)板上運(yùn)行Linux[7]已經(jīng)非常普遍,一個(gè)基于ARM?Linux的嵌入式系統(tǒng)大致可以分為5部分,如圖1所示。

系統(tǒng)軟件層次主要由五個(gè)部分組成:

引導(dǎo)加載程序(Boot Loader):它是系統(tǒng)上電運(yùn)行的第一段程序,在操作系統(tǒng)啟動(dòng)前,完成目標(biāo)板軟硬件的初始化,為內(nèi)核的調(diào)用做好準(zhǔn)備。本系統(tǒng)使用的是U?boot。

Linux內(nèi)核:包括嵌入式硬件平臺(tái)的內(nèi)核啟動(dòng)參數(shù)和依據(jù)需求所定制的內(nèi)核。

文件系統(tǒng):包括根文件系統(tǒng)和普通的文件系統(tǒng)。

應(yīng)用程序即用戶特定的應(yīng)用程序。

硬件平臺(tái):該系統(tǒng)主要由嵌入式處理器、FLASH、 TFT?LCD屏、串口、電源等構(gòu)成。

該系統(tǒng)采用的ARM9處理器是三星公司的S3C2440A,首先通過運(yùn)行在虛擬機(jī)(VMware workstation) 的Fedora10上利用交叉編譯鏈arm?Linux?gcc將Linux內(nèi)核,U?Boot源碼包編譯成可用鏡像文件,然后構(gòu)建根文件系統(tǒng),進(jìn)行相應(yīng)的NAND FLASH驅(qū)動(dòng)移植,Qt移植、TFT?LCD移植、USB設(shè)備驅(qū)動(dòng)移植。在ARM開發(fā)板上搭建好多媒體播放器的嵌入式環(huán)境后,移植應(yīng)用程序MPlayer。通過將視頻文件NFS掛載到Linux,在ARM芯片控制下由移植的MPlayer軟解碼來實(shí)現(xiàn)多媒體播放器的功能。系統(tǒng)總體結(jié)構(gòu)框圖如圖2所示。

然后,NAND FLASH驅(qū)動(dòng)移植,網(wǎng)卡驅(qū)動(dòng)移植、USB設(shè)備驅(qū)動(dòng)移植、TFT?LCD屏驅(qū)動(dòng)移植[9]、I2C總線移植等。

制作文件系統(tǒng):包括移植yaffs文件系統(tǒng)[6],編譯并安裝BusyBox后,在手動(dòng)添加“dev” ,“etc”,“home” ,“l(fā)ib”,“mnt”,“opt”等,構(gòu)建文件系統(tǒng)。

3.2 配置網(wǎng)絡(luò)文件系統(tǒng)NFS服務(wù)

在網(wǎng)絡(luò)上,通過網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)[10],一個(gè)系統(tǒng)可以與他人共享目錄和文件。用戶和程序可以像訪問本地文件一樣的訪問遠(yuǎn)端系統(tǒng)上的文件。在嵌入式開發(fā)中,NFS服務(wù)是常用于內(nèi)核啟動(dòng)掛載根文件系統(tǒng)的方式。使用這種方式掛載根文件系統(tǒng),為嵌入式產(chǎn)品開發(fā)和測(cè)試提供了廉價(jià)而高效的方案。

具體配置[11]流程如下:

(1) 首先關(guān)閉防火墻:使用#/etc/init.d/iptables stop或者使用命令#lokkit(永久關(guān)閉防火墻)。

(2) 設(shè)置共享目錄: #gedit/etc/exports,然后編輯NFS的配置文件,添加/opt/EmbedSky/root_nfs *(rw,sync,no_root_squsah)。其中/opt/EmbedSky/ root_nfs為NFS共享目錄,通過NFS掛載后它可以作為開發(fā)板的根文件系統(tǒng)。

(3) 將前面制作好的根文件系統(tǒng)復(fù)制一份后改名為root_nfs,然后修改etc/init.d/rcS,屏蔽掉net_set &。

(4) 測(cè)試PC端是否成功設(shè)置并啟動(dòng)NFS服務(wù):啟動(dòng)NFS,命令行輸入:#/etc/init.d/nfs start;命令行輸入 mount?t nfs 192.168.1.58: /opt/EmbedSky /root_nfs/opt/EmbedSky/root,通過檢查/opt/ EmbedSky/ root_nfs和/opt/EmbedSky/root目錄內(nèi)容是否一致驗(yàn)證設(shè)置成功與否。

(5) 開發(fā)板下的設(shè)置:首先將PC與開發(fā)板連接起來(包括網(wǎng)線、并口線、電源線),進(jìn)入U(xiǎn)?Boot下載模式,然后依次輸入命令0?>1?>192.168.1.58(PC的Linux的IP地址)?>192.168.1.2(開發(fā)板的Linux的IP地址)?>255.255.255.0(開發(fā)板的掩碼地址)?>/opt/EmbedSky/root_nfs(PC的Linux中的NFS文件系統(tǒng)的路徑)?>s?>q?>8,啟動(dòng)開發(fā)版。

(6) 在SecureCRT控制臺(tái)下輸入:mount?t nfs?o intr,nolock,rsize=1024,wsize=1024 192.168.1.58:/opt/ EmbedSky/root_nfs /mnt。

掛載成功后,訪問開發(fā)板的/mnt/目錄時(shí),就相當(dāng)于訪問PC的Linux的NFS目錄。

SecureCRT控制臺(tái)如圖3所示,開發(fā)板被啟動(dòng)后狀態(tài)如圖4所示。

4 應(yīng)用程序MPlayer的移植

MPlayer是一款開源的多媒體播放器,可以運(yùn)行在多種操作系統(tǒng)上[12],例如Linux和類Unix系統(tǒng)、Windows等。其本身編譯自帶多種解碼器,能夠播放大多數(shù)音視頻文件,如AVI,MPEG,MP3,WMV等。還能夠觀看 DVD,VideoCD,RealMedia和DivX等格式電影[13]。MPlayer還具有廣泛的輸出設(shè)備支持,它可以在OpenGL,XII,DGA,Xv,SVGAlib及AAlib上工作,而且也能夠使用一些硬件相關(guān)的低級(jí)的驅(qū)動(dòng)模式[14]。MPlayer具備解碼、播放及音視頻同步功能。十分適用于本系統(tǒng)的需求。

具體的移植實(shí)現(xiàn)流程如下:

首先準(zhǔn)備源碼包:MPlayer?1.0rc2.tar.bz2以及l(fā)ibmad?0.15.1b.tar.gz。MPlayer 1.0已經(jīng)把大部分解碼庫都自帶了,如FFmpeg等,但是自帶的音頻庫在處理器S3C2440A下效果非常不好,換成使用libmad效果不錯(cuò)。因此MPlayer在ARM?Linux的最簡單的移植只需要移植這兩個(gè)即可。移植后進(jìn)行字符界面的播放。

(1) 編譯libmad。配置configure文件,#./configure CC=arm ?linux ?gcc??enable?fpm=arm??host=arm?linux??disable?shared??disable?debugging??prefix=/opt/EmbestSky/video/MPlayer?1.0rc2 ;輸入命令make ,make install編譯安裝libmad。

(2) 編譯安裝MPlayer。下載并解壓源代碼MPlayer?1.0rc3.tar.bz2,#tar?jzxvf MPlayer?1.0rc3.tar.bz2。

配置 configure 文件。其中包括指定安裝路徑,交叉編譯工具,添加環(huán)境變量,設(shè)定靜態(tài)變量等。

(3) 輸入命令make,make install 編譯安裝MPlayer。

(4) 將編譯后的Mplayer通過NFS掛載的方式在開發(fā)板上運(yùn)行:在控制臺(tái)輸入指令:./mplayer?libmad car.avi?framedrop?quiet?vf rotate=1,scale=480:240,如圖5所示。開發(fā)板視頻播放最終全屏顯示結(jié)果如圖6所示。

5 結(jié) 語

本文設(shè)計(jì)的觸屏多媒體播放器是在ARM?Linux嵌入式環(huán)境下,通過MPlayer軟解碼實(shí)現(xiàn)的。該方案充分發(fā)揮了性能優(yōu)越的S3C2440A微處理器,高兼容性,易剪裁的Linux操作系統(tǒng)以及MPlayer軟解碼的優(yōu)勢(shì)。設(shè)計(jì)出的多媒體播放器性能穩(wěn)定,界面友好,達(dá)到了預(yù)期效果。與傳統(tǒng)的多媒體播放器相比,基于ARM?Linux的嵌入式播放器具有功能可擴(kuò)展、低成本、開發(fā)過程簡單的優(yōu)勢(shì)。

參考文獻(xiàn)

[1] 姚放,肖海.嵌入式處理器分類與現(xiàn)狀[EB/OL].[2014?02?23].http://www.bol?system.com.

[2] 傅籬.嵌入式系統(tǒng)在我國的應(yīng)用現(xiàn)狀與發(fā)展趨勢(shì)[J].管理觀察,2013(11):164?166.

[3] 宮鵬,宮玥,王端寶.基于嵌入式系統(tǒng)的多媒體音樂播放器[J].現(xiàn)代電子技術(shù),2011,34(12):100?103.

[4] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.

[5] Samsung Electronics. S3C2440A 32?bit CMOS microcontroller user′s manual [M]. South Korea: Samsung Electronics, 2004.

[6] 馬義德,劉映杰,張新國.嵌入式系統(tǒng)的現(xiàn)狀及發(fā)展前景[J].信息技術(shù),2001,8(12):57?59.

[7] 韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出報(bào)社,2012:197.

[8] 田磊.基于ARM的嵌入式Linux操作系統(tǒng)的移植[D].西安:西安電子科技大學(xué),2009:21.

[9] 紀(jì)寧寧,孫靈燕.S3C2440A驅(qū)動(dòng)RGB接口TFT LCD的研究[J].液晶與顯示,2008,23(1):96?100.

[10] 聶和平.基于ARM9的嵌入式Linux系統(tǒng)移植與驅(qū)動(dòng)開發(fā)[D].南京:南京郵電大學(xué),2013:21?42.

[11] 瑛宣.Linux 下NFS(網(wǎng)絡(luò)文件系統(tǒng))的建立與配置方法[J].計(jì)算機(jī)與網(wǎng)絡(luò),2013,39(21):44?45.

[12] 劉玉萍.MPlayer的嵌入移植[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(1):192?196.

[13] 米韶華.嵌入式多媒體系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:成都理工大學(xué),2010:43?57.

[14] 宋丹,馬昌萍,馬幼鳴.MPlayer在嵌入式開發(fā)系統(tǒng)中的應(yīng)用[J].電子產(chǎn)品世界,2005,13(7):68?71.

主站蜘蛛池模板: 99视频在线免费看| 天天躁夜夜躁狠狠躁躁88| 日韩AV无码一区| 亚洲国产午夜精华无码福利| 国产精品30p| 精品人妻AV区| 狠狠ⅴ日韩v欧美v天堂| 国产午夜无码片在线观看网站| 亚洲激情区| 自拍偷拍欧美| 国产福利在线免费| a毛片在线| 制服丝袜亚洲| 成·人免费午夜无码视频在线观看 | 久久久亚洲色| 国产精品久久精品| 精品99在线观看| 毛片免费网址| 中文字幕人妻无码系列第三区| 色综合五月婷婷| 精品五夜婷香蕉国产线看观看| 亚洲高清中文字幕| 欧美69视频在线| 免费午夜无码18禁无码影院| 国产又爽又黄无遮挡免费观看| 91亚洲精选| 久久国语对白| 国产一级小视频| 国产性精品| 精品国产一区二区三区在线观看 | 99ri国产在线| 国产精品第一区在线观看| 国产成人狂喷潮在线观看2345| 毛片在线播放a| 性色一区| 欧美人在线一区二区三区| 国产精品永久不卡免费视频| 亚洲V日韩V无码一区二区| 亚洲欧洲日韩久久狠狠爱| 91在线国内在线播放老师| 99在线视频精品| 国产亚洲欧美日韩在线观看一区二区| 亚洲第一视频网| 2021天堂在线亚洲精品专区| 亚洲精品在线91| 岛国精品一区免费视频在线观看| 欧美黄色a| 国产精品免费福利久久播放 | 国产欧美亚洲精品第3页在线| 天天干天天色综合网| 国产高清不卡| 在线精品自拍| 久久性视频| 亚洲乱伦视频| 19国产精品麻豆免费观看| 日韩av在线直播| 亚洲精品成人7777在线观看| 亚洲三级成人| 成人亚洲国产| 免费女人18毛片a级毛片视频| 亚洲精品男人天堂| 精品视频在线观看你懂的一区| 免费看美女毛片| 亚洲 日韩 激情 无码 中出| 超碰精品无码一区二区| 在线观看国产精品一区| 狠狠做深爱婷婷综合一区| 亚洲国产精品日韩av专区| 久草视频精品| 在线色综合| 欧美午夜网| 久久国产精品国产自线拍| 人妻熟妇日韩AV在线播放| 亚洲精品欧美日本中文字幕| 极品性荡少妇一区二区色欲| 99精品这里只有精品高清视频| 亚洲成人一区二区三区| 中字无码av在线电影| 久久网综合| 国产精品嫩草影院av| 成年人视频一区二区| 日本久久网站|