(完整版)基于ARM的Mplayer播放器的移植毕业设计

(完整版)基于ARM的Mplayer播放器的移植毕业设计
(完整版)基于ARM的Mplayer播放器的移植毕业设计

基于ARM的Mplayer播放器的移植

摘要

目前市场上媒体播放器款式层出不穷。从原先只能用于欣赏音乐的MP3,至今已经发展成能够播放多种视频,音频格式的MP4,MP5等多功能媒体播放器。嵌入式系统的官方定义是"以应用为中心、软件硬件可裁剪的、适应应用系统对功能、可靠性、成本、体积、功耗等严格综合性要求的专用计算机系统"。其硬件以一个高性能的处理器(通常是32位处理器)为基础,软件以一个多任务操作系统为基础,非常适合完成MPlayer移植相关任务。本次毕业设计任务就是以Linux嵌入式开发为主线,利用X86PC 机与ARM2410s嵌入式平台开发多种播放格式的MPlayer。

本系统首先完成X86PC机Linux环境下MPlayer的实现,之后通过QT制作MPlayer GUI,完成MPlayer 向ARM2410s嵌入式平台的移植和调试工作。并且通过研究多种视频的文件格式,使MPlayer能够播放多种视频格式。该毕业设计完成了任务书的要求。

关键词:嵌入式;Linux;MPlayer;视频格式;QT

ABSTRACT

The present market has been seeing various designs of media players emerging one after another. Originating from MP3 which can only serves for appreciating music, the multifunctional media players nowadays have been developed into MP4 and MP5, which can display many video and audio formats. Based on the software-hardware combined multimedia processing. The official definition for embedded system is a application-centered ware tailorable dedicated computer system that can cater to the strict integrative requires of the application system of function, reliability, cost, volume and power dissipation.

The graduate project plans to develop Mplayer with various play formats using the embedded platform of X86PC machine and ARM2410S, with the development of Linux embedded chips as the main line. The system first has accomplished player's implementation of X86PC machine under the environment of Linux, followed which Mplayer GUI has

been constructed to achieve the transplantation and debug from Mplayer to ARM2410 embedded platform. Meanwhile, Mplayer is designed to display various video formats though research on the file formats of various videos. The graduate project has accomplished all the requires of the assignment.

Key words: embedded; Linux; video format; QT

目录

第一章前言 (1)

1. 研究背景和意义 (1)

2. 嵌入式系统概述 (2)

2.1 嵌入式系统定义 (2)

2.2 嵌入式系统构架 (3)

2.3 嵌入式系统开发流程 (5)

3. 研究现状 (7)

3.1 嵌入式系统发展现状 (7)

3.2 嵌入式移植研究现状 (8)

3.3 毕设系统研究现状 (9)

第二章系统分析 (10)

1. 系统通用模型 (10)

2. 系统主要任务和目标 (11)

2.1 主要研究内容 (11)

2.2 主要目标 (11)

3. 系统结构分析 (12)

3.1 ARM-Linux 端 (12)

3.2 X86PC 端 (12)

4. 系统选用的开发工具 (12)

4.1 UP-NETARM2410-S 嵌入式开发平台 (12)

4.2 Linux 操作系统 (14)

4.3 HEX EDIT (16)

4.4 GCC 编译器 (17)

第三章系统概要设计 (21)

1. 总体设计 (21)

1.1 系统体系结构 (21)

1.2 基本设计概念 (22)

2. 模块设计 (25)

2.1 功能-模块对照表 (25)

2.2 各功能模块逻辑关系 (26)

第四章系统详细设计 (27)

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

2. 视频格式分析模块 (28)

2.1 模块概述 (28)

2.2 模块分析 (28)

3. MPlayer 模块 ............................................

36

3.1 X86-MPlayer 模块 (36)

3.2 ARM-MPlayer 模块 (39)

3.3 MPlayer 编译指令 (40)

4. Gcc 模块 ................................................

42

4.1 Gcc 模块定义 (42)

4.2 ARM-Linux-gcc 模块安装编译 (43)

5. MINICOM 模块 ............................................

44

5.1 MINICOM 定义 (44)

5.2 配置流程 (44)

6.内核烧录 (45)

6.1 内核介绍 (45)

6.2 模块执行流程 (45)

7. GUI 模块 (47)

7.1 模块概述 (47)

7.2 QT 环境搭建 (47)

7.3 插槽机制 (49)

7.4 主要数据结构和服务方法 (51)

第五章系统测试 ............................................

54

1. 测试计划 (54)

1.1 测试对象 (54)

1.2 测试目标 (54)

1.3 测试原则 (55)

1.4 测试策略 (56)

2. 测试过程 (56)

2.1 模块测试 (56)

2.2 模块集成测试 (59)

2.3 系统测试 (61)

3. 错误总结 (62)

3.1 Mplayer 移植错误分析 (62)

3.2 内核声卡驱动 BUG 消除 (63)

第六章结论 (67)

1. 本系统特色 (67)

2. 开发心得 (67)

参考文献 ......................................................

70

第一章前言

1. 研究背景和意义

随着科学技术的迅猛发展,人们的物质生活逐步得到改善,对精神层面的需求逐渐增强。由于不满足于仅在家中欣赏电视提供的多媒体,便携的媒体播放器应运而生。随着计算机和信息技术快速发展,人们对媒体播放器也提出了更加苛刻的要求。比如更动听的音质,更多的视频音频支持格式,更加人性化的操作界面等等。

