嵌入式系统课件_第1页
嵌入式系统课件_第2页
嵌入式系统课件_第3页
嵌入式系统课件_第4页
嵌入式系统课件_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM9嵌入式系统设计与开发应用教师:电气与信息学院 万琴9/20/20221ARM9嵌入式系统设计与开发教程第1章 嵌入式系统设计基础1.1 嵌入式系统简介1.2 嵌入式处理器1.3 嵌入式操作系统1.4 嵌入式系统开发过程9/20/20222ARM9嵌入式系统设计与开发教程1.1 嵌入式系统简介嵌入式系统已经广泛应用于各个科技领域和日常生活的每个角落,由于其本身的特性,使得我们很难发现它的存在。甚至一些从事嵌入式系统开发的科技人员也只知单片机,不知道嵌入式系统。1.1.1 嵌入式系统的概述及定义1.1.2 嵌入式系统的组成和特点1.1.3 嵌入式系统的应用1.1.4 嵌入式系统的发展31.

2、1.1 什么是嵌入式系统(Embedded System)?广义:凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。个人计算机(PC)不是一种嵌入式系统,因为它是用于通用目的的系统。而一些电话系统就是采用个人计算机技术建立的嵌入式计算机系统,典型的嵌入式系统如手机、可视电话等;另外还有一些嵌入式系统采用特殊的微处理器,如传真机、打印机等。狭义:以应用为核心,以计算机技术为基础,软硬件可裁剪,适于应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。设计过程:从产品定义开始,接着进行硬件设计,然后将软件或操作系统移植到硬件上,并且进行应用程序的开发,最后经过测试与调试

3、后即开始销售或使用。英国电机工程师协会的定义:嵌入式系统是控制、监视或辅助某个设备、机器甚至工厂运行的设备,则其应具备以下4个特性:执行特定的功能 以微处理器与外围设备构成核心;需要严格的时序与稳定性 全自动操作41.1.2(1)嵌入式系统的组成 复位及振荡电路处理器定时器ROMRAM串行口中断控制并口输入/输出设备接口及驱动电路系统专用电路图1.1 嵌入式系统的硬件组成 硬件:图1.1给出了嵌入式系统的硬件组成。其中,处理器是系统的运算核心;存储器(ROM、RAM)用来保存可执行代码,以及中间结果;输入输出设备完成与系统外部的信息交换;其他部分辅助系统完成功能。 应用软件:是完成系统功能的主

4、要软件,可以由单独的一个任务来实现,也可以由多个并行的任务来实现。 实时操作系统(Real-Time Operating System,RTOS)。该系统用来管理应用软件,并提供一种机制,使得处理器分时地执行各个任务并完成一定的时限要求 。6嵌入式系统的关键在于结合系统硬件电路与其特定的软件,以达到系统运行性能成本的最高比。硬件的设计:微处理器及存储器电路的设计、网络功能设计、无线通信设计及接口电路设计,等等;嵌入式软件:硬件电路的驱动、控制处理,以提升硬件产品的价值,是硬件产品不可或缺的重要部分,它常以固件(Firmware)的形式出现,如控制或驱动程序等。将逐渐由现在的简易窗口与低速通信,

5、向高速通信与多样化的用户界面发展。由于嵌入式系统领域的硬件、软件种类繁多,产品研发需要适应多种不同硬件与软件的组合。为了克服多样化,现在的研发方式多以平台化设计(Platform-Based Design,PBD)为主。平台化设计的基本思路:以某一种基础的硬件与软件参考设计(reference design)为平台,自行加上额外所需要的硬件与软件,以适应多样化的产品需求,而不必每款产品都从头设计。这种设计方式可以缩短研发进程,加速产品的上市时间。这样的参考设计平台大多会由微处理器制造公司提供,例如,Intel、三星、Motorola等厂商提供微处理器的参考设计电路,以及建议的外围设备布局,包括

6、内存、基本I/O甚至包括LCD控制接口、IDE设备接口,等等,并且配合某一款操作系统,例如,Linux、WinCE,以及相应的软件源代码。将这样的组合包以授权的方式提供给产品开发厂商来开发产品,一般这样的组合包称为“板级支持包”(Board Support Package,BSP)。技术瓶颈并不高网络、无线通信的需要,软件更重要7 1.1.3 嵌入式系统的应用 MIT的David Clark首次提出的“后PC时代”(post-PC era),指出:个人计算机提供的只是在这个过渡时期的解决方案,而非最佳的方式,最终发展的应用将从桌面的个人计算机上蔓延下来,进入用户的日常生活中。从技术层面来讲,将

