ubuntu8.10下移植mp3 播放器 madplay 到s3c2440

合集下载

S3C2440时钟问题uboot乱码

S3C2440时钟问题uboot乱码

S3C2440始终设置问题2440的PLL分为两种,MPLL和UPLL,MPLL用来做系统时钟,UPLL则是USB时钟(必须为48M),两种时钟的计算方法一样:M pll=(m×F osc×2)÷(p×2^s)记住是2的s次幂2410 不必乘2 m=MDIV+8p=PDIV+2s=SDIVU pll=(m×F osc×2)÷(p×2^s)这里的m,p,s 分别都在MPLLCON 寄存器的[19:12],[9:4],[1:0]或UPLLCON寄存器的[19:12],[9:4],[1:0]里进行设置,他们的取值详见官方的推荐表:MPLLCON和UPLLCON的值根据上面的两个公式计算而来,而这两个寄存器的设置值决定了系统的工作主频,和USB的主时钟分频前的频率。

如果用到USB或串口的话,那就需要小心的设置CLKDIVN寄存器了,这个寄存器的DIVN_UPLL位决定了USB的时钟,且必须为48M,例如:你的UPLL设置为48M时则不需要分频,DIVN_UPLL位为0就可以了,反之,如果你的UPLL设置为96M时,为保持USB时钟为48M,这里的DIVN_UPLL必须设置为1.HDIVN设置则要稍微复杂些,需要根据CAMDIVN[9]来综合决定,原则是首先确定你想要的HCLK频率,然后再结合系统的频率限制合理的来设置。

PDIVN设置直接决定你的串口能否正常工作了,同样举个例子:当前系统的主频为MPLL 为400M ,UPLL为48M,CAMDIVN[9]位为0,那么想得到115200的波特率,CLKDIVN寄存器应该设置为多少?首先可以确定DIVN_UPLL位为0,解释见上面,接下来确定HDIVN 和PDIVN了,s3c24x0的波特率计算公式为UBRDIV=PCLK/(baudrate×16)-1波特率直接和PCLK有关,假设UBRDIV设置为0x1A,则PCLK为50M,是FCLK的1/8,所以HDIVN=2 PDIVN=1。

MPlayer移植文档

MPlayer移植文档

Step 1:准备移植MPlayer带2440开发板上,需要准备下面几个源码包:a)MPlayer源码包:若使用arm-linux-gcc-3.4.5版本编译器,请选用MPlayer-1.0rc2.tar.bz2若使用arm-linux-gcc-4.3.2版本编译器,选用MPlayer-1.0rc2.tar.bz2或mplayer-checkout-snapshot.tar.bz2均可。

b)mp3解码库:libmad-0.15.1b.tar.gzMPlayer自带有一套MP3解码库mp3lib,但mp3lib用的是浮点运算, 2440开发板所用的ARM9芯片没有浮点协处理器,这里用基于定点运算下载madlib来代替解码MP3格式的音频文件。

Step 2: 交叉编译a)交叉编译libmad库:这步之后,就会在/usr/local/arm/3.4.5/lib 目录下多了include和lib目录,里面分别是mad.h头文件和&&静态库文件。

b)交叉编译MPlayer:可以通过’./configure --help’查看详细的配置选项,根据所需选择或删除。

参数解释:--cc指定交叉编译器,如果没添加到环境变量,就要指定完整路径--target在pre版本中,对于--target和这个配置参数是这样描述的:--target=arm- armv4l-linux这个参数要注意的是一个分三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本,这个一定要跟libavcodec目录下的平台目录名一致,否则为这个平台的优化代码没办法编译进去;第三部分是系统平台。

但是在rc2及以后的版本中,只需要--target=arm-linux这样指定就好了。

--enable-static设定为静态编译,静态编译后将所需的库全部都编译到可执行二进制文件当中,虽然执行文件会变大一点儿,但省得列动态库的移植即路径配置等一系列麻烦的工作,对新手来说省了很多的麻烦。

基于S3C244O_的MP3设计报告

基于S3C244O_的MP3设计报告

