基于ARM9的流媒体播放器的设计Word下载.docx
《基于ARM9的流媒体播放器的设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于ARM9的流媒体播放器的设计Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
嵌入式,视频播放器,嵌入式Linux,ARM920T
DesignofVideoPlayerBasedonEmbeddedARM920T
Abstract
Embeddedtechnologyhasbecomethecoretechnologyofthepost-PCera,andbasedonembeddedtechnologyofportablevideoplayerforsmallvolume,lightweight,convenienttocarryhaveaverywideprospectofmarket,andsoembeddedvideoplayertobecomearesearchfocusoftheITindustry.Thispaperputsforwardakindofembeddedvideoplayerdesignscheme,theschemeisbasedontheARM9processor,andtheEmbeddedLinuxastheunderlyingoperatingplatform.
Thispaperfirstintroducedthevideoplayeroveralldesignschemeofsoftwareandhardware,thendetailedindetailhowtotransplantBootloader,Linuxkernelandmakearootfilesystemtocompletetheworktobuildavideoplayerunderlyingoperatingplatform,finally,throughtransplantationofopensourcemultimediaplayersoftwareMPlayeranddesigncontrolstocompletethedesignworkofthevideoplayer.
Finally,summarizetheworkofthispaper,pointsouttheembeddedplayerwhichneedtobesolvedandperfectedproblem.
Keywords:
Embedded,Videoplayer,EmbeddedLinux,ARM
第一章引言
1.1研究背景
伴随着半导体技术、计算机技术、网络技术和软件技术的飞速发展,现如今,我们已经进入了后PC时代。
在这一阶段电子产品的发展趋势是智能化、数字化、网络化、便携轻巧、易于操作,而嵌入式技术(EmbeddedTechnology)的发展为人们提供了一个很好的解决方案。
所谓嵌入式是指以应用为中心,以计算机技术为基础,软件、硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[1]。
嵌入式技术已经被广泛的应用于科学研究、工程设计、军事领域和文艺商业的方方面面,嵌入式产品更是随处可见,比如消费电子产品、车载电子设备、智能家电、MP3、MP4等。
如今人们随着生活水平的提高,对视听享受方面的要求也越来越高,人们不单仅仅满足于在电脑上或电视上欣赏高品质的音视频,也渴望能够随时随地的欣赏音乐观看电影,所以基于嵌入式技术的便携式多媒体播放器也成为了现今IT界研究的热点之一。
面对广阔的市场需求,海内外的各大厂商也在积极研发自己的产品以抢占市场。
基于这一背景,本文提出了一款基于嵌入式Linux操作系统和ARM处理器的视频播放器设计方案。
1.2发展状况和研究意义
自从2002年法国的爱可视推出全球第一款MP4——多媒体Jukebox以来,基于嵌入式技术的便携式视频播放器已经发展了十年,经过这十年的发展,视频播放器技术已日趋成熟,市面上的产品支持的视频格式也越来越多,功能也越来越强大,很多MP4都集成了上网、游戏、个人事务处理甚至是视频录制、数码照相等功能。
目前。
很多提供视频播放器处理器的半导体厂商都推出有自己的视频播放器硬件解决方案,这些方案可以概括为以下四类:
一类是以德州仪器、飞利浦为代表的基于CPU+DSP芯片的解决方案;
一类则是以Intel和AMD为代表的基于通用CPU的解决方案;
第三种则是以飞思卡尔和深圳安凯为代表的基于MCU芯片的解决方案;
第四种是基于双CPU的解决方案[4]。
在软件方面基本上市面上的便携式视频播放器都带有嵌入式操作系统,主要的操作系统有Vxworks、PalmOS、WindowsCE、Linux、Android以及厂家自己开发的操作系统。
生产厂商在设计自己的产品时如果采用上述的硬件方案,都要支付一笔不菲的授权费用,而在嵌入式操作系统的选择上也只有Linux是开源免费的,所以产品成本比较高。
ARM处理器具有体积小、功耗低、低成本、高性能等优点,并且支持Linux系统[6]。
所以可以选用ARM处理器配合Linux进行产品的设计,这样可以充分的利用Linux开源的特性,根据需要修改和移植一些免费的开源软件,这样不仅能降低产品研发的难度,加快产品的上市时间,还能省去一笔不菲的软硬件授权费用。
1.3本文组织结构
本文介绍了一款便携式视频播放器的设计工作,该视频播发器是以ARM处理器为硬件开发平台,嵌入式Linux作为操作系统,通过移植Linux上的一款优秀的开源视频播放器软件MPlayer来实现的。
本文共分五章,内容安排如下:
第一章,引言。
介绍了本文的选题背景,当前国内外的发展状况以及研究意义,并对论文的主要工作进行了简单介绍。
第二章,播放器总体设计方案介绍。
主要介绍播放器的硬件整体架构和软件系统的层次结构。
第三章,系统开发平台的构建。
本章详细介绍了Linux系统移植到ARM处理器的过程,Linux的移植主要包括三个方面:
Booterloader的移植、Linux内核的移植和根文件的制作。
第四章,视频播放器的设计与实现。
介绍MPlayer的移植过程和播放器相关控件的设计工作。
第五章,总结。
第二章播放器总体设计方案介绍
2.1播发器硬件系统架构
本设计将选用国嵌公司生产的GQ2440开发板作为硬件平台,GQ2440是一款ARM9开发板。
GQ2440采用的是三星公司生产的S3C2440A处理芯片,主频400MHz,最高可达533MHz。
图2.1为视频播放器的硬件系统框图,其中S3C2440处理器除了负责对音视频文件进行解码工作外,还要负责对整个视频播放器进行管理和控制;
LCD为播放器的视频输出模块;
UDA1341芯片为音频的输出模块,负责将经处理器解码后得到的音频数据转换为模拟信号,并传递给麦克风等输出装置;
Flash存储器负责对Linux内核、根文件系统、应用软件和视频文件的存储工作;
按键用于完成对视频播放器的控制工作。
图2.1播放器硬件系统框架
2.2播发器软件系统架构
由于Linux具有源代码开放、可移植性好、资源丰富、可靠、稳定、免费等特点,所以本文将选用嵌入式Linux作为视频播放器的底层操作平台。
而视频播器软件是通过移植Linux下一款优秀的开源视频播放软件MPlayer来实现的。
如图2.2所示为视频播放器的整个软件系统层次图。
其中Linux内核中的设备驱动负责完成LCD显示器、UDA1314声卡芯片等设备的驱动工作,MPlayer为视频播放器,处于应用层,利用其完成对各种音视频文件的解码工作。
图2.2视频播放器软件系统层次
第三章系统开发平台的构建
3.1软件开发环境介绍
在嵌入式系统中,由于硬件资源的有限性、差异性,所以需要开发者根据不同的硬件资源对嵌入式的操作系统作出相应的剪裁,从而定制出能够运行在特定目标平台上的嵌入式操作系统。
构建一个嵌入式Linux操作系统主要包括三个方面的工作:
移植Bootloader,移植Linux内核,构建Linux根文件系统。
由于嵌入式系统的特殊性,其硬件资源十分有限,所以不可能在嵌入式操作系统上安装开发工具,也就不可能直接在嵌入式系统上直接进行软件的开发,所以有了交叉开发模型。
交叉开发模式是指先在主机上编写程序,然后通过交叉编译工具编译程序,生成目标平台上可运行的二进制文件,最后下载到具体的目标平台上进行运行[7]。
交叉开发模型如图3.1所示。
图3.1交叉开发模型
本文是以红帽公司发行的RedHatEnterpriseLinux5作为宿主机的操作系统进行相关软件开发的,使用的交叉编译工具链为友善之臂公司提供的arm-linux-gcc-4.3.2。
3.2Bootloader的移植
Bootloader是在操作系统运行之前执行的一小段程序,它在系统上电时开始执行,初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备[6]。
可以把Bootloader当成PC机的BIOS来理解。
嵌入式系统的硬件存在很大的差异性,Bootloader对硬件有很大的依赖性,并且Bootloader引导的操作系统也可能不同,所以在嵌入式世界中建立一个通用的Bootloader是不可能的,不过由于大部分Bootloader任然具有很多共性,所以某些Bootloader也能支持多种不同架构的处理器和操作系统。
例如,U-Boot就可以同时支持PowerPC、ARM、MIPS和X86等体系结构。
U-Boot是遵循GPL条款的开放源码项目。
而今U-Boot作为一个主流Bootloader,已经成功地被移植到包括PowerPC、ARM、X86、MIPS、NIOS、XScale等主流体系结构上的百种开发板,成为功能最多、灵活性最强,开发性最积极的开源Bootloader。
本文将选取U-Boot作为开发板的Bootloader。
在开始移植U-Boot之前,应该分析手上的U-Boot源代码已经支持的开发板,选择出硬件配置最接近的开发板作为参考。
选择的原则为,首先选择MCU相同的开发板,如果没有,则选择MPU相同的开发板作为参考,这样能大大的降低移植的难度。
本文使用的U-Boot版本为u-boot-2009.06,由于U-Boot目前还不支持S3C2440处理器,所以移植的时候可以我们将以SBC2410开发板为参考,移植的工作就是针对S3C2440和s3c2410的不同,以及SBC2410和GQ2440开发板外设的不同做相应的修改。
以下为移植的详细步骤:
(1)添加新的配置选项。
在U-Boot的顶层目录的Makefile文件中定义了所有开发板的配置选项,首先应该为开发板添加新的配置选项,参照SMDK2410的配置,加入如下语句:
gq2440_config: