嵌入式开发与应用BX0901.docx

上传人:b****8 文档编号:9905226 上传时间:2023-02-07 格式:DOCX 页数:14 大小:427.11KB
下载 相关 举报
嵌入式开发与应用BX0901.docx_第1页
第1页 / 共14页
嵌入式开发与应用BX0901.docx_第2页
第2页 / 共14页
嵌入式开发与应用BX0901.docx_第3页
第3页 / 共14页
嵌入式开发与应用BX0901.docx_第4页
第4页 / 共14页
嵌入式开发与应用BX0901.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

嵌入式开发与应用BX0901.docx

《嵌入式开发与应用BX0901.docx》由会员分享,可在线阅读,更多相关《嵌入式开发与应用BX0901.docx(14页珍藏版)》请在冰豆网上搜索。

嵌入式开发与应用BX0901.docx

嵌入式开发与应用BX0901

《嵌入式开发与应用》

课程设计报告

题目:

姓名:

班级:

BX0901

学号:

01

指导老师:

范光宇

2012年12月29日

目录

1课程设计题目、目的与要求1

1.1课程设计题目与分析1

1.2课程设计的目的与要求1

2需求分析1

3系统设计1

3.1概要设计1

3.2详细设计1

4编码2

5调试2

6总结2

参考文献2

1课程设计课题、目的与要求

1.1课程设计题目和分析

嵌入式开发与应用Mplayer移植

1.2课程设计目的与要求

本课题所设计的系统要求实现以下功能。

●将MPlayer移植移植到实验箱目标板Linux系统上;

●完成视频或mp3文件的播放。

 

2需求分析

2.1功能需求分析

计算机和信息技术极大地推动了工业自动化的进程,在媒体播放方面,独占鳌头的则是新兴的开源软件MPlayer。

MPlayer是Linux下最优秀的多媒体播放器之一,它的播放速度最快,支持的文件格式也最多,在X86PC机上运行很稳定,将其移植到精简指令集的嵌入式系统中去,是十分有价值的。

由于MPlayer其开源的特性,使得修改,定制一份具有针对性的MPlayer成为可能。

并随着MPlayer版本的提高,功能与稳定性的不断完善,使用MPlayer作为媒体播放器的产品将成为趋势。

由于开源软件免费的特性,使用MPlayer开发的产品将能够节省软件方面的成本。

因此,对于MPlayer移植的可行性的分析与实现,十分具有现实意义。

2.2性能需求分析

MPlayer能使用众多本地的Xanim,RealPlayer和Win32DLL编解码器,可播放MPEG、VOB、AVI、OGG、VIVO、ASF/WMV、QT/MOV、FLI、RM、NuppelVideo、yuv4mpeg、FILM、RoQ文件。

MPlayer的另一个大的特色是支持广泛的输出设备,它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、Aalib、DirectFB下工作,而且你也能使用GGI和SDL(由此使用它们支持的各种驱动模式)和一些低级的硬件相关的驱动模式。

这个播放器能很稳定地播放被破坏的MPEG文件,并且它能播放WindowsmediaPlayer都打不开的有损坏的AVI文件,甚至,没有索引部分的AVI文件也可以播放。

实现MPlayer的嵌入式移植,主要采用以下的模型,即X86PC机上MPlayer的实现+HBE-MEPOSIII-SV210开发板上的移植。

如图2-1所示:

图2-1MPlayer的嵌入式移植模型

2.3主要课题目标

1、针对MPlayer开源的特性,充分了解MPlayer的运行原理。

2、研究各种视频格式的原理、结构,为MPlayer播放这些视频格式提供支持。

3、实现X86PC机向HBE-MEPOSIII-SV210平台的移植并调试。

2.4系统运行环境

1、系统操作简单,易于使用。

简洁明了的图形化操作界面能够使操作人员很快地熟悉系统的使用,从而提高用户体验。

因此在开发本系统时力求软件的简单易用性,只需点击按钮即可进行Mplayer的控制操作。

2、可靠性好,系统稳定。

为加强用户体验,在简化操作的同时,要保证系统CPU占用率保持在合理的范围,使视频能正常、流畅地播放。

3、可维护性好。

各模块相互独立,便于修改和更新。

4、在实现此系统的过程中尽量遵循开放性标准,提高代码的重用性。

3系统设计

3.1概要设计

1系统体系结构

本系统的体系结构如图3-1所示:

图31.1系统体系结构

2基本设计概念

(1)、Linux系统下MPlayer结构:

完成Linux系统下视频的播放。

采用MPlayer-1.0pre7try2.tar.bz2;