7、来的嵌入式系统应用将向软硬件系统集成、SOC设计、应用程序,以及内容服务这几个方面发展。9 系统:嵌入式操作系统,除了老牌嵌入式操作系统厂商VxWORKs、QNX、Nucleus等之外,新兴的主要竞争产品有Palm OS、Windows CE、Linux等。其中Embedded Linux操作系统因为免费授权的特性,已经被很多国际型厂商采用。 集成式芯片:SOC,“系统单芯片”(System-On -Chip,SOC)研究的领域包括创新系统设计、系统平台建立,以及相关硅知识产权(Silicon Intellectual Property,SIP)的设计、验证与集成等。 应用软件:嵌入式软件一般

8、可以分为客户端的应用软件和服务器端的集成软件。服务器端的软件较为单一,客户端由于应用领域广泛,开发出的软件也是多种多样的。 服务:由于嵌入式产品的便携性,以及消费类电子产品输入输出的多媒体化,再加上嵌入式产品与网络的紧密结合,嵌入式产品相关的增值服务变得更加重要。101.1.4 嵌入式系统的发展 嵌入式系统的发展与通用计算机技术的发展密不可分,但是又有着自己独立发展的道路。由于应用目标的不同,使得这两种体系的发展方向有所不同。通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。由于嵌入式计算机系统要嵌入到目标体系中,实现的是对目标的智能化控制,

9、因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。嵌入式系统的技术发展方向是与目标系统密切相关的嵌入性能、控制能力与控制的可靠性。11Intel公司于1971年推出有史以来第一个4位微处理器4004,接着德州仪器与国家半导体公司也随后推出各自的4位微处理器。1974年Intel公司又推出了8位微处理器芯片8080,随后Zilog公司的Z-80、国家半导体公司的NSC800及Intel公司的8085等相继问世。第一个商品化的16位嵌入式系统微处理器是德州仪器公司所推出的9940,因为它的功能少,而且指令集贫乏,并未引起很大的注意。大家比较熟悉的16位微处理器产品是Intel公司所开发

10、的8086微处理器及Motorola公司所开发的68000微处理器。当时IBM所推出的个人计算机即是采用8086作为数据处理及控制核心。通用微处理器沿着8086/8088、80286、80386、80486、Pentium、Pentium II、Pentium III、Pentium 4的线路发展,主频从十几MHz到现在的3GHz,字长也从8086的16位发展到了现在AMD64和Pentium D的64位。整体微型计算机的运算能力和存储能力都实现了海量的增长。 12嵌入式系统起源于微型计算机时代,然而,由于微型计算机的体积、价位、可靠性都无法满足嵌入式应用的要求。因此,嵌入式系统必须走独立发展

11、道路,即单芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。在探索单片机的发展道路时,有过两种模式,即“模式”与“创新模式”。“模式”:本质上是通用计算机直接单芯片化的模式,它将通用计算机系统中的基本单元进行裁剪后,集成在一个芯片上,构成单片微型计算机;“创新模式”:则完全按嵌入式应用要求设计全新的、满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。Intel公司的MCS-48、MCS-51就是按照创新模式发展起来的单片形态的嵌入式系统(单片微型计算机)。MCS-51是在探索MCS-48的基础上,进行全面完善的嵌入式系统,它定位在具有可伸缩性并

12、且低成本的产品控制单元,至今仍被广泛地使用。历史证明,“创新模式”是嵌入式系统独立发展的正确道路,MCS-51的体系结构也因此成为单片嵌入式系统的典型结构体系。发展模式13经历了SCM、MCU、SOC三大阶段。SCM阶段:即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。MCU阶段:即微控制器(Micro Controller Unit)阶段,不断扩展各种外围电路与接口电路,增强智能化控制能力。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是

13、寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SOC化趋势。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。单片机的技术发展141.2 嵌入式处理器嵌入式系统的核心部件是嵌入式处理器,据不完全统计,到2000年全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列,其中8051体系的占了多半。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅Philips就有近百种。现在几乎每个半导体制造商都生产嵌入式处理器,而且越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从64KB到16MB,处理速度从0.

