MPlayer移植到mini2440开发板

合集下载

Linux 2.6.37内核移植到Mini2440(一)

Linux 2.6.37内核移植到Mini2440(一)

Linux 2.6.37内核移植到Mini2440(一)Linux 2.6.37内核移植到Mini2440(一)Linux 2.6.37内核移植到Mini2440(一)一、平台说明1. 主机环境Fedora 9 .6.33.3-85.fc13.i686.PAE 2GB SDRAM2. 目标机环境n 开发板:Mini2440S3C2440A-40n Nor Flash: SST39VF1601 2MBn NAND Flash: k9f2g08u0B 256MBn SDRAM: HY57v561620 64MB n 内核:linux-2.6.37n Bootloader: u-boot-2009.113. 交叉链arm-none-linux-gnueabi-gcc (ctng-1.6.1) 4.4.3(mini2440开发板自带)arm-inux-4.4.3二、下载内核:1) linux-2.6.37.tar.bz22) 解压linux-2.6.37.tar.bz2到如:/mywork/kernel3) 进入linux-2.6.37文件夹4) 修改交叉编译器在内核根目录下,编辑Makefile,找到ARCH=。

修改为如下内容。

注意,行后面的//是注释,不要输入!【技巧】为了让vi中显示行号,执行如下命令即可:#echo “set nu ”>~/.vimrc#vi MakefileARCH ?= armCROSS_COMPILE ?= arm-linux-//这个是交叉编译工具保存退出5) 生成默认.config配置文件说明,在内核代码移植到时候,常常指定文件夹为/的什么,这里的根是指内核文件夹的根。

可以通过复制arch/arm/configs/mini2440_defconfig生成.config,或执行如下命令生成。

#cp arch/arm/configs/mini2440_defconfig .config //此方法可能行不通#make mini2440_defconfig【说明】如果配置乱套了,想重新配置,可以执行如下命令,重新从该步骤开始:#make distclean //清除所有的配置,并删除.config。

MINI2440

MINI2440

郑州轻工业学院校外实习报告实习名称:MiNI2440移植Uboot姓名:冯相楠院(系):计算机通信与工程学院专业班级:嵌入式软件14-2学号:541413430208指导教师:韩雪琴主要实习单位:郑州轻工业学院成绩:时间:2016年6月10日至2016年6月17日一、实习目的MiNI2440移植Uboot。

二、实习内容1、任务与要求1.移植uboot到mini2440,使其可以在nor flash中运行2.支持DM9000网卡3.支持nor flash读写主机:VMWare--redhat 5开发板:Mini2440--256MB Nand编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2008.10.tar.bz22、设计思路1.选择移植参考开发板1.1 首先选择MCU相同的开发板,在uboot-2008.10中不支持MCU为s3c2440芯片的开发板1.2没有找到MCU相同的参考开发板,选择CPU相同的参考开发板,s3c2440的cpu为arm920T,smdk2410的cpu也是arm920T,选择smdk2410作为参考开发板。

2.在顶层makefile中为开发板添加新的配置选项(红色部分为添加代码,下同)smdk2410_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0mini2440_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0注释:增加配置选项,使make mini2440_config得以进行,为make提供编译环境和设置编译选择路径;unconfig执行@rm -f $(obj)include/config.h$(obj)include/config.mk \$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \$(obj)include/autoconf.mk$(obj)include/autoconf.mk.dep操作,该操作删除原有的配置;@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0执行根目录下的mkconfig脚本,后面几个为传入该脚本的参数,其中$(@:_config=) 的值为mini2440,mkconfig脚本根据传入的参数对mini2440编译环境进行配置.3.修改cpu/arm920t/start.s3.1修改编译条件使其支持s3c2440136 /*added by snowboyyzx mini2440*/137 #if defined(CONFIG_S3C2400) ||defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)138 /* turn off the watchdog */3.2添加寄存器的定义151 /*added by yzx for mini2440,register define base on the table of s3c2440 datesheet*/152 #define CLK_CTL_BASE 0x4c000000 //基地址153 #define MDIV_405 0x7f << 12154 #define PSDIV_405 0x21155 #define UPLL_MDIV_48 0x38 << 12156 #define UPLL_PSDIV_48 0x22157 #define MDIV_200 0xa1 << 12158 #define PSDIV_200 0x31上述定义是根据芯片手册来设置的MDIV相应的数据之所以要左移12位是因为它在对应的寄存器的12-19位,将pdiv和sdiv放在一起用16进制表示,因为pdiv正好从第四位开始取值。

PERL 移植到ARM(mini2440)开发板过程详解

PERL 移植到ARM(mini2440)开发板过程详解

