www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于ARM L i nux QT的掌上多媒體系統(tǒng)的設計和實現(xiàn)


0 引言
    隨著人們生活水平的提高,消費結構發(fā)生了巨大變化,消費者用于娛樂方面的支出在總支出中所占的比例正在不斷擴大。掌上多媒體系統(tǒng)可以滿足人們對于試聽以及便攜的需求,另外還可以實現(xiàn)一些其他功能,如圖片瀏覽、網(wǎng)絡下載、以及影音錄制等。目前市場上的掌上多媒體系統(tǒng)多是Windows CE、Symbian、Palm OS等商用操作系統(tǒng),其開放的程序不夠高,而且價格偏高,不適于第三方應用軟件的移植。ARM體系作為專用嵌入式系統(tǒng)設計的通用處理器內核,具備高性能、低功耗、易擴展的特點。本系統(tǒng)基于ARM9、嵌入式Linux操作系統(tǒng)設計并實現(xiàn)了一個更為開放的嵌入式平臺,來實現(xiàn)掌上多媒體系統(tǒng)的諸多功能。


1 多功能掌上媒體播放器系統(tǒng)的硬件設計
    多功能掌上媒體播放器系統(tǒng)的硬件設計如圖1所示。LCD采用的是Sharp的TFT屏,3.52in,分辨率240×320;音頻控制器是IIS接口的音頻控制器,解碼芯片是UDA1314TS;另外擴展了用于視頻錄制的Philips的視頻解碼芯片SAA7113和ADI的JPEG壓縮芯片。視頻錄制的框圖如圖2所示。

2 多功能掌上媒體播放器系統(tǒng)的軟件設計
    系統(tǒng)設計和軟件設計是本系統(tǒng)的難點。系統(tǒng)軟件設計的總體框架如圖3所示。
2.1 嵌入式Linux操作系統(tǒng)
    Linux最初由Linux Torvalds編寫,后來在網(wǎng)絡上被眾多的Linux愛好者加以修改和維護,具有內核高效穩(wěn)定、開源、可移植性強、內核可定制可裁剪、多線程多任務等特點,因此選擇其作為本媒體播放器系統(tǒng)的操作系統(tǒng)。圖1多功能掌上多媒體系統(tǒng)的硬件設計圖2多功能掌上多媒體系統(tǒng)的視頻錄制系統(tǒng)的框圖圖3多功能掌上多媒體系統(tǒng)的軟件設計總體框架
    首先定制裁剪并移植了Linux2.6的內核,然后為使各硬件能正常工作編寫了鍵盤驅動、LCD驅動、觸摸屏驅動、音頻驅動、USB驅動等驅動。多功能掌上多媒體系統(tǒng)的正常工作首先是進入ARM-Linux操作系統(tǒng),然后加載各個硬件的驅動程序并初始化各外圍設備,接著就進入基于QT/Embedded庫的Qtopia桌面系統(tǒng)編寫的GUI圖形界面程序的播放器,最后選擇要進行的操作。
    對于Linux內核的移植首先要移植bootloader,系統(tǒng)采用的是VIVI,其功能包括:分區(qū)管理、參數(shù)管理、啟動Linux操作系統(tǒng)、文件系統(tǒng)管理、支持網(wǎng)絡、通過串口下載程序到Flash或者RAM等。建立嵌入式開發(fā)環(huán)境,使得能夠交叉編譯源代碼,對VIVI的源代碼進行交叉編譯,生成能在ARM Linux上運行的bin文件,通過開發(fā)板的JTAG口將其燒寫到開發(fā)板的Flash中。
    對內核的移植首先要對內核進行修改MAKEFILE文件指定編譯器以及目標平臺,然后配置內核,交叉編譯生成內核鏡像,通過UART口(串口)下載到開發(fā)板上。移植相應的文件系統(tǒng)。文件系統(tǒng)中的文件是數(shù)據(jù)的集合,不僅包含著文件中的數(shù)據(jù),而且還有文件系統(tǒng)的結構,所有Linux用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。在設計過程中把文件系統(tǒng)設置為可讀寫,這樣操作性強一些,在投入到生產中的時候應該把文件系統(tǒng)設置為只讀的,這樣整個掌上多功能媒體播放器的操作系統(tǒng)就加載好了。
