195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc

上传人:文库蛋蛋多 文档编号:2392402 上传时间:2023-02-17 格式:DOC 页数:59 大小:1.99MB
返回 下载 相关 举报
195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc_第1页
第1页 / 共59页
195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc_第2页
第2页 / 共59页
195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc_第3页
第3页 / 共59页
195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc_第4页
第4页 / 共59页
195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc》由会员分享,可在线阅读,更多相关《195.A基于ARM的智能手持设备MP3播放器的设计与开发本科毕业设计.doc(59页珍藏版)》请在三一办公上搜索。

1、学校代码:XXX学 号:XXX 本科毕业设计说明书(题 目:基于ARM的智能手持设备MP3播放器的设计与开发学生姓名:XXX学 院:信息工程学院系 别:计算机系专 业:软件工程班 级:软件06指导教师:XXX 副教授二一年 六月本文源码索取,请联系qq:68661508摘 要随着消费类电子产业的蓬勃发展,越来越多的嵌入式电子产品走进了千家万户,各式各样的嵌入式系统出现在了众多的行业和应用中,其中ARM和Linux结合的产品在市场上最受青睐。本课题的嵌入式MP3就是基于ARM和linux平台设计的。系统选用S3C2440开发板为硬件平台,移植linux嵌入式操作系统作为软件平台,在这样的软硬件环

2、境下设计实现了MP3播放器。本文主要描述了MP3嵌入式系统的开发方法与步骤,首先安装并搭建了Linux操作系统与嵌入式系统的交叉开发环境,然后是Uboot、Linux的裁剪和移植,根文件系统的制作以及核心驱动程序的开发。在应用程序开发中介绍了MP3的原理,MP3的文件格式,实现了基于libmad的MP3应用程序的设计。关键词:嵌入式;ARM;Linux;驱动程序;MP3AbstractWith the booming of the consumptive electronics industry, more and more embedded electronic productsmore f

3、ind its way into every family, various embedded systems apply to numerous industries ,among them,the products which combine ARM and Linux technology is most popular in the electronic market .The embedded MP3 in this subject is desighed by ARM and based on Linux platform. This system choose the S3C24

4、40 development boards as the hardware platform, transplant the Linux embedded operating system as the software platform, I design and carry out the MP3 player in this environment that combine software and hardware.This paper describes the development of embedded system MP3, firstly, installation and

5、 building the intersection environment based on Linux operating system and embedded system developing environment, then , cutting and transplantation Linux and Uboot , the production of the root file system and development of the Core Driver programme. In the development of application , the paper d

6、escribes the principle of the MP3 ,the file format of MP3, realized the designing of MP3 application which based on libmad.Keyword:embeded; ARM; Linux; Driver Program; MP3目 录引 言1第一章嵌入式系统概述21.1 嵌入式系统简介21.2 嵌入式国内发展现状21.3 嵌入式系统的结构和组成31.3.1 嵌入式处理器41.3.2 嵌入式外围设备41.3.3 嵌入式操作系统41.3.4 嵌入式应用软件51.4 嵌入式系统的开发过程

7、51.5 嵌入式LINUX开发流程51.6 ARM及S3C2440硬件平台71.6.1 ARM简介71.6.2 ARM内核介绍71.6.3 QT2440E开发板介绍81.7 嵌入式系统的发展趋势9第二章建立嵌入式开发环境102.1 软件平台102.1.1 嵌入式 Linux介绍102.1.2 构建交叉开发环境112.2 硬件平台132.2.1 硬件平台介绍132.2.2 硬件平台结构介绍13第三章 UBOOT分析与移植193.1 BOOTLOADER 简介193.2 BOOTLOADER的启动流程分析193.3 U-BOOT分析203.4 烧写U-BOOT到NANDFLASH28第四章 LIN

8、UX内核分析与文件系统移植294.1 LINUX内核移植294.1.1 Linux 版本介绍294.1.2 Linux 启动过程294.1.3 Linux 内核移植304.2 文件系统344.2.1 嵌入式Linux文件系统344.2.2 Busybox 移植354.2.3 根文件系统的制作364.2.4 制作/烧写yaffs文件系统映像文件38第五章 MP3应用程序的设计405.1 MP3文件格式405.1.1概述405.1.2 MP3 文件结构405.1.3 MP3文件结构分析415.2 MP3解码算法原理介绍435.3 基于LIBMAD的MP3的程序设计475.3.1 libmad简介4

9、75.3.2 MP3应用程序设计47结 论51参考文献52致 谢53引 言随着社会的日益信息化、嵌入式系统的应用越来越广泛、计算机技术的发展和微处理器工艺的改进,计算机和网络已经全面渗透到日常生活的每一个角落,任何人都可以拥有从小到大的各种采用嵌入式技术的产品,小到MP3、PDA等微型数字化产品,大到网络家电、智能家电、车载电子设备等,嵌入式系统及其产品在由家电产品和Internet衍生出来的新型市场中占有主导地位和独特份额。由于嵌入式系统是建立在特定的硬件系统之上,系统的开发华硬件的关系十分紧密,嵌入式开发板为方便调试与开发提供了丰富的外围设备和接口,通过接口可以调试应用程序和打印输出调试信

10、息。嵌入式开发板已成为学习嵌入式操作系统的应用、熟悉硬件设备、学习编写硬件设备驱动、了解嵌入式操作系统体系结构和嵌入式操作系统移植的有力工具。基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展。ARM微控制器的低功耗、高性价比使其以70左右的市场占有率成为嵌入式解决方案中主流微处理器。因此,本次设计工作主要围绕ARM9芯片进行。Linux近几年在嵌入式领域异军突起,成为非常有潜力的嵌入式操作系统。其代码的开放性、系统的稳定性、强大的网络功能以及优秀的文件系统支持,在嵌入式设备特别是网络设备中得到了广泛应用。因此,选择linux作为本次设计

11、的嵌入式操作系统。为了对嵌入式系统的开发过程有一定认识,学习一些嵌入式系统开发技术和方法。这次设计将构建一个针对ARM硬件平台的嵌入式Linux操作系统,然后在其基础上实现简单游戏的功能,最终实现手持游戏终端。第一章 嵌入式系统概述本章主要介绍嵌入式系统的基本概念、总体框架和基本组成,以及常见的嵌入式系统发行版本。还有嵌入式Linux的特点及其在嵌入式系所处的地位和嵌入式Linux在国内外发展概况和发展趋势。1.1 嵌入式系统简介嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。嵌入式系统与通用计算机系

12、统的本质区别在于系统应用不同,嵌入式系统是将一个计算机系统嵌入到对象系统中。这个对象可能是庞大的机器,也可能是小巧的手持设备,用户并不关心这个计算机系统的存在。嵌入式系统一般包含嵌入式微处理器、外围硬件设备、嵌入式操作系统和应用程序4各部分。嵌入式领域已经有丰富的软硬件资源可以选择,涵盖了通信、网络、工业控制、消费电子、汽车电子等各个行业。嵌入式计算机系统与通用计算机系统相比具有以下特点:1. 嵌入式系统是面向特定系统应用的。嵌入式处理器大多数是专门为特定应用设计的,具有低功耗、体积小、集成度高等特点,一般是包含各种外围设备接口的片上系统。2. 嵌入式系统涉及计算机技术、微电子技术、电子技术、

13、通信和软件等各行各业。它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。3. 嵌入式系统的硬件和软件都必须具备高度可定制性。只有这样才能适用嵌入式系统应用的需要,在产品价格性能等方面具备竞争力。4. 嵌入式系统的生命周期相当的长。嵌入式系统应用到产品后,还可以进行软件升级,它的生命周期与产品的生命周期几乎一样长。1.2 嵌入式国内发展现状随着技术进步的不断加速,我们有理由相信计算机还将继续快速发展并进一步改善我们的生活,让计算变得“无所不能”、“无处不在”。其中“无所不能”将是人工智能技术和超级计算机的结合,而“无所不在”则是嵌入式技术应用的广阔天地,现在普通消费者已经可以从市场中

14、买到数码相机、移动电话、打印机我们的生活,等众多的数码产品、航空设备、ATM机、计算机网络设备等电子产品中都用到了嵌入式系统。图1-1 嵌入式软件架构嵌入式控制器的应用几乎无处不在:移动电话、家用电器、汽车无不有它的踪影。嵌入控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化进程、提高生产率等方面起到了极其重要的推动作用。嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了5 - 10 个嵌入式微处理器。在制造工业、过程控制、网络、通讯、仪器、

15、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。1.3 嵌入式系统的结构和组成一般而言,嵌入式系统的体系结构可以分成四个部分:嵌入式处理器,嵌入式外围设备,嵌入式操作系统和嵌入式应用软件。1.3.1 嵌入式处理器嵌入式系统的核心是各种类型的嵌入式处理器,其应具有很高的效率和可靠性。常用的嵌入式处理器可分为:低端的嵌入式处理器、中高端的嵌入式处理器、用于计算通信领域的嵌入式DSP处理器和高度集成嵌入式片上系统(SOC)。目前几乎每个半导体制造商都在生产嵌入式处理器,全世界嵌入式处理器已超过1000种,流行的体系结构有30多个系列,其中以ARM、POWERPC、

16、MC68000、MIPS等最为广泛。1.3.2 嵌入式外围设备在嵌入式系统硬件系统中,除了处理器以外,用于完成存储、通信、调试、显示等辅助功能的外围部件,都算作嵌入式外围设备。目前常用的嵌入式外围设备按功能可以分为存储设备、通信设备和显示设备三类。 储设备主要用于各类数据的存储,常用的有静态易失性存储器(RAM,SRAM)、动态存储器(DRAM)和非易失性存储器(ROM,EPROM,EEPROM,FLASH)三种;绝大多数常用的通信设备接口都可以直接在嵌入式系统中应用,包括RS232串行通讯接口、串行外围设备接口(SPI)、红外线接口(IRDA)、通用串行总线接口(USB)、Ethernet以

17、太网接口;嵌入式系统中的显示设备通常是阴极射线管(CRT)、液晶显示器(LCD)和触摸板等。1.3.3 嵌入式操作系统为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、中断处理、任务调度等功能模块,这就是嵌入式操作系统。嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通讯协议、图形用户界面(GUI)。它具有通用操作系统的基本特点,能够有效管理复杂的系统资源,对硬件进行抽象,提供库函数、驱动程序、开发工具等。但在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,嵌入式操作系统具有更加鲜

18、明的特点。根据应用场合,嵌入式操作系统可以分成两大类:一类是面向消费电子产品的非实时系统,如WindowsCE等,应用设备包括个人数字助理(PDA)、移动电话、机顶盒(STB)等;另一类则是面向控制、通信、医疗领域的实时操作系统,如Vxworks、uC/OS-II等。实时系统是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能作出及时响应的系统。在实时系统中,操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。1.3.4 嵌入式应用软件嵌入式应用软件是针对特定应用领域,基于某一硬件平台,用来达到用户预期目标的计算机软件。由于用户任务可能有时

19、间和精度上的要求,嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能进行优化,以减少对系统资源的消耗,降低硬件成本。1.4 嵌入式系统的开发过程由于嵌入式系统是应用于特定环境下面对专业领域的应用系统,具有与通用计算机系统明显不同,因此其开发过程和开发环境同传统的软件开发相比有着显著的不同。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发三大部分。在系统总体开发中,由于嵌入式系统与硬件依赖程度非常紧密,往往某些需求只能通过特定的软件才能实现,因此需要进行处理器选型,以更好的满足产品的需求。另外,对于有些硬件

20、和软件都可以实现的功能,就需要在成本上和性能上作出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。在硬件开发设计中,首先根据模型确定硬件需要实现的功能,接着确定硬件的构成,并确定数据的控制流程,完成结构化设计,然后是硬件逻辑设计,最后是物理硬件实现,以开发板的形式出现。在软件设计过程中,根据需要实现的任务划分各个模块,通过交叉开发环境实现目标代码,完成系统测试。1.5 嵌入式linux开发流程在一个嵌入式系统中使用Linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过如下的过程:1. 建立开发环境操作系统一般使用RedHat-Linux,选择定制安装或

21、全部安装,通过网络下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-clibc-gcc),或者安装产品厂家提供的交叉编译器。2. 配置开发主机配置minicom,一般的参数为波特率为115200bps,数据位为8位,停止位为1,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样的。minicom软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。3. 建立引导装载程序Bootloader从网络上下载一些公开源代码的Bootloader,如ub