PERL 移植到ARM(mini2440)过程详解作者:万升级日期:2011-11-30使用的环境:Host: Linux version 2.6.31.5-127.fc12.i686安装i386 perl 5.10.0交叉编译使用 perl-5.10.0.tar.gz源码GCC: gcc version 4.4.2 (交叉编译环境由友善之臂提供的toolchain工具)相关包下载源码包: perl-5.10.0.tar.gz交叉编译包: perl-5.10.0-install.tar.gz/src/5.0/perl-5.10.0.tar.gz/downloads183/ebook/85856388perl-5.10.0-inst all.tar.gz编译过程上传包:把上面下载的两个包上传到编译环境的同一个目录中,如:/home/swan/perl5 如下:解压包:tar -zxvf perl-5.10.0-install.tar.gz解压包后,生成下面的一些文件-rwxr-xr-x 1 swan epdev 808 2009-07-19 02:11install-rwxr--r-- 1 swan epdev 175088 2009-07-19 02:05perl-5.10.0-cross.patch-rwxr-xr-x 1 swan epdev 9813068 2011-11-30 15:55 perl-5.10.0-install.tar.gz-rwxr-xr-x 1 swan epdev 15595020 2011-11-30 15:55 perl-5.10.0.tar.gzdrwxr-xr-x 4 swan epdev 4096 2009-07-19 01:39usr修改安装配置文件installvi install修改前:#!/bin/sh#tar -xzvf $PKG/perl-5.10.0.tar.gz#patch -Np0 -i perl-5.10.0-cross.patchsed -i 's/arm-unknown-linux-gnu-/arm-926ejs-linux-/' \perl-5.10.0/Cross/Makefilesed -i '/^PERL =/c\PERL = ../miniperl-cross' perl-5.10.0/utils/Makefile.SHsed -i -e '/^generate_uudmap/c\generate_uudmap\\\$(EXE_EXT): generate_uudmap.c' -e'/$(CC).*generate_uudmap/c\ gcc \\\$(LDFLAGS) -o generate_uudmap generate_uudmap.c\\\$(libs)' perl-5.10.0/Makefile.SHsed -i -e 's/\.\/perl installperl/\.\/miniperl-cross installperl/' \-e '/$(MAKE) extras.install/d' \-e '/\.\/perl installman/c\ @echo installman \$(DESTDIR)' \perl-5.10.0/Makefile.SH#mkdir -p $PKG/perl-5.10.0#rm -rf $PKG/perl-5.10.0/*#cd perl-5.10.0/Cross#make ARCH=arm CROSS_COMPILE=arm-926ejs-linux-#make DESTDIR=$PKG/perl-5.10.0 install修改后:#!/bin/shtar -xzvf $PKG/perl-5.10.0.tar.gzpatch -Np0 -i perl-5.10.0-cross.patchsed -i 's/arm-unknown-linux-gnu-/arm-926ejs-linux-/' \perl-5.10.0/Cross/Makefilesed -i '/^PERL =/c\PERL = ../miniperl-cross' perl-5.10.0/utils/Makefile.SHsed -i -e '/^generate_uudmap/c\generate_uudmap\\\$(EXE_EXT): generate_uudmap.c' -e'/$(CC).*generate_uudmap/c\ gcc \\\$(LDFLAGS) -o generate_uudmap generate_uudmap.c\\\$(libs)' perl-5.10.0/Makefile.SHsed -i -e 's/\.\/perl installperl/\.\/miniperl-cross installperl/' \-e '/$(MAKE) extras.install/d' \-e '/\.\/perl installman/c\ @echo installman \$(DESTDIR)' \perl-5.10.0/Makefile.SHcd perl-5.10.0/Crossmake ARCH=arm CROSS_COMPILE=arm-linux-make DESTDIR=$PKG/perl-5.10.0 install红色字体表示已修改过的,可以根据实际情况修改相应的路径和宏命令执行脚本进行交叉编译./install在编译过程中如何出现一些错误,请检查install配置是否修改正确,特别是make ARCH=armCROSS_COMPILE=arm-linux-这个需要重点注意,还有就是路径一定要正确.编译成功后,出现下面的内容/usr/lib/perl5/5.10.0/pod/perlxs.pod/usr/lib/perl5/5.10.0/pod/perlxstut.pod/usr/lib/perl5/5.10.0/pod/a2p.podinstallman /home/swan/perl5/perl-5.10.0/Cross/perl-5.10.0make[2]: Leaving directory `/home/swan/perl5/perl-5.10.0'make[1]: Leaving directory `/home/swan/perl5/perl-5.10.0'[swan@devhost perl5]$配置开发板内容1)编译成功后,把perl-5.10.0目录中生成的miniperl文件移植到开发板上的/bin目录下并在开发板上建立链接:Chmod +x miniperl //赋予可执行权限ln –sf miniperl perl //建立链接2)将解压perl-5.10.0-install.tar.gz这个包所生成的usr目录中的lib/perl5/5.10.0 下的所有文件移植到开发板的/usr/lib/perl5/5.10.0中3)开发板上的移植工作已经完成.测试一下,是否安装成功, 运行perl –v检查perl的版本信息perl –v出现以下的信息表示移植成功.[root@FriendlyARM /bin]# perl -vThis is perl, v5.10.0 built for arm-linuxCopyright 1987-2007, Larry WallPerl may be copied only under the terms of either the Artistic License or theGNU General Public License, which may be found in the Perl 5 source kit.Complete documentation for Perl, including FAQ lists, should be found onthis system using "man perl" or "perldoc perl". If you have access to theInternet, point your browser at /, the Perl Home Page.Perl脚本测试以及错误解析1)编写perl测试脚本,测试arm板上的perl的基本功能。

Mplayer在ARM9(2440)上的移植

Mplayer在ARM9(2440)上的移植

Mplayer在ARM9(2440)上的移植首先、建立节省时间的调试平台:笔记本、台式机、ARM9板笔记本: 用于交叉编译台式机: 用于串口终端控制目标板挂载虚拟机: mount -t nfs -o nolock 192.168.1.3:/root /mnt/nfs目标板挂载SD卡: mount /dev/mmcblk0 /mnt/sd一、交叉编译libmad由于MPlayer中默认的mp3解码器是mp3lib,使用的是浮点数运算,相当占用CPU资源,故在编译的时候可以使用libmad进行音频输出,使用之前需要自己手动编译libmad,保证交叉编译器能够找到libmad库以及头文件,编译时增加--enable-mad就可以了。

利用mad解码MP3文件,可以看到CPU 占用率降到了18左右,得到验证。

1)自己下载libmad包(libmad-0.15.1b.tar.gz)2) 配置命令 ./configure --enable-fpm=arm --host=arm-linux--disable-shared --disable-debugging--cc=arm-linux-gcc--prefix=/opt/toolchains/arm920t-eabi/lib(就是MPlayer需要的头文件和库路径)3) #make #make install,这样就可以在/opt/toolchains/arm920t-eabi/lib目录下多了include和lib目录二、交叉编译MPlayer1) 配置命令 ./configure --cc=arm-linux-gcc--host-cc=gcc(或在makefile中224行把--host-cc改成gcc)--enable-cross-compile --target=arm-armv41-linux--enable-linux-devfs(虚拟设备) --disable-win32dll--disable-win32waveout --disable-mencoder--disable-iconv --disable-live--disable-dvdnav --disable-dvdread--disable-dvdread-internal --disable-libdvdcss-internal--enable-libavcodec_a --enable-mad--disable-mp3lib --enable-fbdev--enable-ossaudio -- enable-static--disable-armv5te --disable-ramv6--with-extraincdir=/opt/toolchanis/arm920t-eabi/lib/include--with-extralibdir=/opt/toolchanis/arm920t-eabi/lib/libnote: 配置成功之后,#make ,可执行程序在该目录下,没指定安装目录不需要#make install 2)播放mp3测试#mplayer -ac mad 1.mp3-ac mad 是告诉MPlayer使用mad解码,可以看到CPU占用率降到了18左右。

移植Madplay到Mini2440

移植Madplay到Mini2440