2.2 驅動程序的設計
    本系統(tǒng)共涉及到鍵盤驅動、觸摸屏驅動、LCD驅動、音頻驅動和USB驅動等驅動。因為多媒體功能是本系統(tǒng)的重點,所以播放器部分很重要,這里主要介紹音頻驅動的編寫。
    目前Linux下常用的音頻驅動程序主要有兩種類型:OSS(Open Sound System) 和ALSA。最早出現(xiàn)的Linux上的編程接口是OSS,它由一套完整的內核驅動程序模塊組成,可為大多數(shù)音頻芯片驅動提供統(tǒng)一的編程接口。在嵌入式系統(tǒng)中,對于特定的處理器(如本系統(tǒng)采用的S3C2410),可以按照OSS接口標準來編寫音頻驅動程序,以滿足Linux上的應用程序。OSS接口已經足夠簡單,需要完成的主要的工作就是對音頻設備(本系統(tǒng)采用的是Philips的UDA1314TS)的read,write和ioctl等操作。[!--empirenews.page--]
    系統(tǒng)音頻驅動主要是對UDA1314TS進行驅動編寫,包括對UDA1314TS的L3接口的控制。首先初始化I/O和UDA1 314芯片,然后申請兩個DMA(Direct Memory Access)通道用于音頻傳輸(音頻數(shù)據(jù)的發(fā)送和接收都通過一個先入先出的隊列FIFO,但是只靠FIFO要保證音頻的連續(xù)播放是很困難的,所以申請DMA通道來解決此問題)。OSS標準中由兩個最基本的音頻設備:混音器(Mixer)和數(shù)字信號處理器(DSP)又稱編解碼器,其中混音器主要用來控制輸入輸出音量的大小,只有open和release以及幾個接管OSS標準的iotcl。而DSF設備驅動的方法比較復雜,主要包括open、release、read、write、poll、ioctl。其中主要在write和read方法中實現(xiàn)音頻的播放和錄音。以播放音頻來說明DSP驅動程序的編寫,對應了驅動程序中的open和write方法,它們利用DMA實現(xiàn)了音頻的播放。在open中,首先判斷設備打開的方法:讀取、寫入和讀/寫,分別對應音頻的錄音、播放以及錄音同時回放,然后申請兩個與音頻DMA緩沖區(qū)相關的,在初始化DMA時要用到,最后程序可以根據(jù)設備打開模式的初始化S3C2410的工作模式,并清空所需的DMA緩沖區(qū)(在write方法被調用時創(chuàng)建)的數(shù)據(jù)結構,把它留給緩沖區(qū)創(chuàng)建。在這里,因為使用了兩個DMA音頻數(shù)據(jù)傳輸,DMA緩沖的建立發(fā)生在第一次調用wri te將音頻數(shù)據(jù)傳送到設備,而OSS驅動的調用者通常要在打開音頻設備時就期望獲得DMA緩沖的信息,然而因為緩沖尚未建立,會使得緩沖大小為0這個結果,解決辦法時在兩個與音頻DMA緩沖區(qū)相關的程序部分一定不能少了以下代碼:
    if(!output_stream.buffer&&audio_setup_buf(&out stream))
    return-ENOMEM;
    在Write方法中首先判斷設備文件打開的方式,具有write特性打開的設備才可以寫入,然后判斷是否沒有建立DMA緩沖區(qū),若沒有,則通過audio_setup_buf()來創(chuàng)建,定義一個結構體(audio_stream_t)的指針如下:


2.3 Gu l程序的設計與播放器的實現(xiàn)
2.3.1 GUI程序的設計和實現(xiàn)
    播放器的圖形界面在Qtopia視窗環(huán)境下運行,采用Qt/Embedded2.3.7作為底層圖形庫,用于生成用戶界面。QT是一個跨平臺的c++圖形用戶界面庫,Qt/Embedded是面向嵌入式系統(tǒng)的版本,其最大的特點就是使信號和槽用于對象間的通信,Qt的窗口部件有多個預定義的信號,槽是一個可以被調用處理特定信號的函數(shù)。Qt的窗口部件有多個預定義的槽,當一個特定事件發(fā)生的時候,一個信號被發(fā)射,對應感興趣的槽就會調用對應的相應函數(shù)。播放器界面主要包括主界面窗口、文件操作窗口、播放列表窗口。主界面窗口有一個顯示屏和一些控制按鈕,包括播放、暫停、快進、快退、下一首、上一首、音量調整以及播放進度條和播放時間顯示。文件操作窗口可以使用戶選擇要播放的文件。播放列表用來播放最近播放的五個多媒體文件。