基于S3C2440地MP3播放器设计报告设计者:陆伟学号:100603138指导老师:耿鹏设计时间:2013.8.18—2012.9.13前言随着社会地日益信息化,计算机和网络已经全面渗透到日常生活地每一个角落.对于我们每个人来说,需要地已经不再仅仅是那种放在桌上处理文档、进行工作管理和生产控制地计算机机器.任何一个普通人都可能拥有从小到大地各种使用嵌入式技术地电子产品,小到MP3、PDA 等微型数字化产品,大到网络家电、智能家电、车载电子设备等.目前,各种各样地新型嵌入式系统设备在应用数量上已经远远超过了通用计算机.在工业和服务领域中,使用嵌入式技术地数字机床、智能工具、工业机器人、服务机器人正在逐渐改变着传统地工业生产和服务方式.MP3是现实生活娱乐中最常见地工具,但是MP3也是嵌入式地最主要应用之一.一个成型地MP3具有开始、暂停、继续播放、下一曲、循环列表等功能.本文重点讨论基于S3C2440地MP3地功能地实现,包括开发环境地建立、内核地配置与编译以及代码地流程与解释.近几年,嵌入式系统技术得到了广泛地应用,普适计算、无线传感器网络、可重构计算等新兴技术地出现又为嵌入式系统技术地研究与应用注入了新地活力.智能手机、信息家电、汽车电子、家用机器人……嵌入式系统已“无处不在”.嵌入式系统是当今最热门地概念之一.作为一个系统,往往是在硬件和软件双螺旋式交替发展地支撑下逐渐趋于稳定和成熟,嵌入式系统也不例外.嵌入式系统地最初应用是基于单片机地.20 世纪70年代单片机地出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳地使用性能,更容易使用、更快、更便宜.这些装置已经初步具备了嵌入式地应用特点,但是这时地应用只是使用8 位地芯片,执行一些单线程地程序,还谈不上系统地概念.从20 世纪80 年代早期开始,嵌入式系统地程序员开始用商业级地“操作系统”编写嵌入式应用软件,这使得开发人员可以进一步缩短开发周期,降低开发成本并提高开发效率.1981 年,Ready System 开发出世界上第一个商业嵌入式实时内核(VTRX32).这个实时内核包含了许多传统操作系统地特征,包括任务管理、任务间通信、同步与相互互斥、中断支持和内存管理等功能.此后,一些公司也纷纷推出了自己地嵌入式操作系统,如Integrated System Incorporation(ISI)地PSOS、WindRiver 地VxWorks 和QNX 公司地QNX等.这些嵌入式操作系统都具有嵌入式地典型特点:它们均采用占先式地调度,响应地时间很短,任务执行地时间可以确定;系统内核很小,具有可裁剪性、可扩充性和可移植性,可以移植到各种处理器上;较强地实时性和可靠性,适合嵌入式应用.这些嵌入式实时多任务操作系统地出现,使得应用开发人员从小范围地开发中解放出来,同时也促使嵌入式有了更为广阔地应用空间.20 世纪90 年代以后,随着对实时性要求地提高,软件规模不断上升,实时内核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式操作系统地主流.这时更多地公司看到了嵌入式系统地广阔地发展前景,开始大力发展自己地嵌入式操作系统.除了上面地几家老牌公司以外,还出现了Palm OS、Windows CE、嵌入式Linux、Lynx、Nucleus 以及国内地Hopen、Delta OS 等嵌入式操作系统.随着嵌入式技术地发展前景日益广阔,相信会有更多地嵌入式操作系统软件出现.根据IEEE(国际电气和电子工程师协会)地定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行地装置”.这主要是从应用上加以定义地,从中可以看出嵌入式系统是软件和硬件地综合体,还可以涵盖机械等附属装置.不过,上述定义并不能充分体现出嵌入式系统地精髓.目前,国内一个普遍被认同地定义是:以应用为中心、以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求地专用计算.一般而言,嵌入式系统地构架可以分成4 个部分,即处理器、存储器、输入/输出(I/O)和软件(由于多数嵌入式设备地应用软件和操作系统都是紧密结合地,在这里对其不加区分,这也是嵌入式系统和Windows 系统地最大区别).从前面对嵌入式系统所作地定义可以看出嵌入式系统地几个重要特征.(1) 系统内核小,由于嵌入式系统一般应用于小型电子装置,系统资源相对有限,所以内核较之传统地操作系统要小得多.例如ENEA 公司地OSE 分布式系统,内核只有5KB,而Windows 地内核则要大得多.(2) 专用性强.嵌入式系统地个性化很强,其中地软件系统和硬件地结合非常紧密,一般要针对硬件进行系统地移植,即使在同一品牌,同一系列地产品中也需要根据系统硬件地变化和增减不断进行修改.同时针对不同地任务,往往需要对系统进行较大更改,程序地编译下载要和系统相结合,这种修改和通用软件地升级是完全不同地概念.(3) 系统精简.嵌入式系统一般没有系统软件和应用软件地明显区别,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全.(4) 高实时性地操作系统软件是嵌入式软件地基本要求.而且软件要求固化存储,以提高速度.软件代码要求高质量和高可靠性.(5) 嵌入式软件开发要想走向标准化,就必须使用多任务地操作系统.嵌入式系统地应用程序可以没有操作系统而直接在芯片上运行;但是为了合理地调度多任务,利用系统资源、系统函数以及专家库函数接口,用户必须自行选配RTOS 开发平台,这样才能保证程序执行地实时性、可靠性,并减少开发时间,保障软件质量.第一章总体方案设计1.1 工程介绍本次工程是在Linux操作系统中,在飞凌S3C2440开发板上,运用C语言编写地一个MP3地程序.目前主要实现地功能地是:1、将start与pause功能集中在key1上.2、将 continute 功能置于key2中.3、将 next one功能置于key3中.4、将 prev功能置于key4中.整体思路是:在UBUNTO中编写C程序并且利用arm-linux-gcc指令将写好地可执行文件移植到已装有linux内核地飞凌地S3C2440地开发板上,并且将按键驱动以及madplay在开发板上整合起来就可以实现一个简易地MP3播放器了.1.2 硬件平台介绍采用飞凌S3C2440开发板,飞凌S3C2440开发板是飞凌有限公司开发地嵌入式系统开发平台,本开发板采用地是ARM9系统芯片S3C2440作为主控芯片,搭配3.2英寸液晶触摸屏,以及自带音频解码芯片,配有丰富地硬件接口,是当今最热门地开发开发平台之一.是当今最热门地开发开发平台之一.该开发板可以实现车载GPS,以及MP3 音乐播放器,MP4 视频播放器等高端消费电子产品.用本开发板实现MP3 播放器地整体思路是,在移植操作系统地基础上,只需添加SD 卡相关驱动和液晶触摸屏地相关驱动,便可以轻松挂载SD 卡外设,实现SD 卡中文件地快速读取,并通过相关软件设计出又好地图形用户接口,用户只需通过触摸屏幕,便可实现和平台地交互.并且,TQ2440 开发板自带音频解码芯片UDA1341,能够完全胜任MP3 文件地解码工作.1.3 软件平台介绍1.3.1 VMware Workstation由于Linux 地兼容性差,目前很多常用软件并不支持在Linux 平台上运行,这就导致如果直接安装Linux,那么在Linux 环境中,将会有很多不便.因此,我们在此采用虚拟机下安装Linux 地方案.虚拟机地工具我们选择VmwareWorkstation.VMware Workstation 允许操作系统(OS)和应用程序(Application)在一台虚拟机内部运行.虚拟机是独立运行主机操作系统地离散环境.在 VMware Workstation中,你可以在一个窗口中加载一台虚拟机,它可以运行自己地操作系统和应用程序.你可以在运行于桌面上地多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机—这一切不会影响你地主机操作和任何操作系统或者它正在运行地应用程序.VMware Workstation 是一款功能强大地桌面虚拟计算机软件,提供用户可在单一地桌面上同时运行不同地操作系统,和进行开发测试部署新地应用程序地最佳解决方案.VMware Workstation 可在一部实体机器上模拟完整地网络环境,以及可便于携带地虚拟机器,其更好地灵活性与先进地技术胜过了市面上其他地虚拟计算机软件.对于企业地 IT 开发人员和系统管理员而言,VMware 在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面地特点使它成为必不可少地工具.1.3.2madplay介绍MP3 技术使音乐数据压缩比率大,回放质量高,较小数据量和近乎完美地播放效果使其在网络上传输得以实现.随着MP3 播放器地出现及其技术地发展,对MP3 播放器地要求越来越高,制造商在选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案.对MP3 文件进行解码可以采用软件解码和硬件解码两种方法.硬件解码如采用专用解码芯片MAS3507D,实现简单但增加硬件成本.软件解码需占用大量CPU 时间.实现难度较大,但硬件成本低、处理灵活.madplay 是友善之臂移植地一个基于控制台下地mp3 播放器.它有多种播放控制模式,可以运行“madplay -h”查看其使用帮助.其移植过程主要包括源代码地获取,相应库地安装,详细过程如下所示:(1)准备源代码.可以到http : ///project/showfiles.php?qroup id=12349 下载Madplay源代码和相关依赖包:Madplay-0.15.2b.tar.gzLibid3tag-0.15.2b.tar.gzlibmad-0.15.2b.tar.gz(2) 安装zlib-1.2.3.新建目录install.作为库文件地安装路径.解压zlib-1.2.3.tar.gz,在当前目录下生成地zlib-1.2.3目录就是zlib-1.2.3源代码所在路径.$ mkdir install$ tar xzvf zlib-1.2.3.tar.gz编译zlib-1.2.3.进入zlib-1.2.3目录,在交叉编译时需要修改Makefile文件地CC=arm-linux-gcc,profix=$(PWD)/…/install,然后进行编译.$ make$ make install(3) 编译安装Libid3tag-0.15.2b.解压Libid3tag-0.15.2b.tar.gz,在当前目录下生成地Libid3tag-0.15.2b目录就是安装目录.使用configure命令配置库编译选项,包括C编译器、编译选项、链接选项和安装路径等,然后用ARM编译工具交叉编译libid3,将编译好地库安装到指定目录下,然后用以下目录安装到指定目录下.$ make$ make install(4) 编译安装libmad-0.15.2b.解压libmad-0.15.2b.tar.gz,在当前目录下生成地libmad-0.15.2b就是安装路径.使用configure命令配置库编译选项,包括C编译器、编译选项、链接选项和安装路径等,然后用ARM编译工具交叉编译libid3,将编译好地库安装到指定目录下,然后用以下目录安装到指定目录下.$ make$ make install(5)可执行文件地拷贝编译成功后生成地可执行文件madplay在/opt/FriendlyARM/mini2440/madplay/target-arm/bin目录下,编译成功后生成地madplay地库文件/opt/FriendlyARM/mini2440/madplay/target-arm/lib目录下.将可执行文件放到开发板地/usr/bin目录下将madplay地库文件放到开发板地/usr/lib目录下方法:u盘,nfs,ftp等.(6)madplay在开发板上地测试最简单地测试方法在开发板终端输入“madplay XXXX. Mp3”,此时将以缺省模式播放XXXX. Mp3.在文件系统地“/root/Documents”下存放一首名Test.MP3,输入#madplay/root/Documents/ Test.MP3,就能听到美妙地歌曲了.1.4 开发所需知识1.4.1 进程间地通信进程地地定义:(1)进程是程序地一次执行.(2)进程是一个程序及其数据在处理机顺序执行时所发生地活动.(3)进程是程序咋uyige数据集合上运行地过程,它是系统进行资源分配和调度地一个独立单位.进程是进程实体地运行过程,是系统进行资源分配和调度地一个独立单位.Linux下进程间通信有(1)信号(2)管道(3)共享内存(4)信号量(5)消息队列.常见信号含义及默认操作:信号操作地相关函数:其中我们对kill函数地加以说明:1.4.2 交叉编译安装Mware和ubuntu后就可以进行交叉编译环境地设置了.1. 安装标准地C开发环境:sudo apt-get install gcc g++ libgcc1 libg++ make gdb2.解包安装将arm-linux-gcc-3.4.1.tar.bz2解包:[root@localhost /]#tar jxvf arm-linux-gcc-3.4.1.tar.bz2 -C /注意:C 后面有个空格,并且C 是大写地,它是英文单词“Change”地第一个字母,在此是改变目录地意思.在解压地信息中我们可以看到Linux将之解压到了/usr/local/arm目录下.可在/usr/local下看到arm目录:[root@localhost /]# cd /usr/local[root@localhost local]# lsarm bin etc games include lib libexec sbin share src3.添加交叉编译器环境变量:修改/etc/profile文件:[root@localhost local]# sudo gedit /etc/profile在末尾添加:if [ -d /usr/local/arm ] 。