22、oot、Blob、vivi、lilo、arm-boot、red-boot等,根据自己具体的芯片进行移植修改。有些芯片没有内置引导装载程序,例如三星的ARM7、ARM9系列芯片,这样就需要编写开发板上Flash的烧写程序,网络上有免费下载的Windows下通过JTAG并口简易仿真器烧写ARM外围Flash芯片的烧写程序,也有Linux下的公开源代码的J-Flash程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是系统正常运行的第一步。4. 下载Linux操作系统如CLinux、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系

23、统那是再好不过的,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,对于CLinux这样的系统则需编译进内核进行调试。5. 建立根文件系统从下载使用Busybox软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他程序。默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设

24、为只读,需要使用mkcramfs、genromfs等工具产生烧写映像文件。6. 建立应用程序的Flash磁盘分区一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性Flash(NOR型)512KB32MB,有的系统使用非线性Flash(NAND型)8512MB,有的两个同时使用,需要根据应用规划Flash的分区方案。7. 开发应用程序应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于COS-II的方式。8. 烧写内核、根文件系统、应用程序9. 发布产品1.

25、6 ARM及S3C2440硬件平台嵌入式开发的主要工作之一是硬件的开发,而硬件开发更基础的工作是构建硬件开发平台,本次设计使用的硬件平台是以S3C2440嵌入式微处理器为核心而构建的开发板。1.6.1 ARM简介ARM是Advanced RISC Machines的缩写,是英国一家知名的微处理器公司。ARM是设计公司,本身不生产芯片,只提供知识产权(IP)。各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。1.6.2 ARM内核介绍1. ARM 处理器特点:(1)体积小、功耗低、低成本、高性能。(2)支持

