設為主頁(yè)  加入收藏
 
·I2S數字功放IC/內置DSP音頻算法功放芯片  ·馬達驅動(dòng)IC  ·2.1聲道單芯片D類(lèi)功放IC  ·內置DC/DC升壓模塊的D類(lèi)功放IC  ·鋰電充電管理IC/快充IC  ·無(wú)線(xiàn)遙控方案  ·直流無(wú)刷電機驅動(dòng)芯片
當前位置:首頁(yè)->方案設計
N903A晶心科技處理器的MP3解決方案與Andes平臺的MP3移植
文章來(lái)源: 更新時(shí)間:2010/11/20 23:42:00
在線(xiàn)咨詢(xún):
給我發(fā)消息
張代明 3003290139
給我發(fā)消息
小鄢 2850985542
給我發(fā)消息
李湘寧 2850985550
13713728695
 

隨著(zhù)人們對于音頻電子產(chǎn)品功能的需求越來(lái)越高,8位及16位MCU逐漸向32位MCU轉型已經(jīng)成為市場(chǎng)趨勢。晶心科技(Andes)作為亞洲首家原創(chuàng )性32位微處理器IP與系統芯片開(kāi)發(fā)平臺的設計公司,面向32位MCU市場(chǎng)推出了Andes Core N9系列低功耗高性?xún)r(jià)比的32位處理器軟硬核IP;谠撓盗刑幚砥,晶心科技針對不同音頻應用提供了多種解決方案。其中包括將多種音頻格式的編、解碼器(開(kāi)源),例如MP3、AAC、WMA、G729等移植到Andes平臺上。并且利用nds32(基于A(yíng)ndes Core)架構的優(yōu)勢和針對音頻效能的擴展指令集,以及算法上的改進(jìn),對這些編解碼器做了進(jìn)一步的優(yōu)化,使其不僅占用的空間較小而且具備了較高的運行性能。本文以MP3解碼器為例,介紹如何將madplay移植到Andes平臺,以及晶心科技基于N903A處理器提供的MP3解決方案。

 

1.MP3簡(jiǎn)介

MPEG-1 Audio Layer3(簡(jiǎn)稱(chēng)MP3)是一種有損音頻編碼方式,它利用掩蔽效應(一種心理聲學(xué)模型),將脈沖編碼調制(Pulse Code Modulation)音頻數據中人耳聽(tīng)覺(jué)系統無(wú)法察覺(jué)的那部分數據去掉,使得MP3能夠在音質(zhì)丟失很小的情況下把音樂(lè )文件壓縮到很小的程度(1:10 甚至 1:12 的壓縮率)。因為其體積小、音質(zhì)高的特點(diǎn),MP3已經(jīng)成為當今最為流行的音頻格式。madplay是目前使用較為廣泛的一種MP3的解碼器,下面將詳細介紹如何使用Andes提供的AndeSight集成開(kāi)發(fā)工具將madplay移植到Andes平臺。

 

2.環(huán)境及軟件介紹

 

2.1系統環(huán)境:

 

Linux:Fedora 8。

 

2.2開(kāi)發(fā)環(huán)境:

 

AndeSight v1.4。

 

AndeSight是晶心科技提供的一種基于nds32架構開(kāi)發(fā)嵌入式工程的圖形化的集成開(kāi)發(fā)環(huán)境。主要由AndeSight IDE, AndESLive和nds32工具集3個(gè)部分組成。

 

AndeSight IDE為工程師提供了各種友好的界面,包括對嵌入式工程做編輯,編譯,運行,調試或者評測等等操作。

 

AndESLive提供了基于nds32架構的仿真器和一種圖形化的虛擬SoC構建模型,它與AndeSight IDE相結合為用戶(hù)提供了一個(gè)虛擬的硬件平臺。這個(gè)虛擬評估平臺提供Andes自行定義ISA的多組系列32位CPU IP以及各種外圍設備IP,并且支持用戶(hù)自定義IP模型。

 

AndESLive配合AndeSight IDE不僅使得SoC設計者能在計劃初期就開(kāi)始軟件設計、偵錯、最優(yōu)化等工作,并對系統架構及功能進(jìn)行檢驗,而且使硬件工程師和軟件工程師具有一樣的能力去制作和修改他們各自的系統模型,可以有效的控制NRE(NonRecurring Engineering)成本,讓軟件工程師在拿到硬件原型之前,即可以進(jìn)行軟件的開(kāi)發(fā)和優(yōu)化。

 