14、1MIPS到2000MIPS,常用封装从8个引脚到144个引脚。1.2.1 嵌入式处理器的分类1.2.2 ARM微处理器1.2.3 Nios微处理器1.2.4 DSP1.2.5 嵌入式微处理器的选型原则161.2.1 嵌入式处理器的分类 微处理器可以分成几种不同的等级,一般用字符宽度来区分: 8位微处理器大部分都是用在低端应用上,也包括了外围设备或是内存的控制器;16位微处理器通常用在比较精密的应用上,需要比较长的字符宽度来处理;32位微处理器,大部分是RISC的微处理器,则提供高性能的运算能力,以满足需要大量运算的应用。172、嵌入式微控制器(Microcontroller Unit, MC

15、U)嵌入式微控制器又称单片机,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM、RAM、总线逻辑、定时器等各种必要的功能模块。与嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式系统应用的主流。由于微控制器的片上资源一般比较丰富,适合于控制,因此称微控制器。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以最大限度地与应用需求相匹配,从而减小功耗和成本。嵌入式微控制器目前的品种和数量最多,

16、比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外,还有许多半通用系列,如支持USB接口的MCU 8XC930/931、C540、C541。值得注意的是,近年来提供X86微处理器的著名厂商AMD公司,将Am186CC/CH/CU等嵌入式处理器也称为Microcontroller,Motorola公司把以Power PC为基础的PPC505和PPC555列入单片机行列,TI公司也将其TMS320C2XXX系列DSP作为MCU来推广应用。193嵌入式DSP(Embedded Digi

17、tal Signal Processor, EDSP)DSP对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域。推动嵌入式DSP发展的一个重要因素是嵌入式系统的智能化。例如,各种带有智能逻辑的消费类产品、生物信息识别终端、带有加解密算法的键盘、ADSL接入、实时语音压缩解压系统、虚拟现实显示,等等。这类智能化算法一般运算量都比较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP的长处所在。嵌入式DSP有两个发展来源,一是DSP经过单片化、EMC改造、增加片上外设成为嵌入式DSP,T

18、I的TMS320C2000/C5000等属于此范畴;二是在通用单片机或片上系统(SOC)中增加DSP协处理器,例如Intel的MCS-296。嵌入式DSP比较有代表性的产品是Texas Instruments的TMS320系列和Motorola的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列,用于移动通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前已经发展成为DSP56000,DSP56100,DSP56200和DSP56300等几个不同系列的处理器。DSP的设计者们把重点放在了处理连续的数据流上。如果嵌入式应用中强调对连续的数据流

19、的处理及高精度复杂运算,则应该选用DSP器件。204嵌入式片上系统(System On Chip)随着VLSI设计的普及和半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就是SOC(System on-Chip)。各种通用处理器内核和其他外围设备都将成为SOC设计公司的标准库中的器件,用标准的VHDL等硬件描述语言描述。用户只需定义出整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作芯片样品。这样,整个嵌入式系统大部分都可以集成到一块芯片中去,应用系统的电路板将变得很简洁,这将有利于减小体积和功耗,提高系统的可靠性。SOC可以分为通用和专用两类。通用系列包括Motorol

20、a的M-Core、某些ARM系列器件、Echelon 和Motorola联合研制的Neuron芯片等。专用SOC一般专用于某类系统中,不为一般用户所知。一个有代表性的产品是Philips的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载JAVA或C语言的专用的SOC,可用于Internet安全方面。211.2.3 ARM微处理器 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术

21、的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器,已广泛应用于工业控制、消费类电子产品、通信系统、网络系统、无线系统等各个领域。1ARM微处理器的应用领域 工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。 网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞

22、争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。 消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。222ARM微处理器的特点,采用RISC架构的ARM微处理器具有如下特点: 体积小、低功耗、低成本、高性能; 支持Thumb(16位)/ARM(32位)双指令集,兼容8位/16位器件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固

23、定 3ARM微处理器系列 ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 Intel的StrongARM Intel的Xscale其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。如ARM7系列适用于工业控制、网络设备、移动电话等应用;ARM9、ARM9E和ARM10E系列则更适合无线设备、消费类电子产品的设计。SecurCore系列专门为安全要求较高的应用而设计。234ARM微处理器的应用选型从应用的角度出发,在选择ARM微处理器时所应考虑的主要问题有以下几个方面。 ARM微