移植Madplayer到Mini2440嵌入091-03-冯艳嵌入091-04-王丽新一、开发环境说明●硬件环境:mini2440开发板(nand 128M,SDRAM 64M) 宿主机:xp+vmware+Linux Red Hat 5 (2.6.18-164.el5)●软件环境:Linux下编译器arm-linux-gcc-4.3.2 with EBAI●准备所用的软件包:madplay-0.15.2b.tar.gzlibmad-0.15.1b.tar.gzlibid3tar-0.15.1b.tar.gzzlib-1.2.5.tararm-linux-gcc-4.4.3.tar.gzlibstdc++[1].so.6.0.10(库文件)二、安装交叉编译器1.把以上准备的软件包arm-linux-gcc-4.4.3.tar.gz放在linux中,及/tmp/arm-gcc2.解压此软件包在此目录下tar -zxvf arm-linux-gcc-4.4.3.tar.gz3.添加环境变量,在 /etc/profile 中加入exportPATH=$PATH:/tmp/opt/FriendlyARM/toolschain/4.4/3/bin4.要使环境变量生效,使用如下命令source /etc/profile5.检测路径是否生效echo $PATH6. 编写一个hello.c程序进行测试Arm-linux-gcc –o hello hello.c出现如下状况7.对上状况做如下修改:执行strings /usr/lib/libstdc++.so.6 | grep GLIBC没有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.6a.重新编译一下hello.c文件b. # arm-linux-gcc –o hello hello.cc.没有出现错误d.查看文件的运行平台到此交叉编译器安装成功三、mp3 播放器madplay 移植(此时是在linux下播放mp3)1.建立工作目录,拷贝原软件包在/opt/madplay目录,并以此为工作目录#cd /opt#mkdir madpaly#cd madplay#mkdir tarball src-x86 src-arm target-x86 target-arm目录说明:tarball 目录用来存放所有的源代码包src-x86 目录用来存放X86 版本的所有源代码文件src-arm 目录用来存放ARM 版本的所有源代码文件target-x86 目录是X86 版本的安装目录target-arm 目录是ARM 版本的安装目录2.接下来把准备的源代码包放在tarball目录下方法:通过xftp把上面准备的四个代码包放在/opt/madpaly/tarball下解压源代码包,执行以下命令#cd tarball#for f in $(ls *.tar.gz); do tar xvzf $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#make install出现如下图:(2)编译安装libmad#cd ../libmad-0.15.1b#./configure --prefix=/opt/madplay/target-x86 #make#make install出现的现象如上图……(3)编译安装madpaly#cd madplay-0.15.2b#./configure--prefix=/root/madplay/target-x86出现的错误如下:(4).根据提示我们要设置CPPFLAGS 环境变量,采用如下参数重新配置:#./configure --prefix=/opt/madplay/target-x86 CPPFLAGS=-I/opt/madplay/target-x86/include LDFLAGS=-L/opt/madplay/target-x86/lib执行结果如下图:这样说明配置成功,输入下一个命令开始编译:#make#make install执行完毕,可执行文件将安装在我们指定的目录:/opt/maplay/target-x86目录中4.测试PC版的madplay拷贝一首mp3(我们准备了一首love )文件到madplay(即src-x86/bin)所在的目录,执行#./madpaly test.mp3注:执行前需先给madplay增加权限如下图:四、编一个 shell脚本生成madplay 和库文件 libvi hello.sh#!/bin/shMADPLAY_DIR=/opt/madplaySRC_DIR=src-armTARGET_DIR=$MADPLAY_DIR/target-armtar xvzf ./tarball/libid3tag-0.15.1b.tar.gz -C $SRC_DIR tar xvzf ./tarball/libmad-0.15.1b.tar.gz -C $SRC_DIR tar xvzf ./tarball/madplay-0.15.2b.tar.gz -C $SRC_DIR tar xvjf ./tarball/zlib-1.2.5.tar.bz2 -C $SRC_DIRexport CC=arm-linux-gcccd $SRC_DIR/zlib-1.2.5./configure --prefix=$TARGET_DIRmake && make installcd ../..cd $SRC_DIR/libid3tag-0.15.1b./configure --host=arm-linux --prefix=$TARGET_DIR CPPFLAGS=-I$TARGET_DIR/includeLDFLAGS=-L$TARGET_DIR/libmake;make installcd ../../cd $SRC_DIR/libmad-0.15.1b./configure --host=arm-linux --prefix=$TARGET_DIRmake;make installcd ../..cd $SRC_DIR/madplay-0.15.2b./configure --host=arm-linux --prefix=$TARGET_DIR CPPFLAGS=-I$TARGET_DIR/includeLDFLAGS=-L$TARGET_DIR/libmake;make installcd ../../运行后生成madplay 和库文件 lib (target-arm下的lib)运行时若权限不够则 chmod 777 hello.sh四、将在Linux下运行成功的madplay移植到开发板上注:我们是经过U盘移植的(直接把U盘插在开发板上)1.把上面准备好的madplay播放器和所生的的库文件放在U盘中2.在 / 下发现udisk,那就是U盘挂在上了3.将madplay cp 到 /usr/bin4.将准备的歌曲(我们同样用了上次的love.mp3)也同时放在 /uar/bin 下(1)将所需的lib下的库文件传入/liblibid3tag.alibid3tag.solibid3tag.so.0libid3tag.so.0.3.0libz.alibz.solibz.so.1libz.so.1.2.5pkgconfig文件夹(2)进入/usr/bin执行 ./madplay love.mp3也表明移植成功了。

Mini2440 Linux移植开发手册

Mini2440 Linux移植开发手册

Mini2440之Linux移植开发完全手册2010-9-9简介本手册主要介绍了Linux-2.6.32.2内核的详细移植过程,它包含了友善之臂提供的几乎所有驱动程序的移植或编写、测试等;本手册还详细介绍了mini2440所用文件系统的构建过程,很多用户都了解并体验过我们所提供的独具特色的、超级实用的文件系统,在这里,我们将向你一一详细的介绍它们是如何实现的。