nds32工具集提供了一套在A(yíng)ndes平臺上開(kāi)發(fā)嵌入式應用程序所需要的標準工具,例如編譯器、調試器、鏈接器等。

 

2.3交叉編譯器:

 

nds32le-linux-gcc。

 

nds32工具集中對應不同的Andes Core型號,不同的系統函數庫以及大小端形式等條件,提供了各種對應的交叉編譯器。這里我們選用nds32le-linux-gcc。

 

2.4軟件包:

 

除了源碼外,madplay還需要MP3的解碼庫libmad,以及zlib和libid3tag來(lái)正確的讀取MP3頭段信息。這四個(gè)軟件包都可以在開(kāi)源網(wǎng)站上獲得。其中,madplay-0.15-1b.tar.gz、libmad-0.15.1b.tar.gz、libid3tag-0.15.1b.tar.gz可以在http://sourceforge.net/project/showfiles.php?group_id=12349獲取,zlib-1.2.4.tar.gz可以在http://zlib.net/獲取。

3.Madplay的移植

 

3.1編譯函數庫

 

3.1.1編譯libmad

 

進(jìn)入libmad目錄,首先將如下nds32架構的信息加入到配置文件config.sub中(可加到第675行):

nds32*)

basic_machine=nds32-elf

os=-linux

;;

然后依次執行:

 

#CC=nds32le-linux-gcc ./configure --prefix=$PREFIX/MP3_Decoder --host=nds32-elf --disable-debugging --disable-shared

#make

#make check

#make install

 

編譯成功后,可以在$PREFIX/MP3_Decoder($PREFIX是用戶(hù)設定的路徑)目錄下的included和lib目錄里找到相應的.h文件和.a文件。

 

3.1.2編譯zlib和libid3tag

 

需要先編譯zlib。進(jìn)入zlib目錄后,依次執行:

 

#CC=nds32le-linux-gcc ./configure --prefix=$PREFIX/MP3_Decoder

#make

#make install

 

然后編譯libid3tag。先將nds32架構信息加入到文件config.sub中(方法同libmad),然后執行如下命令,編譯libid3tag時(shí)需要用到編譯zlib生成的頭文件和庫文件:

 

#CC=nds32le-linux-gcc ./configure --prefix=$PREFIX/MP3_Decoder --disable-debugging --disable-shared CPPFLAGS="-I/tmp/MP3_Decoder/include" LDFLAGS="-L/tmp/MP3_Decoder/lib" --host=nds32-elf

#make

#make install

 

同樣,在編譯成功后libid3tag的相關(guān)文件也保存在$PREFIX/MP3_Decoder目錄下面。

 

3.2在A(yíng)ndeSight中生成madplay

 

在進(jìn)入AndeSight圖形化集成開(kāi)發(fā)環(huán)境之前,需要先對madplay源碼中的makefile進(jìn)行配置。首先同樣需要將nds32架構信息加入到config.sub文件中,然后執行如下配置:

 

#CC=nds32le-linux-gcc ./configure --disable-debugging --disable-shared --host=nds32-elf CPPFLAGS="-I$PREFIX/MP3_Decoder/include -lmad -lid3tag -lz" LDFLAGS="-L$PREFIX/MP3_Decoder/lib" --prefix=/Andestech/AndeSight14/ide/workspace/MP3decoder_madplay

 

接著(zhù)打開(kāi)AndeSight v1.4,建立一個(gè)STD C(標準C)工程mp3decoder,并將madplay目錄下的所有文件導入工程中。選擇Project菜單欄選擇Build Project一項,成功進(jìn)行編譯和鏈接后,在指定的目錄下就會(huì )生成madplay的可執行文件,如圖1所示。這樣madlpay就成功移植到Andes平臺上了。

 

 

基于晶心科技N903A處理器的MP3解決方案與Andes平臺的MP3移植(電子工程專(zhuān)輯)
圖1:成功進(jìn)行編譯和鏈接后,在指定的目錄下就會(huì )生成madplay的可執行文件。

3.3測試與驗證

 