2.3.2 播放器的實現(xiàn)
    Linux下的播放器Mplayer是Linux上最優(yōu)秀的多媒體播放器,它能夠使用眾多的編解碼器,支持多種輸出設備??梢圆シ攀忻嫔蠋缀跛械囊粢曨l格式。本系統(tǒng)選擇其作為播放器,對其進行優(yōu)化和移植。進行的優(yōu)化主要有:
    (1)Mplayer在系統(tǒng)上運行的時候顏色會有偏差,因此編程校正Mplayer的色彩;
    (2)Mplayer正常模式不能在FramBuffer的中間顯示,帶-fs的全屏參數(shù)播放后,只能將播放位置移到中間,并不放大,修改播放顯示位置,讓它和Nplayer圖形界面的調用相符合;
    (3)編程實現(xiàn)播放時對鍵盤事件正常化;
    (4)Mplayer采用的自帶的mp3lib浮點音頻解碼庫的解碼效率很低,在播放音頻時會很卡,通過采用使用定點運算的libmad音頻解碼庫替代原來的mp3lib庫進行音頻解碼;
    (5)使用Mplayer的-input選項,通過FIFO從GUI向后端程序傳遞控制信息。通過優(yōu)化后,對Mplayer交叉編譯,移植到系統(tǒng)上可以流暢地播放mp3等音頻文件以及mpeg-1、mpeg-2、avi等視頻格式。[!--empirenews.page--]
2.4 影音錄制
    影音錄制的系統(tǒng)框架見圖2。通過擴展用于視頻錄制的Philips的視頻解碼芯片SAA7113和ADI的JPEG壓縮芯片來實現(xiàn)。首先輸入的模擬視頻信號經過SAA7113轉換為數(shù)字信號,然后傳輸給ADI的JPEG壓縮芯片JPEG2000,壓縮為JPEG圖像信號,并通過擴展的總線接口傳輸?shù)较到y(tǒng)上。音頻信號則直接通過音頻輸入接口送到音頻解碼芯片,并轉化為數(shù)字信號進行編碼。編寫應用程序使傳到的音視頻數(shù)字信號一起轉化為Motion JPEG編碼的AVI格式的多媒體文件,并存入擴展的存儲設備(微硬盤或者MMC/SD卡),這樣就可以被Mplayer播放。


3 性能優(yōu)化
    盡管ARM9處理器主頻可以高達200MHz以上,但是為了降低功耗,本系統(tǒng)在保證滿足實時播放的前提下,對系統(tǒng)進行優(yōu)化。所以,在一個資源受限的處理器上要實現(xiàn)多媒體文件的實時播放,性能優(yōu)化成為關鍵。本系統(tǒng)主要通過解碼程序優(yōu)化,打開Cache等措施來提高系統(tǒng)性能。
3.1 對解碼程序的優(yōu)化
    由于解碼過程絕大部分是計算,以MP3音頻文件為例,其解碼過程主要是高精度乘法和矢量運算,其中80%的CPU時間用于數(shù)值計算,因此對于解碼部分主要采用了以下方法進行優(yōu)化:
    (1)整數(shù)運算。在沒有硬件浮點單元的CPU上,浮點運算是仿真方式,因此解碼代碼中應直接采用整數(shù)運算方式編碼,而避免浮點運算;
    (2)通過查表方式代替很多運算式獲取計算結果,對調用頻繁的小函數(shù)采用inline修飾;
    (3)關鍵代碼采用匯編語言編程,以獲得更高效的目標代碼,來提高系統(tǒng)的運行性能。