24、处理器内核的选择。从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,如果用户希望使用WinCE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,如ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。 系统的工作频率。系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz133MHz,ARM9系列微处理器的典型处理

25、速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz 233MHz,ARM10最高可以达到700MHz。 芯片内存储器的容量。大多数的ARM微处理器片内存储器的容量都不大,需要用户在设计系统时外扩存储器,但也有部分芯片具有相对较大的片内存储空间。 片内外围电路的选择。除ARM微处理器核以外,几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,我们称之为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等。24目前世界上生产DSP的公司主要有TI(德州仪器)公司,AD(美国模拟器件)公司,T

26、echnologics(朗讯技术)公司和Motorola(摩托罗拉)公司四大公司,而TI公司则是世界上最大的DSP供应商。著名的TMS320系列产品就是该公司的DSP产品。DSP的基本结构为哈佛结构,并结合了流水线操作、专业的硬件乘法器、特殊的DSP指令和快速的指令周期,使得它非常适合于数字信号处理应用。在目前,现代通信技术的发展,特别是数字通信、移动通信和卫星通信的普及,数字音响的商业化,DSP的市场前景越来越好。以移动电话设备来说,通信流程大概是当手机通过天线收到射频信号后,将过滤后的高频信号送到混频器降为中频信号,再经过解调器变为低频或基频信号后,送至数字信号处理器处理,经过处理的信号再

27、予以调节及解码,便可以通过扬声器送出,成为语音或是直接转换成各类数据。发话时,信号则通过相反的程序处理与送出,所以手机包含了射频系统与数字信号处理器再加上一般微处理器系统,成为一个高度集成的嵌入式系统。从现代通信等技术对DSP的要求来看,DSP芯片有以下几个发展趋势: 向更低功耗方向发展 向更高的性能方向发展; 向定制DSP芯片方向发展; 向集成化方向发展; 提供更加完善的开发环境。26嵌入式微处理器的选型原则 调查市场上已有的CPU供应商。 CPU的处理速度。 技术指标。 处理器的低功耗。 处理器的软件支持工具。 处理器是否内置调试工具。 处理器供应商是否提供评估板。 选择一个嵌入式系统运行

28、所需要的微处理器,在很多时候运算速度并不是最重要的考虑内容,有时候也必须考虑微处理器制造厂商对于该微处理器的支持态度,有些嵌入式系统产品一用就是几十年,如果过了五六年之后需要维修,却已经找不到该种微处理器的话,势必全部产品都要淘汰,所以许多专门生产嵌入式系统微处理器的厂商,都会为嵌入式系统的微处理器留下足够的库存或是生产线,即使过好几年之后还可以找到相同型号的微处理器或者完全兼容的替代品。 271.3.1 操作系统的概念和分类 操作系统(OS,Operating System)的基本思想是隐藏底层不同硬件的差异,向在其上运行的应用程序提供一个统一的调用接口。应用程序通过这一接口实现对硬件的使用

29、和控制,不必考虑不同硬件操作方式的差异。操作系统示意图如下所示。 很多产品厂商选择购买操作系统,在此基础上开发自己的应用程序,形成产品。事实上,因为嵌入式系统是将所有程序,包括操作系统、驱动程序、应用程序的程序代码全部烧写进ROM里执行,所以操作系统在这里的角色更像是一套函数库(Library)。 操作系统主要完成三项任务:内存管理、多任务管理和外围设备管理。应用程序操作系统系统界面驱动程序硬件硬件硬件硬件29嵌入式操作系统(Embedded Operating System)负责嵌入式系统的全部软、硬件资源的分配、调度、控制、协调;它必须体现其所在系统的特征,能够通过加载/卸载某些模块来达到

