freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm9的mp3播放器設(shè)計,單片機linux開發(fā)!(編輯修改稿)

2024-07-15 22:27 本頁面
 

【文章內(nèi)容簡介】 兩個版本鍵盤驅(qū)動和手寫筆驅(qū)動。Qtopia PDA版:Qtopia PDA 版Qtopia PDA 是一個強大的平臺專用于基于Linux操作系統(tǒng)的PDA個人數(shù)字助理設(shè)備許多PDA 都已采用了Qtopia , Qtopia PDA 版已經(jīng)成了事實上的Linux 標(biāo)準(zhǔn)它代表了可行的第三種PDA 設(shè)計方案Qtopia PDA 版具有可定制的用戶界面支持多種不同的屏幕尺寸以及橫向和縱向布局。Qtopia 消費電子產(chǎn)品平臺:While Qtopia 手機版和 Qtopia PDA 版是針對移動電話和PDA 制造商的統(tǒng)包解決方案,而Qtopia 消費電子產(chǎn)品平臺(Qtopia CEP) 則是一套高層次開發(fā)平臺適用于那些希望自行設(shè)計和開發(fā)應(yīng)用套件的制造商。Qtopia CEP使得制造商能夠在形形色色的手寫筆和鍵盤驅(qū)動的設(shè)備上創(chuàng)建自定義的環(huán)境,這些設(shè)備包括電視機Web Pad 無線聯(lián)網(wǎng)板機頂盒以及許多其它基于Linux 的設(shè)備等等。 Qtopia 產(chǎn)品系列旨在為基于Linux 的消費電子設(shè)備提供和創(chuàng)建圖形用戶界面它為制造商提供了前所未有的靈活性和眾多選擇。 系統(tǒng)的軟件分析與設(shè)計此MP3播放器的軟件體系結(jié)構(gòu)采用分層模式,它包括硬件層、驅(qū)動層、操作系統(tǒng)層及MP3播放器應(yīng)用層。下圖是簡化的MP3播放器的軟件體系結(jié)構(gòu)圖。MP3player應(yīng)用程序Linux OS文件系統(tǒng),QtopiaDriver音頻驅(qū)動,USBHardware物理層此MP3播放器軟件的核心是Linux操作系統(tǒng),一切功能都是基于Linux上完成的。首先需要設(shè)備驅(qū)動程序,包括USB、磁盤控制、音頻控制、LCD等。然后是文件系統(tǒng)。該設(shè)計采用的是通用的FAT32文件系統(tǒng),采用此文件系統(tǒng)的目的是為了與Windows平臺有很好的兼容性。最上層是應(yīng)用層,例如MP3編碼/解碼、JPEG解碼以及MPEG4解碼等。由于S3C2410和Linux操作系統(tǒng)的功能都非常強大,因此,除了實現(xiàn)上述功能,該設(shè)計方案還可以擴充其它功能,例如添加WLAN、GPS、GPRS以及照相模塊等,以適應(yīng)不同的應(yīng)用需求,為以后的升級或改進提供了接口。 交叉編譯環(huán)境的建立交叉編譯,簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。這里說的平臺分別指的是主機平臺Host和目標(biāo)平臺Target。在本論文中,Host是一臺裝有FC4Linux操作系統(tǒng)的PC機,它通過串口或網(wǎng)絡(luò)接口與Target通信。Target是armlinux平臺(這里說的arm指的是平臺所使用的CPU是S3C24lO處理器,linux指的是運行的操作系統(tǒng)是Linux)。本文在Host上開發(fā)程序,并在這個平臺上運行交叉編譯器 CrossCompiler,編譯程序,而由 CrossCompiler生成的程序?qū)⒃赥arget上運行。建立交叉編譯環(huán)境是進行Qtopia桌面系統(tǒng)和MP3播放器移植的第一步。目前常用的交叉開發(fā)環(huán)境主要有開放和商業(yè)兩種類型。開放的交叉開發(fā)環(huán)境的典型代表是GNU工具鏈,目前已能夠支持x86,ARM,PowerPC等多種處理器。商業(yè)的交叉開發(fā)環(huán)境主要有Metrowerks code warriror, ARM Software DevelopmentToolkit等。對于交叉編譯工具,可以自己生成,也可以從網(wǎng)上下載。交叉編譯工具一般由專門得機構(gòu)負(fù)責(zé)維護,可以從他們得網(wǎng)站免費獲得,下面描述交叉編譯環(huán)境得建立過程。首先,在Linux宿主機上新建一個用于嵌入式Linux開發(fā)的工作目錄:/home/arm9,以后所有的開發(fā)工作都在這個目錄下進行。然后,取得基于ARM微處理器架構(gòu)的交叉編譯工具。這個網(wǎng)站專門維護基ARM架構(gòu)的Linux內(nèi)核。在這里有專門針對不用ARM處理器的Linux內(nèi)核移植補丁,有大量的驅(qū)動以及工具集。下載的交叉編譯工具以壓縮包的方式存在,需要將其安裝到Linux宿主機上,安裝過程如下:[root@fc4 /]cd/usr/local[root@fc4 local]mkdir arm[root@fc4 local]cd arm[root@fc4 arm]cp /home/arm9/work/[root@fc4 arm]tar jxvf 當(dāng)以上命令執(zhí)行完畢以后,會生成/usr/local/arm/,表明交叉編譯器經(jīng)成功安裝到了 /usr/local/arm下。最后用vi編輯器打開home/.bash_profile,在文本的最后一行加入以下命令:exportPATH=/usr/local/arm/:$PATH這樣就可以在終端使用armlinux編譯器了。3. 硬件開發(fā)平臺的構(gòu)建這款多功能MP3播放器的核心是三星公司的S3C2410芯片。該芯片是基于ARM920T而開發(fā)的一款面向消費類電子產(chǎn)品的多功能SOC。除具備一般嵌入式芯片所具有的總線,SDRAM控制器,3個串口等外設(shè)之外,S3C2410還具有TFT LCD控制器、USB Slave、USB Host、I2C總線控制器、SPI控制器、IIS音頻接口、SD amp。 MMC存儲卡接口等豐富的擴展功能。 硬件開發(fā)板本文使用的是華天正科技公司生產(chǎn)的S3C2410開發(fā)板。S3C 2410 硬件平臺綜述: RealARM 2410 平臺由核心板(CoreBoard)和底板BottomBoard ) (帶觸摸)組成。RealARM2410 的主要特點:CoreBoard(核心板) CPU:Samsung的S3C2410x處理器,工作頻率達203MHz;FLASH ROM:64MB Nand Flash,可選配為各種容量8位的NANDFLASH; NOR FLASH(SST39VF1601)提供2MBNor Flash;SDRAM:64M(Samsung K4S561632HTc75)2片4Banks4Mbits16bits SDRAM,PC100/PC133兼容;RTC 實時時鐘:,帶有備份電池,可保持時鐘。NAND FLASH NOR FLASH 啟動選擇開關(guān)兩個I/O 口連接兩個LED,方便用戶調(diào)試自己的程序。 硬件開發(fā)環(huán)境的建立在移植嵌入式應(yīng)用程序之前,應(yīng)該搭建好硬件平臺,本文所使用的硬件平臺包括一臺裝有FC4版的Linux操作系統(tǒng),即宿主機Host、一塊S3C2410開發(fā)板(內(nèi)含三星S3C2410微處理器). 嵌入式應(yīng)用軟件的開發(fā)流程:在嵌入式硬件設(shè)備上進行應(yīng)用程序的調(diào)試在宿主機上進行交叉編譯嵌入式應(yīng)用程序在宿主機上進行應(yīng)用程序的編碼、調(diào)試根據(jù)目標(biāo)硬件平臺,搭建交叉編譯環(huán)境選定嵌入式硬件平臺和嵌入式操作系統(tǒng)調(diào)試有無問題把代碼寫入嵌入式設(shè)備的flash中4. MP3播放器的系統(tǒng)結(jié)構(gòu):顯示器 通訊接口DACARM9S3C2410存儲區(qū)耳機功放操作系統(tǒng) 存儲系統(tǒng) 現(xiàn)在MP3播放器的存儲系統(tǒng)主要有三大類:FLASH。 Nand Flash芯片、MMC卡、SD卡、Sony m2;磁性存儲器。如:;光學(xué)存儲器。如:AudioCD、CDROM、DVD、Dataplay。本系統(tǒng)所用的存儲介質(zhì)主要是Nand Flash芯片。FLASH芯片具有可靠性高、體積小、無機械觸點和重量輕等顯著優(yōu)點,是目前便攜式MP3播放器的主流存儲器。單片F(xiàn)LASH芯片的容量越來越大,三星半導(dǎo)體已推出32GB的單片Nand FLASH芯片,日立和東芝半導(dǎo)體已推出16GB的單片Nand FLASH芯片。而且,F(xiàn)LASH的降價幅度和空間都很大。可以相信Nand FLASH在未來幾年仍是便攜式MP3播放器的主流存儲器。Nand FLASH之所以在價格上優(yōu)于Nor FLASH,很大程度上取決于它允許1%壞扇區(qū)的標(biāo)準(zhǔn)。而Nor FLASH必須是100%的合格,不允許任何一位的損壞。這點是便攜式MP3開發(fā)過程中必須注意的地方,固件(Firmware)必須有一個標(biāo)注并避開壞扇區(qū)的方法。 通信接口現(xiàn)在常用的通訊接口有以下幾種:打印口;USB接口;IEEE1394接口;有的MP3播放器不需通過PC機而直接利用內(nèi)置Modem通過Internet網(wǎng)絡(luò)下載音樂。在做這個MP3播放器的時候我使用的是用usb作為通訊接口,這樣在兼容性和速度方面找到了最合適的平衡點。5. 播放器的設(shè)計與實現(xiàn) MP3播放器采用了C++和C語言混合編程的形式。其中,頂層函數(shù)采用的是符合Qt特點的C++程序,底層的MP3音頻解碼模塊采用的是C語言。 MP3音頻文件的處理過程是首先下載MP3到緩沖區(qū),然后利用一個開源的高質(zhì)量的MPEG解碼庫將MP3數(shù)據(jù)流解碼為PCM數(shù)據(jù),然后利用底層的聲頻驅(qū)動程序0SS將PCM轉(zhuǎn)化為模擬信號驅(qū)動D/A播放MP3音樂。因此,軟件需要有MP3解碼功能以及PCM數(shù)據(jù)播放功能。創(chuàng)建Qtopia程序創(chuàng)建MP3播放器窗口都件類構(gòu)建定時器構(gòu)建play按鍵構(gòu)建fileopen按鍵建立定時器與MP3音頻文件解碼函數(shù)的連接建立File Open按鍵與本地文件打開函數(shù)的連接建立Play按鍵與音樂播放/暫停函數(shù)的連接事件主循環(huán) MP3音頻解碼模塊MP3解碼器的作用在于將MP3音頻文件轉(zhuǎn)換為PCM數(shù)據(jù)。目前有很多優(yōu)秀的MP3解碼器都可以達到此目的。MAD是一款高質(zhì)量的MPEG音樂解碼器。它在支持MPEGlayerlayer3都完全得到實現(xiàn)。MAD具有24bit PCM輸出,完全是定點計算,具有GPL(General Public License)發(fā)布的軟件的特點。MAD提供了完全的24bitPCM輸出,使用MAD的應(yīng)用程序可以產(chǎn)出更高質(zhì)量音頻輸出,即使輸出設(shè)備只支持16bit的PCM輸出,應(yīng)用程序仍然可以通過其他的方法來增加可聽聲音的動態(tài)范圍。由于MAD使用整數(shù)計算而不是浮點數(shù)計算,所以它適合沒有浮點數(shù)單元的架構(gòu),其所有的計算都在32hit的定點表達式下處理。目前有很多多媒體播放器采用MAD來對MP3文件進行解碼操作,如XMMS、MPG321等。因此,本文選擇了MAD作為MP3的音頻解碼庫。在本文中使用到的MAD主要數(shù)據(jù)結(jié)構(gòu)如下: struct mad_stream mad_stream: mad_stream結(jié)構(gòu)體,主要用于分配MP3數(shù)據(jù)流的緩沖區(qū),如果緩沖區(qū)的MP3數(shù)據(jù)幀不完整,那么不完整的MP3幀的數(shù)據(jù)必須拷貝到下一次解碼操作的緩沖區(qū)中,進行再次解碼操作。struct mad_frame mad_frame。madframe是記錄MP3幀解碼后的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其中的 madheader尤其重要,其用來記錄MP3幀的一些基本信息,如MP3層數(shù)、聲道模式、流比特率、采樣比特率等等。聲道模式包括單聲道、雙聲道、聯(lián)合立體混音聲以及一般立體聲。struct mad_synth mad_synth。mad_synth結(jié)構(gòu)體中的關(guān)鍵域 struct mad_pcm pcm保存解碼和合成后得到的PCM數(shù)據(jù)。Mad_pcm包含采樣率,聲道數(shù)、每聲道的采樣數(shù)目以及PCM采樣數(shù)據(jù)。這些參數(shù)都是用來初始化音頻設(shè)備。MAD主要接口函數(shù)如下:mad_stream_init(amp。mad_stream)。mad_synth_init(amp。mad_synth)。mad_frame_init(amp。mad_frame)。此三個函數(shù)是對各個解碼數(shù)據(jù)結(jié)構(gòu)體進行初始化int fread(void*buf,int size,int count,F(xiàn)ILE*fp)。此函數(shù)的作用是讀取MP3音頻文件的數(shù)據(jù)void mad_stream_buffer(struet mad_stream*,unsigned chare const*,unsigned long):此函數(shù)把原始的未解碼的MP3數(shù)據(jù)和mad_stream數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián)。int made_frame_decode(struct mad_
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1