嵌入式系统是面向用户、面向产品、面向应用的专用计算机系统,不能独立于应用而自行发展,否则会失去市场。嵌入式系统的核心部件即嵌入式微处理器的功耗、体积、成本、处理能力和电磁兼容性等均受应用要求的制约,这些方面也正是各个半导体厂商竞争的热点。嵌入式系统的硬件、软件设计都必须精心考虑,力争在同样的硅片面积上实现更高的性能,只有如此才能在具体应用时在处理器的选择面前更具有行业竞争力。嵌入式处理器必须针对其用户的需求,对芯片配置进行裁剪才能符合性能标准。由于嵌入式系统和具体应用有机结合起来,才能广泛应用于各种行业。如图1-1所示。

1-1 嵌入式系统应用

多媒体技术的快速发展,在媒体播放方面独占鳌头的则是新兴的开源软件MPlayer。MPlayer是Linux下最优秀的多媒体播放器之一,它的播放速度最快,支持的文件格式也最多,在X86 PC机上运行很稳定,将其移植到精简指令集的嵌入式系统中去,是十分有价值的。由于MPlayer其开源的特性,使得修改,定制一份具有针对性的MPlayer成为可能。并随着MPlayer版本的提高,功能与稳定性的不断完善,使用MPlayer作为媒体播放器的产品将成为趋势。由于开源软件免费的特性,使用MPlayer开发的产品将能够节省软件方面的成本。因此,对于MPlayer移植的可行性的分析与实现,十分具有现实意义。

2. 嵌入式系统概述

2.1 嵌入式系统定义

目前嵌入式系统已经渗透到我们生活中的每个角落,其地位和价值已经不可取代。嵌入式系统一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。可从几方面来理解嵌入式系统:

1、嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用

相结合

才会更具有优势。因此嵌入式系统具有很强的专用性,必须结合实际系统需求进行合理的裁减使用。

2、嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行

业具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式

系统行业,必须有一个正确的定位。

3、嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功

能、可靠性、成本、体积等要求。目前嵌入式系统的核心往往是一个只有几 K 到几十 K 的微内核,需要根据实际的使用进行功能扩展或者裁减。由于微内核的存在,使得这种扩展能够非常顺利的进行。2.2 嵌入式系统构架

一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件。

核心部件是嵌入式处理器。嵌入式处理器是为了完成专门的应用而设计的特殊目的的处理器。嵌入式处理器一般分成如下四类:

1、嵌入式微处理器(Embedded MicroProcessor Unit,EMPU)。在通用计

算机CPU的基础上,在工作温度、抗电磁干扰及可靠性等方面都做了各种增强。在使用EMPU构建母板时,只保留和具体嵌入式应用相关的部件,可以大幅度减小系统体积和功耗。嵌入式微处理器目前主要有AmI86/88、386EX、SC-400、Power PC、68000、MIPS和ARM系列等。

2、嵌入式微控制器(MicroController Unit,MCU)。将整个计算机系统都

集成到一块芯片中,也可以称为单片机。与微处理相比,微控制器的体积较小,成本也较低,但是灵活性、系统资源有限,而且很难进行扩展。

3、嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)。DSP

处理对系统结构和指令进行了特殊设计,使其适合与执行DSP算法,编译效率较高,指令执行速度较高。

4、嵌入式片上系统(System on Chip,SOC)。随着EDI的推广和VLSI设

计的普及化及半导体工艺的迅速发展,在一块芯片里面可以实现复杂的系统。SOC很大程度地减小了系统的体积和功耗,提高可靠性。如

图1-2所示:

图1-2 嵌入式系统构架

在嵌入式系统中,为了有效地管理硬件资源以及多任务处理操作,在用户应用程序和嵌入式硬件之间加入了一层软件系统,称为嵌入式操作系统。操作系统包括存储器管理、硬件设备管理、中断处理、任务间通信、任务调度以及定时器管理等软件模块。嵌入式操作系统的引入,为用户应用程序的设计提供编程接口。用户应用程序使用这些编程接口可以实现复杂的逻辑功能。但是嵌入式操作系统本身需要一定的系统资源,而在嵌入式系统中,系统资源是有限的。这就需要对嵌入式操作系统进行特别设计。目前,应用比较广泛的嵌入式操作系统主要有: C/OS-Ⅱ、uCLinux、ARM-Linux、VxWorks、pSOS、Nucleus、PlamOS、Windows CE、Embedded Linux、ECOS、QNX、Lynx以及Symbian等。

2.3 嵌入式系统开发流程

嵌入式系统开发采用生命周期的方法,整个过程可以分为:

1、需求分析阶段

2、设计阶段(包括硬件与软件的规格要求)

3、生成代码阶段(编程、测试和调试)

绝大多数软件开发都是基于native方式,在通用微机上进行本机编辑、本机编译、本机链接、本机调试、本机运行。但嵌入式软件的开发都是在支持交叉编译的环境下进行,这是一套编译器、连接器和libc库等组成的集成开发环境。宿主机上交叉编译、交叉调试,目标机上运行被调试程序。如图1-3为流程说明图:

图 1-3 嵌入式软件开发流程

交叉编译,就是在一台电脑上生成能够在另外一台电脑上执行程序

的代码。除了兼容性扩展的优势之外,交叉编译还以下两个优点:一是当目标系统对其可用的编译工具没有本地配置时,往往采用交叉编译来提供方便;二是当主机系统比目标系统要快得多,或者具有多得多的可用资源时,也会经常采用交叉编译的方法。尤其是第二点非常重要,因为绝大部分嵌入式系统并没有能够编译生成可执行程序的能力,它们需要宿主机来帮助生成用来执行的代码程序。本毕业设计系统建立交叉编译环境,利用可移植性强的 C语言在宿主机上编辑并交叉编译 MPlayer 等一系列程序,再利用交叉编译调试工具链接生成可执行代码,最后向目标平台移植运行。