30、系统所要求的功能。EOS的主要特点: 强稳定性,弱交互性:不需要用户过多的干预,EOS具有很强的稳定性; 较强的实时性:EOS实时性一般较强,可用于各种设备的控制当中; 可伸缩性:开放、可伸缩性的体系结构; 外设接口的统一性:提供各种设备驱动接口。嵌入式系统的操作系统核心通常要求体积要很小,因为硬件ROM的容量有限,只提供基本的管理功能和调度功能,缩小到10KB到20KB以内的嵌入式操作系统比比皆是,相信用惯微软的Windows系统的用户,可能会觉得不可思议。 不同的应用场合会产生不同特点的嵌入式操作系统,但都会有一个核心(Kernel)和一些系统服务(System Service)。操作系统

31、必须提供一些系统服务供应用程序调用,包括文件系统、内存分配、I/O存取服务、中断服务、任务(Task)服务、时间(Timer)服务等,设备驱动程序(Device Driver)则是要建立在I/O存取和中断服务上的。有些嵌入式操作系统也会提供多种通信协议,以及用户接口函数库等。 30实时操作系统(Real-Time Operating System,RTOS),是指操作系统本身要能在一个固定时限内对程序调用(或外部事件)做出正确的反应,亦即对时序与稳定性的要求十分严格。目前国际较为知名的实时操作系统(见书 p9),其产品主要应用于航天、国防、医疗、工业控制等领域,这些领域的设备需要高度精确的实时

32、操作系统,以确保系统任务的执行不会发生难以弥补的意外。通用型操作系统:执行性能与反应速度比起实时操作系统,相对没有那么严格。目前较知名的(见书p9 ),其产品主要应用于手持式设备、各式联网家电、网络设备等领域。嵌入式操作系统的性能通常取决于核心程序,而核心的工作主要在任务管理(Task Management)、任务调度(Task Scheduling)、进程间的通信(IPC)、内存管理(Memory Management)。311.3.2 Linux Linux是目前最为流行的一款开放源代码的操作系统,从1991年问世到现在,不仅在PC平台,还在嵌入式应用中大放光彩,逐渐形成了与其他商业EOS

33、抗衡的局面。目前正在开发的嵌入式系统中,70%以上的项目选择Linux作为嵌入式操作系统。经过改造后的嵌入式Linux具有适合于嵌入式系统的特点。 内核精简,高性能、稳定; 良好的多任务支持; 适用于不同的CPU体系架构:支持多种体系架构,如X86、ARM、MIPS、ALPHA、SPARC等; 可伸缩的结构:可伸缩的结构使Linux适合于从简单到复杂的各种嵌入式应用; 外设接口统一:以设备驱动程序的方式为应用提供统一的外设接口; 开放源码,软件资源丰富:广泛的软件开发者的支持,价格低廉,结构灵活,适用面广; 完整的技术文档,便于用户的二次开发。321.3.3 C/OS-C/OS-是Jean J

34、. Labrosse在1990年前后编写的一个实时操作系统内核。名称C/OS-II来源于术语Micro-Controller Operating System(微控制器操作系统)。它通常也称为MUCOS或者UCOS。严格地说,C/OS-只是一个实时操作系统内核,它仅仅包含了任务调度、任务管理、时间管理、内存管理和任务间通信和同步等基本功能,没有提供输入输出管理、文件管理、网络等额外的服务。但由于C/OS-良好的可扩展性和源码开放,这些功能完全可以由用户根据需要自己实现。C/OS-的目标是实现一个基于优先级调度的抢占式实时内核,并在这个内核之上提供最基本的系统服务,例如信号量、邮箱、消息队列、内

35、存管理、中断管理等。虽然C/OS-并不是一个商业实时操作系统,但C/OS-的稳定性和实用性却被数百个商业级的应用所验证,其应用领域包括便携式电话、运动控制卡、自动支付终端、交换机等。可移植性:C/OS-的大部分代码都是用C语言写成的,只有与处理器的硬件相关的一部分代码用汇编语言编写。可以说,C/OS-在最初设计时就考虑到了系统的可移植性,这一点和同样源码开放的Linux很不一样,后者在开始的时候只是用于x86体系结构,后来才将和硬件相关的代码单独提取出来。目前C/OS-支持ARM、PowerPC、MIPS、68k/ColdFire和x86等多种体系结构。 331.3.4 Windows CE

