基于A(yíng)RM L i nux QT的掌上多媒體系統的設計和實(shí)現
0 引言
隨著(zhù)人們生活水平的提高,消費結構發(fā)生了巨大變化,消費者用于娛樂(lè )方面的支出在總支出中所占的比例正在不斷擴大。掌上多媒體系統可以滿(mǎn)足人們對于試聽(tīng)以及便攜的需求,另外還可以實(shí)現一些其他功能,如圖片瀏覽、網(wǎng)絡(luò )下載、以及影音錄制等。目前市場(chǎng)上的掌上多媒體系統多是Windows CE、Symbian、Palm OS等商用操作系統,其開(kāi)放的程序不夠高,而且價(jià)格偏高,不適于第三方應用軟件的移植。ARM體系作為專(zhuān)用嵌入式系統設計的通用處理器內核,具備高性能、低功耗、易擴展的特點(diǎn)。本系統基于ARM9、嵌入式Linux操作系統設計并實(shí)現了一個(gè)更為開(kāi)放的嵌入式平臺,來(lái)實(shí)現掌上多媒體系統的諸多功能。
1 多功能掌上媒體播放器系統的硬件設計
多功能掌上媒體播放器系統的硬件設計如圖1所示。LCD采用的是Sharp的TFT屏,3.52in,分辨率240×320;音頻控制器是IIS接口的音頻控制器,解碼芯片是UDA1314TS;另外擴展了用于視頻錄制的Philips的視頻解碼芯片SAA7113和ADI的JPEG壓縮芯片。視頻錄制的框圖如圖2所示。
2 多功能掌上媒體播放器系統的軟件設計
系統設計和軟件設計是本系統的難點(diǎn)。系統軟件設計的總體框架如圖3所示。
2.1 嵌入式Linux操作系統
Linux最初由Linux Torvalds編寫(xiě),后來(lái)在網(wǎng)絡(luò )上被眾多的Linux愛(ài)好者加以修改和維護,具有內核高效穩定、開(kāi)源、可移植性強、內核可定制可裁剪、多線(xiàn)程多任務(wù)等特點(diǎn),因此選擇其作為本媒體播放器系統的操作系統。圖1多功能掌上多媒體系統的硬件設計圖2多功能掌上多媒體系統的視頻錄制系統的框圖圖3多功能掌上多媒體系統的軟件設計總體框架
首先定制裁剪并移植了Linux2.6的內核,然后為使各硬件能正常工作編寫(xiě)了鍵盤(pán)驅動(dòng)、LCD驅動(dòng)、觸摸屏驅動(dòng)、音頻驅動(dòng)、USB驅動(dòng)等驅動(dòng)。多功能掌上多媒體系統的正常工作首先是進(jìn)入ARM-Linux操作系統,然后加載各個(gè)硬件的驅動(dòng)程序并初始化各外圍設備,接著(zhù)就進(jìn)入基于QT/Embedded庫的Qtopia桌面系統編寫(xiě)的GUI圖形界面程序的播放器,最后選擇要進(jìn)行的操作。
對于Linux內核的移植首先要移植bootloader,系統采用的是VIVI,其功能包括:分區管理、參數管理、啟動(dòng)Linux操作系統、文件系統管理、支持網(wǎng)絡(luò )、通過(guò)串口下載程序到Flash或者RAM等。建立嵌入式開(kāi)發(fā)環(huán)境,使得能夠交叉編譯源代碼,對VIVI的源代碼進(jìn)行交叉編譯,生成能在A(yíng)RM Linux上運行的bin文件,通過(guò)開(kāi)發(fā)板的JTAG口將其燒寫(xiě)到開(kāi)發(fā)板的Flash中。
對內核的移植首先要對內核進(jìn)行修改MAKEFILE文件指定編譯器以及目標平臺,然后配置內核,交叉編譯生成內核鏡像,通過(guò)UART口(串口)下載到開(kāi)發(fā)板上。移植相應的文件系統。文件系統中的文件是數據的集合,不僅包含著(zhù)文件中的數據,而且還有文件系統的結構,所有Linux用戶(hù)和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。在設計過(guò)程中把文件系統設置為可讀寫(xiě),這樣操作性強一些,在投入到生產(chǎn)中的時(shí)候應該把文件系統設置為只讀的,這樣整個(gè)掌上多功能媒體播放器的操作系統就加載好了。
2.2 驅動(dòng)程序的設計
本系統共涉及到鍵盤(pán)驅動(dòng)、觸摸屏驅動(dòng)、LCD驅動(dòng)、音頻驅動(dòng)和USB驅動(dòng)等驅動(dòng)。因為多媒體功能是本系統的重點(diǎn),所以播放器部分很重要,這里主要介紹音頻驅動(dòng)的編寫(xiě)。
目前Linux下常用的音頻驅動(dòng)程序主要有兩種類(lèi)型:OSS(Open Sound System) 和ALSA。最早出現的Linux上的編程接口是OSS,它由一套完整的內核驅動(dòng)程序模塊組成,可為大多數音頻芯片驅動(dòng)提供統一的編程接口。在嵌入式系統中,對于特定的處理器(如本系統采用的S3C2410),可以按照OSS接口標準來(lái)編寫(xiě)音頻驅動(dòng)程序,以滿(mǎn)足Linux上的應用程序。OSS接口已經(jīng)足夠簡(jiǎn)單,需要完成的主要的工作就是對音頻設備(本系統采用的是Philips的UDA1314TS)的read,write和ioctl等操作。
評論