上海嵌入式家园-开发板商城目录目录 (2)第一章Git的安装和使用(基于Fedora 9) (3)1.1 下载Git源代码 (3)1.2 安装Git (3)1.3 检查版本号 (3)第二章关于supervivi和开发环境 (5)2.1 关于supervivi (5)2.1.1 最新的supervivi及分区表 (5)2.1.2 如何识别开发板上supervivi版本 (5)2.1.3如何恢复或者更新开发板的supervivi (7)2.1.4 supervivi功能一览表 (7)2.1.5 如何使用其他开源的bootloader (8)2.1.6 为什么要使用最新的supervivi (9)2.2 关于开发平台 (9)2.3关于交叉编译器 (10)2.3.1 在何处获取 (10)2.3.2 关于ABI和EABI (11)第三章 Linux-2.6.32.2内核移植详细步骤 (12)3.1 引子 (12)3.2 获取Linux内核源代码 (12)3.3 解压内核源代码 (13)3.4 指定交叉编译变量 (14)3.5 克隆建立自己的目标平台 (15)3.5.1 关于机器码 (15)3.5.2 修改时钟源频率 (17)3.5.3 从SMDK2440到MINI2440 (18)3.5.4 编译测试 (19)3.6 关于内核配置菜单中的mini2440选项 (22)3.7 移植Nand驱动并更改分区信息 (25)3.7.1 Linux-2.6.32.2内核所支持的Nand Flash类型 (25)3.7.2 修改Nand Flash分区表 (26)3.7.3 从启动信息中查看分区表 (30)3.8 移植yaffs2 (32)3.8.1 获取yaffs2源代码 (32)3.8.2 为内核打上yaffs2补丁 (33)3.8.3 配置和编译带YAFFS2支持的内核 (34)3.8.4 烧写到开发板运行测试 (36)上海嵌入式家园-开发板商城第一章Git的安装和使用(基于Fedora 9)Git 是用于 Linux 内核开发的版本控制工具。

(整理)移植Mplayer到开发板

(整理)移植Mplayer到开发板

作者:广东海洋大学09届钟涛硬件平台:RedHat Linux 5、mini2440(arm9)开发板软件:arm-Linux-gcc-4.3.21.下载库文件libmad-0.15.1b.tar.gz并解压到/mywork/ 文件夹输入:cd /mywork/libmad/libmad-0.15.1b //打开文件夹在此文件路径下输入:./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/opt/toolchains/arm920t-eabi/libCC=arm-linux-gcc在make之前,首先解决一个问题先,要不后面make会出现问题。

即在此文件路径下输入:vi Makefile //打开Makefile文件找到Makefile并打开后,找到“--fforce-mem”删除就OK了,既“--fforce-mem”整个删除掉,原因是gcc 4.3.2已经将其去除了,所以会出现上面的错误删除后:输入:wq!然后输入:make输入:make install好了,第一步完成了!2. 下载MPlayer-1.0rc2.tar.gz也解压到/mywork/中。

输入:cd /mywork /MPlayer-1.0rc2输入:./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm --enable-static--disable-win32dll --disable-ivtv --disable-dvdread --disable-dvdread-internal--disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder--disable-live --disable-mp3lib --enable-mad--with-extraincdir=/opt/toolchains/arm920t-eabi/lib/include--with-extralibdir=/opt/toolchains/arm920t-eabi/lib/lib --enable-libavcodec_a--language=en --disable-live 2>&1 | tee logfile同样在make之前也要修改两个地方,不改后面make会出现错误。

MPlayer在色从2440上移植

MPlayer在色从2440上移植

Mplayer在s3c2440上的移植无论是作为何种用途,在s3c2440这块以主频为最大亮点的开发板上,不支持各种媒体的播放着实是件非常尴尬的事。

所以我们要为她添加对媒体播放的支持。

首选播放器当然是MPlayer,这里我们选择的是最新的MPlayer-1.0rc2版本,交叉编译器仍然选择arm-linux-gcc 3.4.1。

说明:虽然我们这里用的是最新的1.0rc2版本,但是对于我们需要移植的目标板2440而言,一些特性不能被很好支持。

所以不仅要做一些参数上的配置,还需要编译一些附加的库来提供支持。

1.编译libmad由于我们的s3c2440开发板并没配备专门用于音频或者视频解码的DSP 芯片,所有解码任务均有CPU完成。

由于arm本身没有浮点运算单元,所有浮点运算均由软件模拟实现,速度之慢可想而知。

而MPlayer自带的音频解码器为完全浮点运算的mp3lib,另一个ffmp3库启动时有明显的延迟,而且在解码某些MPG文件的时候会有兼容性问题,所以我们需要先编译音频解码库mad,为MPlayer的音频解码提供支持。

参考configure的帮助后,很容易写出如下命令行:配置完成后,make,接着make install。

成功后就能得到相应的mad库文件了,一个include文件夹,一个lib文件夹。

2.配置MPlayer--enable-cross-compile:开启交叉编译模式。

--host-cc=gcc--cc=arm-linux-gcc--as=arm-linux-as --ar=arm-linux-ar --ranlib=arm-linux-ranlib:分别指定host和target端编译器的相关信息--target=armv4l-linux:MPlayer支持很多架构的处理器,此处我们选择的2440所使用的armv4l-linux。

注:在早期的pre版本中,必须要指定armv4l-linux,否则相应的优化无法被编译进目标文件。

Mini2440下移植媒体播放器MadPlayer

Mini2440下移植媒体播放器MadPlayer

