移植Madplay到Mini2440.docx
- 文档编号:23568285
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:12
- 大小:377.81KB
移植Madplay到Mini2440.docx
《移植Madplay到Mini2440.docx》由会员分享,可在线阅读,更多相关《移植Madplay到Mini2440.docx(12页珍藏版)》请在冰豆网上搜索。
移植Madplay到Mini2440
移植Madplayer到Mini2440
一、开发环境说明
●硬件环境:
mini2440开发板(nand128M,SDRAM64M)
宿主机:
xp+vmware+LinuxRedHat5(2.6.18-164.el5)
●软件环境:
Linux下编译器arm-linux-gcc-4.3.2withEBAI
●准备所用的软件包:
madplay-0.15.2b.tar.gz
libmad-0.15.1b.tar.gz
libid3tar-0.15.1b.tar.gz
zlib-1.2.5.tar
arm-linux-gcc-4.4.3.tar.gz
libstdc++[1].so.6.0.10(库文件)
二、安装交叉编译器
1.把以上准备的软件包arm-linux-gcc-4.4.3.tar.gz放在linux中,及/tmp/arm-gcc
2.解压此软件包在此目录下
tar-zxvfarm-linux-gcc-4.4.3.tar.gz
3.添加环境变量,在/etc/profile中加入
exportPATH=$PATH:
/tmp/opt/FriendlyARM/toolschain/4.4/3/bin
4.要使环境变量生效,使用如下命令
source/etc/profile
5.检测路径是否生效
echo$PATH
6.编写一个hello.c程序进行测试
Arm-linux-gcc–ohellohello.c
出现如下状况
7.对上状况做如下修改:
执行strings/usr/lib/libstdc++.so.6|grepGLIBC
没有GLIBCXX_3.4.9
结果如下:
8.执行ls-l /usr/lib/libstdc++.so.6
出现结果如下:
(1)将准备的库文件libstdc++[1].so.6.0.10放在/usr/lib下
(2)然后删除原来的软连接
rm/usr/lib/libstdc++.so.6
(3)再执行ls-l /usr/lib/libstdc++.so.6
(4)出现ls:
/usr/lib/libstdc++.so.6:
没有那个文件或目录
(5)重新做新链接ln-s/usr/lib/libstdc++[1].so.6.0.10 /usr/lib/libstdc++.so.6
a.重新编译一下hello.c文件
b.#arm-linux-gcc–ohellohello.c
c.没有出现错误
d.查看文件的运行平台
到此交叉编译器安装成功
三、mp3播放器madplay移植(此时是在linux下播放mp3)
1.建立工作目录,拷贝原软件包
在/opt/madplay目录,并以此为工作目录
#cd/opt
#mkdirmadpaly
#cdmadplay
#mkdirtarballsrc-x86src-armtarget-x86target-arm
目录说明:
tarball目录用来存放所有的源代码包
src-x86目录用来存放X86版本的所有源代码文件
src-arm目录用来存放ARM版本的所有源代码文件
target-x86目录是X86版本的安装目录
target-arm目录是ARM版本的安装目录
2.接下来把准备的源代码包放在tarball目录下
方法:
通过xftp把上面准备的四个代码包放在/opt/madpaly/tarball下
解压源代码包,执行以下命令
#cdtarball
#forfin$(ls*.tar.gz);dotarxvzf$f–C../src-x86;done
结果如图:
3.编译madplay所依赖的库文件
(1)编译安装libid3tag
#cd/opt/madplay/src-x86/libid3tag-0.15.1b
#./configure--prefix=/opt/madplay/target-x86
#make
#makeinstall
出现如下图:
(2)编译安装libmad
#cd../libmad-0.15.1b
#./configure--prefix=/opt/madplay/target-x86
#make
#makeinstall
出现的现象如上图……
(3)编译安装madpaly
#cdmadplay-0.15.2b
#./configure--prefix=/root/madplay/target-x86
出现的错误如下:
(4).根据提示我们要设置CPPFLAGS环境变量,采用如下参数重新配置:
#./configure--prefix=/opt/madplay/target-x86CPPFLAGS=-I/opt/madplay/target-x86/includeLDFLAGS=-L/opt/madplay/target-x86/lib
执行结果如下图:
这样说明配置成功,输入下一个命令开始编译:
#make
#makeinstall
执行完毕,可执行文件将安装在我们指定的目录:
/opt/maplay/target-x86目录中
4.测试PC版的madplay
拷贝一首mp3(我们准备了一首love)文件到madplay(即src-x86/bin)所在的目录,执行
#./madpalytest.mp3
注:
执行前需先给madplay增加权限
如下图:
四、编一个shell脚本生成madplay和库文件lib
vihello.sh
#!
/bin/sh
MADPLAY_DIR=/opt/madplay
SRC_DIR=src-arm
TARGET_DIR=$MADPLAY_DIR/target-arm
tarxvzf./tarball/libid3tag-0.15.1b.tar.gz-C$SRC_DIR
tarxvzf./tarball/libmad-0.15.1b.tar.gz-C$SRC_DIR
tarxvzf./tarball/madplay-0.15.2b.tar.gz-C$SRC_DIR
tarxvjf./tarball/zlib-1.2.5.tar.bz2-C$SRC_DIR
exportCC=arm-linux-gcc
cd$SRC_DIR/zlib-1.2.5
./configure--prefix=$TARGET_DIR
make&&makeinstall
cd../..
cd$SRC_DIR/libid3tag-0.15.1b
./configure--host=arm-linux--prefix=$TARGET_DIRCPPFLAGS=-I$TARGET_DIR/include
LDFLAGS=-L$TARGET_DIR/lib
make;makeinstall
cd../../
cd$SRC_DIR/libmad-0.15.1b
./configure--host=arm-linux--prefix=$TARGET_DIR
make;makeinstall
cd../..
cd$SRC_DIR/madplay-0.15.2b
./configure--host=arm-linux--prefix=$TARGET_DIRCPPFLAGS=-I$TARGET_DIR/include
LDFLAGS=-L$TARGET_DIR/lib
make;makeinstall
cd../../
运行后生成madplay和库文件lib(target-arm下的lib)
运行时若权限不够
则chmod777hello.sh
四、将在Linux下运行成功的madplay移植到开发板上
注:
我们是经过U盘移植的(直接把U盘插在开发板上)
1.把上面准备好的madplay播放器和所生的的库文件放在U盘中
2.在/下发现udisk,那就是U盘挂在上了
3.将madplaycp到/usr/bin
4.将准备的歌曲(我们同样用了上次的love.mp3)也同时放在/uar/bin下
(1)将所需的lib下的库文件传入/lib
libid3tag.a
libid3tag.la
libid3tag.so
libid3tag.so.0
libid3tag.so.0.3.0
libz.a
libz.so
libz.so.1
libz.so.1.2.5
pkgconfig文件夹
(2)进入/usr/bin执行./madplaylove.mp3
此时将耳机插入开发板就可以听到音乐了也表明移植成功了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移植 Madplay Mini2440