all-20071007.tar.tar;

windows-all-20071007.zip;

Blue-small-1.4.tar.bz2

四个包。

如图3-2所示:

2Linux系统下MPlayer四个包

(2)ARM-Linux系统下MPlayer结构:

配置arm-Linux-gcc编译环境。

采用MPlayer-1.0pre7try2.tar.bz2;

ARM-Linux-gcc-3.3.2.tar.bz2;

all-20071007.tar.tar;

windows-all-20071007.zip;

libmad-0.15.1b.tar.gz;

五个包,如图3-3所示。

3模块设计

 

(1)功能-模块对照表

此课题分为以下八大模块。

各个模块之间有机组合,形成本课题最终成果。

表3-1模块功能规划表模块名称

模块功能

X86PC端

X86-MPlayer模块

负责X86版本MPlayer的生成与视频文件的播放工作。

视频格式分析模块

根据视频格式的特性,使得MPlayer能够播放多种视频,并优化播放效果。

GUI模块

生成控制MPlayer播放的GUI。

Linux-gcc模块

编译Linux版本主程序。

ARM-Linux端

ARM-MPlayer模块

负责ARM版本MPlayer的生成与视频文件的播放工作。

ARM-Linux-gcc模块

编译ARM版本主程序。

MINICOM模块

X86PC端与ARM-Linux端的通信

内核烧录模块

重新编译并烧录开发析内核,去除开发板内核BUG

 

3.2详细设计

1.嵌入式开发环境的搭建

嵌入式系统开发环境的建立是开发流程中至关重要的一步,环境搭建不成功后续开发就无从谈起。

搭建嵌入式开发环境的主要过程共包括安装Linux系统,安装嵌入式工具链,配置宿主机相关信息以及和开发板之间进行连接等四个关键步骤。

除此之外,还可以结合实际需求裁剪Linux内核进行重载编译等工作。

具体流程如下图所示:

2模块分析

MP4

(1)简介:

MP4,全称MPEG-4Part14,是一种使用MPEG-4的多媒体电脑档案格式,副档名为.mp4,以储存数码音讯及数码视讯为主。

(2)以下以1.MP4文件为例如图所示:

MP4文件结构

以1.MP4为例分析格式如表所示:

十六进制

含义

66747970

‗ftyp‘:

MP4文件标识

6D6F6F76

‗moov‘:

包含所有元数据的原子

6D766864

‗mvhd‘:

头部信息,定义文件创建,持续时间等信息

696F6473

‗iods‘:

初始化对象描述字

7472616B

‗trak‘:

video轨道原子容器

746B6864

‗tkhd‘:

轨道头部信息

6D646961

‗mdia‘:

video轨道中信息对象的容器

6D646864

‗mdhd‘:

video轨道中媒体数据相关特性

68646C72

‗hdlr‘:

媒体类型

6D696E66

‗minf‘:

video轨道中信息对象的容器,比mdia低一层

6D646174

‗mdat‘:

以下为具体媒体数据

MPlayer模块

(1)编译过程

编译MPlayer需要四个包的安装:

主程序,皮肤,codecs以及wincodecs(win32)。

这四个程序都可以从MPlayer官方网站下载:

www.MPlayerhq.hu。

分别是以下四个文件:

Src:

MPlayer-1.0pre7try2.tar.bz2

Skin:

Blue-small-1.4.tar.bz2

Codecs:

all-20071007.tar.tar

Wincodecs:

windows-all-20071007.zip

 

把它们放在/usr/software/MPlayer目录下。

安装编码包

安装时先安装编码包,MPlayer的编码包须安装在/usr/lib/codecs/和/usr/lib/wincodecs(win32)中。

37[root@fc4/]#cd/usr/software/MPlayer

[root@fc4MPlayer]#tarvjxfall-20061022.tar.bz2

[root@fc4MPlayer]#mvall-20061022/usr/lib/codecs

[root@fc4MPlayer]#chmod644/usr/lib/codecs/*

[root@fc4MPlayer]#chownroot.root/usr/lib/codecs/*

[root@fc4MPlayer]#unzipwindows-all-20061022

[root@fc4MPlayer]#mvwindows-all-20061022/usr/lib/wincodecs或者#mvwindows-all-20061022/usr/lib/win32

[root@fc4MPlayer]#chmod644/usr/lib/wincodecs/*或者#chmod644/usr/lib/win32/*

[root@fc4MPlayer]#chownroot.root/usr/lib/wincodecs/*或者#chownroot.root/usr/lib/win32/*

安装MPlayer主程序