3. 研究现状

3.1 嵌入式系统发展现状

嵌入式系统的核心部件是各种类型的嵌入式处理器,据不完全统计,全世界嵌入式处理器的品种已有上千种之多。几十年来,各种4、8、16和32位的处理器在嵌入式系统中都有广泛应用。嵌入式系统的处理器可以分为两大类:一类是采用通用计算机的CPU为处理器,如X86系列;另一类为微控制器和DSP,微控制器具有单片化、体积小、功耗低、可靠性高、芯片上的外设资源丰富等特点,成为嵌入式系统的主流器件。

当前,嵌入式系统处理器的发展趋势主要采用32位嵌入式CPU,其主流系列有ARM(包括Intel公司的strong ARM和XScale)、MIPS和SH 三大系列。

嵌入式系统CPU的另一类型为DSP。当前,DSP处理器的典型结构是单片化嵌入式DSP,如TI公司的TMS320系列;另一类是在通用CPU或单片系统中增加DSP协处理器,如Intel公司的MCS-296等。还有一种类型是选用嵌入式单片系统SOC(System On a Chip)。

其中,特别要指出,RISC技术为计算机体系结构带来了一次重大的变革。简单的、固定长度的、单周期执行指令的RISC计算系统,与传统、复杂、可变长度指令并行执行的CISC计算机系统相比较,在相同的条件下,RISC技术的速度快2~5倍,具有巨大的性价比优势。RISC技术推动着计算机体系结构从封闭的CISC向开放的结构发展。因此,世界上各大CPU芯片制造厂商争相开发生产RISC芯片,目前的典型结构为ARM系列、MIPS和SH32位字长,最高时钟速率可达600MHz。多种嵌入式实时操作系统大都支持上述RISC处理器。

近几年嵌入式系统技术发展有以下几个显著的变化:

1、新的处理器越来越多。一方面,嵌入式操作系统自身结构的设计更易

于移植;另一方面,系统应能使用驱动程序开发与配置环境,造就一个新的BSP(板级支持包)和驱动程序结构,以适应微处理器的不断升级变化。

2、开放源码之风己波及嵌入式操作系统厂家。越来越多的嵌入式操作系

统厂家出售产品时,同时附加了源程序代码并含生产版税。

3、电信设备、控制系统要求的高可靠性,对嵌入式操作系统提出了新的

要求。各类通用机上使用的新技术、新观念正逐步移植到嵌入式系统中,如动态数据库、移动代理等。

4、主要由于人们对自由软件的渴望与嵌入式系统应用的定制性,要求提

供系统源码层次上的支持,而嵌入式Linux适应了这一需求。它具有开放源代码,系统内核小、效率高、内核网络结构完整等特点,裁减后的系统很适于如信息家电等嵌入式系统的开发。

5、嵌入式系统的多媒体化和网络化方向趋势,特别是嵌入式系统技术与

Internet、无线网络等通讯手段的结合。

上述变化孕育嵌入式系统即将进入一个高速发展的新时期。在不久的

将来,嵌入式系统应用将越来越多样化。它不仅仅局限于传统的控制领域,例如信息家电、工业、农业、商业、服务业等各行各业,而且将渗透到社会和家庭的各个角落。嵌入式系统的未来将更加绚丽缤纷。

3.2 嵌入式移植研究现状

目前,对嵌入式Linux系统的开发正在蓬勃兴起,并已形成了很大的市场。除了一些传统的Linux公司,像RedHat、VA Linux等,正在从事嵌入式Linux的研究之外,一批新公司(如Lineo、TimeSys等)和一些传统的大公司(如IBM、SGI、Motorola、Intel等)以及一些开发专用嵌入式操作系统的公司(如Lynx)也都在进行嵌入式Linux的研究和开发。

一方面因为像数码相机、MP3播放机、PDA、游戏机和移动电话等手持设备以及各种信息家电等有更高性能要求的多媒体和通信设备的推出。在这些应用中,庞大的多媒体数据必然需要更大的存储空间,目前许多32位微控制器都可以使用SDRAM,因此可极大地降低使用更大容量数据存储器的成本;而8位微控制器一般只能使用成本较高的SRAM作为数据在座器。此外除了处理应用控制功能之外,需支持互联网接入的应用在MCU 运行TCP/IP或其它通信协议的情况下,要求系统建立在RTOS上就必然成为一种现实需求。另外,有越来越多的像电视机、汽车音响及电子玩具等传统应用也与时俱进地提出数字化和―硬件软化‖的要求,它们对计算性能的要求及存储器容量的需求都超出绝大多数8位微控制器能提供的范围。

另一方面由于IT技术发展的推动,32位ARM体系结构已经成为一种事实上的标准,随着高端32位CPU价格的不断下降和开发环境的成熟,促使32位嵌入式处理器日益挤压原先由8位微控制器主导的应用空间。随着ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经开始成为高中端嵌入式应用和设计的主流。

另外,越来越多的设计师认识到,转用32位架构不令能提升性能,还能降低相同成本下的系统功耗和节约总成本以及缩短产品上市时间。这个转变为设计师提供了可随着产品的性能和需求不断扩展而升级的方案。

3.3 毕设系统研究现状

