版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式应用程序设计
第一章嵌入式系统基础
1.1嵌入式系统概述1.2ARM处理器硬件开发平台1.3嵌入式软件开发流程1.4实验内容—使用JTAG烧写NANDFlash1.5小结1.6思考与练习本章课程:21.1嵌入式系统概述1.1.1嵌入式系统的基本概念1.1.2嵌入式系统的体系结构1.1.3几种常用的嵌入式操作系统1.1.4嵌入式系统发展趋势3
嵌入式系统的基本概念嵌入式系统是以应用为中心,以计算机控制系统为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统通常由特定功能模块和计算机控制模块组成,主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。它具有“嵌入性”、“专用性”与“计算机系统”的三个基本要素。1.1.1嵌入式系统的基本概念4
嵌入式系统的特点(1)面向特定应用的特点。(2)嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。(3)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。(4)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中或单片机本身,而不是存储于磁盘中。(5)嵌入式开发的软件代码尤其要求高质量、高可靠性。(6)嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能在该平台上直接对程序功能进行修改,必须有一套开发工具和环境才能进行再次开发。1.1.1嵌入式系统的基本概念51.1.2嵌入式系统的体系结构嵌入式系统作为一类特殊的计算机系统,一般包括以下3个方面:硬件设备、嵌入式操作系统和应用软件。61.1.2嵌入式系统的体系结构硬件设备包括嵌入式处理器和外围设备。嵌入式处理器(CPU)是嵌入式系统的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。外围设备是指嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。目前常用的嵌入式外围设备按功能可以分为存储设备(如RAM、SRAM、Flash等)、通信设备(如RS-232接口、SPI接口、以太网接口、USB接口、无线通信等)和显示设备(如显示屏等)3类。
71.1.2嵌入式系统的体系结构嵌入式操作系统从嵌入式发展的第3阶段起开始引入。嵌入式操作系统不仅具有通用操作系统的一般功能,如向上提供对用户的接口(如图形界面、库函数API等),向下提供与硬件设备交互的接口(硬件驱动程序等),管理复杂的系统资源,同时,它还在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,具有更加鲜明的特点81.1.2嵌入式系统的体系结构应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于嵌入式系统自身的特点,决定了嵌入式应用软件不仅要求做到准确性、实时性、安全性和稳定性等方面需要,而且还要尽可能地进行代码优化,以减少对系统资源的消耗,降低硬件成本。91.1.3几种常用的嵌入式操作系统嵌入式Linux(EmbeddedLinux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改进,如下所示。改善的内核结构提高的系统实时性101.1.3几种常用的嵌入式操作系统嵌入式Linux版
本简
单
介
绍CLinux开放源码的嵌入式Linux的典范之作。RT-Linux由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。Embedix根据嵌入式应用系统的特点重新设计的Linux发行版本。XLinux号称是世界上最小的嵌入式Linux系统。采用了“超字元集”专利技术,使Linux内核不仅能与标准字符集相容,还涵盖了12个国家和地区的字符集。PoketLinuxPoketLinux由Agenda公司采用、作为其新产品“VR3PDA”的嵌入式Linux操作系统。红旗嵌入式Linux由北京中科院红旗软件公司推出的嵌入式Linux,它是国内做得较好的一款嵌入式操作系统。Montavista
linuxMontaVistaLinux是MontaVistaSoftware于1999年开始推出的,专门面向嵌入式系统的商业级操作系统。风河linux
风河公司(著名的实时操作系统VxWorks的厂商)一直致力于嵌入式linux方面的研究和开发。111.1.3几种常用的嵌入式操作系统μC/OS-IIuC/OS-II是一种免费公开源代码、结构小巧、基于优先级的可抢先的硬实时内核。自从92年发布以来,在世界各地都获得了广泛的应用,它是一种专门为嵌入式设备设计的内核,目前已经被移植到40多种不同结构的CPU上,运行在从8位到64位的各种系统之上。μC/OS-II主要适合小型实时控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。最小内核可编译至2KB,如果包含内核的全部功能,编译之后的μC/OS-II内核仅有6-10KB。μC/OS-II的源代码结构合理清晰易读,不仅成功应用在众多的商业项目中,而且被很多大学采纳,作为教学的范例,同时也是嵌入式工程师学习和提高的绝好材料。121.1.3几种常用的嵌入式操作系统VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它是在当前市场占有率很高的嵌入式操作系统之一。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们造成的延迟很短。另外VxWorks提供的多任务机制,对任务的控制采用了优先级抢占(Linux2.6内核也采用了优先级抢占的机制)和轮转调度机制,这充分保证了可靠的实时性,并使同样的硬件配置能满足更强的实时性要求。另外VxWorks具有高度的可靠性,从而保证了用户工作环境的稳定。同时,VxWorks还有完备强大的集成开发环境,这也大大方便了用户的使用。131.1.3几种常用的嵌入式操作系统QNXQNX是一个分布式、嵌入式、可扩展的实时操作系统。它基本兼容POSIX规范,提供UNIX类的编译器、调试器、XWindow和TCP/IP等。QNX是一个微内核实时操作系统,其核心仅提供进程调度、进程之间通信、底层网络和中断处理等4种服务,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧,而且运行速度很快。141.1.3几种常用的嵌入式操作系统WindowsCEWINDOWSCE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。WindowsCE的图形用户界面相当出色。WindowsCE具有模块化、结构化和基干Win32应用程序接口以及与处理器无关等特点。它不仅继承了传统的Windows图形界面,并且用户在WindowsCE平台上可以使用Windows上的编程工具(如VisualStudio等)、也可以使用同样的函数、使用同样的界面风格,使绝大多数Windows上的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。151.1.3几种常用的嵌入式操作系统PalmOSPamlOS在PDA和掌上电脑有着很庞大的用户群。PalmOS是Palm公司开发的专用于PDA上的一种操作系统。虽然其并不专门针对于手机设计,但是PalmOS的优秀性和对移动设备的支持同样使其能够成为一个优秀的32位手机操作系统。PalmOS最明显的特点在精简,它的内核只有几千个字节,同时用户也可以方便地开发定制,具有较强的可操作性。161.1.4嵌入式系统发展趋势提供强大的网络服务小型化、低成本、低功耗人性化的人机界面完善的开发平台171.2ARM处理器硬件开发平台
1.2.1嵌入式处理器简介1.2.2ARM处理器简介1.2.3S3C2410处理器介绍181.2.1嵌入式处理器简介嵌入式系统的核心部件是各种类型的嵌入式处理器.按功能和内部结构等因素,嵌入式系统硬件平台可以分成下面几类。嵌入式RISC微处理器嵌入式CISC微处理器指
标RISCCISC指令集一个周期执行一条指令,通过简单指令的组合实现复杂操作;指令长度固定指令长度不固定,执行需要多个周期流水线流水线每周期前进一步指令的执行需要调用微代码的一个微程序寄存器更多通用寄存器用于特定目的的专用寄存器Load/Store结构独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输处理器能够直接处理存储器中的数据191.2.2ARM处理器简介ARM(AdvancedRISCMachines)有3种含义,它是一个公司的名称,是一类微处理器的通称,还是一种技术的名称。ARM公司是微处理器行业的一家知名企业,其设计了大量高性能、廉价、低耗能的RISC芯片,并开发了相关技术和软件。ARM处理器具有高性能、低成本和低功耗的特点,适用于嵌入式控制、消费/教育类多媒体、DSP和移动式应用等领域。ARM公司本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。ARM这种商业模式的强大之处在于其价格合理,它在全世界范围的合作伙伴超过100个,其中包括许多著名的半导体公司。ARM公司专注于设计,设计的芯片内核耗电少,成本低,功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算和多媒体数字消费等嵌入式解决方案的RISC实际标准。ARM处理器的产品系列非常广,包括ARM7、ARM9、ARM9E、ARM10E、ARM11和SecurCore、Cortex等。每个系列提供一套特定的性能来满足设计者对功耗、性能、体积的需求。SecurCore是单独一个产品系列,是专门为安全设备而设计的。201.2.2ARM处理器简介ARM各个系列处理器的特点:1)ARM7处理器系列ARM7内核采用冯•诺伊曼体系结构,数据和指令使用同一条总线。内核有一条3级流水线,执行ARMv4指令集。ARM7系列处理器主要用于对功耗和成本要求比较苛刻的消费类产品。其最高主频可以到达130MIPS。ARM7系列包括ARM7TDMI、ARM7TDMI-S、ARM7EJ-S和ARM720T四种类型,主要用于适应不同的市场需求。ARM7系列处理器主要具有以下特点:(1)成熟的大批量的32位RICS芯片;(2)最高主频达到130MIPS;(3)功耗低;(4)代码密度高,兼容16位微处理器;(5)开发工具多,EDA仿真模型多;(6)调试机制完善;(7)提供0.25m、0.18m及0.13m的生产工艺;(8)代码与ARM9系列、ARM9E系列及ARM10E系列兼容。ARM7系列处理器主要应用于下面一些场合:(1)个人音频设备(MP3播放器、WMA播放器、AAC播放器);(2)接入级的无线设备;(3)喷墨打印机;(4)数码照相机;(5)PDA。211.2.2ARM处理器简介ARM各个系列处理器的特点:2)ARM9处理器系列ARM9系列于1997年问世。由于采用了5级指令流水线,ARM9处理器能够运行在比ARM7更高的时钟频率上,改善了处理器的整体性能;存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分了数据总线和指令总线。ARM9系列的第一个处理器是ARM920T,它包含独立的数据指令Cache和MMU(MemoryManagementUnit,存储器管理单元)。此处理器能够被用在要求有虚拟存储器支持的操作系统上。该系列中的ARM922T是ARM920T的变种,只有一半大小的数据指令Cache。ARM940T包含一个更小的数据指令Cache和一个MPU(MicroProcessorUnit,微处理器)。它是针对不要求运行操作系统的应用而设计的。ARM920T、ARM940T都执行v4T架构指令。ARM9系列处理器主要应用于下面一些场合:(1)下一代无线设备,包括视频电话和PDA等;(2)数字消费品,包括机顶盒、家庭网关、MP3播放器和MPEG-4播放器;(3)成像设备,包括打印机、数码照相机和数码摄像机;(4)汽车、通信和信息系统。221.2.2ARM处理器简介ARM各个系列处理器的特点:3)ARM9E处理器系列ARM9系列的下一代处理器基于ARM9E-S内核,这个内核是ARM9内核带有E扩展的一个可综合版本,包括ARM946E-S和ARM966E-S两个变种。两者都执行v5TE架构指令。它们也支持可选的嵌入式跟踪宏单元,支持开发者实时跟踪处理器上指令和数据的执行。当调试对时间敏感的程序段时,这种方法非常重要。ARM946E-S包括TCM(TightlyCoupledMemory,紧耦合存储器)、Cache和一个MPU。TCM和Cache的大小可配置。该处理器是针对要求有确定的实时响应的嵌入式控制而设计的。ARM966E-S有可配置的TCM,但没有MPU和Cache扩展。ARM9系列的ARM926EJ-S内核为可综合的处理器内核,发布于2000年。它是针对小型便携式Java设备,如3G手机和PDA应用而设计的。ARM926EJ-S是第一个包含Jazelle技术,可加速Java字节码执行的ARM处理器内核。它还有一个MMU、可配置的TCM及具有零或非零等待存储器的数据/指令Cache。ARM9E系列处理器主要应用于下面一些场合:(1)下一代无线设备,包括视频电话和PDA等;(2)数字消费品,包括机顶盒、家庭网关、MP3播放器和MPEG-4播放器;(3)成像设备,包括打印机、数码照相机和数码摄像机;(4)存储设备,包括DVD或HDD等;(5)工业控制,包括电机控制等;(6)汽车、通信和信息系统的ABS和车体控制;(7)网络设备,包括VoIP、WirelessLAN和xDSL等。231.2.2ARM处理器简介ARM各个系列处理器的特点:4)ARM10处理器系列ARM10发布于1999年,具有高性能、低功耗的特点。它所采用的新的体系使其在所有ARM产品中具有最高的MIPS/MHz。它将ARM9的流水线扩展到6级,也支持可选的向量浮点(VectorFloatPoint)单元,对ARM10的流水线加入了第7段。VFP明显增强了浮点运算性能并与IEEE754.1985浮点标准兼容。241.2.2ARM处理器简介ARM各个系列处理器的特点:5)ARM10E处理器系列ARM10E系列处理器采用了新的节能模式,提供了64位的Load/Store体系,支持包括向量操作的满足IEEE754的浮点运算协处理器,系统集成更加方便,拥有完整的硬件和软件开发工具。ARM10E系列包括ARM1020E、ARM1022E和ARM1026EJ-S三种类型。ARM10E系列处理器具体应用于下面一些场合:(1)下一代无线设备,包括视频电话和PDA、笔记本电脑和互联网设备;(2)数字消费品,包括机顶盒、家庭网关、MP3播放器和MPEG-4播放器;(3)成像设备,包括打印机、数码照相机和数码摄像机;(4)汽车、通信和信息系统等;(5)工业控制,包括马达控制等。251.2.2ARM处理器简介ARM各个系列处理器的特点:6)处理器系列ARM1136J-S发布于2003年,是针对高性能和高能效应而设计的。ARM1136J-S是第一个执行ARMv6架构指令的处理器。它集成了一条具有独立的Load/Stroe和算术流水线的8级流水线。ARMv6指令包含了针对媒体处理的单指令流多数据流扩展,采用特殊的设计改善视频处理能力。261.2.2ARM处理器简介ARM各个系列处理器的特点:7)SecureCore处理器系列SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案。SecurCore系列处理器除了具有体积小、功耗低、代码密度高等特点外,还具有它自己特别优势,即提供了安全解决方案支持。下面总结了SecurCore系列的主要特点:(1)支持ARM指令集和Thumb指令集,以提高代码密度和系统性能;(2)采用软内核技术以提供最大限度的灵活性,可以防止外部对其进行扫描探测;(3)提供了安全特性,可以抵制攻击;(4)提供面向智能卡和低成本的存储保护单元MPU;(5)可以集成用户自己的安全特性和其他的协处理器。SecurCore系列包含SC100、SC110、SC200和SC210四种类型。SecureCore系列处理器主要应用于一些安全产品及应用系统,包括电子商务、电子银行业务、网络、移动媒体和认证系统等。271.2.2ARM处理器简介ARM各个系列处理器的特点:8)StrongARM和Xscale处理器系列StrongARM处理器最初是ARM公司与DigitalSemiconductor公司合作开发的,现在由Intel公司单独许可,在低功耗、高性能的产品中应用很广泛。它采用哈佛架构,具有独立的数据和指令Cache,有MMU。StrongARM是第一个包含5级流水线的高性能ARM处理器,但它不支持Thumb指令集。Intel公司的Xscale是StrongARM的后续产品,在性能上有显著改善。它执行v5TE架构指令,也采用哈佛结构,类似于StrongARM也包含一个MMU。前面说过,Xscale已经被Intel卖给了Marvell公司。281.2.2ARM处理器简介ARM各个系列处理器的特点:9)Cortex和MPCore处理器系列为了适应市场的需要,ARM推出了一系列新的处理器:Cortex-M3和MPCore。Cortex-M3主要针对微控制器市场,而MPCore主要针对高端消费类产品。Cortex-M3改进了代码密度,减少了中断延时并有更低的功耗。Cortex-M3中实现了最新的Thumb-2指令集。MPCore提供了Cache的一致性,每个支持1~4个ARM11核,这种设计为现代消费类产品对性能和功耗的需求进行了很好的平衡。291.2.2ARM处理器简介表1-3 ARM系列处理器属性比较项
目ARM7ARM9ARM10ARM11流水线深度3级5级6级8级典型频率(MHz)80150260335功耗(mw/MHz)0.060.19(+Cache)0.5(+Cache)0.4(+Cache)MIPS/MHz0.971.11.31.2架构冯·诺伊曼哈佛哈佛哈佛乘法器8×328×3216×3216×32301.3嵌入式软件开发流程1.3.1嵌入式系统开发概述1.3.2嵌入式软件开发概述311.3.1嵌入式系统开发概述嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分。321.3.2嵌入式软件开发概述嵌入式软件开发总体流程为图1.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,331.3.2嵌入式软件开发概述——交叉编译341.3.2嵌入式软件开发概述——交叉调试嵌入式系统的交叉调试有多种方法,主要可分为软件方式和硬件方式两种。调试器和被调试进程运行在不同的机器上,调试器运行在PC机(宿主机),而被调试的进程则运行在各种专业调试板上(目标板)。调试器通过某种通信方式(串口、并口、网络、JTAG等)控制被调试进程。在目标机上一般会具备某种形式的调试代理,它负责与调试器共同配合完成对目标机上运行着的进程的调试。这种调试代理可能是某些支持调试功能的硬件设备,也可能是某些专门的调试软件(如gdbserver)。目标机可能是某种形式的系统仿真器,通过在宿主机上运行目标机的仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但逻辑上仍然存在着宿主机和目标机的区别。351.4实验内容——使用JTAG烧写NANDFlash1.4.1实验目的1.4.2实验内容1.4.3实验步骤1.4.4实验结果361.4.1实验目的通过使用JTAG烧写Flash的实验,了解嵌入式硬件环境,熟悉JTAG的使用,为今后的进一步学习打下良好的基础。371.4.2实验内容(1)熟悉开发板的硬件布局。(2)连接JTAG口。(2)安装giveio(用于烧写Flash)驱动。(3)打开SJF2410_BIOS.BAT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淡水珍珠养殖工岗位水平评估考核试卷含答案
- 氧化铝焙烧工创新实践评优考核试卷含答案
- 植物原料水解工风险评估与管理强化考核试卷含答案
- 井下采煤机司机岗前风险评估考核试卷含答案
- 有机介质电容器纸、膜切割工安全行为水平考核试卷含答案
- 糖坯制造工岗中岗位知识考核试卷含答案
- 金属摆件制作工岗前综合评价考核试卷含答案
- 2026年小学三年级数学上册第六单元《长方形和正方形的周长》课时教案
- 2026年西师版小学五年级英语下册Module5《Foods》教案
- 2026年小学成语故事《礼贤下士》传统美德语文公开课教案
- 汉服妆造培训
- 地产渠道市场培训课件
- 供暖安装管理制度
- T/CECS 10214-2022钢面镁质复合风管
- 基于室内分布5G多频段定向天线系统的设计
- 餐饮美学基础 课件全套 模块1-4 餐饮美学概论 -餐厅民俗美学
- 中医诊所处方管理制度
- 海南省民用建筑绿色专篇实施指南(试行)
- 中建二测题库及答案
- 2025年单位保密工作计划
- 口腔科个案护理
评论
0/150
提交评论