Mini2440下移植媒体播放器MadPlayer全过程开发环境:操作系统:readhat linux5 版本:2.6.18-164.el5硬件平台:mini2440(友善之臂)gcc交叉编译环境:arm-linux-gcc-4.4.3.tar.gz版本:gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)一、mp3 播放器madplay移植过程1.准备文件如下文件(从网上下载)arm-linux-gcc-4.4.3.tar.gz(交叉编译gcc所用到文件)madplay-0.15.2b.tar.gz(madplay移植所用到文件)libmad-0.15.1b.tar.gz(madplay移植所用到文件)libid3tag-0.15.1b.tar.gz(madplay移植所用到文件)zlib-1.2.5.tar.gz(lib库所需要的文件)libstdc++.so.6.0.10(版本问题所需要的链接)2.打开虚拟机,由于版本问题需要进行如下操作1)删除/usr/lib/libstdc++.so.6文件(#rm /usr/lib/ libstdc++.so.6)2)把下载文件libstdc++.so.6.0.10复制到/usr/lib/下(#cplibstdc++.so.6.0.10 /usr/lib/)3)(#cd /usr/lib/)4)建立链接(#ln–s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6)5)查看链接是否成功(#strings /usr/lib/libstdc++.so.6 | grep GLIBCXX)如下图3.建立交叉编译环境1)将arm-linux-gcc-4.4.3.tar.gz压缩文件复制到/tmp(#cp arm-linux-gcc-4.4.3.tar.gz /tmp)2)解压缩文件arm-linux-gcc-4.4.3.tar.gz(#tar xvzf arm-linux-gcc-4.4.3.tar.gz –C /)cd3)修改文件分别在/root/.bashrc和/etc/profile文件下添加如下一行export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin(#gedit /root/.bashrc)和(#gedit /etc/profile)如下图:保存并退出4)重新登录系统交叉编译环境生效(在字符界面用命令logout,在图形界面直接<注销>)5)重新登录后在命令行输入#arm-linux-gcc-4.4.3–v显示如下图交叉编译成功(可以编写一个c程序测试生效)4.播放器移植1)在根目录如下文件/opt/FriendlyARM/下建立mini2440,并在mini2440文件夹下建立madplay,再在madpalay文件夹下建立四个文件夹tarball src-x86 src-arm target-arm (#cd /opt/FriendlyARM/)(# mkdir mini2440)(#cd mini2440)(#mkdirmadplay)(#cd madplay)(#mkdirtarball src-x86 src-arm target-arm)2)把压缩包madplay-0.15.2b.tar.gzlibid3tag-0.15.1b.tar.gzlibmad-0.15.1b.ta r.gz放入/opt/FriendlyARM/mini2440/madplay/tarball(#cpmadplay-0.15.2b.tar.gz libid3tag-0.15.1b.tar.gzlibmad-0.15.1b.tar.gz /opt/FriendlyARM/ mini2440/ madplay/ tarball )3)解压缩源代码madplay-0.15.2b.tar.gzlibid3tag-0.15.1b.tar.gzlibmad-0.15 .1b.tar.gz(#cd /opt/FriendlyARM/ mini2440/ madplay/ tarball)(#for f in $(ls *.tar.gz); do tar xvzf $f –C ../src-x86 ; done)4)编译madplay所依赖的库文件a) libid3tag(#cd/opt/FriendlyARM/mini2440/madplay/src-x86/libid3tag-0.15.1b)(#./configure--prefix=/opt/FriendlyARM/mini2440/madplay/target-x86)(#make)(#make install)b) libmad(#cd/opt/FriendlyARM/mini2440/madplay/src-x86/libmad-0.1 5.1b)(#./configure--prefix=/opt/FriendlyARM/mini2440/madplay/target-x86)(#make)(#make install)由于gcc版本问题需要删除/opt/FriendlyARM/mini2440/madplay/target-x86/libmad-0.15.1b/Makefile文件中的"-fforce-mem"字符串(#cd /opt/FriendlyARM/mini2440/madplay/target-x86/ libmad-0.15.1b/)(#geditMakefile)以上过程完毕,将在target-x86 目录出现编译madplay所依赖的库文件和头文件。

移植Android 到mini2440

移植Android 到mini2440

From:/u2/69999/showart_2036954.html移植Android 到mini2440By Jeef2009年7月17日1 移植环境:Target:友善之臂mini2440HOST OS:Fedora 8kernel Version:Linux-2.6.25编译器:mini2440光盘所提供的编译器2 内核移植(一):2.1 参考资料感谢一下大侠提供的资料,链接如下./u2/85263/showart_1729098.html/u/26691/showart_468007html/home/space.php?uid=5/tekkamanitachi2.2 进展与缺陷:时间:JUL,17th,2009进展:(1)能够显示Android的Home界面,大钟已经显示在屏幕上;(2)驱动程序方面实现了,触摸屏、LCD,RTC的驱动缺陷:(1)触摸屏触摸后监管在控制台上打印坐标,不过Android无任何反应(2)时钟也静止在那里2.2 移植准备在移植之前要对移植的对象有一个大致的了解。

如果你从网站上下载一个主线纯净的内核,这个移植主要要实现两个方面的内容,一是Android与主线内核不同的部分,二是与你移植的硬件平台相关的部分。

我采用的思路是下载Android发布的内核,然后去了Android 中与G1手机硬件平台相关的部分,留下Android内核对主线内核更改但与硬件平台无关的部分,并添加与mini2440硬件平台相关的部分。

下载Android内核:/p/android/downloads/list上下载linux-2.6.25-android-1.0_r1.tar.gz关于Android内核与主线Linux内核不同的地方,夜猫子大侠已经做了分析,分析的比较到位,现在拷贝在这里,标注红色的为与硬件相关的,标注蓝色的是硬件无关的,黑色的部分是笔者目前还不清楚的,有待研究:(1)基于ARM架构增加Gold-Fish平台,相应增加的目录如下:kernel/arch/arm/mach-goldfishkernel/include/asm-arm/arch-goldfish(2)增加了yaffs2 FLASH文件系统,相应增加的目录为:kernel/fs/yaffs2实际上,Android包经过编译后生成的system.img和ramdisk.img文件就是yaffs2格式的包.3. 增加了Android的相关Driver,相应目录为:kernel/drivers/android主要分为:Android IPC系统: Binder (binder.c)Android 日志系统: Logger (logger.c)Android 电源管理: Power (power.c)Android 闹钟管理: Alarm (alarm.c)Android 内存控制台: Ram_console (ram_console.c)Android 时钟控制的gpio: Timed_gpio (timed_gpio.c)4. 增加了switch处理, 相应的目录为:kernel/drivers/switch/5. 增加了一种新的共享内存处理方式, 相应增加的文件为:kernel/mm/ashmem.c6. 其他为Linux-2.6.25内核所做的补丁等等,例如BlueTooth, 在此不做详细分析另外GoldFish平台相关的驱动文件如下:1. 字符输出设备:kernel/drivers/char/goldfish_tty.c2. 图象显示设备: (Frame Buffer)kernel/drivers/video/goldfishfb.c3. 键盘输入设备:kernel/drivers/input/keyboard/goldfish_events.c4. RTC设备: (Real Time Clock)kernel/drivers/rtc/rtc-goldfish.c5. USB Device设备:kernel/drivers/usb/gadget/android_adb.c这里只要用了支持Android的ADB工具,用于调试6. SD卡设备:kernel/drivers/mmc/host/goldfish.c7. FLASH设备:kernel/drivers/mtd/devices/goldfish_nand.ckernel/drivers/mtd/devices/goldfish_nand_reg.h8. LED设备:kernel/drivers/leds/ledtrig-sleep.c9. 电源设备:kernel/drivers/power/goldfish_battery.c10. 音频设备:kernel/arch/arm/mach-goldfish/audio.c11. 电源管理:kernel/arch/arm/mach-goldfish/pm.c12. 时钟管理:kernel/arch/arm/mach-goldfish/timer.c2.3 移植过程:以下内容摘自mini2440论坛/bbs/read.php?tid-1342.html,我的内核版本是2.6.25,是通常内核移植的基本步骤,红色部分是我Anroid系统对内核的特性要求一、解压下载的内核,二、修改内核源码根目录下的Makefile文件#ARCH ?= arm#CROSS_COMPILE ?=arm-linux-三、修改arch/arm/plat-s3c24xx/common-smdk.c文件,修改Nand Flash的分区信息和Nand Flash的硬件信息。

mini2440开发板和PC互传文件

mini2440开发板和PC互传文件

2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。
(3)执行“help 命令”,显示该命令的含义

移植MPlayer到2410

移植MPlayer到2410

mplayer在ARM9(s3c2410)上的移植*在S3C2410嵌入式开发平台上移植了几款linux媒体播放器,感觉播放效果不是很理想,320x240分辨率下的视频播放也不是很流畅,难道200M主频的速度就只能这样了?我开始有点失望了。

上个月,当mplayer摘取了年度Linux world 博览会“新媒体”大奖的消息传来,激发了我再次移植mplayer 到2410的决心,尽管前几次移植的结果都不是很成功。

以前我刚开始在linux下做桌面开发时,就听说mplayer号称linux史上功能最强的媒体播放器,它在桌面上安装起来很方便,简单的configure,make一下,就装好了,和QT的GUI配合,界面还是蛮友好的。

Mplayer对媒体格式的广泛支持,以及丰富的后期处理滤镜给我留下深刻印象,最新的版本更支持DIVX,H.264,MPEG4等最新的流媒体格式,可以实时在线播放视频流,这么优秀的播放软件把它移植到嵌入式设备上该多好啊!公司里有一块2410的开发板,CPU是三星的S3C2410,arm9的内核,板子做工很精细,以前一直都用它来做开发,买的时候配的是10。

4寸的sharp大屏,640X480的分辨率,不错,这样就可以测试在640X480分辨率下的视频播放速度了。

硬件平台的问题解决了,下一步下载最新的mplayer源代码包,毕竟最新的源代码包才有最新的功能,当然了BUG估计也是不少的。

打开mplayer的官方网站http://www.mplayerhq.hu的主页,可以看到“download”这个链接,点击一下,进入下载页面,在该页面里可以看到“daily CVS snapshot source”的下载部分,这部分链接都指向了每天提交到CVS服务器里最新的mplayer源代码包,鼠标点击一下开始下载!1. *开始编译*下载下来的源代码一般都叫MPlayer-current.tar.bz2的名字,好,开始解包,在命令行下敲以下的命令bunzip2 MPlayer-current.tar.bz2 | tar xv –查看解包出来的README和INSTALL文件,看看有没有安装时特别声明的东西,这是我的习惯,因为同一个软件的不同版本,安装的方法有时并不一样。

mplayer在嵌入式开发板上的移植

mplayer在嵌入式开发板上的移植

mplayer在嵌入式开发板上的移植名词解释MPlayer最初的名字叫做"MPlayer - The Movie Player for Linux",不过后来开发者们简称其为"MPlayer - The Movie Player",原因是MPlayer已经不仅可以用于Linux而可以在所有平台上运行.MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。

此款软件可在各主流作业系统使用,例如Linux和其他类Unix系统、微软的视窗系统及苹果电脑的Mac OS X系统。

MPlayer是建基于命令行界面,在各作业系统可选择安装不同的图形界面。

mplayer的另一个大的特色是广泛的输出设备支持。

它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、AAlib、DirectFB下工作.源码包的准备1.平台选择,想必大家都知道的,不同的平台由于驱动或软件的原因,编译配置选项还是不同的,即使是ARM平台,像s3c2440,没有浮点运算单元,而mplayer默认是用mp3lib 作为解码库的,但这个是浮点解码库,只有像s3c6410级别或者是更高级的TI omap 系列才有。

如果你的是s3c2440的移植,那么请关注另外一个解码库的编译,这里我附上连接mplayer在s3c2440平台上的移植,下面我就来讲讲omap3530上的移植,这个是有浮点运算单元的。

2.源码包下载:•mplayer1.0rc2.tar.bz2•编码包: all-20071007.tar.bz2 codecs/•皮肤:Ater-1.2.tar.bz2 注意:编码包和皮肤以及其他一些额外的东西是可选的。

比如x86平台上你就可以使用界面了。

ALSA与OSS:ALSA 是Advanced Linux Sound Architecture ,高级Linux 声音架构的简称, 它在Linux 操作系统上提供了音频和MIDI (Musical Instrument Digital Interface ,音乐设备数字化接口)的支持。

Android移植到Mini2440开发板

Android移植到Mini2440开发板

Android移植到Mini2440开发板
一、建立平台
做好下载前的准备工作,如PC机与开发板的交互,即先建立好下载内核与根文件系统平台,如下图所示:
图1建立虚拟机与PC机通信平台
二、产生内核与根文件系统
将下载到的Android内核与根文件系统在虚拟机下编译产生内核Image镜像文件以及根文件系统mini2440T35_android.img,然后将虚拟机下的这两个文件放到WIN PC机。

图2是编译产生的内核文件,图3是根文件系统。

图2 内核Image文件
图3根文件系统三、开始下载
以NOR FLASH方式启动,出现如下图4所示:
图4 NOR FALSH启动首先按x,格式化NAND,格式化完成如下所示:
首先下载supervivi-128M,按下v,如下图所示:
下载supervivi-128M完成如下图所示:
按k,下载内核,如下所示:
然后通过USB下载内核zImage(1.96MB)
下载完成后如下图所示,可知是先擦除,然后再写到NAND FLASH中
接着下载根文件系统,按y则进入如下界面
根文件系统比较大,下载时间较长,下载过程的图如下所示:
下载根文件系统完成后如下图所示:
按下b启动系统,启动完成如下所示,可以看到已经进入开发板的根文件系统了。

能上网。

Mplayer移植

Mplayer移植

实验步骤和调试过程:1.准备源码安装包以及测试文件。

2.搭建交叉编译环境:(1)环境搭建:1).连接串口线、网线和电源线2).使用超级终端连接开发板。

