基于s3c2440的madplay移植
扫描二维码
随时随地手机看文章
在mini2440移植声卡后,赶紧找了移植madplay的资料,看上去挺简单的,于是接着移植madplay。
一、环境和软件介绍
1、主机环境:虚拟机下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
...
执行make
make install
在/opt/studyarm/madplay-make目录下的included和lib目录里生成了编译后的文件。
2、编译libid3tag-0.15.1b.tar.gz
进入libid3tag目录,执行“./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目录,执行“./configure --host=arm-linux --enable-static --disable-shared -disable-debugging--prefix=/opt/studyarm/madplay-make”
因为我使用的是高版本的arm-linux-gcc-4.3.2编译器,make时出现了“cc1: error: unrecognized command line option "-fforce-mem"”错误,这是因为这个高版本的gcc没有"-fforce-mem"参数,解决的办法是在Makefile里面查找"-fforce-mem",将其删除即可make通过。
make
make install
在/opt/studyarm/madplay-make目录下的included和lib目录里生成了编译后的文件。
4、madplay-0.15.2b.tar.gz
进入madplay目录,执行“./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可执行文件。
三、测试
将生成的madplay可执行文件拷贝到开发板的/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移植成功,声音播放正常。
四、总结
移植的过程还是比较简单,主要是配置一些参数。