在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.mp3 2.wma ?? ??? ???? ????? [rootmrfeng]#madplay 01.mp3 mpeg audio decoder 0.15.2 (beta) - u球体育app下载 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移植成功,声音播放正常。
四、 总结
移植的过程还是比较简单,主要是配置一些参数。
『本文转载自网络,u球体育app下载的版权归原作者所有,如有侵权请联系删除』