36、(俗称蜥蜴) 从多年前发表Windows CE开始,微软就开始涉足嵌入式操作系统领域,如今历经WinCE 2.0、3.0,新一代的WinCE呼应微软.NET的意愿,定名为“Windows CE.NET”(目前最新版本为5.0)。WinCE主要应用于PDA,以及智能电话(smart phone)等多媒体网络产品。微软于2004年推出了代号为“Macallan”的新版WinCE系列的操作系统。Windows CE.NET的目的,是让不同语言所写的程序可以在不同的硬件上执行,也就是所谓的.NET Compact Framework,在这个Framework下的应用程序与硬件互相独立无关。而核心本身是

37、一个支持多线程以及多CPU的操作系统。在工作调度方面,为了提高系统的实时性,主要设置了256级的工作优先级以及可嵌入式中断处理。如同在PC Desktop环境,Windows CE系列在通信和网络的能力,以及多媒体方面极具优势。Windows mobile操作系统,原形为Windows CE,后开发出适用于手机及其他掌上设备操作系统,之后又将其整合于一起。 34第二章 基于ARM920T核微处理器通用处理器系列 ARM7、ARM9、ARM9E和ARM10E的特点及主要应用领域嵌入式ARM920T内核编程模型、ARM920T的运行模式、寄存器组织及ARM体系结构的存储器格式三星S3C2410X处

38、理器结构352.1 ARM 处理器简介 ARM(Advanced RISC Machines)处理器是一种低功耗高性能的32位RISC处理器。 什么是RISC架构? 嵌入式微处理器可分为CISC和RISC两类(复杂指令集计算机Complex Instruction Set ComputerCISC;精简指令集计算机Reduced Instruction Set ComputerRISC)。大家熟悉的大多数台式PC都是使用CISC微处理器,如Intel的x86。RISC结构体系有两大主流:Silicon Graphics公司(硅谷图形公司)的MIPS技术;ARM公司的Advanced RISC

