




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DesignandImplementationforaMP3PlayerBasedonEmbededLinuxADissertationSubmittedtoNanjingInstituteofTechnologyFortheAcademicDegreeofBachelorofScienceByMinXianZhengSupervisedbyLecturerAiJunShaKangNiCollegeNanjingInstituteofTechnologyJun2013伴随嵌入式系统的持续发展以及普通用户对多媒体应用越来越旺盛的需求,具有多媒体播放功能设备逐渐成为嵌入式系统中必不可少的重要功能。
2、此毕业设计将设计一个基于嵌入式Linux的MP3播放器,系统硬件采用基于ARM架构的开发板。论文首先介绍了嵌入式操作系统的最新发展、嵌入式Linux、ARM的特点以及Qt等的相关知识。重点介绍了如何使用开源播放器MPlayer、解码库libmad、QtCreator工具来开发一个有图形界面的MP3播放器。还介绍了如何移植U-boot、Linux内核、Qt和文件系统,并在移植好之后烧写到开发板之上,得到一个能独立运行在开发板上的MP3播放器。系统测试表明,该MP3播放器能实现如下功能:“播放”、“暂停”、“停止”、“音量调节”、“退出程序”和“歌曲播放时间”,系统运行稳定,基本达到了设计要求。关
3、键词:嵌入式Linux;移植;Linux;QtAbstractAlongwiththesustainabledevelopmentoftheembeddedsystemandtheincreasinglydemandsformultimediaapplications,anelectronicequipmenthasafunctionsofplayingsongsgraduallybecomeindispensably.ThisdesignwillintroduceanimplementionforaMP3player,basedonembeddedLinuxsystemandanARMarc
4、hitecturedevelopmentboard.ThisPaperintroducesthelatestdevelopmentforembeddedoperatingsystem,embeddedLinux,thecharacteristicsoftheARM,Qtandotherrelatedknowledges.Especially,thispaperdisplayshowtousetheopensourceplayerMPlayer,adecodinglibrarycalledlibmad,QtCreatortoolstodevelopagraphicalinterfaceofanM
5、P3player.Inthispaper,theworkoftransplanttheboot,theLinuxkernel,Qt,andfilesystemsisalsointroduced.Afterallsystemimagesareburnedintothedevelopmentboard,onedevelopmentboardcanrunaMP3playerisobtained.SystemtestshowsthatthisMP3playercanrealizethefollowingfunction:Play,Pause,Stop,VolumeControl,ExitandShow
6、SongsPlayingState.Thewhloesystemrunsstably,andreachedthebasicdesignrequirement.Keywords:embededLinux;transplant;Linux;Qt第一章绪论11.1课题研究背景和意义11.2嵌入式系统发展和现状21.2.1嵌入式操作系统21.2.2嵌入式Linux和Linux31.2.3ARM的介绍31.2.4Qt的介绍41.3论文所做的工作和结构51.3.1论文所做的工作51.3.2论文结构6第二章系统总体方案设计72.1系统框架概述72.2开发板硬件介绍72.2.1主要硬件及其参数82.2.2接口
7、资源82.2.3NAND和NORFlash的相关介绍:92.2.4S3C2440的启动方式说明102.3用于本设计MP3播放器的硬件架构10第三章嵌入式Linux的开发流程123.1开发环境的搭建概述123.1.1硬件平台123.1.2软件平台123.2安装软件平台和搭建开发环境的步骤123.2.1虚拟化平台的介绍与安装133.2.2RedHat介绍及其在VMware中的安装143.2.3安装VMwareTools163.2.4安装交叉编译器173.3Bootloader和U-boot的介绍183.3.1烧写U-boot193.3.2向NANDFlash烧写U-boot213.4使用FTP下载
8、工具23第四章系统详细设计244.1关于移植的原理和介绍244.2U-boot、内核和文件系统的移植。244.3开源播放软件MPlayer的安装和移植254.3.1在X86平台上安装MPlayer254.3.2向ARMFF台移植MPlayer264.4设计基于Qt/E的播放器图形304.4.1 Qt的实现原理和优势304.4.2利用QtCreator开发应用程序流程324.4.3程序模块间关系图334.4.4程序的编写和实现334.4.5关键代码分析354.4.6编译和运行41第五章系统调试和解决435.1系统调试及运行435.2本次毕业设计中遇到的问题和解决44第六章总结与展望46参考文献4
9、7致谢错误!未定义书签。附录A源代码48附录A.1main.cpp48附录A.2mplayer.h48附录A.3mplayer.cpp49南京工程学院毕业设计说明书(论文)第一章绪论1.1课题研究背景和意义随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人来说, 需要的已经不再仅仅是那种放在桌上处理文档、 进行工作管理和生产控制的计算机机器。任何一个普通人都可能拥有各种使用嵌入式技术的电子产品。如今,各种新式嵌入式设备从数量来说已经完胜常规计算机了。尤其在工业中,几十年来,具有嵌入式技术的数控机床、工业智能机器人、智能设备、服务型机器人一直都对传统的工业生产方
10、式不断改善和提局着。MovingPictureExpertsGroupAudioLayerIII3),经常称为MP3是当今相当流行的一它被设计来大幅降低音频数据量,而对于大重放的音质与最初的不压缩音频相比并没有极其明显的下降MP3播放器是嵌入式系统的主要应用之一,高端的MP3已经不仅仅着眼于音乐播放这一功能,而是同时具备了图片浏览、文本阅读、甚至视频播放等强大功能。本文重点讨论基于S3c2440芯片的MP3播放器的实现,还包括开发环境建立、内核裁剪与编译、Qt开发等一系列过程。像以前需要两块甚至多块芯片才能处理的数据,现在基本上可以通过单块ARM芯片完成,不仅仅降低系统成本,同时也简化了系统的
11、设计过程。而且嵌入式Linux操作系统的出现,使得应用软件的开发也变得相对简单,此外Linux天生的多平台兼容性,使其移植到ARM平台相对简单,再加上其可裁剪的优点,使得嵌入式Linux成为当前嵌入式开发的主流系统。所以课题选择基于嵌入式Linux的MP3播放器的设计与实现,具有一定的现实意义。 同时, 毕业设计也是将大学所学知识的一次综合运用, 也会使得在文献检索、查阅资料、科学研究素养和文档写作等方面的能力得到进一步提(MPEG-1AudioLayer3,动态影像专家压缩标准音频层面种数字音频编码和有损压缩格式, 多数用户的人体自身听觉感受来说,南京工程学院毕业设计说明书(论文)1.2嵌入
12、式系统发展和现状1.2.1嵌入式操作系统英国电机工程师协会BIEE(BritainInstituteofEletricalEngineers)对嵌入式系统的定义是:嵌入式系统为控制、监视或辅助设备、机器甚至工厂运作的装置10从20世纪80年代开始,在嵌入式系统出现了“操作系统”概念,这使得开发人员可以进一步缩短开发周期,降低开发成本并提高开发效率。例如著名的VxWorks,该系统如今被华为、H3G中兴等众多网络设备和通信设备厂商所采用。而思科采用了基于UNIX开发而来的“网际互联操作系统”(InternetOperationSystem,缩写为IOS);另一家网络设备厂商Juniper所使用的
13、JunOS系统直接运行于FreeBSD内核之上,和内核联系紧密。20世纪90年代之后,随着对实时性要求的提高、软件规模不断增加,逐渐发展出实时多任务操作系统,并作为一种软件平台逐步成为目前嵌入式操作系统的主流。许多大公司看到了嵌入式系统的无限美好的发展前景,开始大力发展自己的嵌入式操作系统如PalmOSPalmWebOSWindowsCE、嵌入式Linux、Symbian、BlackBerryOS、C/OS-II、eCOSuITRON等嵌入式操作系统。221世纪第一个十年的后半叶,出现了三大系统:2007年,苹果公司发布了改变人们生活的iPhone和iOS操作系统;随后,2008年,谷歌发布了
14、Andriod操作系统;微软于2010年发布WindowsPhone7系统、2012年发布了WindowsPhone8系统。这几年里,基于这三大智能系统的智能手机、 平板电脑的数量爆发式增长, 提高了人们的工作效率和生活舒适度。尤其是平板电脑,使人们对嵌入式设备和电脑界限的划分逐渐模糊。除了上面的这些操作系统之外,三星、Ubuntu甚至是Firefox等公司都发布了自己的操作系统和手机。三星、Ubuntu等许多公司的系统都是是基于Linux开发而来的,仅有少数是个例外如FirefoxOS,该系统是基于HTML5的,毕竟火狐本身就是一个浏览器厂商。在这场操作系统之争中,如PalmOS、WebOS
15、、WindowsCE、Meego等系统已经淡出了历史的舞台,而Symbian、BlackBerryOS则在垂死挣扎。嵌入式Linux和Andriod是开源的系统。开发基于南京工程学院毕业设计说明书(论文)Andriod的系统时,需要向其他厂商如微软、诺基亚、三星等公司缴纳专利授权费用,而基于嵌入式Linux开发的系统就没有这个问题,适合小型厂商和个人的商业开发。1.2.2嵌入式Linux和Linux嵌入式系统和通用计算机系统相比具有如下特点:可裁剪性好、系统内核小、功耗低、可靠性高、实时性好等。嵌入式Linux和Linux应用程序开发没有太大区别,但是,嵌入式Linux系统的开发过程中同纯粹基
16、于Linux环境下的开发流程有着一个本质的不同之处:前者需要在宿主机器上交叉编译、交叉调试,而在目标机上运行被调试程序;而后者都是在通用计算机上进行本机编辑,本机编译、连接、调试、运行的。UNIX,作为现代操作系统的祖先,从贝尔实验室流传出来。而在UNIX的发展过程中,产生的C语言,是贝尔实验室对科技发展的又一重大贡献。贝尔实验室的母公司一一美国电话和电报公司(AT&T,见有利可图,就禁止免费使用UNIX并推出了收费版本UNIXSystemV。之后UNIX分化成了许多不同分支和发行版本,最著名就是FreeBSDUNIX。GNU,即GNUsNotUNIX。该组织建立与1983年,其目标是
17、创建一套完全免费的、自由的UNIX-like系统。该组织编写出了一个完整操作系统的大部分内容,如编译器、系统管理工具、网络工具、Office套件、多媒体和绘图软件, 除了内核。Linux由LinusTrovalds于1991年发明, 是1990年后出现的新学派Unix阵营(也包括FreeBSD、NetBSD、OpenBSD和Darwin)的领头羊,代表了整个阵营的设计方向3。一个叫Linus的大二学生写出了一个内核,被GNU看中,然后就有了今天的Linux。Linux,最大的特色是开源和免费,遵循着GPL开发者们可以根据自身需要灵活的进行定制化开发,因此也产生了相当多的Linux的发行版本。1
18、.2.3ARM的介绍嵌入式处理器与常见的基X86架构处理器的PC相比,最大的优势是低功耗。止匕外,嵌入式操作系统是实时操作系统,着眼于调度所有可以使用的资源南京工程学院毕业设计说明书(论文)来完成实时控制任务,而桌面操作系统如UNIX、Linux和Windows都是分时操作系统。按照处理器内核的体系结构,可以将嵌入式处理器分为:MIPS处理器、ARMt理器、PowerPC处理器、ColdFire/68K处理器等。智能手机和平板电脑的流行,让“ARM这一词语频繁出现在人们的视野中,普通人都常常能到报纸、电视上见到这个词。什么事ARM?ARM是AdvancedRISCMachines(高级精简指令
19、集处理机)的缩写,表示一种知识产权核。同时“ARM也是一家公司的名称,ARM这家公司于1991年成立于英国剑桥,该公司的特点是只设计基于ARM架构的处理器内核,再将该产品及相关专利授权给其他半导体厂商、软件厂商和OEM厂商公司使用或生产,包括Intel、Apple、微软、三星、高通、索尼等4,AR必司本身没有任何工厂。英特尔当前是全球PC处理器的主导者,市场份额超过了80%12012年全球PC市场在过去的10年间首次出现下滑,而ARM的份额逐年加I步增长。ARM公司与2012年十月发布的Cortex-A50核心,面向服务器领域,此番旨在同Intel争夺其基于X86体系的服务器市场。几乎在同时,
20、AMDS布基于此核心来开发64位ARM架构的处理器, 这使得AMD成为业界中不仅唯家具有独立制造CPU和GPUtg力的厂商,而且将是唯一一家能提供基于X86和AR臊构的处理器芯片的厂商。 微软于2012年10月发布基于ARMCPU的SurfaceWindowsRT,同时也意味着视窗操作系统从Windows8开始可以在ARMFF台上运行了。ARM处理器分为如下几个系歹hARM7ARM9ARM9EARM10EARM11Cortex-A8、Cortex-A9、Cortex-A15等。本毕业设计基于三星S3c2440的XC2400开发板,具微处理器为基于ARM9内核的ARM920T。1.2.4Qt的介
21、绍Qt是挪威TrollTech公司开发的跨平台C+图形用户界面研发工具。2008年该公司被Nokia收购。2009年Nokia公开了Qt的源代码。2012年,Nokia南京工程学院毕业设计说明书(论文)将Qt售予芬兰软件公司Digia,而Qt仍将保持开源。Digia计划将Qt推广到Andriod、iOS和Windows8平台。Qt的一个显著特点是跨平台特性。通过对不同平台的私有API,如文字处理、网络协议、进程处理、线程、数据库访问等进行封装。Qt可以在多个平台(Unix、Linux、Windows、Mac等)上运行,从某种意义上讲,Qt类似于Microsof的MFCSBorland的VCL,
22、都是C+的一个函数库。 不同的是它封装不同操作系统的访问细节,而且能实现跨平台应用5。QT的版本比较多,对于初学者容易搞混。现分别介绍:(1)Qt/X11:是指用专门于Linux或者Unix的版本。如:qt-x11-opensource-src-463.tar.gz,它是用于PC机linux平台的Qt源码包。Linux操作系统中的常见的KDE桌面就是用Qt/X11开发的;QtWindows:是指用于Windows的Qt版本;(3)Qt-everywhere:在配置时加上不同参数的话,选择性地编译用于X86,或者用于ARMFF台,如qt-everywhere-opensource-src-4.6
23、.3.tar.gz;(4)Qt/Embedded:即Qt/E。 其 是 专 门 用 于ARM平 台 的Qt版 本 。 如qt-embedded-linux-opensource-src-4.6.3.tar.gz,它是用于嵌入式ARM的qt源码包。本次毕业设计将在X86平台上安装面向Qt/X11的Qt,软件版本为qt-SDK-linux-x86-opensource-2010.04。安装在/opt目录下, 在桌面会生出QtCreator快捷方式,打开后进行一些参数的设置之后即可进行程序的开发,例如指定qmake的路径。1.3论文所做的工作和结构1.3.1论文所做的工作本毕业设计在RedHatEn
24、terpriseLinux中安装QtCreator开发工具, 实现在嵌入式Linux下的MP3播放器。能通过图形界面控制播放和暂停、快进快退、上下曲、音量增减、显示歌曲状态信息等功能。本课题的主要研究内容包括:(1)了解一个嵌入式Linux系统的开发流程;南京工程学院毕业设计说明书(论文)(2)开发平台的搭建:包括交叉编译环境的建立、环境变量的配置等;(3)掌握Linux内核的移植、开源MP3音乐播放器的移植、用Qt开发的程序及其移植;(2)了解Bootloader的功能和作用;(2)掌握嵌入式Linux的程序开发,以及编译、调试方法和步骤。需要解决的关键性问题:(1)熟悉嵌入式Linux和其
25、开发流程中涉及的的裁剪和移植;(2)开源播放器MPlayer的移植和播放测试;(3)用Qt实现对播放器的图形界面的开发,并实现相应的功能。1.3.2论文结构本论文共分六章:论文的第一章,是绪论部分。主要是对课题的研究目的及意义,课题现状以及作者所做的工作进行简略的介绍;对嵌入式操作系统进行梳理和介绍和以比较;介绍ARMfr系的基本发展和特性;对Qt进行基本的介绍。第二章主要介绍了本系统的硬件平台。首先是对系统的整体架构进行了介绍;对系统的硬件电路和功能模块进行了介绍。第三章主要是搭建嵌入式开发平台。介绍RedHat、VMwareStation及其相关的使用和技巧。第四章主要是详细MPlayer
26、的编译和移植工作,以及Qt程序的开发和移植工作。第五章主要是实验结果和毕业设计过程中遇到的一些问题。第六章是总结与展望,回顾了本次毕业设计及其中的不足之处。南京工程学院毕业设计说明书(论文)第二章系统总体方案设计2.1系统框架概述根据嵌入式MP3媒体播放器系统的需求分析,本文选择了基于ARM9内核的处理器的开发板作为本系统的实现的平台, 下文将对其中硬件设备做介绍。 软件平台选择嵌入式Linux操作系统。毕业设计中的开发平台是RedHatEnterpriseLinux6.3操作系统,其是安装在VMwareStation9.0虚拟化平台中的,可以方便的与Windows操作系统进行数据共享和传输。
27、为了搭建整个开发环境,还需要交叉建立交叉编译环境。播放器系统的整体结构由下到上为:应用层(Qt、MPlayer)、操作系统层(Linux)、驱动层(音频驱动、液晶屏幕驱动等)和物理层(ARM芯片以及外围电路)。2.2开发板硬件介绍本次毕业设计使用XC2440开发板,如图2.1所示:包括S3C2440处理器、NANDFlash、NORFlash、SDRAM串口、下载接口、音频解码芯片和接口、LCD和触摸屏接口、时钟电路、复位电路等。南京工程学院毕业设计说明书(论文)一图2.1XC2440开发板2.2.1主要硬件及其参数CPU主频为400MHz的三星S3C2440A内存:64MBytesSDRAM
28、闪存:256MBytesNandflash+2MBytesNorflash板载复位电路板载电源管理芯片内部RTC(Real-TimeClock,实时时钟)功能180Pin管脚以1.27mm间距排针形式引出4.3寸TFTLCD,带触摸屏,分辨率480X2722.2.2接口资源1个100M以太网接口南京工程学院毕业设计说明书(论文)1个RS232电平串口2个TTL电平串口1个USBHOST接口2个USBDEVICE接口1个LCD接口3个Camera接口1个microSD/TF卡接口2个音频接口,uda1341音频芯片,使用IIS和L3总线,一路立体声输入,一路立体声输出1个温度传感器1个红外接收管
29、2个电位器4个用户LED4个用户按键1个蜂鸣器1个JTAG接口1个mircoSD/TF卡接口板载EEPROM板载RTC供电电池2.2.3 NAND和NORFlash的相关介绍:“NAND这个名称表示其是由“与非”逻辑门电路构成,而“NOR则表明其内部有“或非”逻辑门电路构成。从对数据传输速率来看,NANDg比NOR快很多, 因为NAND!按页操彳的而NO双按字节操作的。NOR是和SRAMK样的可随机存储的,也不需要驱动,因此,其受限于地址线,地址就是有限的,所以容量普遍较小;NOR的优点则表现在读取速度快,而且程序可以直接在芯片内部运行,不需要再读入SDRAMS了。再从价格上来看,NOR勺价格
30、更高。从实际应用来看,NOR较多的用在工业领域, 特别是用于程序存储等少量数据存储的需求;NAN而多使用再在消费领域中,适合大量数据存储。南京工程学院毕业设计说明书(论文)U-boot程序不支持从Nandflash启动,但是S3c2440支持从Nandflash启动。开发板加电后S3c2440将Nandflash的前4k(保存有U-boot的部分功能)中的内容拷贝到SDRAM这就需要修改U-boot源码,使得U-boot在得到执行权后能够将其自身拷贝到开发板上SDRAM中,以便处理器能够执行U-boot。幸好这些工作已经由开发板厂商完成了,不需要用户自行开发。2.2.4 S3C2440的启动方
31、式说明如果把S3C2440配置成从NANDFlash启动(开发板启动开关拔至NAND端)S3c2440的NAND空制器会自动把NANDflash中的前4K代码数据复制至内部SRAM中(地址为0 x40000000),同时还把这块SDRAM的地址映射为0 x00000000(CPU总是从0 x00000000地址开始运行程序)。如果将S3c2440配置成从NORFlash启动(开发板启动开关拔至NORS),0 x00000000就是NORFlash实际的起始地址,Norflash中的程序就从这里开始运行,不会涉及到数据拷贝和地址映射。2.3用于本设计MP3播放器的硬件架构该MP3播放器系统总体框
32、图如图2.2所示:包才5基于ARM价格的三星S3c2440处理器,NANDSDRAM#储器、音频处理模块、LCD和触摸屏接口、复位按键、J-link接口等。NORFLASHNANDFLASHSDRAMJIJinS3C2440(ARM9nun1、/f4 口RJ-45-液晶触摸屏以卡取1接n音频处理模块图2.2MP3播放器硬件框图10南京工程学院毕业设计说明书(论文)本方案的说明:采用基于ARMS3c2440的开发板。XC2440开发板采用ARM9系列芯片S3C2440作为核心芯片,搭配4.3英寸液晶触摸屏,以及自带音频解码芯片UDA1341,完全胜任MP3文件的解码工作。NORFlash用来存放
33、着引导程序U-boot;NAND中除了放着U-boot还有系统内核及文件系统,以及歌曲文件;SDRAMW于存放着系统的运行中产生的数据;液晶触摸屏可以让用户进行操作,播放视频时还可以看到视频;系统采用嵌入式Linux系统,Linux操作系统具有很多优点,如内核可裁剪、高度的可移植性等,支持几乎所有的主流芯片,并且还在不断地被移植至新的芯片上。此外采用开源Linux系统,不需要像其它一些系统那样需要缴纳专利授权费用。11南京工程学院毕业设计说明书(论文)第三章嵌入式Linux的开发流程3.1开发环境的搭建概述3.1.1硬件平台ARM开发板,主机,局域网。3.1.2软件平台(1)操作系统本次毕业设
34、计使用虚拟化平台VMwareStation,并在其中建立虚拟机,进而在该虚拟机之中安装RedHatEnterpriseLinux系统。(2)交叉编译环境交叉编译是指:在PC机上编译,在目标板上直接可以执行,不需要重新在目标平台上面进行编译了。交叉编译环境主要包括:目标板操作系统、目标板CPU系架构、编译器等。目标板操作系统:经过裁剪的Linux系统。目标板使用的CPU基于ARM狄构的ARM920t内核。编译器:gcc,arm-linux-gcc、makefile工具、库函数等。3.主机和开发板之间的通信接口用口:用用口控制板子。可用DNWW次件设置好要控制的串口、波特率。使用用口线也可以传输文
35、件至开发板,但是速率较慢。USB下载线:可以使用DNW软件下载U-boot、系统内核、文件系统镜像文件到开发板,传输速率较快。RJ-45以太网接口:设置好开发板、PC网卡的IP地址后,可以用NFS挂载的方式来共享主机需要下载到开发板上编译好的代码,也可以使用FTP、TFTP工具来传输文件,这样速率非常快,并且很方便使用。在配置好网络后,就可以用Telnet客户端控制开发板,这样就可以免去频繁的切换目录了。3.2安装软件平台和搭建开发环境的步骤12南京工程学院毕业设计说明书(论文)3.2.1虚拟化平台的介绍与安装毕业设计中的开发平台是Linux操作系统,其是安装在VMwareStation9.0
36、这个虚拟化平台中的,可以方便的与Windows操作系统进行数据共享和传输。目前,Windows操作系统中的很多常用软件并不支持在Linux平台上运行,如果直接安装Linux,那么在纯粹的Linux环境中,将会有很多不便。VMwareWorkstation是一款功能强大的提供桌面虚拟化功能的软件,使用户可在单一的桌面上同时运行多个操作系统,是进行开发测试部署新的应用、服务、程序等的最佳解决方案。 可在一台真实机器上模拟完整的网络环境, 其更佳的灵活性与先进的虚拟化技术胜过了市面上其它厂商的的虚拟化软平台。 利用该软件, 可以建立许多虚拟机。可以认为虚拟机是运行在同主机操作系统平行的底层硬件环境中
37、的。快照功能介绍和使用:VMware快照功能是虚拟机磁盘文件(VMDK在某个时间点的复本。万一某些东西出错了,你可以通过使用恢复到快照来保持磁盘文件系统和系统存储。如果你创建了多于一个的虚拟机快照,那么,你将有多个还原点可以用于恢复。简单说来,其实VMware快照就是将当前VMware虚拟环境里的系统所有环境做个备份(即照个相),让我们虚拟机里的系统出问题之后可以马上恢复。这个功能就有点类似于我们系统备份功能!但是VMware的快照比系统备份功能更强一些,如硬件及一些设置都可以保存下来。在开发环境中,使用的是root账号,常常进行一些比较危险的操作,为了避免误操作而是得系统受损坏, 或者要撤销
38、之前所做的重大更改等。 比如为了安装不同版本的多个交叉编译器,就可以使用该功能。在本次毕业设计中,就使用了几次快照进行还原。建立的快照如图3.1所示。13南京工程学院毕业设计说明书(论文)RedHatEnterpriseLinux6X86-SnapshotManager刚安装用好网络、安装Ep-urMpUyer交叉烟MPhyerqtGUI+口RMRM下的mplayEfmplayEf图3.1本次毕业设计中建立的快照3.2.2RedHat介绍及其在VMware中的安装Linux是一类Unix计算机操作系统的统称。Linux操作系统内核的名字也是“Linux。Linux操作系统同时也是自由软件运动中
39、和开放源代码社区发展中最著名的例子。严格地来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU项目中的各种工具和数据库的操作系统。RedHat公司创建于1993年,是世界上最资深的Linux和开放源代码提供商,同时由RedHat公司发行的RedHatLinux系统也是最获得市场认可的Linux发行版本。RedHatLinux是商业上运作最成功的一个Linux发行套件,普及程度很高。RedHatLinux自9.0之后不再发布个人用户版,从此专注于企业级用户:2004年4月30日,RedHat公司正式彳止对RedHatLi
40、nux9.0版本的支持,标志着RedHatLinux的正式完结。原本的桌面版RedHatLinux发行包则与来自民间的Fedora开源社区合并,成为FedoraCore发行版本。RedHat公司不再开发桌面版的Linux发行包,而将全部力量集中在企业版的开发上,也就是RedHatEnterpriseLinux(如图3.2所示)版本,但仍然公开源码。融dhdh抗系统交叉编译之前的环境编译可以故音乐flayerflayer14南京工程学院毕业设计说明书(论文)REDHATENTERPRISELINUXREDHATENTERPRISELINUX4 46 6CopyrightCopyright心200
41、1-2010RedHatInc.andothen.Allrignureserved.2001-2010RedHatInc.andothen.Allrignureserved.图3.2RedHatEnterpriseLinux6安装界面截图2005年10月RedHatEnterpriseLinux4.0发布。Fedora是Redhat桌面版本的延续,具是与开源社区合作的。另一个Linux发行版本CentOS,也是CentOS社区完全使用RedHat原代码创新编译,仅仅更改LOGO?极少部分。2007年3月,RedHatEnterpriseLinux5.0发布。2011年11月10日RedHatE
42、nterpriseLinux6.0正式版发布。目前最新版本已经到6.4版本。本次毕业设计使用RedHatEnterpriseLinux6.3版本。注意点:在安装时需要选择“桌面”,这样开机就有GUI界面了,方便使用。如图3.3所示。RedHatEnterpriseLinux的详细的安装过程就不在赘述了。RedHatEnterpriseLinux的融认安装是基本服务据安装.您现在可以随意选择不同的软件组心O基本服务耦O数据库服务梆O万维网服务梆O身价管理服务器O虚拟化主机图3.3选择“桌面”选项15南京工程学院毕业设计说明书(论文)RedHatEnterpriseLinux系统有一个优点,就是方
43、便安装软件:将安装光盘或者镜像文件挂载为本地的“软件源”,这样就以直接搜索一些常用的软件包,搜索到之后可以直接安装,不需要再进行下载了。如果这些包需要再安装一些存在依赖关系的软件,就自动安装了。这是比Ubuntu等Linux发行版本的一个优势,至少可以节约开发人员的时间。本次毕业设中,有几次都在编译时报错,并提示缺少如ncurseslibraries、autoconf、g+等软件,使用这个方法可以快速安装这些软件。注意,必须要将操作系统光盘镜像文件改名为“RedHatEnterpriseLinux6.3”挂载为“软件源”,这样才能成功。3.2.3安装VMwareTools点击“VM-Insta
44、llVMwareTools”,会自动下载VmwareTools软件(当然前提是正确配置虚拟机的网络,在此就不进行详细的介绍了),作者使用的版本是VMwareTools-923-1031360.tar.gzVMwareTools是VMware虚拟机中自带的一种增强工具, 是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。只有在VMware虚拟机中安装好了VMwareTools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按Ctrl+Alt),且虚拟机屏幕也可实现全屏化。有时需要将Windows下面的文件和L
45、inux共享起来,这样就可以方便的在Linux下面编译运行代码,然后把编译后的数据通过Windows下的工具传到开发板里面。依次点击VMwareSetting-Option-SharedFolders,选择“AlwaysEnabled”,并添加准备共享给虚拟机的文件夹。共享文件后,就可以在RedHat的/mnt/hgfs/目录下看到共享的文件。下面讲述如何详细装VMwareTools的过程:(1)点击菜单“VMT选项卡,选择Installvmwaretools这个时候会出来一个可以安装的.gz格式的压缩文件包(2)cd/media/VMwareTools/就会看见这个压缩包16南京工程学院毕业
46、设计说明书(论文)tar-zxvfVMwareTools-9.2.3-1031360.tar.gz/tmp/将这个压缩包解压到/tmp目录下面(4)cd/tmp/vmware-tools-distrib/5 5)./vmware-install.pl这样就进入安装vmware-tools的界面了,在安装的过程中,会出现许多可选功能让用户进行选择,直接接回车键就可以了。(6)安装完VMTool之后,再进入/mnt/hgfs/目录下,就可以看到已经共享的文件了。6 .2.4安装交叉编译器本次毕业设计所使用的交叉编译器版本是arm-linux-gcc-4.1.2,其源码包为:arm920t-eabi
47、-4.1.2.tar.gz。安装和验证的步骤如下:(1)使用解压命令:tarzxvfarm920t-eabi-4.1.2.tar.gz-C/opt,将该文件解压到/opt下;(2)接着修改/etc目录下了profile文件来设置环境变量:vi/etc/profile;然后向该文件中最后面加入一行:exportPATH=/opt/toolchains/arm920t-eabi/bin:$PATH;(3)随后用保存退出。执行命令source/etc/profile,这样就不需要重新启动计算机就使得上述更改立即生效了。(4)在控制台输入“arm-linux-gcc-v”,出现图3.4中的信息, 最后
48、一行信息表明安装成功。17南京工程学院毕业设计说明书(论文)rootlocalhost:/文件旧编辑(日查看国)搜索终端(工)帮助(日)rootlocalhost/#arm-linux-gcc-vUsingbuilt-inspecs.Taqet:arm-angstrom-linux-gnueabiConfiguredwith:/data3/builds/openmoko/tmp/work/armv4t-angstrom-linux-gnueabi/gcc-cross-4.112-r4/gcc-4.1.2/configure-build=i686-linux-host=i686-linux-1a
49、rget=arm-angstrom-Linux-gnueabi-prefix=/opt/toolchains/arm920t-eabi-exec_prefix=/opt/toolchains/arm920t-eabi-bindir=/opt/toolchains/arin920t-eabi/bLn-sbindir=/opt/toolchains/ariii920t-eabi/bin-libexecdir=/opt/toolchains/arm920t-eabi/libexec-datadir=/opt/toolchains/arm92et*eabi/share-sysconfdir=/opt/
50、toolchains/arm920t-eabi/etc-sharedstatedir=/opt/toolchains/arm920t-eabi/com-localstatedir=/opt/toolchains/arm920t-eabi/var*-libdir=/gpt八oolchains/aringNOt-edbi/lib-included!r=/opt/toolchains/arm920t-eabi/include-oldincludedir=/opt/toolchains/arm920t-eabi/include-infodir=/opt/toolchains/arm920t-eabi/
51、share/info-Dandir=/opt/tQolchains/arni92Gt-eabi/share/iTian-with-gnu-ld-enableshared-enable-target-optspace-enable-languages=c,c+-enable-threads=posix-enable*niultil.ib-enable-c99-enablelong-long-enableSymvers=gnu-enable-libstdcxx-pch-programprefix=arm-angstrom-linux-gnueabi-with-local-prefix=/opt/t
52、oolchains/arm92St-eabi/arm-angstrom-Linux-gnueabi-with-gxx-include-dir=/opt/toolchHins/ant92t-edbi/a(n-Hngstom-linux-gnueaibi/includE/c+-disable-multilib-enable-_cxaatexit-with-float=SOft-di$able-lib$p-disable-libunwind-exceptions-WLth-mpfr=/data3/builds/openmoko/tmp/staging/i686-linuxThreadmodel:po
53、sixgccversion4,1,2root(?localhost/#rootlocalhost/#rootlocalho$t/#图3.4查看安装的arm-linux-gcc相关信息3.3Bootloader和U-boot的介绍启动一个计算机系统的第一步操作是加电,随后引导程序运行,读取硬盘上的内核镜像进而载入RAM然后才是启动操作系统。Windows系统中的引导程序就是称为BIOS的程序,而在Linux中的引导程序则称为Bootloader。通过这段程序,可以初始化硬件设备。Linux下的的开源Bootloader有GRUBLILO、Loadlin、RedBoot、U-Boot、BLOBLi
54、nuxBIOS、Etherboot和ROLOo存储介质如磁盘、NORFlash或NANDFlash,它们的物理地址起点开始放置着引导程序,即Bootloader程序。18南京工程学院毕业设计说明书(论文)U-Boot是一个通用的引导程序(UniversalBootLoader),其通用性主要体现在不仅支持对多种嵌入式操作系统的引导,包括Linux、QNXLynxOS、NetBSDVxWorks等;而且对多个体系架构的嵌入式处理器提供支持,如ARMPowerPCMIPS和XSCALE。U-Boot是目前ARM平台使用最多、应用最广泛Bootloader了。Bootloader(即U-boot)的
55、功能:设置并初始化硬件如CPURAM、中断、时钟、串口;引导操作系统;下载程序、烧写系统、开机LOGO、驱动管理和闪存分区管理等功能。3.3.1烧写U-boot刚拿到开发板时,由于对烧写不够熟悉,操作错误,令NAN吩区中的数据受破坏, 导致无法通过NANDMU-boot启动。 而XC2440开发板的NORFlash中默认没有U-boot,所以需要重新烧写U-boot这一步骤。19烧写硬件工具:J-Link仿真器(如图3.5所示)南京工程学院毕业设计说明书(论文)烧写软件工具:Setup_JLinkARM_V408i(安装好之后,桌面出现多个快捷方式,点击一个名为J-FlashARM的快捷方式)
56、。烧写流程:连接线路;由于J-Link仿真器只能烧写NORFlash(J-TAG仿真器才是既能烧写NORFlash,又能烧写NANDFlash的,但是其价格更贵),所以先向NO烧U-boot,再从NOR0动U-boot,进而向NANDO写U-boot。烧写关键步骤的说明:打开J-FlashARM“Option”菜单“ProjectSetting”,进入工程配置界面。有一项对CPU的配置,如图3.6所示,其中的“Core”选项选择ARM9;“CheckcoreID”中填写“00324090”,该数字表示的是S3c2440这一CPU的ID号;“UsetargetRAMAddr”表示SDRAM的起始
57、地址为40000000;“Usefollowinginitsequence”表示将要设置SDRAM的初始化序列,该参数用来设置一些寄存器,如看门狗定时器控制寄存器、中断屏蔽寄存器、CPU时钟分频控制寄存器等。Projectsettings77CheckcoreIDCheckcoreIDID|0032409DID|0032409D*UsetargetRAM(faster*UsetargetRAM(fasterUsefollowinginitsequenceUsefollowinginitsequence:图3.6对CPU的配置20tt|Actiontt|ActionValueOValueOVak
58、ielVakiel0 0ResetReset0 00m50m51 1DisableMMUDisableMMU2 2Write32bitWrite32bit0 x530000000 x530000000 x000000000 x000000003 3Write32bitWrite32bitOMAOOOOOBOMAOOOOOBOxFFFFFFFFOxFFFFFFFF4 4Write32bitWrite32bitOx4AD0001COx4AD0001CM0007FFFM0007FFF5 5Write32bitWrite32bit0 x460000000 x460000000 x2210 x2212D
59、1102D1106 6Write32Write32Ox4EOOOOOOOx4EOOOOOODxOOOOOF40DxOOOOOF407Wnte32HtWnte32Ht0 x460000030 x46000003Ox00002E50Ox00002E50g gWrite32bitWrite32bitOx4GOOOOOCOx4GOOOOOCOx00002E50Ox00002E509 9Write32bitWrite32bit0 x400000100 x40000010阿0000定5 5口1010Write32bitWrite32bit0 x460000140 x46000014000002E50000
60、002E50ResetandhalttaqjetResetandhalttaqjetProductionProductionAddr40000000|4KBAddr40000000|4KB南京工程学院毕业设计说明书(论文)设置好相关参数之后,在“File”菜单中,选择“Operf,打开要烧写的镜像文件,这里我们烧写U-boot.bin文件。目的地为NORFlash。最终出现如图3.7的提示信息,表明烧写成功。DatafileopenedsuccessfullyDatafileopenedsuccessfully(248060byt-es(248060byt-es11rMig%CRC1rMig%CRC=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 剪纸课题立项申报书
- 事故车交易合同范本
- 上海嘉善房屋出租合同范本
- 高中课题申报书
- 课题申报书亮点
- 临时用工劳务合同范本 三
- 劳务拆迁采购合同范本
- 合同范本 材料价差调整
- 劳务公司包工合同范本
- 与中介签买房合同范本
- 中职统编《金属材料与热处理》系列课件 第3章 铁碳合金(动画) 云天系列课件
- 新苏教版六年级科学下册全册知识点
- 人教版七年级下册地理全册复习知识点汇总课件
- 外墙瓷砖隐患排查施工方案
- QC成果劲钢混凝土结构钢骨柱梁安装质量控制
- 国家公务员考试准考证模板
- 绪论历史地理学
- 中小学教师学生心理健康教育及案例
- 2024年四川省绵阳市中考物理试题 2024年绵阳中考分数线
- 2023学年完整公开课版大足石刻
- 2023年《精子战争》作者罗宾·贝克
评论
0/150
提交评论