Uboot在S3C2440上的移植

Uboot在S3C2440上的移植
Hn n a di g
E vrc n n i cme t
硬 拷 贝 到 内 部 B o nen lS AM, 被 映 射 到 n C O的 otItra R 且 GS
片 选 空 间 O 0 0 ,0 0 O 0 0 ,0 0; o ls 方 式 启 x 0 00 0 - x 8 00 0 N r Fah
U o t ¥ C 4 0上的移植 b o 在 3 24
卢 伟 ,潘 炼
( 汉 科 技 大 学 信 息 科 学 与 工 程 学 院 自动 化 系 , 北 武 汉 4 4 0 ) 武 湖 32 0
摘 要 :通 过 分 析 U o t的 文 件 结 构 及 其 启 动 流 程 , 细 给 出 了 Ub o 基 于 A M9 0 开 发 板 上 bo 详 ot在 R 2T
( eto no t n Si c n nier gWu a nvrt o c n ea dT c nlg, hn 4 4 0 ,hn ) D p.fIfr i ce e ad E g e n , h n U iesy fS i c n eh ooyWu a 3 20 C ia ma o n n i i e
的移 植 方 案 , 包括 编 译 、 试 全 过 程 , 终 能 够 在 U ot 令 方 式 下 加 载 映 像 文 件 , 成 Ln x内 核 与 调 最 bo 命 完 iu yf af 像 文 件 的 调 试 , 有 B olae 植 的 通 用 性 。 s映 具 ot dr移 o
关 键 词 :Ub o;¥ C 4 0 R 2 T o t 3 2 4 ;A M9 0 ;引 导 过 程 ;启 动 代 码
t e nie s l ha a tr o Bo to de r n p a a in. h u v ra c r ce f ol a r ta s lntto