本系统主要利用ARM2410s嵌入式平台开发多种播放格式的MPlayer。其中主要在开发平台上构建了一个播放器GUI来调用MPlayer播放视频,并通过对视频格式的研究,使之能播放多种视频格式,本课题主要涉及的工作如图1-4所示:

图1-4 系统主要涉及工作

第二章系统分析

1. 系统通用模型

MPlayer能使用众多本地的 Xanim,RealPlayer 和 Win32 DLL 编解码器,可播放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文件,并且它能播放 Windows Media Player都打不开的有损坏的AVI文件,甚至,没有索引部分的AVI文件也可以播放。

实现MPlayer的嵌入式移植,主要采用以下的模型,即X86PC机上MPlayer

的实现+S3C2410开发板上的移植。如图2-1所示:

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

(1)X86PC机上MPlayer的实现通过编译MPlayer源文件、解码库、GUI

文件、字体文件,完成X86PC机上MPlayer的实现。

(2)ARM2410s开发板上的移植QT制作播放器的 GUI,并实现多种视频文件的播放。最终完成向ARM2410s开发板的移植工作。

2. 系统主要任务和目标

S3C2410 属于精简指令集 CPU,定点计算,没有 MMX(Multi Media eXtension,多媒体扩展指令集)指令,不支持硬件浮点计算,对大尺寸多媒体的编解码能力仍显不足,因而应用在真正媒体播放场合性能达不到要求。但 S3C2410 与高端处理器相比价格低廉,通过合理的设计系统软硬件,可以实现低端的视频应用,用于衡量 MPlayer 移植的可行性。

2.1 主要研究内容

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

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

3、实现 X86PC 机向 ARM2410s 平台的移植并调试。

4、研究 QT 图形界面设计的详细过程。

2.2 主要目标

1、系统操作简单,易于使用。简洁明了的图形化操作界面能够使操作人

员很快地熟悉系统的使用,从而提高用户体验。因此在开发本系统时力求软件的简单易用性,只需点击按钮即可进行 MPlayer 的控制操作。

2、可靠性好,系统稳定。为加强用户体验,在简化操作的同时,要保证

系统 CPU 占用率保持在合理的范围,使视频能正常、流畅地播放。

3、可维护性好。各模块相互独立,便于修改和更新。

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

本次毕业设计基于嵌入式平台的MPlayer移植是主要围绕Linux主机和ARM2410s开发板,按照嵌入式开发流程进行的设计与开发。

ARM2410s开发板作为服务器端,作为MPlayer的播放屏幕和控制屏幕。移植成功的MPlayer能够在开发板上实现视频的控制。Linux机作为监控主机,进行播放信息的监控,CPU占用等一系列参数的测定。

3.1 ARM-Linux 端

1、ARM-MPlayer模块:编译在ARM2410s开发板上运行的MPlayer

2、ARM-Linux-gcc模块:实现ARM环境下编译环境的搭建。

3、MINICOM模块:实现X86PC机与ARM端的通信模块。进行ARM端的连

接,挂载,运行等操作。

4、内核烧录模块:重新编译并烧录内核,消除音频BUG。

3.2 X86PC 端

1、X86-MPlayer模块:采用GCC编译器,编译 X86PC端能够播放的MPlayer

2、视频格式分析模块:将服务器端播放的视频状态以及CPU占用等一系

列参数直观地显示在客户端主机上。

3、GUI模块:实现在ARM410s开发板上进行视频控制。

4、Linux-gcc模块:实现X86PC环境下编译器的搭建。

4. 系统选用的开发工具

4.1 UP-NETARM2410-S 嵌入式开发平台咱们用的是zlg magicarm2410,和这个博创是2个公司出的,不要混淆了!

本系统平台采用 Samsung 公司的处理器 S3C2410。该处理器内部集成了 ARM 公司 ARM920T 处理器核的 32 位微控制器,资源丰富,带独立的16KB 的指令 Cache 和 16KB 数据 Cache、LCD 控制器(最高 4K 色STN 和256K 彩色 TFT,一个 LCD 专用 DMA)、RAM 控制器、NAND 闪存控制器、3 路 UART、4 路带外部请求线的 DMA、4 个 PWM 定时器和一个内部定时器、看门狗定时器、并行 I/O 口、8 通道 10 位 ADC、触摸屏接口、一个多主 IIC 总线、一个 IIS 总线控制器、117 个通用 IO、24 个外部中断、2 个 USB接口控制器、2 路 SPI,主频最高可达 203MHz、芯片内置 PLL。在处理器丰富资源的基础上,还进行了相关的配置和扩展,平台配置了 16MB 16 位的 Flash 和 64MB 32 位的 SDRAM。通过以太网控制器芯片 DM9000E 扩展了一个网口,另外引出了一个 HOST USB 接口。

16/32 位精简指令体系结构,使用支持ARM 调试的体系结构ARM920TCPU 核的强大指令集,指令缓存(cache)、数据缓存、写缓冲和物理地址TAG RAM,减小了对主存储器带宽和性能的影响,ARM 带 MMU (Multi Media eXtension,多媒体扩展指令集)的先进的体系结构,支持 Wince、Epoc32、Linux。UP-NETARM2410-S 嵌入式开发平台如下图 2-2

图 2-2 UP-NETARM2410-S 嵌入式开发平台

4.2 Linux 操作系统

嵌入式操作系统,通常包括与硬件相关的底层驱动软作为件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点:能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

几种代表性嵌入式操作系统比较(如下表 2-1 所列):

表 2-1 四款嵌入式系统优缺点对比列表