26、Thumb/ARM双指令集,能很好的兼容8位/16位器件。(3)大量的使用寄存器,指令执行速度更快。(4)大多数数据处理都在寄存器中完成。(5)寻址方式灵活简单、执行效率高。(6)指令长度固定。2. ARM微处理器工作状态ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种位Thumb状态,此时处理器执行16位的半字对齐的Thumb指令。3. ARM体系结构的存储格式大端格式:在这种格式中,字数据的高字节存储在低地址中,二字数据的低字节则存储在高地址中。小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字

27、数据的的低字节,高地址存放的是字数据的高字节。4. ARM处理器模式(1)ARM处理器支持7种运行模式,分别如下。(2)用户模式:ARM处理器正常的程序执行状态。(3)快速中断模式:用于高速数据传输或通道处理。(4)外部中断模式:用于通用的中断处理。(5)管理模式:操作系统使用的保护模式。(6)数据访问终止模式:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。(7)系统模式:运行具有特权的操作系统任务。(8)未定义指令终止模式:未定义的指令执行时进入该模式。1.6.3 QT2440E开发板介绍1. 核心板部分:处理器:S3C2440A-40 400MHz主频,ARM 920T内核F

28、lash:512M bit NAND FLASH,8bit宽度RAM:512M bit SDRAM,133MHz,32bit宽度(两片组成)网络:10Mbps低功耗嵌入式专用以太网网络芯片CS8900A-CQ3。音频:UDA1341TS,立体声音频输入输出接口。RTC时钟:S3C2440A内部集成,外部提供RTC电池,插座安装,可更换。2. 底板部分:电源:7-24V宽电压输入,LT1765高效DC/DC降压,标配12V电源串口,3路串口,1路带握手信号,可接调制解调器或者GPRS。液晶接口:支持CSTN,TFT等多种LCD摄像头接口:预留30pin插座,方便用户连接数字摄像头USB HOST