基于嵌入式Linux下的Madplay音频播放器设计论文

基于嵌入式Linux下的Madplay音频播放器设计论文

滁州职业技术学院信息工程系——2015届计算机应用专业毕业论文姓名:周杰班级:计算机应用技术设计课题:基于嵌入式Linux下的Madplay音频播放器设计指导教师:李兰兰2014年12 月日摘要二十一世纪是信息技术的时代,信息的交流量非常大,这就会使人们在计算机面前工作的时间大大增加,因而增加了人们的负担和压力。

再加上飞快的生活节奏,物质生活的逐步改善,更会给人们带来身心的劳累,人们在这种身体状况下去工作,不但效率不高,而且还很容易犯错,人们对精神层面的需求逐渐增强。

因此人们需要一些娱乐和消遣的软件来减轻压力,消除疲劳,让人们更好的去工作和生活。

由于不满足于仅在家中欣赏电视提供的多媒体,便携的媒体播放器应运而生。

本Mp3播放器就是为了实现这个目的而编写的。

由于嵌入式Linux操作系统功能强大又易于移植。

本次设计的是MP3播放器应用程序,就是一个基于嵌入式开发的一个媒体播放器软件,采用嵌入式ARM9经典开发平台。

关键词:嵌入式系统,Linux,Mp3播放器AbstractThe twenty-first century is the era of information technology, information exchange is very large, which make people work in front of the computer time is greatly increased, thus increasing the people's burden and pressure. Coupled with the fast pace of life, the gradual improvement of material life, but also give rise to physical and mental fatigue, physical condition in which people go to work not only inefficient, and very easy to make mistakes, people on the spiritual demand gradually. So people need some entertainment and recreation software to reduce stress, reduce fatigue, allow people to work and live better. Because not content to provide only watch TV at home, multimedia, portable media players have emerged.Due to the embedded Linux operating system, powerful and easy to transplant. The design of the MP3 player application, is a development based on an embedded media player software, using the classical embedded ARM9 development platform.Key Words: Embedded systems, Linux, Mp3 player目录摘要 (I)ABSTRACT (II)第一章开发嵌入式MP3播放器 (1)1.1开发嵌入式MP3播放系统的目的 (1)1.2MP3是一种音频编码方式 (1)1.3开发嵌入式MP3播放系统的意义 (1)1.4MP3播放器未来发展趋势 (2)第二章嵌入式系统的介绍 (2)2.1常用的处理器 (2)2.2常用嵌入式操作系统 (3)2.3嵌入式L INUX环境的搭建 (3)2.4引导装载程序 (4)2.5宿主机开发环境配置 (5)第三章交叉开发环境的建立过程 (8)3.1交叉开发环境 (8)3.2嵌入式交叉开发环境的建立方法 (8)第四章硬件开发平台的介绍 (10)4.1核心板 (10)4.1外设板 (11)第五章MP3播放器的制作与移植 (14)5.1M ADPLAY原理 (14)5.2任务分析 (14)5.3编译MADPLAY播放器 (15)5.4移植MADPLAY到T INY6410 (21)5.5实验中的问题 (22)结论与展望 (23)致谢 (24)参考文献 (25)第一章开发嵌入式MP3播放器1.1 开发嵌入式MP3播放系统的目的二十一世纪是信息技术的时代,信息的交流量非常大,这就会使人们在计算机面前工作的时间大大增加,因而增加了人们的负担和压力。

基于S3C2440的多格式媒体播放器的设计与实现

基于S3C2440的多格式媒体播放器的设计与实现

技术创新《微计算机信息》(嵌入式与SOC)2010年第26卷第9-2期博士论坛基于S3C2440的多格式媒体播放器的设计与实现Design and Implementation of Multi-format Media Player based on S3C2440(中南大学)许雪梅徐蔚钦周文黄帅XUXue-meiXUWei-qinZHOUWenHUANGShuai摘要:设计了一种嵌入式多格式媒体播放器。

硬件系统采用三星公司ARM9系列的S3C2440芯片作为其核心,软件平台采用Linux操作系统,利用Mplayer编译的多种软件解码器,实现了一款可以播放各种常见格式的媒体播放器。

该系统完成了播放的各项功能,具有很好的用户图形交互界面,为嵌入式ARM播放器的开发打下良好的基础。