对比了几款代表性的嵌入式操作系统的优缺点,发现嵌入式 Linux 各方面有点突出,性价比高,比较合适本毕业设计系统的开发,所以在开发板端和主机端都选用嵌入式 Linux 作为操作系统。

4.3 HEX EDIT

十六进制查看器。进行视频格式的分析,采集,为 MPlayer 播放多种视频格式提供支持。如图 2-3 为 HEX EDIT 的用户界面:HEX EDIT 的

用户界面

图 2-3 HEX EDIT 的用户界面

4.4 GCC 编译器

Linux 系统下的 GCC(GNU C Compiler)是 GNU 推出的功能强大、性能优越的多平台编译器,是 GNU 的代表作品之一。GCC 是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高 20%~30%。

GCC 编译器能将 C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,GCC 将生成一个名为 a.out 的文件。在 Linux 系统中,可执行文件没有统一后缀,系统从文件的属性来区分可执行文件和不可执行文件,GCC 则通过后缀来区别输入文件的类别。

使用 GCC 由 C 语言源文件生成可执行文件的过程不仅仅是编译的过程,而要经历四个相互关联的步骤:预处理(也称预编译,Preprocessing)、[1】编译(Compilation)、汇编(Assembly)和连接(Linking) 。命令 GCC 首先调用cpp 进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义 define 等)进行分析。接着调用 cc1 进行编译,这个阶段根据输入文件生成以.o 为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用 as 进行工作,一般来讲,.S 为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o 为后缀的目标文件。当所有的目标文件都生成之后,GCC 就调用 ld 来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。以上就是 GCC 的执行过程。如图 2-4 为 GCC 流程结构图:

基于ARM32位单片机的机器人设计毕业论文

基于ARM32位单片机的机器人设计毕业论文 目录 摘要 (2) Abstract (3) 第一章引言 (4) 第二章S3C44B0X控制器介绍 (6) 2.1 S3C44B0X控制器管脚 (6) 2.2 Samsung S3C44B0X介绍 (8) 第三章ARM开发工具简介 (12) 3.1 ARM开发工具综述 (12) 3.2 ARM STD安装和应用 (13) 第四章S3C44B0X部资源编程 (20) 4.1 LED显示 (20) 4.2键盘控制 (23) 4.3 数码管显示 (24) 4.4 中断控制 (25) 第五章机器人的设计 (27) 5.1硬件结构 (27) 5.2软件设计 (31)

5.3结论 (44) 第六章展望 (45) 参考文献 第一章引言 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费、教育类、多媒体、DSP和移动式应用等。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。 目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。ARM架构是面向低预算市场设计的第一款RISC 微处理器。 ARM提供一系列核、体系扩展、微处理器和系统芯片方案。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。典型的产品如下。 ①CPU核 --ARM7:小型、快速、低能耗、集成式RISC核,用于移动通信。 -- ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。该产品的典型用途是数字蜂窝和硬盘驱动器。 --ARM9TDMI:采用5阶段管道化ARM9核,同时配备Thumb扩展、调试和Harvard总线。在生产工艺相同的情况下,性能可达ARM7TDMI的两倍之多。常用于连网和顶置盒。 ②体系扩展 -- Thumb:以16位系统的成本,提供32位RISC性能,特别注意的是它所需的存容量非常小。 ③嵌入式ICE调试 由于集成了类似于ICE的CPU核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。 ④微处理器 --ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、存管理、写缓冲和JTAG。广泛应用于手持式计算、数据通信和消费类多媒体。 --ARM940T、920T系列:低价、低能耗、高性能系统微处理器,配有Cache、存管理和写缓冲。应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。 --StrongARM:性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,后来授权给Intel。SA110处理器、SA1100 PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。 --ARM7500和ARM7500FE:高度集成的单芯片RISC计算机,基于一个缓存式ARM7 32位核,拥有存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;ARM7500FE 则增加了一个浮点运算单元以及对EDO DRAM的支持。特别适合电视顶置盒和网络计算机(NC)。Windows CE的Pocket PC只支持ARMWindows CE可支持多种嵌入式处理器,但基于

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.360docs.net/doc/bb11227012.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

Java音乐播放器源代码即结果显示

简单的音乐播放器一、程序代码: import java.io.File; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.FileDialog; import java.awt.Frame; import java.awt.GridLayout; import https://www.360docs.net/doc/bb11227012.html,bel; import java.awt.List; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.SourceDataLine; public class Example extends Frame { private static final long serialVersionUID = 1L; boolean isStop = true;// 控制播放线程 boolean hasStop = true;// 播放线程状态

基于java的音乐播放器的设计源代码+实验报告

