移植madplay到FS2410
【编译环境】ubuntu 8.10 + Vmware + windows xp
【目标机】FS2410
【交叉编译器】arm-linux-gcc-3.4.1
为了让机器人“开口”说话和唱歌,我们需要让FS2410发出声音来,FS2410的开发板是有声卡的——UDA1341,所以,在做这一步之前要确保声卡驱动已经装好了,在你的开发板/dev目录下有dsp c 14 3 这个设备节点。
1.移植前要准备这几个源码包
zlib-1.2.3.tar.gz ,libid3tag-0.15.1b.tar.gz, libmad-0.15.1b.tar.gz, 和 madplay-0.15.2b.tar.gz,后面三个可在 http://sourceforge.net/project/showfiles.php?group_id=12349下载。
2. 交叉编译zlib库 (如果开发板下有libz库,直接提取出来用,这一步可以略去)
./configure --prefix=/home/madplayer/lib
生成Makefile.
修改Makefile:
CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc (如果导出了环境变量,直接用arm-linux-gcc)
AR=/usr/local/arm/3.4.1/bin/arm-linux-ar
RANLIB=/usr/local/arm/3.4.1/bin/arm-linux-ranlib
编译并安装
make
make install
在--prefix指定的目录下会生成libz库。
3.交叉编译libid3tag
./configure --host=arm-linux --prefix=/home/madplayer/lib3tag --disable-shared
LDFLAGS=-L/home/madplayer/lib CPPFLAGS=-I/home/madplayer/inc
生成Makefile.
make
make install
在--prefix指定的目录下会生成 libid3tag 库。
4.交叉编译libmad
./configure --host=arm-linux --prefix=/home/madplayer/libmad --disable-shared
在--prefix指定的目录下会生成 libmad 库。
5.交叉编译madplay
把前面交叉编译得到的头文件、zlib.h和库文件分别拷贝到/home/madplayer/inc 和/home/madplayer/lib 下。
./configure --host=arm-linux --prefix=/home/madplayer/obj --disable-shared --enable-static
LDFLAGS=-L/home/madplayer/lib CPPFLAGS=-I/home/madplayer/inc
make
make install
在/home/madplayer/obj下会得到madplay可执行文件。
6. 把madplay拷贝到目标开发板,libz库拷贝到目标板下的/usr/lib
找一首XXX.mp3,./madplay -S XXX.mp3 测试一下,怎么样?听到美妙的音乐了吗?