嵌入式系统原理与实践大作业。
课程名称:嵌入式系统原理与实践。
内容:软件移植
题目:mplayer和sdl的移植。
系别:软件学院。
专业:移动设备应用与开发。
班级:15级软工移动1班。
学号:1515925497
姓名:周俊康
学期: 2016-2017第一学期。
指导教师:邱雅。
时间:2024年12月
一、up6410arm开发板下mplayer移植。
mplayer移植过程及结果。
1、移植准备:
软件准备:
在虚拟机下创建一个文件夹用于mplayer移植并把和复制到所创建的文件夹中。
所用命令:mkdir /share
cp /share
cp /share
进入/share并在/
所用命令:cd /share
mkdir mplayer
mkdir libmad
2、编译libmad配置环境。
在/share解压。
所用命令:tar zxvf
进入解压得到的源码目录中,运行configure,生成makefile
所用命令:cd libmad-0.15.1b
configure cc=arm-linux-gcc --host=arm-linux --disable-shared --disable-debugging --prefix=/share/libmad
修改makefile,找到makefile中的“--fforce-men”,删除后保存。
所用命令:gedit makefile
用vi makefile时,搜索命令:g/fforce-men)
make和make install
所用命令:make
make install
3.检查。进入/share/libmad中输入ls,查看是否成功生成include和lib两个文件夹,include中为中为和。
4.交叉编译mplayer
在/share下解压。
所用命令:tar zxvf
进入解压得到的源码目录中,运行configure,生成makefile
所用命令:cd /mplayer-1.0rc4
configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-fbdev --enable-static --disable-***read --disable-live --disable-***lib --enable-mad --disable-win32dll --disable-mencoder --disable-ivtv --disable-***n** --disable-***read-internal --disable-lib***css-internal --enable-lib**codec_a --prefix=/share/mplayer 2>&1 | tee logfile
手动添加libmad库的支持。
由于**的mplayer源**在配置时--with-extraincdir –with-extralibdir提示没有此配置选项,因此需手动添加libmad库的支持,我的解决方法是将/share /libmab/include下文件直接拷贝到mplayer源**中,同时也把/share /libmab/include下的拷贝到mplayer源**中,而对于其下面的库则先执行上面的“运行configure”一步,会生成文件,然后修改即可。
所用命令:cp -r /share/libmad/include /share/ mplayer-1.0rc4
cp /share/libmad/include/ /share/ mplayer-1.0rc4
修改mplayer-1.0rc4中。
修改中在-lmad 后加上-l/share/libmab/lib,然后执行下一步。
所用命令:gedit /
修改makefile
修改mplayer-1.0rc4下libmpeg2下motion_comp_arm_文件。
在最前加入:
#ifndef h**e_pld
macro pld reg
endm #endif
所用命令:gedit /libmpeg2/motion_comp_arm_
运行make编译源**。
所用命令:make
install修改。
查资料看install带-s 参数时会自动调用strip来strip应用程序。但是arm编译时要调用arm-linux-strip才有正确处理。解决办法是取消-s参数,查看makefile可以发现-s是如下。
(install) -m 755 $(installstrip) mplayer$(exesuf) $bindir)
的installstrip设置的,它默认是-s,因此只要简单在makefile的install部分前面加入:
installstrip :=#将其置为空即可。
执行make install
5、检查。进入/share/mplayer中输入ls,查看是否成功生成bin、etc、share和lib四个文件夹。
6、连接开发板ping通,配置nfs,关闭防火墙,挂载/share文件夹到开发板。
7、将自己准备的**文件拷贝到所挂载的文件夹中,在开发板上利用mplayer运行**和**文件。
8、其他。制作一个**列表:ls /mnt/*.**i >
随机**:mplayer -playerlist -shuffle
-playerlist 指定**列表。
-shuffle 指定随机**。
9、结果。在开发版上运行,将耳机插入相应位置,所**的**即通过耳机传入耳中。
mplayer移植总结。
mplayer是自带的***lib库来进行***解码的,但是arm系列的cpu,一般都没浮点运算单元,而mplayer的***解码默认使用***lib,这个是浮点运算库,arm上肯定跑不了。需要使用libmad库,所以需要提前移植libmad库。另外,准备开始前请先确定已安装交叉编译器arm-linux-gcc(4.
3.2),并已经在终端设置好环境变量,做好这些就可以开始移植工作了。
一般软件的移植主要分五大步骤:
、解压所需的库文件等软件压缩包。
、配置环境。
、运行 configure生成makefile
、修改makefile
、make和make install
在开发板上输入。
/mplayer *.**i -framedrop -quiet -vf rotate=1,scale=240:320测试时,发现没有声音。这时,我们需要输入一下命令:
mkdir -p /dev/sound
ln -s /dev/dsp /dev/sound
原因是:目标系统上有/dev/dsp音频设备文件,只是oss音频驱动需要的是/dev/sound/dsp设备文件,这个问题的简单解决方法是建一个符号链接,当然这两条命令可以写在系统的启动文件的适当位置,即修改系统的/etc/文件。
二、up6410arm开发板下sdl移植。
sdl移植过程及结果。
1、移植准备。
软件准备:在虚拟机下创建一个文件夹/usr/fly用于存放sdl图形库的压缩文件并作为被挂载的共享文件夹。
所用命令:mkdir /usr/fly
在虚拟机下创建一个文件夹/opt/fly作为安装sdl的目录,并把压缩文件复制到安装目录中。
所用命令:mkdir /opt/fly
cp /opt/fly
挂载共享文件夹。
1)检查pc机与开发板的链接,查看串口、网线、电源等连接是否正确。
2)分别查看开发板和pc机的ip,使他们在同一网段,并互相ping通。
3)把想要挂载的共享文件夹配置到/etc/exports下。
4)关闭防火墙并更新nfs
5)挂载共享文件夹到开发板/mnt/nfs(挂载命令在6410开发板上输入)
2、编译sdl配置环境。
进入/opt/fly下,解压。
tar -zxvf
configure的配置。
输入:./configure--prefix=/opt/fly--disable-video-nanox-disable-video-qtopia--disable-video-photon--disable-video-ggi--disable-video-svga--disable-video-aalib--disable-video-dummy--disable-video-dga--disable-arts--disable-esd--disable-alsa--disable-video-x11--disable-nasm--enable-joystick--enable-input-tslib--enable-video-fbcon--host=arm-linux--build=i386--enable
make和make install
3、拷贝sdl库文件。
进入安装目录/opt/fly,在安装目录下面的include下是sdl的头文件,在lib目录下是我们的sdl函数库文件。这时要做的就是把编译所生成的库文件先拷贝到共享的挂载的目录下面,然后在6410的终端下面,进入cd /mnt/nfs,输入ls可以查看到拷贝过去的库文件。然后再将这下面的库文件利用cp命令拷贝到/mnt/yaffas/qtopia/lib下面。
这样,在6410开发板上要运行可执行的文件所要用到的库就已经装载完成。
嵌入式大作业
黑龙江科技学院。计算机与信息工程学院。嵌入式大作业。专业班级学号。成绩。姓名教师。2010年12月24日。前导问题 1.选a,完全独立完成2.一 基础问题。1.答 嵌入式系统是指用于执行独立功能的专用计算机系统,作为装置或设备的一部分。嵌入式系统通常由嵌入式微处理器 嵌入式操作系统 应用软件和外围设...
嵌入式大作业
一。简述jtag接口在嵌入式开发中的作用?1关于jtag jtag joint test action group,联合测试行动小组 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行 测试。jtag技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路tap test access po...
嵌入式大作业
嵌入式的系统应用和发展趋势。班级 09电子信息工程2班。组员 刘奥 09700226 刘扬 09700227 何翔 09700228 指导老师 赵洁。计算机与信息工程学院 2012年11月20日。嵌入式系统 embedded system 是一种 完全嵌入受控器件内部,为特定应用而设计的专用计算机系...