39、Machines技术。36RISC和CISC是目前设计制造微处理器的两种典型技术,为达到高效的目的,采用的方法不同。它们的差异主要有以下几点。(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来实现。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。(2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。(3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相

40、对容易,效率较高。(4)中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断的。37(5)CPU:由于RISC CPU包含较少的单元电路,因而面积小、功耗低;而CISC CPU包含丰富的电路单元,因而功能强、面积大、功耗大。(6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。(7)易用性:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。(8)应用范围:RISC机器更适合于嵌入式应用;而CISC机器则更适合于通用计

41、算机。 目前CISC与RISC正在逐步走向融合,如Pentium Pro的内核是基于RISC体系结构,而能接受CISC指令后将其分解分类成RISC指令以便在遇一时间内能够执行多条指令。由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。 38ARM处理器的主要特点共有31个32位寄存器:16个在任何模式下可见所有指令都带有条件加载数值的同时进行算术和移位操作在几种模式下操作2.1.1 ARM 微处理器系列ARM7系列:工业控制、网络设备、移动电话ARM9系列ARM9E系列ARM10E系列SecurCore系列:安全要求较高的应用,如电子银行Intel的S

42、trongARM:便携式通信产品,如掌上电脑Intel的Xscale:Intel主推的ARM微处理器,已用于数字移动电话通用处理器无线设备、消费类电子产品392.1.2 ARM7系列微处理器嵌入式ICE-RT(In Circuit Emulator-Rral Time)逻辑,调试开发方便 解释:用于提供片内调试支持,它包含一个调试通信通道,在主机调试器和目标之间传送信息,嵌入式ICE-RT通过JTAG测试访问接口进行控制。极低的功耗,适用于便携产品能够提供0.9MIPS/MHZ 的三级流水线结构 解释:三级流水线结构是 取指-译码-执行对操作系统的广泛支持:Windows CE、Linux指令

43、系统与ARM9、ARM9E、ARM10E兼容主频高达130MHZ,可用于高速运算具有低功耗的32位RISC处理器,主要特点:40 ARM7TDMI是目前使用最广泛的内核:T:支持16位压缩指令集 Thumb. Thumb简介: 为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集。Thumb指令集是ARM指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,Thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。Thumb不是一个完整的体系结构,不能指望处理器

44、只执行Thumb指令集而不支持ARM指令集。 41D:支持片上Debug,实现实时调试M:内嵌硬件乘法器(multiplier) 解释:硬件乘法器可以在单个指令周期内完成乘法操作,是区别于通用的微处理器的重要标志 I:嵌入式ICE,支持片上断点和调试点422.1.3 ARM9系列微处理器具有高性能、低功耗,主要特点:5级流水线,具有分开的指令和数据存储器,指令执行效率更高,具体如下:(1)取指:从存储器中取出指令,并将其放入指令流水线。(2)译码:对指令进行译码。(3)执行:把一个操作数移位,产生ALU(算术逻辑单元)的结果。(4)缓冲/数据:如需要则访问数据存储器;否则ALU的结果只是简单地

45、缓冲1个时钟周期,以便所有的指令具有同样的流水线流程。(5)回写:将指令产生的结果回写到寄存器,包括任何从存储器中读取的数据。5级流水线图43提供1.1MIPS/MHZ 的哈佛结构 哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口 AMBA :将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。它不是芯片与外设之间的接口,而是ARM内核与芯片上其他元件进行通信的接口。全性能的MMU支持Windows CE、Linux、Palm OS等多种主流嵌入式操

46、作系统。 MMU: MemoryManagementUnit,内存管理单元,负责虚拟地址与物理地址的转换。达到每个用户进程都拥有自己独立的地址空间的目标。 MPU(Memory Protection Unit,内存保护单元)支持实时操作系统 支持数据Cache(高速缓冲存储器)和指令Cache442.2 ARM 920T简介ARM920T是ARM920TDMI系列中的一款通用性的微处理器,ARM920TDMI系列微处理器包含如下几种类型的内核。 ARM9TDMI:只有内核。 ARM940T:由内核、高速缓存和内存保护单元(MPU) 组成。 ARM920T:由内核、高速缓存和内存管理单元(MMU

47、) 组成。45ARM920T以ARM9TDMI为内核,增加了高速缓存和内存管理单元(MMU),系统结构图如图4.3所示。ARM920T 结构功能图内置追踪宏单元:ETM定义了一个物理跟踪端口用来传输程序执行流程的信息 RISC CPU16K字节指令缓存指令存储器管理单元高级微处理器总线架构协处理器:系统控制处理器16K字节数据缓存数据存储器管理单元写缓冲器46ARM920T处理器的主要特性ARM9TDMI 内核,ARM v4T 架构(ARM版本4,支持Thumb ) 两套指令集:ARM高性能32位指令集、Thumb高代码密度16位指令集。 5级流水线结构 16K字节数据缓存、指令缓存 标准的A

48、RMv4存储器管理单元(MMU) 8位、16位、32位的指令总线与数据总线。472.2.1 ARM920T内核编程模型字(Word),在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。半字(Half-Word),在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。字节(Byte),在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。指令长度可以是32位(在ARM状态下),也可以为16位(在Thumb状态下)。ARM920T中支持字节(8位)、半字(16位)、字(32位)3种数据类型,其中,字需要4字节对

49、齐,半字需要2字节对齐。48ARM微处理器的工作状态从编程的角度看,ARM920T微处理器的工作状态一般有两种: ARM状态,此时处理器执行32位的、字对齐的ARM指令; Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。ARM指令集和Thumb指令集均有切换处理器状态的指令,在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令(跳转指令)的方法,使微处理器从ARM状态切换到Thumb状态

50、。当操作数寄存器的状态位为0时,执行BX指令可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,将PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。 492.2.2 ARM 体系结构的存储器格式ARM920T体系结构将存储器看做是从零地址开始的字节的线性组合。从0字节到3字节放置第1个存储的字数据,从第4个字节到第7个字节放置第2个存储的字数据,依次排列。作为32位的微处理器,ARM920T体系结构所支持的最大寻址空间为4GB(232字节)。ARM920T体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。大端格

51、式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如下图所示。 50与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如下图所示 :512.2.3 处理器模式ARM920T支持7种运行模式,分别为: 用户模式(usr),ARM处理器正常的程序执行状态; 快速中断模式(fiq),用于高速数据传输或通道处理; 外部中断模式(irq),用于通用的中断处理; 管理模式(svc),操作系统使用的保护模式; 数据访问终止模式(abt),当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护; 系统模式(sys),运行具有特权的操作系统

52、任务; 未定义指令中止模式(und),当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的6种模式称为非用户模式或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及访问受保护的系统资源等情况。522.2.4 寄存器组织 ARM920T共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程

53、访问的,取决于微处理器的工作状态及具体的运行模式。在ARM状态下,任一时刻可以访问16个通用寄存器和12个状态寄存器。1、ARM状态下的寄存器组织( R0R15)未分组寄存器R0R7分组寄存器R8R14程序计数器PC(R15)1)未分组寄存器R0-R7:在所有运行模式下,指向同一个物理寄存器532)分组寄存器R8-R14:每一次所访问的物理寄存器与处理器当前的运行模式有关。R8-R12: 两种模式,对应两个不同的物理寄存器R13、R14:7种模式(用户模式与系统模式共用),对应6个不 同的物理寄存器(区分记号R13、 R14 )R14也称为子程序连接寄存器(Subroutine Link Re

54、gister)或连接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。在其他情况下,R14用做通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。543)程序计数器PC(R15)寄存器R15用做程序计数器(PC)。在ARM状态下,位1:0为0,位31:2用于保存PC;在Thumb状态下,位0为0,位31:1用于保存PC。4)寄存器R16用做当前程序状态寄存器(Current Program Status Register,CPSR),CPSR可在任何运行