為了驗證移植的正確性,這里我們采用在虛擬的Andes硬件平臺上運行的方式,也就是在A(yíng)ndeSight中通過(guò)AndESLive提供的虛擬SoC平臺進(jìn)行仿真。這里選用Andes_demo.vep這個(gè)虛擬開(kāi)發(fā)平臺,它與真實(shí)的Andes demo開(kāi)發(fā)板是一樣的。

選取一首MP3格式的歌曲“test.mp3”拷貝到工程mp3decoder的目錄下,然后在運行視窗的Arguments選項中加入指定輸入文件和輸出的文件的格式:

 

 

基于晶心科技N903A處理器的MP3解決方案與Andes平臺的MP3移植(電子工程專(zhuān)輯)
圖2:在虛擬SoC平臺上運行madplay。

 

在虛擬開(kāi)發(fā)平臺上運行madplay。運行結束后,在工程目錄下會(huì )看到“test.wav”文件,如圖2所示。這個(gè)文件可以在Windows Media Player進(jìn)行播放,這樣就驗證了madplay移植到Andes平臺上的正確性。

 

4.晶心科技在MCU層級的mp3解決方案

 

晶心科技基于A(yíng)ndes Core N903A處理器對MCU層級的音頻應用提供了全方位的解決方案,包括硬件平臺和軟件包支持。圖3展示了晶心科技提供的完整的音頻開(kāi)發(fā)平臺。

 

--output=wave:PATH1/test.wav PATH2/test.mp3(輸出格式還可以為.pcm)。

 

 

 

基于晶心科技N903A處理器的MP3解決方案與Andes平臺的MP3移植(電子工程專(zhuān)輯)
圖3:晶心科技提供的音頻開(kāi)發(fā)平臺。

 

 

考慮到從8位MCU升級到32位帶來(lái)的硬件成本的增加,晶心科技推出了N903A低功耗高性?xún)r(jià)比的32位處理器。N903A提供了完全可配置的處理器IP核,包括可配置的I/D cache大小,I/D local memory大小,GPR數量,硬件乘法器等等。這樣,客戶(hù)可以根據自己產(chǎn)品的需求,以最小的硬件成本獲得較8位系統更為優(yōu)化的系統性能。在指令方面,N903A不僅包含了晶心科技自主知識產(chǎn)權的一套高效指令集,而且加入了為提高音頻數據處理能力而特別設計的四十余條音頻擴展指令。另外,針對現有及可預期未來(lái)的大多數軟硬件應用特性,晶心科技還提供一種16bit/32bit混合指令集形式,在提供功能之余,縮小了程序所需的內存空間,從而進(jìn)一步實(shí)現降低成本的效益。

 

軟件方面,晶心科技同樣提供了全方面的支持。包括操作系統、設備驅動(dòng)、開(kāi)發(fā)工具、中間件、函數庫以及上層的各種應用程序。對于MP3的編解碼器,晶心科技對其代碼大小做了進(jìn)一步的優(yōu)化,并利用nds32架構的優(yōu)勢以及音頻擴展指令集,使其在A(yíng)ndes平臺上運行的性能達到很高的水平。以48KHz/128Kbps的MP3歌曲為例,晶心科技優(yōu)化的madplay解碼器正朝著(zhù)10MHz的工作頻率邁進(jìn)。表1為晶心科技優(yōu)化的MP3編解碼器在N903A處理器上運行的結果。

 

 

 

基于晶心科技N903A處理器的MP3解決方案與Andes平臺的MP3移植(電子工程專(zhuān)輯)
表1:晶心科技提供的MP3編解碼器數據。

 
 
 
    相關(guān)產(chǎn)品  
 
 
·藍牙音箱的音頻功放/升壓/充電管
·單節鋰電內置升壓音頻功放IC選型
·HT7179 12V升24V內置
·5V USB輸入、三節鋰電升壓型
·網(wǎng)絡(luò )主播聲卡專(zhuān)用耳機放大IC-H
 
M12269 河北發(fā)電機組 HT366 ACM8629 HT338 

業(yè)務(wù)洽談:手機:13713728695(微信同號)   QQ:3003207580  EMAIL:panbo@szczkjgs.com   聯(lián)系人:潘波

地址:深圳市寶安西鄉航城大道航城創(chuàng )新創(chuàng )業(yè)園A5棟307/309

版權所有:深圳市永阜康科技有限公司  備案號:粵ICP備17113496號

在线亚洲人成电影_中文有码国产精品欧美激情_免费大片一级a一级久久三_av天堂东京热无码专区