3.2 打開Cache
    ARM9處理器帶有獨立的16 kB數(shù)據(jù)Cache和16 kB的指令Cache。本系統(tǒng)中,打開指令Cache肯定能在一定程度上提高性能。至于數(shù)據(jù)Cache,由于從SD卡或者U盤讀進來解碼的數(shù)據(jù)使用完畢后就再也不會使用了,解碼產生的數(shù)據(jù)也是一樣,使用一次就會被丟棄,因此數(shù)據(jù)訪問的時間局限性基本是不存在的。但是,系統(tǒng)在訪問數(shù)據(jù)時存在很強的"空間局限性",所以打開數(shù)據(jù)Cache后可以提高性能,因為:
    (1)Cache和IDRAM之間通過Burst方式傳遞數(shù)據(jù),提高了總線帶寬,從而降低讀數(shù)據(jù)的延遲。
    (2)Cache一次讀128bit或256bit,當讀已在Cache中的數(shù)據(jù)時就會命中。
    (3)通過WriteBuffer或WriteBack方式讀內存時,沒有寫DRAM的延遲。
    但是這樣也會帶來數(shù)據(jù)不一致的問題,主要是DMA造成數(shù)據(jù)的不一致,因為SD卡或USB的傳輸是通過DMA進行的,其傳輸過程無需CPU干預,DMA操作直接訪問內存,但不會跟新Cache和寫緩存相應的內容,這樣就造成了數(shù)據(jù)的不一致,可用以下方法解決:
    (1)將SD卡或USB和CPU共享的控制數(shù)據(jù)空間設置為uncachable,否則無法保證CPU讀到的Cache中的數(shù)據(jù)是最新數(shù)據(jù),從而可能造成系統(tǒng)運行錯誤。
    (2)SD卡或USB輸入模塊通過DMA像主存?zhèn)鬏斘募?shù)據(jù)時,寫數(shù)據(jù)的緩沖區(qū)是由文件系統(tǒng)提供的。該緩沖區(qū)的特點是存儲空間比較大而且是順序訪問的,可將其設置為cachable。
    經過上述方法的優(yōu)化以后,系統(tǒng)性能得到了大幅度的提高。經過測試表明,優(yōu)化后解碼所需的時間為優(yōu)化前的15%左右,均小于正常播放所需的時間,完全滿足實時播放的要求。


4 結束語
    本系統(tǒng)以ARM9處理器為核心建立嵌入式多媒體系統(tǒng),并在其上移植Mplayer播放器,擴展其功能,使mpeg-1、mpeg-2、avi等視頻格式以及MP3、WMA等音頻格式都能在其上流暢地播放,并實現(xiàn)了影音錄制功能。在測試中各模塊工作正常,達到了能全屏播放視頻,流暢播放音頻,能夠將攝像頭拍到的視頻傳送到Mplayer進行播放,能讀取外接U盤或者SD卡中的多媒體文件進行播放,能從網(wǎng)絡下載多媒體文件到擴展存儲設備被Mplayer播放的設計要求。隨著多媒體技術的廣泛應用,掌上多功能媒體播放器會有更廣闊的應用前景。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

美國紐約州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)發(fā)布 2022 年第三季度業(yè)績報告。 IBM 董事長兼首席執(zhí)行官 Arvind Kri...

關鍵字: IBM 軟件 BSP 云平臺

北京2022年10月19日 /美通社/ -- 隨著云計算、大數(shù)據(jù)的普及發(fā)展,過去的"云"是服務于大企業(yè)的計算模型,而十多年過去了,越來越多的應用及業(yè)務走上"云端",對計算核心數(shù)需求...

關鍵字: ARM 大數(shù)據(jù) 云游戲 CPU

無線連接已成為許多產品的必備功能,但往往會增加系統(tǒng)設計的成本和復雜性,因為它通常必須作為更大應用的附加功能。Microchip Technology Inc.(美國微芯科技公司)今日推出首款基于Arm Cortex?-M...

關鍵字: Microchip ARM PIC

高盛集團(Goldman Sachs Group)周二證實了一項全面重組計劃,這是該公司歷史上最大的改革舉措之一。高盛將把其交易和投行業(yè)務合并為一個部門,使該行從四個部門縮減至三個部門,縮減進軍零售銀行業(yè)務的努力,專注于...

關鍵字: DMA GROUP GO AN

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產品設計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產品供給。 搭養(yǎng)老政策東風 ...

關鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎單元,承載著生存與活動的最基本功能。而對于理想空間的解構意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關系的思考,同時也塑造著人與空間的新型連接...

關鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經營12年的“大日子”,圍繞作為外資金融機構對在華戰(zhàn)略的構想和業(yè)...

關鍵字: 數(shù)字化 BSP 供應鏈 控制

嵌入式軟件

15715 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