基于FS2410的MP3播放(一)
-----------Madplay的移植
By 王奔 2009-1-7
优龙科技FS2410自带的cramfs文件系统已经有了声卡驱动,所以声卡驱动的移植部分可以省略,声卡移植部分将在基于FS2410的mp3播放(二)中讲述。为了要播放MP3文件,我们需要移植一个MP3播放软件到FS2410开发板,在本文档中我使用的是Madplay,此外还可以移植madplay等其他工具。
移植前准备:我们一共需要四个源代码包,它们是:
zlib-1.2.3.tar.gz;
libid3tag-0.15.1b.tar.gz;
libmad-0.15.1b.tar.gz;
madplay-0.15.2b.tar.gz;
当然还需要交叉编译器,我使用的版本是
优龙自带的arm-linux-gcc 3.3.2.
具体的移植步骤如下:
1、在/home/Madplay 目录下新建一个install目录,作为将来所有文件的安装目录
2、交叉编译
zlib-1.2.3.tar.gz
解压源代码
#
tar xzvf zlib-1.2.3.tar.gz
配置安装路径:
#
./configure --prefix=/home/madplay/install
修改Makefile文件:
CC=/usr/local/arm/3.3.2/bin/arm-linux-gcc
AR=/usr/local/arm/3.3.2/bin/arm-linux-ar rcs
RANLIB=/usr/local9/arm/3.3.2/bin/arm-linux-ranlib
编译:
#
make
安装:
make install
编译好之后就可以在上面prefix指定的目录/home/madplay/install/lib目录下找到libz.a这个库。
3、交叉编译
libid3tag-0.15.1b
解压源代码
#
tar xzvf libid3tag-0.15.1b
配置
#./configure --host=arm-linux --enable-static--disable-shared --disable-debugging --prefix=/home/madplay/install LDFLAGS=-L/home/madplay/install/lib
注意:LDFLAGS=-L/home/madplay/install/lib必须要有,否则将报错无法编译,交叉编译libid3tag-0.15.1b必须已生成安装了libz.a。
编译:
#
make
安装:
make install
4、交叉编译
libmad-0.15.1b
解压源代码
#
tar xzvf libmad-0.15.1b
配置
# ./configure --host=arm-linux --enable-static --disable-shared --disable-debugging --prefix=/home/madplay/install LDFLAGS=-L/home/madplay/install/lib
编译:
#
make
安装:
#
make install
5、交叉编译
madplay-0.15.2b
解压源代码
#
tar xzvf madplay-0.15.2b
配置
# ./configure --host=arm-linux --enable-static --disable-shared --disable-debugging --prefix=/home/madplay/install LDFLAGS=-L/home/madplay/install/lib CPPFLAGS=-I/ home/madplay/install/include
编译:
#
make
注意:此时得到的madplay是动态编译(生成的文件大约300K)的,我们要把它变成静态编译。我们需要拷贝make以后的最后一个链接的命令,在最后加上 –static ,然后安装,就可以得到静态链接的madplay程序。
然后把madplay和mp3音乐文件加入到文件系统中,下载到开发板运行就可以听到音乐了。
#
./madplay XX.mp3