主类M U S I C P L A Y E R类:import .*; public class MusicPlayer implements ActionListener, Serializable,ControllerListener { private static final long serialVersionUID = 1L; private JFrame frame = null; private JPanel controlPanel = null; private JButton btnPlay = null; private JButton btnPre = null; private JButton btnNext = null; private JScrollPane listPane = null; private JList list = null; private DefaultListModel listModel = null; private JMenuBar menubar = null; private JMenu menuFile = null, menuAbout = null, menuMode = null; private JMenuItem itemOpen, itemOpens, itemExit, itemAbout; private JRadioButtonMenuItem itemSingle, itemSequence ,itemRandom; private ListItem currentItem = null; private static Player player = null; private boolean isPause = false; private int mode; private int currentIndex; private ImageIcon iconPlay = new ImageIcon("d:\\"); private ImageIcon iconPre = new ImageIcon("d:\\"); private ImageIcon iconNext = new ImageIcon("d:\\"); private ImageIcon iconPause = new ImageIcon("d:\\"); public static void main(String[] args) { new MusicPlayer(); } public MusicPlayer() { init(); } public void init() { frame = new JFrame(); ("音乐播放器"); (400, 300); (false); (null); ; menubar = new JMenuBar(); menuFile = new JMenu("文件");

音乐播放器的设计与实现毕业论文

音乐播放器的设计与实 现毕业论文 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

毕业设计说明书 学生姓名学号 学院计算机科学与技术学院 专业计算机科学与技术(软件工程) 题目音乐播放器的设计与实现 指导教师 (姓名)(专业技术职称/ 学位) 年月 摘要:随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 Abstract:With the improvement of standards of living, entertainment has become very mainstream topics, it is required not only by music, edifying, and as more and more people tend to use music, video and other entertainment and relax, which greatly promoted the development

基于arm的指纹识别毕业设计

v .. . .. 基于ARM的指纹识别系统设计 摘要 世界正朝着互联化的方向发展,而物联网正是这个数字革命的核心之一。在目前流行的物联网技术中,要求嵌入式终端能够提供成熟且价格便宜的生物特征识别技术,目前来说指纹识别的技术应用最为广泛,我们不仅在门禁、考勤系统中可以看到指纹识别技术的身影,市场上有了更多指纹识别的应用:如手机、指纹锁、银行支付验证都可应用指纹识别的技术。 在指纹识别控制领域,也会用到各种微控制器,本文采用了三星半导体S3C6410作为控制核心,S3C6410应用了专为要求高性能、低成本、低功耗的嵌入式消费类电子设计的ARM9内核。按性能分成两个不同的系列:该系列内核时钟频率已经达到72MHz。 指纹识别基于两种特征点来识别:(i)组成指纹的指纹整体特征结构(ii)局部的特征点。本文提出了一种可以在自动指纹识别系统中使用的基于特征点的指纹识别算法。本文提到的方法基于从细化提取的特征点,二值化一个指纹图像分割图。该系统采用在指纹分类的指纹索引匹配,大大提高了匹配算法的性能。 关键字:ARM9,指纹识别,特征识别,图像处理 . . . 资料. .

v .. . .. Abstract The world is moving in the direction of the development of the Internet, the Internet of is one of the core of the digital revolution. In the current network technology, the embedded terminal capable of providing biometric technology is mature and the price is cheap, at present technology of fingerprint recognition is the most widely, we can not only see the fingerprint recognition technology in access control, attendance system, fingerprint recognition application is more on the market: such as mobile phone, fingerprint lock, bank payment verification can be applied to fingerprint recognition technology. In the fingerprint recognition and control field, we will also use a variety of micro controller, this paper uses Samsung S3C6410 as the control core, S3C6410 application designed for high performance, low cost, low power embedded consumer electronic design based on ARM9 kernel. According to performance is divided into two different series: this series of core clock frequency has reached 72MHz. Fingerprint identification two feature points based on: (I) to identify the fingerprint feature structure fingerprint (II) feature local. This paper proposes a can be used in automatic fingerprint recognition system of fingerprint . . . 资料. .

音乐播放器概要设计说明书

音乐播放器概要设 计说明书

逗逗音乐播放器 ----概要设计说明书 一、引言 .................................................................. 错误!未定义书签。 1.1、编写目的 ................................................... 错误!未定义书签。 1.2、背景........................................................... 错误!未定义书签。 1.3、定义........................................................... 错误!未定义书签。 1.4、参考资料 ................................................... 错误!未定义书签。 用户界面风格设计参考了其它音乐播放器的设计错误!未定 义书签。 二、总体设计 .......................................................... 错误!未定义书签。 2.1、需求规定 ................................................... 错误!未定义书签。 2.2、运行环境 ................................................... 错误!未定义书签。 2.3、基本设计概念和处理流程 ........................ 错误!未定义书签。 2.4、结构........................................................... 错误!未定义书签。 2.5、尚未解决的问题........................................ 错误!未定义书签。 三、接口设计 .......................................................... 错误!未定义书签。 3.1、外部接口 ................................................... 错误!未定义书签。 3.2、内部接口 ................................................... 错误!未定义书签。 四、系统数据结构设计 ........................................... 错误!未定义书签。 4.1、逻辑结构设计要点.................................... 错误!未定义书签。 4.2、物理结构设计要点.................................... 错误!未定义书签。

音乐播放器的设计与实现

第一章绪论 1.1背景 随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。 3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。3技术使音乐数据压缩比率大,回放质量高。如格式的音乐数据压缩成3格式,音效相差无己,但大小至少可压缩12倍。由于3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,3格式的音乐文件刚在网络上传播时,主要用等播放软件进行播放,使3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着3播放器的出现及其技术的发展,人们对3播放器的要求越来越高,制造商在3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用技术设计一款新型的3播放器。 9是公司的16/32位处理器,是适用于普通设备的一种高性价比的微控制器。本设计采用的是三星公司推出的9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S3C2440主频高达400M,片上集成了丰富的资源:如()总线与控制器,为与数模转换器()的连接提供了一种理想的解决方案。 3播放器的设计比较复杂且对处理器的要求较高,因而3播放器必须仔细设计以降低成本。本设计是在9平台上设计、实现一个3播放器。 第二章系统总体方案 2.1 系统功能 本设计提出了一种基于嵌入式处理器硬件平台的3播放器设计方法。此播放器采用体系结构中的9作为系统控制器,利用外围设备通用串行接口下载3歌曲,用存贮3文件。主要对3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于9的3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及3播放器应用层。主要实现歌曲的播放。 2.2 设计指标 1、3工作电压为具有3.3V左右,电流250,具有音频解码和播放功能。 2、通过接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java 音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX 年X 月X 日

、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java 中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3 歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer() :实现窗口的成员方法 publi c void run() :实现改变歌曲的播放状态的成员方法 :实现对声音的加载 public AudioClip loadSound(String ) :实现对按钮的监听 public void mouseClicked(MouseEvent e) public void itemStateChanged(ItemEvent arg0) :返回一个AudioClip 对象

3、程序流程图 * 出现界面 * 选择播放歌 曲 4、程序清单 import java.awt.*; import javax.swi ng.*; import java.applet.*; import java.awt.eve nt.* import java .n et.*; public class MyMusicPIayer exte nds Thread impleme nts MouseListe ner,ltemListe ner{ JFrame Mai nF rame =new JFrame( "MyMusicPlayer" ); // 定义主窗体 JLabel songname =new JLabel(); //用标签显示状态 JButton last =new JButto n(); JButt on play =new JButt on();

基于java的音乐播放器课程设计报告

Java课程设计报告题目:java音乐播放器 姓名 学号 院系 班级 专业 任课教师

1.设计内容及要求 能够实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加 多首歌曲目录 一个简单的基于java语言的音乐播放器,菜单栏:文件,播放控制和播放列表,文件菜单包含打开、循环和退出三个菜单项;播放控 制菜单包含播放、暂停和停止三个菜单项,播放列表菜单则是当向里面 添加歌曲之后才能够查看到里面所包含的歌曲目录。当播放歌曲时,可 以调节音量大小或者设置是否静音;可以查看当前播放音乐的相关属 性,如:歌曲名,歌手,发布时间,所属专辑等等。 2.需求分析 1、时间跟踪条:根据歌曲播放的进度,控制条自动进行追踪,用户可以 随时了解歌曲的播放进度 2、音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设 置 3、属性查询键:通过该控键,用户可以查看当前播放音乐的相属性,获 取关于该歌曲的用户所需的相关信息。 4、菜单栏: ①文件: 打开:用户通过该菜单项打开本地音乐文件,听任何用户想 听的歌曲 循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲 退出:退出音乐播放器,及退出该程序

②播放控制: 播放:选择歌曲之后,通过点击播放菜单项启动播放器播放音乐 暂停:暂停当前正在播放的音乐 停止:停止当前正在播放的音乐 ③播放列表:当用户通过文件打开本地音乐文件后,及相当于在 播放列表里面添加了歌曲,及形成相应的歌曲播放目录 3.总体设计 结合需求分析来看,整个设计包含了简单的菜单栏,根据用户需求设置了三个简单的实现基本操作的菜单,分别是:文件,播放控制, 播放列表;根据具体的操作每个菜单还包含了相应的菜单项,文件:打 开,循环,退出;播放控制:播放,暂停,停止;播放列表则没有菜单 项,该菜单就是用来显示或者查看相应的歌曲目录的。 该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设 置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个 音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音 乐播放窗口里面用户可以进行相关的音乐播放的控制操作。 当用户进入音乐播放窗口时,该窗口有几个快捷控制的控键:时间追踪轴:可以实现播放的前进、后退功能,根据用户需求调节音乐的 播放进度等;音量控制:设置静音,打开扬声器或者调节音量大小;播 放列表:查看当前播放音乐的相关属性。

音乐播放器的设计与实现设计共19页文档

目录 一、前言 (1) 二、系统分析 (2) (一)系统需求分析 (2) (二)系统功能需求分析 (2) (三)业务流程分析 (3) 三、系统设计 (4) (一)总体设计 (4) (二)歌曲列表模块设计 (4) (三)播放控制模块设计 (4) (四)播放器设置模块设计 (4) (五)数据库设计 (4) 四、系统实现 (6) (一)主界面 (6) (二)播放列表 (12) (三)歌词显示界面 (13) (四)皮肤更换 (15) 五、软件测试 (16) (一)软件的测试 (16) (二)功能的测试与实现 (16) (三)测试结论 (17) 六、结论 (17) 参考文献 (18)

Android音乐播放器的设计与实现 (电子信息工程系软件技术111班王永军) 摘要:本论文的音乐播放器采用了Android开源系统技术,利用Java 语言和Eclipse开发工具对播放器代码进行编写。同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。实验证明,基于android平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。 关键词:Android;Java;Eclipse;音乐播放器 一、前言 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windows mobile,苹果系统,以及谷歌的Android操作系统,其中占有开发源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频资源也在网上广为流传,这些资源卡是平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味最求外观花俏,功能庞大,对用户的手机造成很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放MP3等音乐文件,并且能够控制播放器播放,暂停,停止,上一曲,下一曲。界面简单,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的播放

(完整版)基于ARM的射频识别读写器设计毕业设计

本科毕业论文(设计)

摘要 射频识别(Radio Frequency Identification,RFID)是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别过程无需人工干预,是一种新的自动识别技术[1]。RFID是利用射频的方式进行非接触的双向通信,而非接触式IC 射频卡成功地解决了无源(卡中无电源) 和免接触这一个难题。RFID具有非接触、长距离工作、适应环境能力强、可识别运动目标等优点,射频识别技术已经在越来越多的领域内出现,因此,对射频卡的开发应用也具有一定的现实意义。本文的设计是基于Philips公司的Mifare1 S50/S70芯片的射频识别系统的设计方案,制作一套以ARM微处理器为MCU的射频识别读写器系统,设计RF 接口电路,制作相应的硬件电路模块,分析非接触式IC 卡系统的通信协议,通过Keil C软件编程实现读写器与非接触式IC 卡系统的通信,并完成校园卡考勤系统。

关键词: RFID; 自动识别; ARM; 非接触式IC卡; Keil C Abstract RFID is a non-contact automatic identification technology,it identify target and get the related data through radio frequency signal automatically,the identification process without human intervention, is a kind of new automatic identification technology. RFID for non-contact two-way communication by the way of radio frequency, and non-contact IC radio frequency card has successfully solved the difficulty problems: without power supply and non-contact. RFID has many advantages: non-contact,long-distance work,good adaptability for environment and can recognize the moving objects,RFID technology has appeared in more and more field,so the development and application of radio frequency card also has certain practical significance. The design of this article is based on the Mifare 1 S50 / S70 chip radio frequency

基于Android音乐播放器的设计与实现

滨江学院 《移动通信程序设计》 课程设计 题目基于Android系统的音乐播放器 院系滨江学院 专业计算机科学与技术 学生姓名王兵 学号 二O一四年六月十日

摘要 随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 目录 1前言........................................................... 1.1选题的背景及意义............................................. 1.2网络流行音乐播放器简介....................................... 2系统相关技术及开发平台介绍 ..................................... 2.1开发应用技术介绍............................................. 2.2开发及运行坏境............................................... 3系统的分析..................................................... 3.1可行性分析................................................... 3.2常见的几种音频格式及其特点................................... 3.3需求分析..................................................... 4系统设计....................................................... 4.1系统概要设计................................................. 4.2系统功能设计及描述........................................... 5系统功能实现................................................... 5.1歌曲添加模块................................................. 5.2歌曲列表模块................................................. 5.3播放控制模块................................................. 5.4音量控制模块................................................. 5.5进度控制模块................................................. 5.6滚动字幕模块................................................. 5.7歌曲下载模块................................................. 5.8歌曲剪辑模块................................................. 结论............................................................ 参考文献.......................................................

基于Android-系统的音乐播放器设计与实现

基于Android 系统的音乐播放器设计与实现 实验报告

一、实验要求: 本课程设计的目的是开发一个可以播放主流音乐文件格式的播放器的播放功能模块,要求音乐播放器能够播放Mp 3,Wav 多种格式的音乐文件,能够控制播放,暂停,重播,停止,要求视觉外观美观,操作简单。 二,设计思想 首先查找相关书籍与文献,了解An droid 的构架并搭建An dr oid 开发平台。 查找相关资料,了解现阶段基于And roid 平台手机音乐播放器发展现状以及相关功能。 播放器基本拥有以下功能: 播放本地音乐文件 对播放的状态进行控制 播放设置,开始暂停停止 三,系统结构 ? 四、数据结构的说明和模块的算法流程图 运行 结束 暂停 开始 音乐播放器主界面 音乐播放器 设定 播放界面 开始 暂停 停止

五、使用说明书 菜单有6个功能:播放,暂停,停止,重播。 播放功能:点击后事件触发,传入歌曲名字,让程序操作该名字进行播放。 暂停功能:点击后事件触发,歌曲暂停播放。 停止功能:点击后事件触发,歌曲停止播放。 重播功能;点击后事件触发,歌曲重新播放。 六、运行结果和结果分析 作为Android平台上开发的应用软件,本设计具备与用户交互的界面,界面简洁美观易于操作。作为一款在线音乐客户端,提供给用户在线选歌的方便,提供在线播放歌曲的即时信息,如歌曲名,歌手名,时长等等。 七、我评价与总结 现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。随着移动设备的日益完善,我们大家都已经有了在手机上听自己喜欢歌曲的习惯,以往的做法是用数据线或者蓝牙等无线设备将PC上的歌曲复制几首到手机当中,反反复复的听,等到听厌了以后,再次装一些歌曲进去,如此反复,非常的麻烦。因此,如果在我们的手机上能实现在线听歌,这将会带来极大的方便。本项目是一款基于Android手机平台的音乐播放器,使Android 手机拥有个性的多媒体播放器,是手机显得更生动灵活化,与人们更为方便,让手机主人随时随地处于音乐的旋律之中。本设计实现的重要功能是播放Mp3格式的音乐文件,并且能够控制音乐的播放,暂停,显示歌手信息,歌曲专辑等功能。本项目还可以使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它在市场上的特点。 八、附录 package com.example.seekbar; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;

音乐播放器java源代码

package com.ding.player; import java.io.File; import java.io.IOException; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.SourceDataLine; public class Player { private String path;//文件路径 private String name;//文件名称 private AudioFormat audioFormat;//播放格式 private AudioInputStream audioInputStream;//音乐播放输入流 private SourceDataLine sourceDataLine;// 播放设备 private boolean isStop = false;// 播放停止标志 /** * 创建对象时需要传入播放路径及文件名称 * @param path * @param name */ public Player(String path ,String name) { this.path = path; https://www.360docs.net/doc/bb11227012.html, = name; } /** * 播放音乐 */ public void play() { File file = new File(path + name); try { //获取音乐播放流 audioInputStream = AudioSystem.getAudioInputStream(file); //获取播放格式 audioFormat = audioInputStream.getFormat(); /*System.out.println("取样率:"+ audioFormat.getSampleRate());

相关文档
最新文档