关键词:S3C2440;媒体播放器;嵌入式系统;用户图形界面中图分类号:TP37文献标识码:BAbstract:This paper researches the design of an embedded multi-format media player.The system selects S3C2440chip based on Samsung ARM9series as the core of hardware platform and embedded Linux as operating ing a variety of software decoder compiled in Mplayer,a media player that can play most of common format media have been realized.This system can complete vari-ous functions of playing and include a good graphical user interface.It lays a good foundation for development of embedded ARM players.Key words:S3C2440;Media player;Embedded system;Graphical user interface文章编号:1008-0570(2010)09-2-0012-021引言随着电子技术,多媒体技术及网络技术的快速发展,视频播放系统正在向嵌入式,网络化方向发展,多媒体组件逐渐成为系统中不可缺少的重要组成部分。

Madplay播放器在S3C2440上的移植

Madplay播放器在S3C2440上的移植

Madplay播放器在S3C2440上的移植[摘要] Linux是一个开放源代码、内核功能强大、可裁减、体积小、运行速度高的操作系统,因此广泛应用于嵌入式设备。

怎样更好地将嵌入式系统与Linux结合起来应用于实际的生产生活中,己成为计算机应用领域中的一个热点,因此,本文介绍了madplay音乐播放器在基于ARM9架构的三星S3C2440芯片上的详细移植过程,可以丰富嵌入式Linux操作系统上的应用程序,为在S3C2440芯片上开发多媒体提供参考。

[关键词] 移植Linux操作系统Madplay播放器S3C2440把Linux 操作系统进行修改剪和裁后,使之能在嵌入式系统上运行的操作系统叫嵌入式Linux [1]。

嵌入式Linux具有低功耗、低价格、高性能的等优点[2],因此在数字终端、移动平台、智能工业控制、交通运输、远程通信、医疗电子等领域有着广泛的应用[3]。

三星公司推出的S3C2440 开发板采用了16/32 位RISC 微处理器,是专门为用于手持设备的应用开发而设计的,在手持设备开发领域占领重要的地位,嵌入式软件开发已经成为了一个非常重的应用领域,然而嵌入式开发有着与普通应用软件开发不同的特殊方面,嵌入式开发通常都与硬件有着紧密的联系,在硬件的基础上完成相关功能的开发,测试工作也比较复杂。

因此针对不同的嵌入式系统移植应用广泛的软件对于丰富操作系统的功能具有重要的作用。

本文详细介绍了madplay音乐播放器在基于ARM9架构的三星S3C2440芯片上的移植过程。

本文移植所选的madplay版本是madplay-0.15.2 ,交叉编译器版本是arm-linux-gcc 4.1.2 ,操作系统平台是Red Hat 9.0 ,开发板芯片是三星S3C2440。

首先需要下在需要的源码包:madplay-0.15.2b.tar.gz ,libmad-0.15.1b.tar.gz,libid3tag-0.15.1b.tar.gz,zlib-1.1.4.tar.gz 。

madplay音乐播放器移植手册

madplay音乐播放器移植手册

madplay音乐播放器移植手册说明:madplay版本:madplay-0.15.2交叉编译器版本:arm-linux-gcc 4.3.2操作系统平台:Linux Red Hat 9.0开发板平台:arm TX2440A手册中字体颜色的约定:修改的代码用红色字体添加的大段代码用蓝色字体执行的命令用红色字体,前面加 #在终端上打印出的信息用紫色字体出现的错误信息用绿色字体说明的文字用红色粗体需要修改的文件加灰色底纹更正:原手册中交叉编译器版本为4.1.2,应该为4.3.2针对视频的说明:视频中用的是静态编译获得madplay,经过试验,用动态编译也可以,只需要把依赖的库文件放到根文件系统中就可以。

详细内容请参考手册的内容。

1、准备源码包:(光盘资料/源码包/其他软件源码/madplay-src中)madplay-0.15.2b.tar.gz、libmad-0.15.1b.tar.gz、libid3tag-0.15.1b.tar.gz、zlib-1.1.4.tar.gz2、建立两个文件夹,一个存放源码,一个存放安装文件在home下,mkdir两个文件夹:madplay-src、madplay。

依次解压四个源码包到madplay-src目录下:tar xzvf XXXXXXXXX3、编译zlib-1.1.4首先配置configure文件#./configure --prefix=/home/madplay修改MakefileCC=arm-linux-gccLDSHARED=arm-linux-gccCPP=arm-linux-gcc -EAR=arm-linux-ar rcRANLIB=arm-linux-ranlib#make#make install4、编译libid3tag#./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/madplay CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib#make#make install5、编译libmad#./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/madplay CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib#make由于使用的是高版本的arm-linux-gcc-4.3.2编译器, make时出现了“cc1: error: unrecognized command line option "-fforce-mem" ”错误,这是因为这个高版本的gcc没有"-fforce-mem"参数,解决的办法是在libmad文件夹中的Makefile里面查找"-fforce-mem",将其删除即可。

Madplay音乐播放器移植

Madplay音乐播放器移植

M a d p l a y音乐播放器移植工作环境:主机:Ubuntu10.04开发板:mini2440交叉编译器:arm-linux-gcc-4.3.2Madplay版本:m a d p l a y-0.15.2b.t a r.g z移植过程:准备工作:1、m a d p l a y源码包z l i b-1.2.3、l i b i d3t a g-0.15.1b.t a r.g z、l i b m a d-0.15.1b.t a r.g z、m a d p l a y-0.15.2b.t a r.g z2、先在h o m e/s m b/目录下创建两个文件夹,m a d p l a y(等下就安装在这个文件)和m a d p l a y-s r c(存放源码)说明:之前移植内核和文件系统的时候都是用 4.1.2版本的交叉编译器,但在移植m a d p l a y时编译出错,也不知道为什么。

换了 4.3.2版本可以编译通过,由于之前的l i b是用 4.1.2的,所以在用 4.3.2时,我用静态编译,这样移植到开发板上就不需要一库文件了。