[root@rh9MPlayer]#bzip2-cdMPlayer-1.0pre7try2.tar.bz2|tarxvf–

[root@rh9MPlayer]#cdMPlayer-1.0pre7try2/

关于配置首先要确定几个rpm的包是否安装了,它们是:

gtk+-1.2.10,gtk+-1.2.10-devel,glib-1.2.10,glib-1.2.10-devel

确认上面这几个包已经安装后,可以开始配置编译了.

[root@fc4MPlayer-1.0pre7try2]#./configure--enable-gui--enable-largefiles--enable-menu--prefix=/usr--with-codecsdir=/usr/lib/codecs/--with-win32libdir=/usr/lib/wincodecs/--confdir=/etc/MPlayer--cc=gcc32

configure后面的参数是为了使用图形界面(即皮肤),以及配置文件位置等等设置的。

需要注意的是,最后--cc=gcc32一定需要,是调用gcc3.2来编译程序。

否则会调用gcc4.0来编译,MPlayer是不能用gcc4.0编译的。

[root@fc4MPlayer-1.0pre7try2]#make

[root@fc4MPlayer-1.0pre7try2]#makeinstall

ARM-MPlayer模块编译过程

(1)解压MPlayer-1.0pre7try2.tar.bz2软件包

(2)编译MPlayer应用程序

(2)配置命令解释:

--cc=ARM-Linux-gcc//使用版本为3.3.2的交叉编译器

--host-cc=gcc//使用系统自带的编译器来编译一些需要在host上执行的中间文件

--enable-Linux-devfs//设置缺省设备为Linux的devfs设备。

--disable-win32//不支持win32DLL设备

--disable-dvdread//不使用libdvdread支持。

--enable-fbdev//支持缓冲帧设备

--disable-mencoder//不支持mencoder编码方式

--enable-libavcodec//支持libavcodec编码方式

--enable-liba52//不使用liba52库40--disable-libmpeg2//不支持libmpeg2库

--enable-static//设定静态连接,不需要动态库。

--disable-mp3lib//不使用mp3库

--disable-live//不支持流媒体

 

Gcc模块定义

Gcc(GNUCCompiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。

gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。

Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,Gcc将生成一个名为a.out的文件。

在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。

而Gcc则通过后缀来区别输入文件的类别。

.c为后缀的文件,C语言源代码文件;

.a为后缀的文件,是由目标文件构成的档案库文件;

.C,.cc或.cxx为后缀的文件,是C++源代码文件;

.h为后缀的文件,是程序所包含的头文件;

.i为后缀的文件,是已经预处理过的C源代码文件;

.ii为后缀的文件,是已经预处理过的C++源代码文件;

.m为后缀的文件,是Objective-C源代码文件;

.o为后缀的文件,是编译后的目标文件;

.s为后缀的文件,是汇编语言源代码文件;

.S为后缀的文件,是经过预编译的汇编语言源代码文件。

 

图为GCC具体流程图:

 

5调试

调试及测试部分应论述所设计的调试及测试方案,调试及测试过程中遇到的问题,分析问题产生的原因,给出处理方法。

具体可以参考文档“测试分析报告(GB8567——88).doc”。

6总结

通过本毕业设计,我有以下几点体会:

第一、有一个明确的系统框架是十分重要的。

只有在理清了各个模块之间的关系中,才能从一个系统级的高度去看待这个课题,才能把握好整个课题的脉络。

第二、在学习新事物的过程中,无形提高了掌握新技术的能力。

在前期查阅资料的过程中,翻阅了大量嵌入式相关的文献。

对嵌入式有了一定的了解后,才能进行课题的研究。

HBE-MEPOSIII-SV210开发板,Linux,内核编译,视频文件格式,都是以前未接触的领域。

通过学习,不仅掌握了知识,更重要的是掌握了学习的方法。

综上所述,通过这次毕业设计,真正体会到了一个计算机工作者的艰辛。

长时间,高强度的作业,锻炼了我的韧性。

一个突破性的进展,一种无法描述的喜悦,一次次找不到答案的无奈,一次次在内心告诉自己要坚持,都是最珍贵的经历。

相信通过这个毕业设计,对我的将来,是非常有借鉴意义的经验。

参考文献

1.《嵌入式开发与应用》实验指导书

2.《嵌入式开发与应用》课程设计指导书

3.张思民.嵌入式系统设计与应用.清华大学出版社2008

4.路莹.嵌入式系统开发技术与应用.清华大学出版社,2011

5.孙纪坤等.嵌入式Linux系统开发技术详解——基于ARM.人民邮电出版社

6.谭浩强.C语言程序设计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1