基于ARM-Linux系统开发平台下嵌入式MP3的设计与实现

本文介绍了在ARM-Linux系统开发平台下设计和实现嵌入式MP3的过程。文章详细阐述了嵌入式系统的特点、与通用计算机系统的区别,强调了ARM处理器在嵌入式领域的优势。内容涵盖了硬件层、中间层(BSP)和系统软件层的组成,以及嵌入式操作系统的特性。此外,文章还探讨了U-boot启动代码分析和MP3播放器Madplay的移植步骤。通过对硬件接口和中断处理的配置,实现了对按键驱动的移植,为嵌入式MP3系统提供了完整的软硬件解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人的毕业论文,写的不怎么样,一共花了我差不多5天左右时间,纯原创,除了开头理论部分摘录网上的外其他基本都是自己写的,高手就不要看了,给需要的人,传图片太麻烦,http://pan.baidu.com/s/1sjuA 网盘有原版,做了些删减,可做参考


基于ARM-Linux系统开发平台下

嵌入式MP3的设计与实现

[摘  要] 随着计算机技术和微电子的的迅速发展,嵌入式系统己经被广泛地应用到许多领域,如科学研究、工程设计、军事技术以及各种商业应用等。嵌入式系统被定义为以应用为中心,以计算机技术为基础、软硬件可裁剪、适应于特定应用系统对功能、可靠性、成本、体积、功耗等严格要求的专业计算机系统。在目前的各种嵌入式处理器中,由于ARM芯片的低功耗、低成本等显著优点,因而获得众多的半导体厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功。另一方面,Linux操作系统具有开放源代码、功能强大且易于移植等特点而成为嵌入式操作系统的首选,因此在ARM芯片上构建嵌入式Linux系统成为嵌入式领域的一个热点。

[关键词] 嵌入式系统;ARMLinux操作系统;热点

Abstract

Zhuhandon

(Zhejiang Ocean University Donghai Science and Technology College,Zhuhandon 316004, China)

[Abstract] With the rapid development of computer technology and micro-electronics, embedded system is widely applied To many fieldssuch as scientific research, engineering designmilitary technology,and kinds of business applicationsEmbedded system is defmed as a professional computer system based on computer technology which aims at applicationsIts software and hardware can bu cut downIt also meets the specifical requirementsuch as funcIlreliability,costvolumepower dissipationAt the present timebecause of lower power dissipation and lower cost of ARMts strong suit,many manufacturers use itARM is more successful than other embedded processor of 32-bitsOn the other handlinux is open—soufoed'easy to port and has powerful function SO that it turns into the first choice of embedded systemTherefore building embedded linux system is popular

[Key words] micro-electronics,embedded system,ARM

 

前  言

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统[1]是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。应用对象上加以定义,从右图中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

1章.嵌入式系统

1.1 嵌入式系统特点

(1)可裁剪性。支持开放性和可伸缩性的体系结构

(2)强实时性。EOS实时性一般较强,可用于各种设备控制中。

(3)统一的接口。提供设备统一的驱动接口。

(4)操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。

提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。

(5)强稳定性,弱交互性嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。

(6)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。

(7)更好的硬件适应性,也就是良好的移植性。[5]

(8)嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