第二到第四的配置命令都是一样的。

以下步骤顺序不能打乱,因为它们之前有依赖关系。

一、编译z l i b-1.2.3解压z l i b-1.2.3.t a r.t a r进入到z l i b-1.2.3配置c o n f i g u r e文件#./c o n f i g u r e--p r e f i x=/h o m e/s m b/m a d p l a y修改M a k e f i l e文件把C C=g c cA R=a r r cR A N L I B=r a n l i b改成C C=a r m-l i n u x-g c cA R=a r m-l i n u x-a r r cR A N L I B=a r m-l i n u x-r a n l i b#m a k e#m a k e i n s t a l l二、编译l i b i d3t a g-0.15.1b解压l i b i d3t a g-0.15.1b.t a r.g z,进入到l i b i d3t a g-0.15.1b #./c o n f i g u r e C C=a r m-l i n u x-g c c--h o s t=a r m-l i n u x --d i s a b l e-s h a r e d--e n a b l e-s t a t i c --p r e f i x=/h o m e/s m b/m a d p l a yC P P F L A G S=-I/h o m e/s m b/m a d p l a y/i n c l u d eL D F L A G S=-L/h o m e/s m b/m a d p l a y/l i b特别注意这里没有空格#m a k e#m a k e i n s t a l l三、编译l i b m a d-0.15.1b解压l i b m a d-0.15.1b.t a r.g z进入到l i b m a d-0.15.1b文件#./c o n f i g u r e C C=a r m-l i n u x-g c c--h o s t=a r m-l i n u x --d i s a b l e-s h a r e d--e n a b l e-s t a t i c --p r e f i x=/h o m e/s m b/m a d p l a yC P P F L A G S=-I/h o m e/s m b/m a d p l a y/i n c l u d eL D F L A G S=-L/h o m e/s m b/m a d p l a y/l i b#m a k e这是出现一个错误“c c1:e r r o r:u n r e c o g n i z e d c o m m a n d l i n e o p t i o n"-f f o r c e-m e m"”由于我使用 4.3.2版本编译器不支持“-f f o r c e-m e m”,修改当前目录下的M a k e f i l e把“-f f o r c e-m e m”选项去掉,重新编译。

移植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文件,看看有没有安装时特别声明的东西,这是我的习惯,因为同一个软件的不同版本,安装的方法有时并不一样。

嵌入式Linux软件设计课程报告mp3播放器madplay在ARM上的移植 -

嵌入式Linux软件设计课程报告mp3播放器madplay在ARM上的移植 -

《嵌入式Linux软件设计》课程设计报告姓名学号班级题目mp3播放器madplay在ARM上的移植成绩评语日期项目名称:mp3播放器madplay在ARM实验箱上的移植项目需求分析:基本功能:在实验箱上实现MP3文件的播放。

实现方法:硬件:PC机1台软件:Linux操作系统、嵌入式Linux开发环境、madplay-0.15.2b.tar.gz 、libid3tag-0.15.1b.tar.gz 、libmad-0.15.1b.tar.gz 、zlib-1.2.3.tar.gz在PC机上交叉编译生成静态链接的可执行文件madplay,通过nfs方式将madplay和mp3文件放在实验箱上并运行,实现mp3文件的播放。

项目分工:单人完成概要设计:软硬件流程图如图所示:预处理器交叉编译器汇编器连接器先编译madplay所依赖的库,再编译生成可执行文件madplay。

首先编译zlib-1.2.3因为libid3tag-0.15.1b的安装依赖这个库文件。

然后libid3tag-0.15.1b.tar.gz 、libmad-0.15.1b.tar.gz 、madplay-0.15.2b.tar.gz 均采用静态编译。

详细设计:1.解压源代码包到/madplay# tar -zxvf zlib-1.2.3.tar.gz# tar -zxvf libid3tag-0.15.1b.tar.gz# tar -zxvf libmad-0.15.1b.tar.gz# tar -zxvf madplay-0.15.2b.tar.gz2.编译madplay及其所依赖的库文件(1)新建目录/madplay/libz(2)编译zlib,因为libid3tag依赖于这个库文件打开/madplay/zlib-1.2.3目录下的Makefile文件,按以下内容修改并保存:CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gccAR=/opt/host/armv4l/bin/armv4l-unknown-linux-ar rcsRANLIB=/opt/host/armv4l/bin/armv4l-unknown-linux-ranlib# ./configure --prefix=madplay/libz# make# make install(3)编译libid3tag# cd ../libid3tag-0.15.1b# ./configure CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc --host=arm-linux --prefix=madplay/libz --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/madplay/libz/include LDFLAGS=-L/madplay/libz/lib# make# make install(4)编译libmad# cd ../libmad-0.15.1b# ./configure CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc --host=arm-linux --prefix=madplay/libz --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/madplay/libz/include LDFLAGS=-L/madplay/libz/lib# make# make install(5)编译madplay# cd ../madplay-0.15.2b# ./configure CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc --host=arm-linux --prefix=madplay/libz --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/madplay/libz/include LDFLAGS=-L/madplay/libz/lib# make但是,这样得到的是动态链接。

S3C2410下mplayer音视频播放器移植--冯勇老师

S3C2410下mplayer音视频播放器移植--冯勇老师