1'配置好串口调试环境安装USB转接串口工具PL2303_Prolific_DriverInstaller_v1210.exe 2'查看com端口号:右键电脑->属性->硬件->设备管理器,进行端口设置。

更改端口后,在设备管理器中扫描该端口。

3'安装SecureCRT,建立超级终端,连接开发板。

连接完成后,重新插入开发板电源,会出现相应的启动信息。

3).设置好nfs网络,使开发板和宿主机可以联通1'查看宿主机网络配置:ifconfig2'在超级终端查看开发板网络配置。

3'看看开发板和宿主机是否能ping通。

4'配置nfs4)挂载(2)安装交叉编译工具链交叉编译工具链,在之前的实验中已经安装完毕,不需要再重新安装。

3.配置生成可执行程序1.移植准备:软件准备:MPlayer-1.0rc4.tar libmad-0.15.1b.tar(1)在虚拟机下创建一个文件夹用于Mplayer移植并把libmad-0.15.1b.tar和MPlayer-1.0rc4.tar复制到所创建的文件夹中(2)进入/share并在/share下创建两个分别命名为MPlayer和libmad的文件夹用于存放lib 库和Mplayer应用文件2.编译libmad配置环境(1)在/share解压libmad-0.15.1b.tar(2)进入解压得到的源码目录中,运行configure,生成Makefile(3)修改Makefile,找到Makefile中的“--fforce-men”,删除后保存(4)编译3.检查进入/share/libmad中输入ls,查看是否成功生成include和lib两个文件夹。