29、:2个USB HOST接口,USB FULL SPEED。可外接HUB 扩展。USB DEVICE:1路USB DEVICE接口,USB FULL SPEEDSD卡接口:支持SD/MMC和SDIO设备JTAG接口:ARM标准20芯JTAG接口1.7 嵌入式系统的发展趋势以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好 前景,注入了新的生命;同时也对嵌入式系统技术 ,特别是软件技术提出新的挑战。 这主要包括支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理。嵌入式应用软件的开发需要强大的开发工具和操作系统的支持。随着因特网技术的成熟、带宽的提高,在网上提供

30、的信息内容日趋丰富、应用项目多种多样,像电话手机、电话座机及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。强大的网络支持成为必然趋势。针对外部联网要求,嵌入设备必需配有通信接口,相应需要 TCP/IP协议簇软件支持 ,同时也需要提供相应的通信组网协议软件和物理层驱动软件,以支持应用软件的特定编程模式。支持电子设各实现小尺寸、微功耗和低成本。为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能限制内存容量和复用接口芯片。就相应提高了对嵌入式软件设计技术要求。如选用最佳的编程模型和不断改进算法、优化编译器性能。提供精巧的多媒体人机界面 。人机交互界面是一个让使用者和计算机沟

31、通时所需要的沟通环境。由于人们在使用多媒体产品时会预期看到的是一个熟悉而友善的计算机屏幕画面,因此让使用者身处在精巧友好的环境下,一定比较容易掌握状况,迅速获取取得信息。 第二章 建立嵌入式开发环境在一个嵌入式系统中使用Linux开发,根据应用需求的不同有不同的配置开发方法,嵌入式Linux开发环境有以下几个方案:基于PC机Windows操作系统下的CYGWIN;在Windows下安装虚拟机后,再在虚拟机中安装Linux操作系统;直接安装Linux操作系统。本次设计则采用的方案是宿主机直接安装Linux操作系统。2.1 软件平台2.1.1 嵌入式 Linux介绍嵌入式 Linux(Embedd

32、ed Linux)是指对标准 Linux 经过小型化裁剪处理之后,能够固化在容量只有几 KB 或者几 MB 字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用 Linux 操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是 Linux。这与它自身的优良特性是分不开的。嵌入式 Linux 同 Linux 一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式 Linux 还在 Linux 基础上做了部分改进,如下所示:1. 改善的内核结构在嵌入式系统经常采用的是另一种称为微内核(Microkernel)的体系结构