S3C2410下mplayer音视频播放器移植作者:武汉华嵌嵌入式培训中心讲师冯勇一、s3c2410移植ALSA及相关工具使用相关源码文件ncurses-5.6.tar.gzalsa-lib-1.0.17.tar.bz2alsa-utils-1.0.17.tar.bz21.设置环境变量export MEDIA_INSTALL_DIR=/home/linux/driver/mplay/media_install2.编译ncursestar zxvf ncurses-5.6.tar.gzcd ncurses-5.6./configure--host=arm-linux--target=arm-linux--build=i686-linux--with-softfloat--prefix=/usr--without-adaCC=/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softflo at-linux-gnu-gccmakemake install DESTDIR=$MEDIA_INSTALL_DIR2.编译alsa-libtar jxvf alsa-lib-1.0.17.tar.bz2cd alsa-lib-1.0.17./configure--host=arm-linux--target=arm-linux--build=i686-linux--with-softfloat--prefix=/usr--disable-pythonCC=/opt/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softflo at-linux-gnu-gcc修改Makefile,删除掉aserver和alsalisp所有部分(各2处);因为运行configure设置了--with-softfloat,不然会出错。

内核移植总结s3c2440

内核移植总结s3c2440

内核移植09号王萍一:为什么做内核移植?因为硬件的不同才做移植,那么与硬件相关的目录是arch和driver目录Arch目录:内核所支持的每种cpu(处理器,而不是操作系统)体系,在该目录下都有对应的子目录,每个子目录下又分有boot、mm、kernel、还有一些mach开头的目录(是与开发板相关的)Drivers:设备驱动程序Include:内核所需要的头文件,与平台无关的头文件在include/linux下,与平台有关的则放在相应的子目录下二:明白我要移植的目标系统的体系架构我要往mini2440开发板上移植内核,其是ARM9的处理器三:做移植前的准备工作下载linux内核的源代码linux-2.6.37.tar.bz2()工具m kimage(是u-boot生成的,在u-boot下的/tools下。

zImage是编译Linux内核产生的,uImage是u-boot中烧写的内核压缩映象,我们需要先下载测试)四:开始1.解压源代码#tar -jxvflinux-2.6.37.tar.bz2#cd linux-2.6.37最好先执行make distclean(确保我们即将编译的内核代码未经任何修改)2. 修改Makefile(内核根目录下)ARCH ?=arm //体系架构CROSS_COMPILE ?=arm-linux- //这个是交叉编译工具保存退出3. 内核的配置内核配置通常在一个已有的配置文件基础上,通过一定的修改得到新的配置文件,此处我们的配置文件是arch/arm/configs/mini2440_defconfig,所以我们只需要拷贝它到内核根目录下(cp arch/arm/configs/mini2440_defconfig .config)再make menuconfig进行一些配置(自己根据需要进行选择,此时它会使用这个.config),保存修改退出4.编译内核Make(会根据.config里的选中的内容开始编译内核)不出错的话,生成的内核文件在arch/arm/boot5.生成我们要测试的uImage(放到arch/arm/boot下)./mkimage -A arm -T kernel -C none -O linux -a 0x30008000 -e 0x30008040 -d zImage -n 'wp_Linux' uImage将生成的uImage放到windows下五:下载内核测试首先设置dnw的下载地址为0x30008000,然后在u-boot中执行:说明:我的开发板上的u-boot大小为312K的,所以(bootargs,bootcmd)bootargs“noinitrd root=/dev/mtdblock3 init=/linuxrc console=tty0 console=ttySAC0,115200”bootcmd“nand read 0x30008000 0x80000 0x300000;bootm”(从内存启动)#usbslave(在dnw中选择要我的uImage)#bootm(会出现内核启动失败(Kernel panic),出现的原因是没有添加Yaffs驱动)解决方法:a)调整内核中Nand Flash分区(可从nand启动)分区划分在文件arch/arm/mach-s3c2440/mach-mini2440.c中。

移植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也表明移植成功了。

自己的s3c2440A开发板的boa一直笔记原创

自己的s3c2440A开发板的boa一直笔记原创

基于TX2440A开发板的boa移植心得弄了几天,终于弄出来了!心里还是很美的,高手不要笑话,我是菜鸟,所以小小的boa 移植成功也会开心,好了,言归正传。

一、准备制作创建根文件系统目录,主要包括以下目录:/bin、/etc、/dev、/home、/lib、/mnt、/opt、/proc、/root、/sbin、/sys、/tmp、/usr、/var。

建一个名为root_ 的文件夹#mkdir root_在该文件夹下创建上述目录#mkdir bin etc dev ……………在/mnt目录下创建以下文件夹,用来挂载NFS,SD卡和U盘:nfs、sd、udisk1、udisk2、udisk3、udisk4二、编译busybox获取,在/ 找到busybox-压缩包,下载,解压:#tar xjvf busybox-1.15.2进入源码目录,修改Makefile第164行:CROSS_COMPILE = arm-linux-第190行:ARCH = arm执行#make menuconfig 进行配置busybox配置选项大部分都是保持默认的,只需要注意选择以下这几个选项,其他的选项都不用动:Busybox Setting --->Build Options --->[*]Build Busybox as a static binary(no shared libs)[*]Build with Large File Support (for accessing files > 2GB)Installation Options --->(./_install) Busybox installation prefix <—进入这个选项,输入busybox的安装路径,如:../rootfsBusybox Library Tuning --->[*] vi-style line editing commands[*] Fancy shell prompts <—要选择这个选项:“Fancy shell prompts”,否则挂载文件系统后,无法正常显示命令提示符:“[\u@\h \W]#”配置完后,执行#make make install,然后就会在上一级目录下生成rootfs文件夹,里面包含几个文件夹/bin、/sbin、/usr、linuxrc。

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左右。

Linux系统在S3C2440上移植的分析与实现

Linux系统在S3C2440上移植的分析与实现