1.2 嵌入式计算机系统同通用计算机系统区别

  (1)嵌入式系统通常是面向特定应用的,嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有功耗低、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计小型化,移动能力大大增强,跟网络的耦合也越来越紧密。
  (2)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
  (3)嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除不需要的多余功能,力争在更小的硅片面积上实现同样的性能,这样才能在具体应用中更具有竞争力。
    (4嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
    (5为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。
  (6嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套与通用计算机系统连接的开发工具和环境才能进行开发。

1.3系统组成:

一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,

嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务

1硬件层

硬件层中包含嵌入式微处理器、存储器(SDRAMROMFlash等)、通用设备接口和I/O接口(A/DD/AI/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。

(1)嵌入式微处理器

嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。

嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构指令系统可以选用精简指令系统(Reduced Instruction Set ComputerRISC)和复杂指令系统CISCComplex Instruction Set ComputerCISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。

嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率数据总线宽度,或集成了不同的外设和接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构30多个系列,其中主流的体系有ARMMIPSPowerPCX86SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。

2)存储器

嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器

3主存

主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。

常用作主存的存储器有:

ROM类 NOR FlashEPROMPROM等。

RAM类 SRAMDRAMSDRAM等。

其中NOR Flash 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。

4辅助存储器

辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。

嵌入式系统中常用的外存有:硬盘、NAND FlashCF卡、MMCSD卡等。

5)通用设备接口和I/O接口

嵌入式系统和外界交互需要一定形式的通用设备接口,如A/DD/AI/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet以太网接口)、USB通用串行总线接口)、音频接口、VGA视频输出接口、I2C现场总线)、SPI串行外围设备接口)和IrDA红外线接口)等。

2中间层

硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract LayerHAL)或板级支持包Board Support PackageBSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。

硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。

操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。

实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动

3 系统软件

系统软件层由实时多任务操作系统Real-time Operation SystemRTOS)、文件系统、图形用户接口Graphic User InterfaceGUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。

(1)嵌入式操作系统

嵌入式操作系统(Embedded Operation SystemEOS)是一种用途广泛的系统软件,过去它主要应用与工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除具有了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下

2)文件系统

通用操作系统的文件系统通常具有以下功能:

提供用户对文件操作的命令。

提供用户共享文件的机制。

管理文件的存储介质。

提供文件的存取控制机制,保障文件及文件系统的安全性。

提供文件及文件系统的备份和恢复功能。

提供对文件的加密和解密功能。

嵌入式文件系统比较简单,主要提供文件存储、检索和更新等功能,一般不提供保护和加密等安全机制。它以系统调用和命令方式提供文件的各种操作,主要有:

设置、修改对文件和目录的存取权限。

提供建立、修改、改变和删除目录等服务。

提供创建、打开、读写、关闭和撤销文件等服务。

4 初始化

系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。

(1)片级

完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。

(2)板级

完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。

(3)系统

该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的并将控制权交给应用程序的入口。

2章 U-boot启动代码分析

2.1.概述

嵌入式linux系统从软件角度看,一般可分为以下几个层次

.引导加载程序,其主要的工作包括固化在固件中的boot代码和bootloader两大部分然而在大部分嵌入式系统中没有固件。所以bootloader是上电后第一个执行的程序,U-bootbootloader一种,运用最为广泛。

.Linux内核,bootloader最终目的就是为了启动内核,其是整个嵌入式系统的核心,掌管着对软硬件的调配控制着整个系统的运行,就像是人的大脑一样

.文件系统:文件系统包括根文件系统和建立于Flash内存设备之上的文件系统,其包含了Linux系统能够运行所必须的应用程序,库等,比如提供用户与系统交互的shell程序,通过shell程序可以让用户调控系统,还有动态链接库等

.用户应用程序:这个很容易理解,应用程序存储于文件系统中。

 关于Flash上的存储内容

 

2-1 Flash上的存储内容

常用的嵌入式系统FlashnorFlashNANDFlash两种,一般使用NAND作为其存储Flash,其中的存放方式如上图,bootloader(引导加载)放在最前端,其后是boot parameters(启动参数)这个的作用是bootloader给内核传递的参数,原因是因为在bootloader引导内核运行后,其生命周期就已经结束,其所占用的空间都有可能被其他程序占用。但是内核启动需要具体的参数以便适应不同的开发环境,因此,在bootloader生命周期结束前需要将内核启动的参数存放在一个地方,而后内核在启动的时候就去读取这些参数,所以划分了这么一个存储空间,接下来就是kernel(内核),再之后就是Root filesystem(根文件系统)。

上电后执行流程

系统启动分为nor flash启动和nand flash启动,其其别在于nor flash可以像读内存一样读取,而nand flash不行,对nand的读取要有一定的时序,另外arm系统一上电就会在0地址处开始执行,就nor启动而言,如图可以看到当不使用nand flash

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值