33、,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际需要进行取舍。这样就大大减小了内核的体积,便于维护和移植。2. 提高的系统实时性由于现有的 Linux 是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用 Linux 作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux 已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等各种领域。2.1.2 构建交叉

34、开发环境1. 安装RHEL5操作系统Red Hat于2007年3月14日正式发布了RHEL5. RHEL 5将是Red Hat的商业服务器操作系统版本的第四次重要版本发布, Red Hat酝酿发布RHEL 5已经超过了两年, 主要变化包括Linux内核由2.6.9升级为2.6.18。安装系统可以从镜像安装也可以从光盘安装,这里选择从光盘安装。首先将系统盘放在光驱中重启电脑,系统会自动选择从光盘启动,当出现boot提示符时敲回车系统进入欢迎界面。 第一步:选择安装过程中使用的语言,一般选择英文或者是中文,这根据自己的爱好而定。第二步:选择键盘语言为美国英语。第三步:当出现分区选择界面时选择“自定

35、义分区”,具体设置如下:l Boot分区:设置为100M;l Swap分区:设置为内存的二倍即可,这里设置为1024M。l 根(/)分区:可以将剩下的所有的磁盘当做根分区,也可以进一步将剩下的空间进行分区。注意:boot分区必须设置在磁盘的开始部分,否则系统启动。以上就是安装系统的主要工作,接下来所有的设置都可以采用默认设置,点击下一步一直到开始安装系统。2. 交叉编译工具的安装源文件必须经过编译连接才能生成可执行文件,由于嵌入式系统的资源有限所以只能在PC机上将源文件编译连接然后将生成的执行文件放到开发板上运行。要生成能在ARM平台上运行的程序,必须使用交叉编译工具arm-linux-gcc

36、、arm-linux-ld等。本次设计使用的交叉编译工具为arm-2008-11-24.iso,下面是安装交叉编译工具的步骤:第一步:挂载工具链:在终端下输入:mount -o loop arm-2008-11-24.iso /mnt/自己建的目录,这里自己建的目录是可选的(假设为cross_tool),也可以直接挂在/mnt目录下。第二步:新建一个安装目录,在安装目录下打开终端并输入:#/mnt/install这步是安装交叉编译工具。第三步:修改环境变量PATH。修改环境变量有两种方法:在Shell下输入命令:export PATH=/安装路径的绝对路径/usr/bin:$PATH直接修改/

