本人的结业论文,写的不怎样样linux vps,一共花了我差不多5天左右时间,纯原创,不仅开头理论部份节选网上的外其他基本都是自己写的,前辈就不要看了,给须要的人,传图片太麻烦,云盘有原版,做了些删节,可做参考
嵌入式MP3的设计与实现
[摘要]随着计算机技术和微电子的的迅速发展,嵌入式系统己经被广泛地应用到许多领域,如科学研究、工程设计、军事技术以及各类商业应用等。嵌入式系统被定义为以应用为中心,以计算机技术为基础、软硬件可剪裁、适应于特定应用系统对功能、可靠性、成本、体积、功耗等严格要求的专业计算机系统。在目前的各类嵌入式处理器中,因为ARM芯片的低帧率、低成本等明显优点,因此获得诸多的半导体厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功。另一方面,Linux操作系统具有开放源代码、功能强悍且便于移植等特性而成为嵌入式操作系统的首选,因而在ARM芯片上建立嵌入式Linux系统成为嵌入式领域的一个热点。
[关键词]嵌入式系统;ARM;Linux操作系统;热点
Abstract
Zhuhandon
(ZhejiangOceanUniversityDonghaiScienceandTechnologyCollege,Zhuhandon316004,China)
[Abstract]Withtherapiddevelopmentofcomputertechnologyandmicro-electronics,embeddedsystemiswidelyappliedTomanyfields,suchasscientificresearch,engineeringdesign,militarytechnology,andkindsofbusinessapplications.Embeddedsystemisdefmedasaprofessionalcomputersystembasedoncomputertechnologywhichaimsatapplications.Itssoftwareandhardwarecanbucutdown.Italsomeetsthespecificalrequirement,suchasfunc的Il’reliability,cost,volume,powerdissipation.Atthepresenttime,becauseoflowerpowerdissipationandlowercostofARMtsstrongsuit,manymanufacturersuseit.ARMismoresuccessfulthanotherembeddedprocessorof32-bits.Ontheotherhand,linuxisopen—soufoed’easytoportandhaspowerfulfunctionSOthatitturnsintothefirstchoiceofembeddedsystem.Thereforebuildingembeddedlinuxsystemispopular.
[Keywords]micro-electronicscpu源代码分析与芯片设计及linux移植cpu源代码分析与芯片设计及linux移植,embeddedsystem,ARM
序言
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部份。一般,嵌入式系统[1]是一个控制程序储存在ROM中的嵌入式处理器控制板。事实上,所有带有数字插口的设备,如腕表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。从应用对象上加以定义,从下图中可以看出嵌入式系统是软件和硬件的综合体,还可以囊括机械等附属装置。国外普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
第1章.嵌入式系统
1.1嵌入式系统特征
(1)可剪裁性。支持开放性和可伸缩性的体系结构。
(2)强实时性。EOS实时性通常较强,可用于各类设备控制中。
(3)统一的插口。提供设备统一的驱动插口。
(4)操作便捷、简单、提供友好的图形GUI和图形界面,追求易学易用。
提供强悍的网路功能,支持TCP/IP合同及其他合同linux文本编辑器,提供TCP/UDP/IP/PPP合同支持及统一的MAC访问层插口,为各类联通估算设备预留插口。
(5)强稳定性,弱交互性。嵌入式系统一旦开始运行就不须要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户插口通常不提供操作命令,它通过系统的调用命令向用户程序提供服务。
(6)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。
(7)更好的硬件适应性,也就是良好的移植性。[5]
(8)嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因而嵌入式系统产品一旦步入市场,具有较长的生命周期。
1.2嵌入式计算机系统同通用计算机系统区别
(1)嵌入式系统一般是面向特定应用的,嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它一般都具有帧率低、体积小、集成度高等特性,才能把通用CPU中许多由板卡完成的任务集成在芯片内部,因而有利于嵌入式系统设计大型化,联通能力大大提高,跟网路的耦合也越来越紧密。
(2)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
(3)嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除不须要的多余功能,力争在更小的晶圆面积上实现同样的性能,这样就能在具体应用中更具有竞争力。
(4)嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因而嵌入式系统产品一旦步入市场,具有较长的生命周期。
(5)为了提升执行速率和系统可靠性,嵌入式系统中的软件通常都固化在储存器芯片或单片机本身中,而不是储存于c盘等载体中。
(6)嵌入式系统本身不具备自主开发能力,虽然设计完成之后用户一般也是不能对其中的程序功能进行更改的,必须有一套与通用计算机系统联接的开发工具和环境能够进行开发。
1.3系统组成:
一个嵌入式系统装置通常都由嵌入式计算机系统和执行装置组成,
嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置称作为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务
1硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备插口和I/O插口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和储存器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。
(1)嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,因而有利于嵌入式系统在设计时趋向大型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯·诺依曼体系或耶鲁体系结构;指令系统可以选用精简指令系统(ReducedInstructionSetComputer,RISC)和复杂指令系统CISC(ComplexInstructionSetComputer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,因而提升了执行效率并使CPU硬件结构设计显得更为简单。
嵌入式微处理器有各类不同的体系,虽然在同一体系中也可能具有不同的时钟频度和数据总线长度,或集成了不同的外设和插口。据不完全统计,全世界嵌入式微处理器早已超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是依据具体的应用而决定的。
(2)储存器
嵌入式系统须要储存器来储存和执行代码。嵌入式系统的储存器包含Cache、主存和辅助存贮器。
(3)寻址
寻址是嵌入式微处理器能直接访问的寄存器,拿来储存系统和用户的程序及数据。它可以坐落微处理器的内部或外部,其容量为256KB~1GB,依据具体的应用而定,通常片显存储器容量小,速率快,片外储存器容量大。
常用作寻址的储存器有:
ROM类NORFlash、EPROM和PROM等。
RAM类SRAM、DRAM和SDRAM等。
其中NORFlash凭着其可擦写次数多、存储速率快、存储容量大、价格实惠等优点,在嵌入式领域内得到了广泛应用。
(4)辅助存贮器
辅助存贮器拿来储存大数据量的程序代码或信息,它的容量大、但读取速率与寻址相比就慢的好多,拿来常年保存用户的信息。
嵌入式系统中常用的外存有:硬碟、NANDFlash、CF卡、MMC和SD卡等。
(5)通用设备插口和I/O插口
嵌入式系统和外界交互须要一定方式的通用设备插口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感的联接来实现微处理器的输入/输出功能。每位外设一般都只有单一的功能,它可以在芯片外也可以外置芯片中。嵌入式系统中常用的通用设备插口有A/D(模/数转换插口)、D/A(数/模转换插口),I/O插口有RS-232插口(串行通讯插口)、Ethernet(以太网插口)、USB(通用串行总线插口)、音频插口、VGA视频输出插口、I2C(现场总线)、SPI(串行外围设备插口)和IrDA(红外线插口)等。
2.中间层
硬件层与软件层之间为中间层,亦称为硬件具象层(HardwareAbstractLayer,HAL)或板级支持包(BoardSupportPackage,BSP),它将系统下层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,下层软件开发人员无需关心底层硬件的具体情况,按照BSP层提供的插口即可进行开发。该层通常包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特征。
硬件相关性:由于嵌入式实时系统的硬件环境具有应用相关性,而作为下层软件与硬件平台之间的插口,BSP须要为操作系统提供操作和控制具体硬件的方式。
操作系统相关性:不同的操作系统具有各自的软件层次结构,因而,不同的操作系统具有特定的硬件插口方式。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部份与硬件联系紧密的软件模块。设计一个完整的BSP须要完成两部份工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。
3系统软件
系统软件层由实时多任务操作系统(Real-timeOperationSystem,RTOS)、文件系统、图形用户插口(GraphicUserInterface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。
(1)嵌入式操作系统
嵌入式操作系统(EmbeddedOperationSystem,EOS)是一种用途广泛的系统软件,过去它主要应用与工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须彰显其所在系统的特点,还能通过装卸个别模块来达到系统所要求的功能。已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息电器的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特征。EOS是相对于通常操作系统而言的,它除具有了通常操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下
(2)文件系统
通用操作系统的文件系统一般具有以下功能:
提供用户对文件操作的命令。
提供用户共享文件的机制。
管理文件的储存介质。
提供文件的存取控制机制,保障文件及文件系统的安全性。
提供文件及文件系统的备份和恢复功能。
提供对文件的加密和揭秘功能。
嵌入式文件系统比较简单,主要提供文件储存、检索和更新等功能,通常不提供保护和加密等安全机制。它以系统调用和命令形式提供文件的各类操作,主要有:
设置、修改对文件和目录的存取权限。
提供完善、修改、改变和删掉目录等服务。
提供创建、打开、读写、关闭和撤消文件等服务。
4初始化
系统初始化过程可以分为3个主要环节,根据自底向下、从硬件到软件的顺序依次为:片级初始化、板级初始化和系统级初始化。
(1)片级
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐渐设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。
(2)板级
完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置个别软件的数据结构和参数,为此后的系统级初始化和应用程序的运行构建硬件和软件环境。这是一个同时包含软硬件两部份在内的初始化过程。
(3)系统
该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,构建系统显存区,加载并初始化其他系统软件模块,如网路系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的并将控制权交给应用程序的入口。
第2章U-boot启动代码剖析
2.1.概述
嵌入式linux系统从软件角度看,通常可分为以下几个层次