Linux系统在S3C2440上移植的分析与实现李佳佳;马永杰【期刊名称】《计算机系统应用》【年(卷),期】2012(021)010【摘要】Based on analyzing the structure of linux system, the paper describes the key steps of transplanting a complete rnlinux system toS3C2440 platform and also detailed introduces how to establish your own cross-compiling environment rnand the method of making a pure yaffs2 file system. Through compiling and delivering bootloader, kernel and root file rnsystem, the experimental results show that it implements the transplantation of linux system to S3C2440 platform rnsuccessfully.%在分析Linux系统结构的基础上,描述了将完整的Linux系统向S3C2440平台上移植的关键步骤和过程,并详细介绍了如何建立属于自己的交叉编译环境和制作一个纯yaffs2文件系统的方法.经过对Bootloader、内核以及根文件系统的编译和烧写,实验结果表明,本文采取的方法,成功地实现了一个Linux系统向S3C2440平台上的移植.【总页数】4页(P214-216,219)【作者】李佳佳;马永杰【作者单位】西北师范大学物理与电子工程学院,兰州730070;西北师范大学物理与电子工程学院,兰州730070【正文语种】中文【相关文献】1.U-Boot在S3C2440上的分析和移植 [J], 夏礼勇;符秀辉;2.Linux在S3C2440上的移植分析与实现 [J], 雍泽;任家富;朱海宽3.基于S3C2440的嵌入式Linux系统移植的研究与实现 [J], 赵敏;杨恢先;汤安平4.嵌入式Linux系统在S3C2410上的移植实现 [J], 赵瑞娟;李敬兆5.U-Boot分析及在S3C2440上的移植 [J], 乔铁柱;孙东因版权原因,仅展示原文概要,查看原文内容请购买。

madplay命令使用方法

madplay命令使用方法

madplay命令使用方法Madplay是一款用于播放MP3音频文件的命令行工具。

它可以在Linux系统中使用,可以通过终端来控制音频文件的播放和暂停。

Madplay的使用方法比较简单,下面将详细介绍Madplay的使用方法。

一、安装Madplay在Linux系统中安装Madplay非常简单,只需要使用以下命令即可:sudo apt-get install madplay二、基本使用方法1. 播放音频文件使用Madplay播放音频文件的命令格式为:madplay filename.mp3其中,filename.mp3是需要播放的音频文件名,可以使用相对路径或绝对路径。

2. 暂停音频文件的播放在Madplay播放音频文件的过程中,可以使用Ctrl+C键来暂停音频文件的播放。

3. 停止音频文件的播放在Madplay播放音频文件的过程中,可以使用Ctrl+C键来停止音频文件的播放。

三、进阶使用方法1. 调整音频文件的音量使用Madplay调整音频文件的音量非常简单,只需要在madplay 命令后加上-v参数和一个0到100之间的数字即可。

例如:madplay -v 50 filename.mp3其中,50表示将音频文件的音量调整为50%。

2. 调整音频文件的声道使用Madplay调整音频文件的声道也非常简单,只需要在madplay命令后加上-j参数和一个数字即可。

例如:madplay -j 1 filename.mp3其中,1表示将音频文件的声道调整为单声道,2表示将音频文件的声道调整为立体声。

3. 调整音频文件的播放速度使用Madplay调整音频文件的播放速度也非常简单,只需要在madplay命令后加上-a参数和一个0到100之间的数字即可。

例如:madplay -a 50 filename.mp3其中,50表示将音频文件的播放速度调整为50%。

四、总结Madplay是一款非常方便的命令行工具,可以在Linux系统中播放MP3音频文件。

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

ubuntu8.10下移植mp3 播放器 madplay 到s3c2440
2009-03-19 9:04
按照手册步骤一步步来,感觉不是很难,却也花了好长时间。

笔记一下!
首先到网站
/project/showfiles.php?group_id=12349下载madplay-0.15.2b.tar.gz
libmad-0.15.1b.tar.gz
libid3tag-0.15.1b.tar.gz
然后还需要一个zlib-1.2.3.tar.gz包,这个不知道从那弄来的,需要的话。

联系我!
在一个目录下建立一个madplay,在这个文件下建三个文件:
1.tarball目录用来存放所有的源代码包
2.src-arm 目录用来存放 ARM 版本的所有源代码文件
3.target-arm目录是 ARM 版本的安装目录
我的是在/opt/FriendlyARM/mini2440/madplay
建好之后,查看:/opt/FriendlyARM/mini2440/madplay$ ls
src-arm tarball target-arm

madplay-0.15.2b.tar.gz libmad-0.15.1b.tar.gz libid3tag-0.15.1b. tar.gz zlib-1.2.3.tar.gz四个包放到tarball里。

然后在/opt/FriendlyARM/mini2440/madplay$ gedit build-x86.sh
建立一个脚本build-x86.sh 将下面的内容复制进去,保存退出!
#!/bin/sh
#This build script is for madplay under PC-Linux
MADPLAY_DIR=/opt/FriendlyARM/mini2440/madplay
SRC_DIR=src-arm
TARGET_DIR=$MADPLAY_DIR/target-arm
tar 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 xvzf ./tarball/zlib-1.2.3.tar.gz -C $SRC_DIR
export CC=arm-linux-gcc
cd $SRC_DIR/zlib-1.2.3
./configure --prefix=$TARGET_DIR
make && make install
cd ../..
cd $SRC_DIR/libid3tag-0.15.1b
./configure --host=arm-linux --prefix=$TARGET_DIR
CPPFLAGS=-I$TARGET_DIR/include LDFLAGS=-L$TARGET_DIR/lib
make;make install
cd ../../
cd $SRC_DIR/libmad-0.15.1b
./configure --host=arm-linux --prefix=$TARGET_DIR
make;make install
cd ../..
cd $SRC_DIR/madplay-0.15.2b
./configure --host=arm-linux --prefix=$TARGET_DIR
CPPFLAGS=-I$TARGET_DIR/include LDFLAGS=-L$TARGET_DIR/lib
make;make install
cd ../../
最后输入命令:/opt/FriendlyARM/mini2440/madplay$./build-x86.sh
没有错误的话,在target-arm/bin 目录中可以看到交叉编译生成的 madplay,下载到开发板,运行它就ok了!。

相关文档
最新文档