37、.bashrc、 /etc/profile 、/etc/environment三个文件,修改的方法为在文件的开头或结尾添加上面的命令即可。第四步:验证交叉编译工具是否安装成功。验证方法为:在Shell下输入arm-linux-gcc -v如果出现一些关于交叉编译工具的信息则表示工具安装成功。3. 网络服务的配置当程序交叉编译完后需要通过某种方式下载到开发板上运行以验证程序是否正确,一般下载方式主要是同过网线或者是串口的方式。一般情况下需要同时用到两种方式,使用网线需要配置nfs服务,使用串口需要配置tftp服务和minicom。(1) nfs服务的配置Nfs服务主要是在挂载文件系统时配置配置方

38、法如下:将nfs文件系统所在的绝对路径添加到/etc/exports文件中,配置格式如下(假设文件系统的绝对路径为/root/embeded/rootfs):/root/embeded/rootfs *(rw, no_root_squash)*表示所有的IP(目标板)都可以访问;Rw: 表示访问者的权限为可读写;no_root_squash:表示没有root权限。配置好后重启nfs服务。(2) Tftp服务的配置tftp协议是基于udp实现的比较适合用来传比较大的文件。配置方法如下:首先修改/etc/xinetd.d/tftp文件:将disable字段改为no,如果原先已经为no则不用修改,表

39、示开启tftp服务。然后将server_args修改为自己建的用于目标板下载文件的目录的绝对路径(假设为/root/tftpboot,默认是/tftpboot),事实上这个也可以不用修改。修改完后重启tftp服务:在shell输入service xinetd restart。然后随便添加一个文件到自己建的路径下,再在shell下输入:tftp localhost意思是从本地下载到本地。如果出现提示符 则输入“get 文件名”,然后在该终端打开的目录下看是否有该文件,如果有则表示tftp服务配置成功。(3) minicom的配置Minicom是linux下目标板与用户交互的界面,在调式阶段是非常

40、重要的。配置方法如下:第一步:在shell中输入minicom -s。第二步:进入出现的界面的 serial port setup选项,设置Serial Device 为/dev/ttyS0,这项需要根据具体情况而定;然后按I 将Bps/Par/Bits设为1152008N1;软硬件设置为no;保存为默认并退出。当u-boot烧写到开发板上后启动开发板就可以在minicom 中看到u-boot下的提示符。2.2 硬件平台2.2.1 硬件平台介绍硬件平台由以S3C2440处理器为核心,4.3英寸彩色显示屏为显示器件,以IIS总线为音频数据流通道,并通过L3总线(由L3MODE,L3CLOCK,L

41、3DATA控制线组成)控制解码芯片WM8976对音频数据流进行解码,最后由WM8976负责将数据输出到扬声器或耳机发出声音、当有麦克输入时切换为录音模式进行录音2.2.2 硬件平台结构介绍1. S3C2440处理器采用ARM920t核,五级流水线,工作频率为400MHZ。CPU主要负责将存储于Nandflash中的MP3数据取出来放在内存中,然后DMA控制器选择通道2负责将数据取出放在IIS总线上,然后发送到WM8976解码芯片,然后由扬声器发出声。开发板的实物图如2-1所示:图2-1 2440开发板实物图另外在CPU取出MP3数据时,将MP3数据的属性取出来放在FrameBuffer中,然后

42、由LCDDMA控制器负责将数据通过GPC,GPD接口发送给LCD,但因为GPC和GPD是复用的所以要初始化其为输出模式。2. LCD显示器LCD的接口分为三类:电源接口,数据线,控制线。(1) 电源线:LED+,LED-为LCD背光电源。(2) 数据线(VD0VD23)液晶屏的数据格式为5:6:5(16bpp),即用16位的数据来表示一个像素,16位的数据可以组成16K中颜色,也就是我们所说的16K色,本开放板上的TFT液晶显示屏支持16K色非调色板显示模式。各模式下用来传输红,绿,蓝三种原色的颜色值的VD数据线如表1所示(没有用到的数据线其电平为0):表2-1 16BPP数据格式(3) 控制