4.交叉编译Mplayer(1)在/share下解压MPlayer-1.0rc4.tar(2)进入解压得到的源码目录中,运行configure,生成Makefile(3)手动添加libmad库的支持(4)修改MPlayer-1.0rc4中config.mak(5)修改Makefile(6)运行make编译源代码(7)install修改(8)执行make install5.检查进入/share/MPlayer中输入ls,查看是否成功生成bin、etc、share和lib四个文件夹6.连接开发板ping通,配置nfs,关闭防火墙,挂载/share文件夹到开发板7.将自己准备的音乐文件拷贝到所挂载的文件夹中,在开发板上利用Mplayer运行音乐和视频文件8.(1)制作一个播放列表(2)随机播放9.开发板上运行。

基于 mini2440开发板的多媒体播放器优化设计

基于 mini2440开发板的多媒体播放器优化设计

基于 mini2440开发板的多媒体播放器优化设计
赵羽佳;罗红杰;吕强
【期刊名称】《武汉工业学院学报》
【年(卷),期】2014(000)002
【摘要】针对MPlayer中的WMA解码耗时进行优化。

根据S3C2440平台的特性提出并分析了浮点运算转定点运算和快速除法两种优化方案。

实验结果表明:优化后的WMA 解码程序在mini2440平台上的解码效率得到了提高。

【总页数】3页(P69-71)
【作者】赵羽佳;罗红杰;吕强
【作者单位】武汉轻工大学电气与电子工程学院,湖北武汉430023;武汉轻工大学电气与电子工程学院,湖北武汉430023;武汉轻工大学电气与电子工程学院,湖北武汉430023
【正文语种】中文
【中图分类】TN919.8
【相关文献】
1.基于 mini2440开发板的多媒体播放器优化设计 [J], 赵羽佳;罗红杰;吕强;
2.基于VC背景下的多媒体播放器设计研究 [J], 石冬琴
3.基于ARM-Linux多媒体播放器的设计与实现 [J], 陈洋君;吴志勇;崔明;张维达
4.基于Android4.0的多媒体播放器的设计与实现 [J], 王启明;王锋
5.基于mini2440开发板的嵌入式多功能接口转换器设计与实现 [J], 洪玉玲
因版权原因,仅展示原文概要,查看原文内容请购买。

maplay移植arm-linux-mini2440-

maplay移植arm-linux-mini2440-

Mini2440下移植媒体播放器MadPlayer宿主机:Linux—RedHat5开发板:mini2440本次移植所需的四个文件分别为:madplay-0.15.2b.tar.gzlibmad-0.15.1b.tar.gzlibid3tag-0.15.1b.tar.gzzlib-1.2.5.tar.bz2编译器:gcc 4.1.2 arm-linux-gcc-4.4.3一、搭建交叉编译器arm-linux-gcc●将软件包arm-linux-gcc-4.4.3.tar.gz放在Linux的/opt/mywork下●直接解压该软件包到当前目录下:tar zxvf arm-linux-gcc-4.4.3.tar.gz解压后要获得其绝对路径:/opt/mywork/opt/FriendlyARM/toolschain/4.4.3/bin 添加该交叉编译器的环境变量到vi /etc/profileunset iunset pathmunge#PATH=$PATH:/opt/host/armv4l/binPATH=$PATH:/opt/mywork/opt/FriendlyARM/toolschain/4.4.3/bin-- INSERT –输入source /etc/profile使它生效●编一个hello.c的文件来测试一下交叉编译器是否能用,得到下面结果:root@bogon mywork]# arm-linux-gcc hello.c -o hello/opt/mywork/opt/FriendlyARM/toolschain/4.4.3/bin/../libexec/gcc/arm-none-linu x-gnueabi/4.4.3/cc1: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /opt/mywork/opt/FriendlyARM/toolschain/4.4.3/lib/libppl_c.so.2) /opt/mywork/opt/FriendlyARM/toolschain/4.4.3/bin/../libexec/gcc/arm-none-linu x-gnueabi/4.4.3/cc1: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /opt/mywork/opt/FriendlyARM/toolschain/4.4.3/lib/libppl.so.7)●这是因为原来的libstdc++.so.6版本低了,用libstdc++.so.6.0.10来代替,作如下操作:⏹[root@bogon mywork]# rm /usr/lib/libstdc++.so.6rm:是否删除符号链接“/usr/lib/libstdc++.so.6”? y[root@bogon mywork]# cp /mnt/hgfs/share/libstdc++.so.6.0.10 /usr/lib[root@bogon mywork]# ln -s /usr/lib/libstdc++.so.6.0.10/usr/lib/libstdc++.so.6看结果来检验是否替换完成[root@bogon mywork]#strings /usr/lib/libstdc++.so.6 |grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH●重新测试交叉编译器是否能用,得到下图结果:查看文件的运行平台file hello结果如下hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.32, dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped这表示该交叉编译器已经正确编译了。

论文摘要+目录

论文摘要+目录

摘要本文设计了一种基于mini2440的多媒体播放器。