55、模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。55用户与系统模式快速中断模式管理模式终止模式中断模式未定义模式562. Thumb状态下的寄存器组织Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。同时,在每一种特权模式下都有一组SP、LR和SPSR。如图所示表明Thumb状态下的寄存器组织。Thumb状态下的寄存器组织与ARM状态下的寄存器组织的关系: Thumb状态下和ARM状态下的R0R7是相同的; Thumb状态下

56、和ARM状态下的CPSR和所有的SPSR是相同的; Thumb状态下的SP对应于ARM状态下的R13; Thumb状态下的LR对应于ARM状态下的R14; Thumb状态下的程序计数器对应于ARM状态下的R15。57高位寄存器R8R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器,将其用做快速的暂存器。如:MOV、CMP、ADD指令。582.2.5 程序状态寄存器ARM920T体系结构中包含一个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSR)。备份的程序状态寄存器用来进行异常处理,其功能包括: 保存ALU中的当前操作信息; 控制允许和禁止中断; 设

57、置处理器的运行模式。程序状态寄存器每一位的安排如图所示。 591条件码标志(Condition Code Flags)N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。条件码标志各位的具体含义如表所示。 602控制位CPSR的低8位(包括I、F、T和M4:0)称为控制位,当发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。 中断禁止位I、F:置1时,禁止IRQ中断和FIQ中断。 T标志位:该位反映处理器的运行状态。当该位为1时,程序运行于Thumb状态,否则运行于ARM状态。该信号反映在外部引脚TBIT上。在程序

58、中不得修改CPSR中的TBIT位,否则处理器工作状态不能确定。 运行模式位M4:0:M0、M1、M2、M3、M4是模式位。这些位决定了处理器的运行模式。具体含义如表4.2所示。 保留位:CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制位时,保留位不要被改变,在程序中也不要使用保留位来存储数据。保留位将用于ARM版本的扩展。612.2.6异常(Exceptions)当正常的程序执行流程发生暂时的停止时,称之为异常。在处理异常之前,当前处理器的状态必须保留,这样,当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,处理器会按固定的优先级对多个异常进行处理。1、对

59、异常的响应:按以下步骤操作(1)将下一条指令的地址存入相应连接寄存器LR。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC4或PC8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量。这样,异常处理程序就不需要确定异常是从何种状态进入的,程序在处理异常返回时能从正确的位置重新开始执行。例如:在软件中断异常SWI中,指令 MOV PC,R14_svc总是返回到下一条指令,而不管SWI是在ARM状态执行,还是在Thumb状态执行。(2)将CPSR复制到相应的SPSR中。(3)根据异常类型,强制设置CPSR的运行模式位。(4)强制PC从相

60、应的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。622、从异常返回: 进入异常处理前可以设置中断禁止位,以禁止异常处理时对中断的响应。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。异常处理完毕之后,执行以下操作从异常返回:(1)将连接寄存器LR的值减去相应的偏移量后送到PC中。(2)将SPSR复制回CPSR中。(3)若在进入异常处理时设置了中断禁止位,要在此清除。3、各类异常的具体描述(1)FIQ(快速中断请求)(2)IRQ(中断请求)(3)Abort(中止)(4)Software Interrupt(软件中断)(5)Un

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论