43、线:LCD和CPU的接口如图2-2所示。由原理图可知LCD的主要控制信号为:VCLK,LCD_PWREN,VLINE,VFRAME,VM。VCLK:VCLK为像素时钟,它也是HSYNC,VSYNC信号的时钟信号,VCLK信号有效时表示一帧数据的开始。HSYNC(VLINE):HSYNC表示行同步信号,当HSYNC信号有效时表示一行数据的开始。VSYNC(VFRAME):为帧同步信号,信号有效时表示一帧数据的开始。同时VSYNC信号有称为垂直频率,场频率,显示器频率。VDEN(VM):VDEN为数据使能信号在行同步信号使能后在经过HBPD+1个VCLK信号才输出高电平。LCD_PWREN信号为L

44、CD电源显示控制信号只有在背光电源和该信号都打开的时候图像才能显示,它受LCDCON5寄存器的PWREN位控制。LCD DMA的时序图如下:图2-2 LCD主时序图结合时序图可知DMA传输一帧的时间为:t = (VSPWVBPDLINEVFPD)(HSPWHBPDHOZVALHFPD)(1/VCLK)VCLK时钟取自HCLK,一般取振频率为60HZ.VCLK的计算公式为:VCLK = HCLK / (CLKVAL+1) *2CLKVAL的值可通过LCDCON1寄存器设置。3. WM8976解码芯片电路(1) IIS总线概述IIS总线只处理声音数据。其他信号(如控制信号)必须单独传输。为了使芯片

45、的引出管脚尽可能少,IIS只使用了三根串行总线。这三根线分别是:提供分时复用功能的数据线、字段选择线(声道选择)、时钟信号线。在三星公司的ARM芯片中,为了实现全双工模式,使用了两条串行数据线,分别作为输入和输出。此外三星公司的IIS接口提供三种数据传输模式:l 正常传输模式:此模式基于FIFO寄存器。该模式下CPU将通过轮询方式访问FIFO寄存器,通过IISCON寄存器的第七位控制FIFO。l DMA模式。此模式是一种外部设备控制方式。它使用窃取总线控制权的方法使外部设备与主存交换数据,从而提高系统的吞吐能力。l 传输/接收模式。该模式下,IIS数据线将通过双通道DMA同时接收和发送音频数据

46、。本系统使用该数据传输模式。(2) WM8976与S3C2440接口设计S3C2440A为WM8976解码芯片提供IIS总线接口, 作为一个编解码接口连接外部 8/16位立体声音频解码IC用于迷你碟机和可携式应用。IIS总线接口支持IIS总线数据格式和MSB-justified数据格式。该接口对FIFO的访问采用了DMA模式取代了中断。它可以在同一时间接收和发送数据。WM8976芯片除了提供IIS接口和麦克风扬声器接口,还提供L3接口控制音量等。L3接口分别连到S3C2440的3个通用数据输出引脚上(GPB2:4)。扬声器接口:HS_DECT:决定使用耳机还是喇叭放音。IIS_RO/IIS_L

47、O:耳机的左右声道输出。当耳机插入时HS_DECT检测到耳机,然后决定使用耳机作为扬声器,否则采用喇叭。IIS_COM:该引脚为浮接,没有与之对应的CPU引脚。SPK+/SPK-:喇叭的左右声道输出引脚。由图4可见WM8976芯片能直接驱动喇叭。(3) 麦克风接口:S3C2440开发板提供了一个麦克风接口。MICVDD:麦克风电源。MICIN:外接麦克风,由图2-3可见麦克风输入经过一个1uF的滤波电容接入芯片。(4) I2S总线接口:I2SSDI/I2SSDO:这两个引脚直接分别接CPU的I2SSDI/I2SSDO引脚,用于串行传输音频数据,其串行时钟由主设备的I2SSCLK提供。图2-3 WM8976和S3C2440接口电路图I2SSCLK:串行数据传输时钟信号,I2SSCLK和I2SLRCK信号由主设备(当在放音模式下时,CPU是主设备;当在录音模式下时,

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号