设计中采用广州友善之臂科技有限公司提供的mini2440进行控制,由于Linux具有可移植度高、自由、免费等特性,最近几年,它在移动设备和个人电脑领域的应用也越来越广泛,因此我们选择Linux操作系统,而Qt 是一个跨平台的C++ 图形用户界面库,Qt 的良好封装机制使得Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。

Qt 提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。

不仅如此,Qt 对X11 、X86 、ARM 及Symbian 的支持首次为开发人员创造了使用同一代码库同时针对这多个平台进行开发的机会。

能够跨平台分享代码就意味着开发人员所开发的应用程序上市的速度将更快,影响的设备用户群将更广。

本文就以linux系统的移植为核心来描述一个基于qt界面的播放器实现的整个过程。

关键词: linux, Qt, 播放器,mini2440ABSTRACTThis paper introduces a design mini2440 based on the media player. Applied to the design of guangzhou friendly the arms of the science and technology limited company to provide the mini2440 control, because Linux has portable degree is high, free, free features, in recent years, it in mobile devices and the application of the personal computer more and more widely, so we choose Linux operating system, and Qt is a cross-platform c + + graphical user interface library, Qt good packaging mechanism makes Qt modularity is very high, can reuse the gender is good, for it is very convenient user development. Qt provides a called signals of the type to safety/slots alternative callback, this makes the synergy of all components work become very simple. Not only such, Qt X86, ARM of X11, and the support for the first time for Symbian developers created using the same code library also for this platform is the opportunity to develop more than. Can cross-platform code means developers to share the development of the application of speed will be listed faster, the influence of the equipment users will be more widely. This essay, taking the transplantation of Linux system as the core to describe a based on qt playerinterface of the realization of thewhole process.Keywords: Linux, Qt, player, mini2440目录第一章绪论 (1)1.1 选题背景 (1)1.2 嵌入式系统发展状况及发展趋势 (1)1.3 选题意义 (2)1.4 开发环境介绍 (3)第二章课题任务分析 (6)2.1系统方案设计 (6)2.1.1硬件方案设计 (6)2.1.2 软件设计方案 (9)2.2 mplayer实现原理分析 (11)第三章嵌入式平台的搭建 (14)3.1 在windows中配置安装linux虚拟机 (14)3.3 QT交叉编译环境的搭建与移植 (17)3.3.1 在虚拟机上搭建qt交叉编译环境 (17)第四章硬件平台介绍 (26)4.1 mini2440开发板整体外观 (26)4.2 mini2440开发板硬件资源特性 (27)4.3 本设计中所涉及到的硬件接口电路 (28)4.3.1 mini2440音频接口电路 (28)4.3.2 mini2440LCD接口电路 (29)4.4 mini2440开发板Linux 系统特性 (30)第五章软件设计 (32)5.1 软件设计思想 (32)5.2 下载linux内核及文件系统到开发板 (35)5.3 应用程序设计 (37)5.3.1 移植mplayer至mini2440开发板 (37)5.3.2 Qt多媒体播放器界面的设计 (39)结束语 (51)谢辞 (52)附录 (53)在虚拟机中安装Linux系统配置安装图解: (53)参考文献 (71)。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MPlayer移植到mini2440
2010-12-16上午by pinyue
硬件平台:RedHat Linux 5、mini2440(arm9)开发板
软件:arm-Linux-gcc-4.4.3(注意:交叉编译器使用前需注意测试是否可以正常使用,此版本很可能会测试报错(可能是版本较高的问题吧),解决方法是:根据提示修改一个连接,删除/usr/lib下的libstdc++.so.6,下载libstdc++.so.6.0.10到/usr/lib中,在/usr/lib目录下写命令:ln –s libstdc++.so.6.0.10 libstdc++.so.6建立新连接)
一、首先编译安装库文件
1.下载库文件libmad-0.15.1b.tar.gz并解压到/mywork/libmad
2.cd /mywork/libmad/libmad-0.15.1b
3../configure CC=arm-linux-gcc --host=arm-linux --disable-shared
--disable-debugging --prefix=/tmp/libmab/mad
4.make
完成之后会出现错误,找到Makefile并删除“--fforce-mem”就OK了,原因是gcc 4.4.3已经将其去除了,所以会出现上面的错误
5.make install
二、编译安装MPlayer
6.下载MPlayer-1.0rc2.tar.gz解压到/mywork/mplayer中。

7.cd /mywork/mplayer/MPlayer-1.0rc2
8../configure --prefix=/tmp/mplayer --disable-mencoder --enable-linux-devfs
--disable-iconv --enable-network --disable-live --disable-dvdnav --disable-dvdread --disable-dvdread-internal --disable-libdvdcss-internal --enable-ftp --enable-libavcodec_a --enable-libavcodec_mpegaudio_hp --enable-mad --disable-mp3lib --disable-ivtv--enable-fbdev --enable-ossaudio --enable-cross-compile --cc=arm-linux-gcc --host-cc=gcc --target=arm-linux --enable-static --with-extraincdir=/tmp/libmab/mad/include --with-extralibdir=/tmp/libmab/mad/lib 2>&1 |tee logfile
注意:如果不加–disable-ivtv会出现ivtv文件产生的错误。

●MPlayer不支持常见的--host来修改编译工具前缀.必须用--cc,--ar,--ranlib这样参数来修改.
●--disable-mp3lib是关闭默认的MP3解码库,--enable-mad 是使用libmad支持.
●--disable-dvbhead --disable-dvdread --disable-dvdnav --disable-dvdread-internal 都是跟DVD相关库
●--enable-fbdev 打开framebuffer支持.ARM开发板必须的.
●--enable-static 如果使用静态编译尺寸大约是8M,动态编译是6M多,这样可能是无论哪种编译方
式,mplayer都把自带的解码库链接到自身,多出2M应该是系统标准库的尺寸。

●--enable-static 设置静态连接
●--disable-mencoder 禁止编码功能
●--disable-live 禁止live 555流媒体(我也不知道是什么玩意儿。


●--enable-libavcodec_a 启用静态的libavcodec解码
9.在make之前修改两个地方,否则会出现不支持pld [r1]指令的问题
在MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件
和MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S文件的开始处写入
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
然后make
10.make install
会出现一个错误,可以不管它,因为此时mplayer已经出来了,也就是说已经成功了。

11.把mplayer通过tftp软件传到开发板中,在传一个视频文件eg:new.avi
12.输入./mplayer new.avi -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/init.d/rcS文件。

至此MPlayer移植成功……此移植过程参考大量水友的操作步骤,在此深表感谢!!!。

相关文档
最新文档