在mini2440移植聲卡后,趕緊找了移植madplay的資料,看上去挺簡單的,于是接著移植madplay。
一、環(huán)境和軟件介紹
1、主機環(huán)境:虛擬機下Fedora9
2、交叉編譯器:arm-linux-gcc-4.3.2
3、軟件包:zlib-1.2.3、libid3tag-0.15.1b.tar.gz、libmad-0.15.1b.tar.gz、madplay-0.15.2b.tar.gz
4、把以上軟件包解壓到/opt/studyarm/madplay-make目錄下,分別改名為zlib、libid3tag、libmad、madplay。并在madplay-make目錄下新建include和lib目錄用于存放編譯后的頭文件和庫文件。
二、移植步驟
1、編譯zlib-1.2.3
進入zlib目錄進行如下配置:
./configure –prefix=/opt/studyarm/madplay-make
然后修改生成的Makefile文件:
...
CC=arm-linux-gcc
...
LDSHARED=arm-linux-gcc
CPP=arm-linux-gcc -E
...
AR=arm-linux-arrc
RANLIB=arm-linux-ranlib
...
執(zhí)行make
make install
在/opt/studyarm/madplay-make目錄下的included和lib目錄里生成了編譯后的文件。
2、編譯libid3tag-0.15.1b.tar.gz
進入libid3tag目錄,執(zhí)行“./configure --host=arm-linux --enable-static --disable-shared --disable-debugging --prefix=/opt/studyarm/madplay-make”
make
make install
在/opt/studyarm/madplay-make目錄下的included和lib目錄里生成了編譯后的文件。
3、編譯libmad-0.15.1b.tar.gz
進入libmad目錄,執(zhí)行“./configure --host=arm-linux --enable-static --disable-shared -disable-debugging--prefix=/opt/studyarm/madplay-make”
因為我使用的是高版本的arm-linux-gcc-4.3.2編譯器,make時出現(xiàn)了“cc1: error: unrecognized command line option "-fforce-mem"”錯誤,這是因為這個高版本的gcc沒有"-fforce-mem"參數(shù),解決的辦法是在Makefile里面查找"-fforce-mem",將其刪除即可make通過。
make
make install
在/opt/studyarm/madplay-make目錄下的included和lib目錄里生成了編譯后的文件。
4、madplay-0.15.2b.tar.gz
進入madplay目錄,執(zhí)行“./configure CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc --host=arm-linux --enable-static --disable-shared CPPFLAGS=-I/opt/studyarm/madplay-make/include LDFLAGS=-L/opt/studyarm/madplay-make/lib”
make
在目錄下生成了madplay可執(zhí)行文件。
三、測試
將生成的madplay可執(zhí)行文件拷貝到開發(fā)板的/bin目錄下,播放U盤或其它地方的歌曲,這里播放的是U盤里面的歌曲。
[rootMrFeng]#ls
01.mp32.wma??????????????
[rootMrFeng]#madplay 01.mp3
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
Title:天空之城(木吉他)
Artist:久石讓
Album:天空之城(Laputa The Castle in
10288 frames decoded (0:04:28.7), +0.3 dB peak amplitude, 31 clipped samples
到了這里,madplay移植成功,聲音播放正常。
四、總結(jié)
移植的過程還是比較簡單,主要是配置一些參數(shù)。