《基于arm9的mp3播放器设计,单片机linux开发.doc》由会员分享,可在线阅读,更多相关《基于arm9的mp3播放器设计,单片机linux开发.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 . . . 民族学院科技学院毕业论文(设计)基于arm9的MP3播放器学生:文萍 学 号:K030731020系 别:信息工程学院 专 业:计算机应用技术指导教师:胡涛 评阅教师:胡涛论文答辩日期答辩委员会主席摘 要随着电子技术的飞速发展,嵌入式在各个领域中的应用也是越来越广,在各个行业都能够看到嵌入式的身影。对于广大年轻人来说,他们最熟悉的嵌入式设备就要数MP3了。随着MP3作为消费类产品的普与,越来越多的人开始使用MP3,而与此相进步的是MP3的设计与生产。近几年来,MP3的设计与制作技术也在不停的更新与升级,在当前的MP3播放器中,一般使用外置独立的MP3硬解码芯片。此种方案的好处是可
2、以使用众多的MCU,可根据需要任意选择。MP3作为一种高质量音乐压缩标准,采用MP3压缩的数据量可以缩小到1/12,音质却没有多少损失。由于MP3音乐的较小数据量和高质量的播放效果,使其在网络上传输得以实现,因此风靡网络。本文是在ARM硬件平台上设计与实现的MP3播放器。采用Qt编程语言编写;利用开源的高质量MPEG音频解码库MAD进行解码,生成PCM数据;利用OSS音频驱动程序处理PCM数据。本文的主要工作如下:详细介绍了音频压缩技术和嵌入式系统相关知识;在主机上建立了MP3播放器开发所需要的交叉编译环境以与QT编程开发工具,并建立了硬件开发平台;在ARM的硬件平台上完成桌面系统Qtopia
3、和MP3播放器的移植;在MP3播放器软件设计中,代码顶层使用符合Qt特点的C+语言对播放器进行用户界面设计;用户可以对MP3文件进行选择、播放、暂停和音量调节。关键词:arm9,嵌入式系统,MP3播放器,QTAbstractWith the rapid development of electronic technology, embedded applications in various fields is increasingly widely in various industries to see the embedded figure. For all young, they ar
4、e most familiar with a few MP3 of embedded devices we must. With the MP3 as the popularity of consumer products, more and more people started using MP3, but with this progress is the design and production of MP3. In recent years, MP3s design and production techniques are constantly updating and upgr
5、ading the current MP3 players, the general use of external stand-alone MP3 hardware decoder chip. The benefits of such programs is to use a large number of MCU, can be arbitrarily chosen. As a high quality MP3 music compression standard, with MP3 compressed data can be reduced to 1 / 12, but there i
6、s little loss of sound quality. MP3 music as the smaller amount of data and high-quality playback, so the network transmission can be achieved, so popular in the network. This article is in the ARM hardware platform design and implementation of the MP3 player. Qt programming language used; use of op
7、en source high-quality MPEG audio decoder library MAD decoding, generates PCM data; use OSS audio driver processing PCM data. The main work of this paper is as follows: Details of the audio compression technology and embedded systems knowledge; established in the host MP3 player needed to develop cr
8、oss-compiler development tools, programming environment and the QT, and the establishment of a hardware development platform; in the ARM- hardware platform to complete the desktop Qtopia and MP3 players transplantation; in MP3 players, software design, code top-level that meets Qt features of C + +
9、language of the player user interface design; users can MP3 files to select, play, pause and volume control. Keyword: arm9, embedded system, MP3 player, QT 目 录摘 要Abstract .目 录1.绪论51.1 课题背景51.2嵌入式操作系统概述81.3音频压缩技术介绍91.4 ARM7与ARM9的区别102. Qt开发环境介绍112.1 Qt简介112.2 系统的软件分析与设计122.3 交叉编译环境的建立123. 硬件开发平台的构建14
10、3.1 硬件开发板143.2 硬件开发环境的建立154. MP3播放器的系统结构164.1 存储系统164.2 通信接口175. 播放器的设计与实现185.1 MP3音频解码模块195.2 Linux下音频驱动模块205.3 定时器和按键的设计215.4 QT/E和MAD动态库的编译225.5 Qtopia相关软件的编译235.6 Qtopia桌面系统的移植265.7 MP3播放器应用程序的移植276. MP3播放器的测试297. 总结与展望30致31参考文献321. 绪 论1.1 课题背景我们满怀憧憬与希望跨入二十一世纪大门的时候,计算机技术也开始进入一个被称为后PC技术的时代。在现在日益信
11、息化的社会中,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人,需要的已经不再仅仅是那种放在桌上处理文档,进行工作管理和生产控制的计算机机器;各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机,任何一个普通人可能拥有从大到小的各种使用嵌入式技术的电子产品,小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床,智能工具,工业机器人,服务机器人也将逐渐改变传统的工业和服务方式。 目前嵌入式系统技术已经成为了最热门的技术之一,吸引了大批的优秀人才投入其中。但是对于何为嵌入式系统,什么样的技术又可以称之为嵌入
12、式技术,仍在讨论之中,有关嵌入式系统定义的问题,已经在很多论坛社区引发了多次争论。就这个问题我们可以分别从广义上和狭义上讲: 广而化之,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。作为系统核心的微处理器又包括三类:微控制器(MCU)、数字信号处理器(DSP)、嵌入式微处理器(MPU)。所以有人简单的说:嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。还有人认为嵌入式系统就是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。应该说后者从功能应用特征上比较好的给出了嵌入式系统的定义,嵌入式的概念的分析
13、根本上应该从应用上加以切入。 从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己的操作系统并且具有某些特定功能的系统,这里的微处理器专指32位以上的微处理器。按照这种定义,典型的嵌入式系统有使用x86的小型嵌入式工控主板,在各种自动化设备,数字机械产品中有非常广阔的应用空间;另外一大类是使用Intel,Motorola等专用芯片构成的小系统,它不仅仅在新兴的消费电子和通讯仪表等方面获得了巨大的发展应用空间,而且甚至有趋势取代传统的工控机。现在大家更加清楚的看到:嵌入式技术的春天已经来了。所以也就难怪嵌入式系统成为当前最热门的技术之一。(以下我所说的嵌入式系统特指采用32位,6
14、4位微处理器的系统) 嵌入式系统可以称为后PC时代和后网络时代的新秀。与传统的通用计算机,数字产品相比,利用嵌入式技术的产品有其自己的特点: 1由于嵌入式系统采用的是微处理器,实现相对单一的功能,采用独立的操作系统,所以往往不需要大量的外围器件。因而在体积上,功耗上有其自身的优势。相比之下,一个使用Windows CE的PDA,仅靠机电源就可以使用几天,而任何一台笔记本仅仅能够支持3小时左右。 2嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,是一门综合技术学科。由于空间和各种资源相对不足,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同
15、样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。3嵌入式系统是一个软硬件高度结合的产物。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。片上系统,板上系统的实现,使得以pda等为代表的这类产品拥有更加熟悉的操作界面和操作方式,比着传统的商务通等功能更加完善,实用。 4.为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设
16、备和信息终端交换信息)与实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。5因为嵌入式系统往往和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。虽然嵌入式系统这一名词在最近几年才成为流行。但早在80年代,国际上就有一些IT组织、公司,开始进行商用嵌入式系统和专用操作系统的研发。从硬件方面讲,32,6
17、4位微处理器是目前嵌入式系统的核心,它们的使用同样也是未来发展的一大趋势。 为了抢占这个无限广阔的市场,各大硬件厂商竞相推出产品,包括Intel,Motorola,Philip,AMD等等均不甘示弱,几乎每个月都有新产品出现。进入十一月以来,Microchip推出具有数字信号处理能力的微控制器(DSC),Atmel也推出针对消费市场的可编程系统芯片(PsoC)。市场之争日益激烈,同时也给嵌入式技术的发展带来了无限活力。从软件方面讲,目前的几大软件平分天下。VxWorks 是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,但是由于很多API是这个系统本身独有的,使得开发的
18、兼容性受到较大影响。Os-9是主要为高科技产品设计的,提高了很好的安全和容错性,并且有很好的升级能力和灵活性。Palm Os,是Palm公司的操作系统,和微软的Windows CE是PDA操作系统的两大巨头。由于Windows CE的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制,以与微软公司强大的技术力量,虽然目前Palm还占有大部分的市场份额,但是有理由相信Win CE,必将成为PDA系统软件的一个霸主。由于国际PDA市场的快速增长,目前基于Palm和基于Win CE的应用软件有着大量的需求。这类软件由于系统功能的单一,所以软件功能也趋向专一化。而掌上设备的各种通讯
19、,管理软件需求量极大。同时开发环境齐备,可以完全在PC机上进行,通过软件模拟调试,等到模拟通过再下载入机器,而且因为可以使用大量的pc机的API函数,SDK,所以开发过程是在已有的成熟技术基础上进行,相对简单,吸引了大量的软件开发人员进入这一领域。 未来的几年,随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼洛庞帝99年1月访华时预言,45年后嵌入式智能(电脑) 工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家绪榜院士98年11月在全国第11次微机学术交流会上发表的计算机的发展与技术一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科
20、学的阐述和展望。1999年世界电子产品产值已超过1200亿美元,2000年达到1300亿美元,预计2011年,销售额将达2800亿美元。 进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。数字音频广播(DAB)也已进入商品化试播阶段。而软件、集成电路和新型元器件在产业发展中的作用日益重要。所有上述产品中,都离不开嵌入式系统技术。象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用32位以上芯片级的嵌入式技术。在
21、个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通讯软件。由于嵌入式设备具有自然的人机交互界面,GUI屏幕为中心的多媒体界面给人很大的亲和力。手写文字输入、语音拨号上网、收发电子以与彩色图形、图像已取得初步成效。 目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。近期长虹推出的ADSL产品,结合网络,控制,
22、信息,这种智能化,网络化将是家电发展的新趋势。由此可见,嵌入式系统技术发展的空间真是无比广大。嵌入式系统是研究的热点。促使我们投入到这个广阔的事业中去。在研究的同时,我门也可以发现由于嵌入式系统并不是突然出现的,对于微处理器应用的研究和硬件系统的研究已经有了一个很长时间的发展历史。所以无论是从硬件方面还是软件方面我们都很容易获得研发的资料。硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。从软件方面讲,也有相当部分的成熟软件系统
23、。国外商品化的嵌入式实时操作系统,已进入我国市场的有WindRiver、Microsoft、QNX和Nuclear等产品。我国自主开发的嵌入式系统软件产品如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,它不仅包括DeltaCore嵌入式实时操作系统,而且还包括LamdaTools交叉开发工具套件、测试工具、应用组件等;此外,中科院也推出了Hopen嵌入式操作系统(虽然还不够完善)。同时由于是研究热点,所以我们可以在网上找到各种各样的免费资源,从各大厂商的开发文档,到各种驱动,程序源代码,甚至很多厂商还提供微处理器的样片。这对于我们从事这方面的研发,无疑是个资源宝库。对于
24、软件设计来说,不管是上手还是进一步开发,都相对来说比较容易。这就使得很多生手能够比较快的进入研究状态,利于发挥大家的积极创造性。嵌入式系统是这个后PC时代的擎天之柱。我们有理由相信,未来的电子技术就是嵌入式系统技术的天下。1.2嵌入式操作系统概述随着集成电路规模的不断提高,涌现出大量价格低廉、结构小巧、功能强大的CPU,给嵌入式操作系统提供了丰富的硬件平台,进而促进了嵌入式操作系统的蓬勃发展。嵌入式操作系统(Embedded operating system,EOS)是一种支持嵌入式系统应用的操作系统软件,是软硬件资源的控制中心,负责嵌入式的全部软、硬件资源的分配、调度工作,控制、协调并发活动
25、,使整个系统变得高效。嵌入式操作系统具有以下特点:(l)具备一般操作系统最基本的功能,如任务调度、同步机制、中断处理和文件功能等。(2)可装卸性。开放性、可伸缩性的体系结构。(3)强实时性。可用于各种设备控制。(4)统一的接口。提供各种设备驱动接口。(5)操作方便、简单、提供友好的图形界面GUI。(6)强稳定性,弱交互性。(7)固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用。(8)对硬件有良好的适应性,也就是良好的移植性。比较有影响力的系统有:WindowsCE、VxWorks、嵌入式Linux等。1.3音频压缩技术介绍MP
26、3文件是由帧构成的,帧是MP3文件最小的组成单位。MP3的全称应为MPEG Layer-3音频文件,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量的编码复杂程度划分为三层,即layer-1、layer-2、layer-3,并且分别对应MP1,MP2,MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1,也就是说,一分钟的CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。不过
27、MP3对音频信号采用的只有损压缩方式,为了降低声音失真度,MP3采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音的声音效果。音频压缩有一套非常丰富的算法理论,音频压缩技术根据数据有无损失可分为无损(Lossless)压缩与有损(Lossy)压缩两大类:(1)有损压缩是指在压缩过程中丢弃了一些次要数据,但还是能实现比较好的压缩效果,具有代表性的此类音频标准有WMA、MP3、OGG等。(2)无损压缩是指压缩过程中不丢弃任何数据,经压缩解压后能
28、够得到与原始文件完全一样的解码文件,具有代表性的此类音频标准有FLAC、APE等。按照压缩方案的不同,又可将其划分为时域压缩、子带压缩、变换压缩以与多种技术相互融合的混合压缩等。(l)时域压缩(或称为波形编码)技术是指直接针对音频PCM码流进行处理,通过静音检测、非线性量化、差分等手段对码流进行压缩。时域压缩技术主要包括G.711、G.722、ADPCM、LPC、CELP等。(2)子带压缩技术是将信号分解为若干子频带的分量之和,然后对各子带分量根据其不同的分布特性采取不同的压缩策略以降低码率。子带压缩技术目前广泛应用于数字声音节目的存储与制作和数字化广播中。主要有MPEG-1 层1、层2、层3
29、。 (3)变换压缩技术是对一段音频数据进行变换,对所获得的变换域参数进行量化、传输,而不是把信号分解为几个子频段。通常使用的变换有DFT、DCT(离散余弦变换)、MDCT(改进的离散余弦变换)等。1.4 ARM7与ARM9的区别(1).时钟频率的提高 虽然ARM7和ARM9核架构一样,但ARM7处理器采用3级流水线的诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了 时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期,在每一个时钟周期同时有5个指令在执行。在常用的芯片生产工艺 下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上
30、。(2).指令周期的改进 指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30左右。(3).MMU(存管理单元) ARM7一般没有MMU(存管理单元),(ARM720T有MMU)。 ARM9一般是有MMU的,ARM9940T只有MPU ,不是一个完整的MMU。 这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS- II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T
31、能支持LINUX;WINCE等系统,也鲜有人用,因为以 ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。(4). ARM7比ARM9提供了更好的性能功耗比。它包含了THUMB指令集快速乘法指令和ICE调试技术的核。(5). 在从ARM7到ARM9的平台转变过程中,有一件事情是非常值得庆幸的,即ARM9E能够完全地向后兼容ARM7上的软件;并且开发人员面对的编程模型和架构基础也保持一致。2. Qt开发环境介绍2.1 Qt简介Qt是是Trolltech公司的一个产品。Trolltech是挪威的一家软件公司,主要开发两种产品:一种是跨平台应用程序界面框架;
32、另外一种就是提供给做嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备上。Qt和Qtopia分别是其中具有代表性的两个。Qt是一个多平台的C+图形用户界面应用程序框架,它能给用户提供精美的图形用户界面所需要的所有元素,而且它是基于一种面向对象的思想,所以用户对其对象的扩展是相当容易的,并且它还支持真正的组件编程。Qt是Linux桌面环境KDE的基础。Qt与windows下的MFC的实质是一样的,所以Qt最大的优点在于其跨平台性,可以支持现有的多种操作系统平台,主要有:MS/Windows95、Windows98、WindowsNT4.0、Windows2000、Windows
33、7等;Unix/Linux、Sun Solaris、HP-Ux、Compaq True64Unix、IBM AIX、SGI IRIX、Macintoshi MacOS。 QT/Embedded是面向嵌入式系统的Qt版本,是Qt的嵌入式Linux窗口,是完整的包含C+ GUI和基于Linux的嵌入式平台开发工具。QT/Embedded API用于高端PDA等产品。QT/Embedded部对于字符集的处理采用了UNICODE编码标准,实现了字符的国际化。Qtopia是嵌入式Linux的桌面系统,它建立在QT/Embedded之上。Qtopia分为开放源代码版本与收费版本。其中,开放源代码版本提供了
34、PDA的桌面系统基本源代码,收费版本还包括了手机模块的代码部分。Trolltech提供三大Qtopia版本:Qtopia手机版、Qtopia PDA 版和Qtopia 消费电子产品平台Qtopia手机版:面向嵌入式Linux 的Qtopia 手机版(Qtopia Phone)是Qtopia 的一个自定义版本用于存有限的智能手机和功能手机。它的用户界面可自定义,存占用量低,手机制造商使用它可以创建令人赞叹的图形用户界面,从而令手机卓越超群,Qtopia 手机版有两个版本键盘驱动和手写笔驱动。Qtopia PDA版:Qtopia PDA 版Qtopia PDA 是一个强大的平台专用于基于Linux
35、操作系统的PDA个人数字助理设备许多PDA 都已采用了Qtopia , Qtopia PDA 版已经成了事实上的Linux 标准它代表了可行的第三种PDA 设计方案Qtopia PDA 版具有可定制的用户界面支持多种不同的屏幕尺寸以与横向和纵向布局。Qtopia 消费电子产品平台:While Qtopia 手机版和 Qtopia PDA 版是针对移动和PDA 制造商的统包解决方案,而Qtopia 消费电子产品平台(Qtopia CEP) 则是一套高层次开发平台适用于那些希望自行设计和开发应用套件的制造商。Qtopia CEP使得制造商能够在形形色色的手写笔和键盘驱动的设备上创建自定义的环境,这
36、些设备包括电视机Web Pad 无线联网板机顶盒以与许多其它基于Linux 的设备等等。 Qtopia 产品系列旨在为基于Linux 的消费电子设备提供和创建图形用户界面它为制造商提供了前所未有的灵活性和众多选择。2.2 系统的软件分析与设计此MP3播放器的软件体系结构采用分层模式,它包括硬件层、驱动层、操作系统层与MP3播放器应用层。下图是简化的MP3播放器的软件体系结构图。MP3player应用程序Linux OS文件系统,QtopiaDriver音频驱动,USBHardware物理层图2.1此MP3播放器软件的核心是Linux操作系统,一切功能都是基于Linux上完成的。首先需要设备驱动
37、程序,包括USB、磁盘控制、音频控制、LCD等。然后是文件系统。该设计采用的是通用的FAT32文件系统,采用此文件系统的目的是为了与Windows平台有很好的兼容性。最上层是应用层,例如MP3编码解码、JPEG解码以与MPEG4解码等。由于S3C2410和Linux操作系统的功能都非常强大,因此,除了实现上述功能,该设计方案还可以扩充其它功能,例如添加WLAN、GPS、GPRS以与照相模块等,以适应不同的应用需求,为以后的升级或改进提供了接口。2.3 交叉编译环境的建立交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里说的平台分别指的是主机平台Host和目标平台Target
38、。在本论文中,Host是一台装有FC4-Linux操作系统的PC机,它通过串口或网络接口与Target通信;Target是arm-linux平台(这里说的arm指的是平台所使用的CPU是S3C24lO处理器,linux指的是运行的操作系统是Linux)。本文在Host上开发程序,并在这个平台上运行交叉编译器 CrossCompiler,编译程序,而由 CrossCompiler生成的程序将在Target上运行。建立交叉编译环境是进行Qtopia桌面系统和MP3播放器移植的第一步。目前常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链,目前已能够支持x86,A
39、RM,PowerPC等多种处理器。商业的交叉开发环境主要有Metrowerks code warriror, ARM Software DevelopmentToolkit等。对于交叉编译工具,可以自己生成,也可以从网上下载。交叉编译工具一般由专门得机构负责维护,可以从他们得免费获得,下面描述交叉编译环境得建立过程。首先,在Linux宿主机上新建一个用于嵌入式Linux开发的工作目录:/home/arm9,以后所有的开发工作都在这个目录下进行。然后,取得基于ARM微处理器架构的交叉编译工具。基于ARM架构的交叉编译工具集可以从 arm.linux.org.uk上下载。这个专门维护基ARM架构的
40、Linux核。在这里有专门针对不用ARM处理器的Linux核移植补丁,有大量的驱动以与工具集。当前最稳定的版本是cross-2.95.3.tar.bz2,Linux-2.4.xx与以下核一般就用该版本的交叉编译器来编译。下载的交叉编译工具以压缩包的方式存在,需要将其安装到Linux宿主机上,安装过程如下:rootfc4 /#cd/usr/localrootfc4 local#mkdir armrootfc4 local#cd armrootfc4 arm#cp /home/arm9/work/cross-295.3.tar.bz2rootfc4 arm#tar jxvf cross-2.95.
41、3.tar.bz2当以上命令执行完毕以后,会生成/usr/local/arm/2.95.3子目录,表明交叉编译器经成功安装到了 /usr/local/arm下。最后用vi编辑器打开home/.bash_profile,在文本的最后一行加入以下命令:exportPATH=/usr/local/arm/2.95.3/bin:$PATH这样就可以在终端使用arm-linux编译器了。3. 硬件开发平台的构建这款多功能MP3播放器的核心是三星公司的S3C2410芯片。该芯片是基于ARM920T而开发的一款面向消费类电子产品的多功能SOC。除具备一般嵌入式芯片所具有的总线,SDRAM控制器,3个串口等外
42、设之外,S3C2410还具有TFT LCD控制器、USB Slave、USB Host、I2C总线控制器、SPI控制器、IIS音频接口、SD & MMC存储卡接口等丰富的扩展功能。3.1 硬件开发板本文使用的是华天正科技公司生产的S3C2410开发板,如图3.1所示。图3.1S3C 2410 硬件平台综述: RealARM 2410 平台由核心板(Core-Board)和底板Bottom-Board ) 以与3.5寸LCD(带触摸)组成。RealARM2410 的主要特点:Core-Board(核心板) CPU:Samsung的S3C2410x处理器,工作频率达203MHz;FLASH ROM
43、:64MB Nand Flash,可选配为各种容量8位的NANDFLASH;NOR FLASH(SST39VF1601)提供2MBNor Flash;SDRAM:64M(Samsung K4S561632H-Tc75)2片4Banks4Mbits16bits SDRAM,PC100/PC133兼容;RTC 实时时钟:外接32.768KHz的晶振,带有备份电池,可保持时钟;NAND FLASH -NOR FLASH 启动选择开关两个I/O 口连接两个LED,方便用户调试自己的程序。3.2 硬件开发环境的建立在移植嵌入式应用程序之前,应该搭建好硬件平台,本文所使用的硬件平台包括一台装有FC4版的L
44、inux操作系统,即宿主机Host、一块S3C2410开发板(含三星S3C2410微处理器).3.3 嵌入式应用软件的开发流程嵌入式应用软件的开发流程如图3.2所示:在嵌入式硬件设备上进行应用程序的调试在宿主机上进行交叉编译嵌入式应用程序在宿主机上进行应用程序的编码、调试根据目标硬件平台,搭建交叉编译环境选定嵌入式硬件平台和嵌入式操作系统调试有无问题把代码写入嵌入式设备的flash中图3.24. MP3播放器的系统结构MP3播放器的原理框图如图4.1所示:显示器通讯接口DACARM9S3C2410存储区耳机功放操作系统图4.14.1 存储系统 现在MP3播放器的存储系统主要有三大类:FLASH
45、。 Nand Flash芯片、MMC卡、SD卡、Sony m2;磁性存储器。如:3.5英寸硬盘;光学存储器。如:Audio-CD、CD-ROM、DVD、Data-play。本系统所用的存储介质主要是Nand Flash芯片。FLASH芯片具有可靠性高、体积小、无机械触点和重量轻等显著优点,是目前便携式MP3播放器的主流存储器。单片FLASH芯片的容量越来越大,三星半导体已推出32GB的单片Nand FLASH芯片,日立和东芝半导体已推出16GB的单片Nand FLASH芯片。而且,FLASH的降价幅度和空间都很大。可以相信Nand FLASH在未来几年仍是便携式MP3播放器的主流存储器。Nan
46、d FLASH之所以在价格上优于Nor FLASH,很大程度上取决于它允许1%坏扇区的标准。而Nor FLASH必须是100%的合格,不允许任何一位的损坏。这点是便携式MP3开发过程中必须注意的地方,固件(Firmware)必须有一个标注并避开坏扇区的方法。4.2 通信接口现在常用的通讯接口有以下几种:打印口;USB接口;IEEE1394接口;有的MP3播放器不需通过PC机而直接利用置Modem通过Internet网络下载音乐。在做这个MP3播放器的时候我使用的是用usb作为通讯接口,这样在兼容性和速度方面找到了最合适的平衡点。5. 播放器的设计与实现 MP3播放器采用了C+和C语言混合编程的
47、形式。其中,顶层函数采用的是符合Qt特点的C+程序,底层的MP3音频解码模块采用的是C语言。 MP3音频文件的处理过程是首先下载MP3到缓冲区,然后利用一个开源的高质量的MPEG解码库将MP3数据流解码为PCM数据,然后利用底层的声频驱动程序0SS将PCM转化为模拟信号驱动D/A播放MP3音乐。因此,软件需要有MP3解码功能以与PCM数据播放功能。网络MP3播放器软件设计的整体流程图如图4.2所示。创建Qtopia程序创建MP3播放器窗口都件类构建定时器构建play按键构建fileopen按键建立定时器与MP3音频文件解码函数的连接建立File Open按键与本地文件打开函数的连接建立Play按键与音乐播放/暂停函数的连接事件主循环图4.25.1 MP3音频解码模块