Mplayer 在Linux - S3C6410 下的编译

发布者:快乐旅途最新更新时间:2024-09-18 来源: cnblogs关键字:Mplayer  Linux  S3C6410  编译 手机看文章 扫描二维码
随时随地手机看文章

mplayer交叉编译过程:

GCC版本:Sourcery G++ 4.2.1
目标机:S3C6410 ARM内核为arm1176jzf-s(GCC有-mcpu=arm1176jzf-s)
主机:Ubuntu 8.04

提示:mplayer有自动configure,无需手动写Make~注意区分GCC的参数和configure的参数。

参考文章:
ARM MPlayer移植过程 http://www.usr.cc/html/54/n-654.html
mplayer在arm 2410上的移植 http://www.hzlitai.com.cn/article/ARM9-article/example/1483.html

  1. ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc--target=arm-armv6-linux --enable-armv6 --enable-armvfp --enable-static--prefix=/home/mplayer  --disable-dvdread --enable-fbdev--disable-mencoder --disable-live 2>&1 | tee logfile


  1. mpcommon.c: In function 'update_subtitles':

  2. mpcommon.c:129: warning: dereferencing type-punned pointer will break strict-aliasing rules

  3. {standard input}: Assembler messages:

  4. {standard input}:482: Error: selected processor does not support `rev16 r3,r3'

  5. make: *** [mpcommon.o] 错误 1


  1. ./configure --host-cc=gcc--cc=arm-none-linux-gnueabi-gcc  --enable-armv6 --enable-armvfp--enable-static --prefix=/home/mplayer  --disable-dvdread--enable-fbdev --disable-mencoder --disable-live 2>&1 | teelogfile


  1. vidix/vidix.c: In function 'vdlConfigPlayback':

  2. ./libavutil/x86/bswap.h:44: error: invalid 'asm': invalid operand for code 'w'

  3. ./libavutil/x86/bswap.h:44: error: invalid 'asm': invalid operand for code 'w'

  4. {standard input}: Assembler messages:

  5. {standard input}:40: Error: bad instruction `rorw $8,'

  6. {standard input}:41: Error: bad instruction `rorl $16,ip'

  7. {standard input}:42: Error: bad instruction `rorw $8,'

  8. make: *** [vidix/vidix.o] 错误 1


  1. ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc--target=arm-linux --enable-armv6 --enable-armvfp --enable-static--prefix=/home/mplayer  --disable-dvdread --enable-fbdev--disable-mencoder --disable-live 2>&1 | tee logfile


  1. mpcommon.c: In function 'update_subtitles':

  2. mpcommon.c:129: warning: dereferencing type-punned pointer will break strict-aliasing rules

  3. {standard input}: Assembler messages:

  4. {standard input}:482: Error: selected processor does not support `rev16 r3,r3'

  5. make: *** [mpcommon.o] 错误 1


  1. ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc--enable-armv6 --enable-static --prefix=/home/mplayer --disable-dvdread--enable-fbdev --disable-mencoder --disable-live

成功

其实,configure脚本是为了根据配置参数和系统环境自动生成config.mak,而config.mak又是包含在Makefile当中的。在config.mak中,发现./configure用到的参数都原封不动地搬进去了。

通过阅读gcc -help 和 gcc --platform-help 找到的-mcpu=arm1176jzf-s 这个参数希望用上。

  1. ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc-mcpu=arm1176jzf-s --enable-armv6 --enable-armvfp --enable-static--prefix=/home/mplayer --disable-dvdread --enable-fbdev--disable-mencoder --disable-live 2>&1 | tee logfile


系统提示说不认识-mcpu=arm1176jzf-s这个参数。的确configure脚本中没有对应解析这个参数的能力。
但是gcc应该是认识的。于是,首先使用

  1. ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc--enable-armv6 --enable-armvfp --enable-static --prefix=/home/mplayer--disable-dvdread --enable-fbdev --disable-mencoder --disable-live


再在config.mak中手动修改加入-mcpu=arm1176jzf-s,然后make。

应该说这次编译应该是比较顺利的,关键是采用了与源代码版本相适应的编译工具环境,才能相对顺利。


关键字:Mplayer  Linux  S3C6410  编译 引用地址:Mplayer 在Linux - S3C6410 下的编译

上一篇:S3C6410移植日记系列
下一篇:搭建测试环境——针对S3C6410开发板

推荐阅读最新更新时间:2026-03-25 14:29

s3c2410移植MPlayerlinux2.6
我使用的linux内核为2.6.14.1 MPlayer版本为MPlayer-1.0pre7try2.bz2 目前虽然已经添加了mad的mp3库,但播放声音文件回导致mplayer错误,放视频还得禁掉声音,怪了,madplay放mp3就很好 下面介绍下整个移植过程,也是参考了网上很多文章综合而来的 ================================================================= 1)编译器最好选择3.3.2 ,我使用3.4.1会出现snow.c编译错误,找不到解决办法 解压3.3.2到/usr/local/arm/下 并export PATH=http://www.eda-chin
[单片机]
S3C6410移植u-boot-2010.3(1)成功编译的开始
  参考连接:http://wenku.baidu.com/view/ae78a00390c69ec3d5bb75ce.html?st=1   链接上已经指明了我之前一直2013.01版本uboot产生错误的原因,2010.3版本到2010.6版本是uboot的一个分界,而2010.3版本的uboot是最接近samsung定制的s3c-u-boot-1.1.6版本uboot的一个版本号,所以在此选择版本2010.3   1、download the uboot from ftp http://ftp.denx.de/pub/u-boot/ download u-boot-2010.03.tar.bz2   2、为
[单片机]
Linux 下使用s3c6410的post处理器的进行硬件缩放
在嵌入式下,在移植软件时经常会碰到这样的问题,就是显示分辩率的变化.一般软件往往针对桌面机的环境编译没有太多问题,但是在嵌入式环境下,受限的LCD显示有着很大的问题. 这种情况下,一种方法是修改代码,让其在嵌入式的LCD上显示.另外一种是使用软件进行显示缩放. 这两个方法只在部分条件有效,而且修改的工作量极大,更多情况是无法修改,比如SDL下的Dosbox是针对 640*480,修改源码的分辩率成 480*272 后,基本屏幕显示完全错位.软件无法正常运行. 这里有一种思路是使用s3c6410的post process.它是一个硬件进行图像和视频缩放的的模块.用POST后,只需要简单调整frame buffer显示库代码,即可
[单片机]
linux内核中S3C6410 timer相关代码理解
本文描述基于mini6410平台的time.c中的相关代码,主要描述下对部分代码的理解。 先贴上代码: 1 /* we use the shifted arithmetic to work out the ratio of timer ticks 2 * to usecs, as often the peripheral clock is not a nice even multiple 3 * of 1MHz. 4 * 5 * shift of 14 and 15 are too low for the 12MHz, 16 seems to be ok 6 * for the current HZ value
[单片机]
Linux 3.3.0移植到S3C6410开发板上之一
这里仅仅是移植成功内核,可以挂载文件系统运行,至于驱动会陆续添加。 第一步:到内核官网上下载最新的内核,我下载的是linux-3.3-rc3.tar.bz2。 第二步:解压内核,进入arch/arm/mach-s3c64xx目录下,看到不少6410的板级文件,我们这里选择mini6410开开展工作,在目录下将mach-mini6410.c文件复制一份,命名为:mach-jfj6410.c。这里我们将文件里面关于mini6410的字样都修改为jfj6410.但是这里要注意,MACHINE_START(JFJ6410, JFJ6410 )这里的JFJ6410要使用大写,稍候说明为什么。大家都知道在一个目录下添加了文件后,都应该
[单片机]
S3C6410嵌入式应用平台构建(六)——linux-3.14.4移植到OK6410-(Yaffs2文件系统移植)
我个人觉得nandflash上用yaffs2文件系统是很好的方案,但是最新的Linux并不支持yaffs2文件系统,需要你自己给内核打补丁,不过话说在前面,由于内核间差异及兼容问题,在编译时肯定会出现各种编译问题,需要你一一的去解决。 一、准备工作 1. 下载源码 使用git工具下载:$ git clone git://www.aleph1.co.uk/yaffs2 2. 给内核打补丁 下载完成后,在该执行目录下会有yaffs2文件夹,进入该文件夹。 $ ./patch-ker.sh c m ../../kernel/test/linux-3.14.4 Updating ../../kernel/te
[单片机]
<font color='red'>S3C6410</font>嵌入式应用平台构建(六)——<font color='red'>linux</font>-3.14.4移植到OK6410-(Yaffs2文件系统移植)
基于S3C6410处理器和Linux的家居监控运动目标检测系统
选用ARM11(S3C6410)处理器作为硬件平台,嵌入式Linux操作系统作为软件平台,综合运动图像检测的背景差分法和帧间差分法为算法,并与GSM模块相结合,设计并实现了一种应用于家居环境或私人办公室无人值守的运动目标检测系统。提出了系统设计的总体方案,并详细介绍了系统软硬件平台的设计流程,最后对系统进行了测试。 随着社会的发展和科技的进步,人们的安防意识越来越强,而计算机网络技术,通信技术,和数字视频编码技术的日益成熟,使基于计算机的多媒体视频监控系统成为可能。但是传统的视频监控系统因十分复杂,功耗和成本较高且需要值守,而无法应用于诸如家居或私人办公室等场所,为此,本文设计了一种以ARM11为核心处理器,嵌入式Linux为
[单片机]
基于<font color='red'>S3C6410</font>处理器和<font color='red'>Linux</font>的家居监控运动目标检测系统
linux中LCD设备驱动(5)——基于s3c6410平台
在前几篇中对LCD平台设备所对应的probe函数进行分析时,对一些函数没有进行详细的分析,因为当时主要是为了突出probe函数的整体结构,现在我们对一些函数进行再次详细点的分析。 (1)、 void s3cfb_pre_init(void) { /* initialize the fimd specific */ s3cfb_fimd.vidintcon0 &= ~S3C_VIDINTCON0_FRAMESEL0_MASK; s3cfb_fimd.vidintcon0 |= S3C_VIDINTCON0_FRAMESEL0_VSYNC; s3cfb_fimd.vidintcon0 |= S3C_VIDINTCON0_INT
[单片机]
<font color='red'>linux</font>中LCD设备驱动(5)——基于<font color='red'>s3c6410</font>平台
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved