《单片机与嵌入式系统课件.ppt》由会员分享,可在线阅读,更多相关《单片机与嵌入式系统课件.ppt(87页珍藏版)》请在三一办公上搜索。
1、单片机与嵌入式系统,中国海洋大学计算机系,什么是嵌入式系统,嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。,IEEE定义,可以看出此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。,嵌入式系统是以嵌入式应用为目的的计算机系统。可分为系统级、板级、片级系统级:各种类型的工控器、PC104模块板级:各种类型的带CPU的主板及OEM产品片级:各种以单片机、DSP、微
2、处理器为核心的产品,微机学会的定义,什么是嵌入式系统,以应用为中心、以计算机技术为基础、软件硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序4个部分组成,用于实现对其他设备的控制、监视或者管理等功能。,一般定义,什么是嵌入式系统,知识集成系统 技术密集资金密集 高度分散不可垄断 面向应用不断创新,专用计算机系统(非PC的智能电子设备) 以应用为中心 以计算机技术为基础 软件硬件可裁剪 适应应用系统对功能、可靠性、成本、体积、功耗严 格要求,什么是嵌入式系统,(1)执行特定功能,专用性强,嵌入式系统的个性化很
3、强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。,嵌入式系统的特征,系统精简:嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。高实时性OS:这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码要求高质量和高可靠性、实时性。,(2)以微处理器与外围构成核心,其规模可在大范围内变化,
4、如从8051芯片到x86芯片。,(3)要求严格的时序和稳定性,这是因为在机器控制的大型系统中,程序运行稍有差错则可能使得整个系统失去控制,甚至酿成灾害。,嵌入式系统的特征,嵌入式系统的应用程序可以没有操作系统直接在芯片上运行。为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(RealTime Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。,(4)全自动操作循环。,(5)嵌入式软件开发走向标准,嵌入式系统的特征,由于其本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中的程序功
5、能进行修改,必须有一套开发工具和环境才能进行开发。,(6)嵌入式系统需要开发工具和环境,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。,嵌入式系统的特征,嵌入式系统与PC的不同,嵌入式系统一般是专用系统,而PC是通用计算平台使用多种类型的处理器和处理器体系结构极其关注成本嵌入式系统的资源比PC少得多大多有实时和功耗的约束大多使用实时多任务操作系统,嵌入式系统与PC的不同,大多使用实时多任务操作系统 软件故障造成的后果比PC系统更严重 经常在极端的环境下运行
6、 通常所有目标代码存放在ROM中 需要专用工具和方法进行开发设计 嵌入式系统的数量远远超过PC,嵌入式系统的架构,硬件:CPU及其外围设计、网络功能、无线通讯及其接口设计;软件:专司产品驱动、控制处理或基本接口,以提升产品价值;以信息、友好界面或消费性电子产品中的必备部分。,嵌入式处理器各种类型存储器模拟电路及电源接口控制器及接插件,实时操作系统(RTOS)板级支持包(BSP)设备驱动(Device Driver协议栈(Protocol Stack应用程序(Application),硬件系统,嵌入式软件系统,嵌入式系统的架构,嵌入式系统的发展趋势,在市场和技术进步的双重推动下,嵌入式系统技术未
7、来的发展,将呈现出以下几点趋势:,联网成为必然趋势,为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入式设备必须配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。,嵌入式系统的发展趋势,小尺寸、微功耗和低成本,提供精巧的多媒体人机界面,为满足这种特性,要求嵌入式产品设
8、计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求。如:选用最佳的编程模型和不断改进算法,采用Java编程模式,优化编译器性能。因此,既要软件人员有丰富经验,更需要发展先进嵌入式软件技术,如Java、Web和WAP等。,嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。,嵌入式系统的发展趋势,“无所不在的智能”(Ambient Intelligence,AmI),无所不在的“智能”是嵌入式系统应用的高级境界,它是指一种嵌入了多种感知和计算设
9、备,并根据上下文识别人的身体姿态、手势、语音等,进而判断出人的意图,并做出相应反映的具有适应性的数字环境,它通过智能的、用户定制的内部互联系统和服务制造理想的氛围,完成理想的功能,从而有效提高人们的工作和生活质量。AmI的关键技术基础是“无所不在的计算(Ubiquitous Computing)”,“无所不在的计算”指的就是,“无论何时何地,任何人需要,就可以通过某种设备访问到所需的信息”。从计算技术的角度来看,可以认为存在一个巨大的分布式网络,这个网络由围绕在用户周围的成千上万个嵌入式系统互连而成,用来满足其在信息、通讯、出行和娱乐等方面的需求。,嵌入式系统的发展趋势,软件设计比重日益突出组
10、件设计技术SOC硬件软件化,嵌入式处理器,嵌入式系统的核心是嵌入式微处理器。嵌入式处理器无处不在,一台计算机外设中包含510个,S一级的梅塞得斯轿车,平均有65个,一架波音飞机上有更多的嵌入式处理器在工作。,嵌入式处理器,嵌入式处理器一般就具备以下4个特点,对实时多任务有很强的支持能力,并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度。具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。,嵌入式处理器的特点,嵌入式处理器一般就具备以下4个特点,可扩展的处理
11、器结构,能最迅速地开发出满足应用的最高性能的嵌入式微处理器。功耗很低,尤其是靠电池供电的嵌入式系统更是如此。,嵌入式处理器的特点,实时操作系统(RTOS),实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中, 每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。,实时操作系统的特点,IEEE 的实时UNIX分委会认为实时操作系统应具备以下的几点: 异步的事件响应 切换时间和中断延迟
12、时间确定 优先级中断和调度 抢占式调度 内存锁定 连续文件 同步,总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。,实时操作系统的特点,实时操作系统的必要性,嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。使用实时操作系统主要有以下几个因素:嵌入式实时操作
13、系统提高了系统的可靠性。 提高了开发效率,缩短了开发周期。 嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。,实时操作系统的优缺点,优点:在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。缺点:但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,25%的CPU额外负荷,以及内核的费用。,实时嵌入式操作系统的种类繁多,大体上可分为两种,商用型和
14、免费型。商用型的实操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵。免费型的实时操作系统在价格方面具有优势,目前主要有Linux和C/OS,稳定性与服务性存在挑战。,常见的嵌入式操作系统,嵌入式系统越来越追求数字化、网络化和智能化。因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继,整个系统必须是开放的、提供标准的API,并且能够方便地与众多第三方的软硬件沟通。Linux是开放源码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发的强大技术后盾。Linux的内核小、功能强大、运行稳定、系统健壮、效率高,易于定制剪裁,在价格上极具竞争力。Linux不
15、仅支持x86 CPU,还可以支持其他数十种CPU芯片。,常见的嵌入式操作系统嵌入式Linux,常见的嵌入式操作系统,嵌入式Linux(Embedded Linux)是指对Linux经过小型化裁剪后,能够固化在容量只有几百K字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究是目前操作系统领域的一个热点。主要有RTLinux和CLinuxLinux在嵌入式领域异军突起不过是近两年的事情,过去的一年中有13%的用户已经开始使用嵌入式Linux系统进行开发工作;有52%的用户决定在未来24个月内开始使用Linux作为嵌入式操作系统的开发原型
16、。,常见的嵌入式操作系统嵌入式Linux,常见的嵌入式操作系统,uClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。uClinux从Linux2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。它是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器,例如ARM7TDMI。它通常用于具有很少内存或Flash的嵌入式系统。它保留了Linux的大部分优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。,常见的嵌入式操作系统嵌入式Linux,常见的嵌入式操作系统,
17、常见的嵌入式操作系统Win CE,Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作,它是精简的Windows 95。Windows CE的图形用户界面相当出色。Win CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Win CE不仅继承了传统的Windows图形界面,并且在Win CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C+等)、使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。,常见的嵌入式操作系统,Windows
18、CE 3.0:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统。针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台, WindowsCE 嵌入但不够实时,属于软实时操作系统,由于其Windows背景,界面比较统一认可。操作系统的基本内核需要至少200K的ROM。,常见的嵌入式操作系统Win CE,常见的嵌入式操作系统,常见的嵌入式操作系统OSE,OSE主要是由ENEA Data AB 下属的ENEA OSE Systems AB负责开发和技术服务的,一直以来都充当着实时操作系统以及分布式和容错性应用的先锋,并保持良好的发展态势。 OSE的客户深
19、入到电信,数据,工控,航空等领域,尤其在电信方面,该公司已经有了十余年的开发经验,同诸如爱立信,诺基亚,西门子等知名公司确定了良好的关系。,常见的嵌入式操作系统,常见的嵌入式操作系统Nucleus,Nucleus PLUS是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。 Nucleus PLUS采用了软件组件的方法。每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成的。由于采用了软件组件的方法,使Nucleus PLUS 的各个组件非常易于替换
20、和复用。,常见的嵌入式操作系统,常见的嵌入式操作系统eCos,eCos是RedHat公司开发的源代码开放的嵌入式RTOS产品,是一个可配置、可移植的嵌入式实时操作系统,设计的运行环境为RedHat的GNUPro和GNU开发环境。eCOS的所有部分都开放源代码,可以按照需要自由修改和添加。eCOS的关键技术是操作系统可配置性,允许用户组和自己的实时组件和函数以及实现方式,特别允许eCOS的开发则定制自己的面向应用的操作系统,使eCos能有更广泛的应用范围。,常见的嵌入式操作系统,常见的嵌入式操作系统C/OS-II,C/OS-II是一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。
21、其绝大部分源码是用ANSI C写的,使其可以方便的移植并支持大多数类型的处理器。C/OS-II通过了联邦航空局(FAA)商用航行器认证。自1992年问世以来,C/OS-II已经被应用到数以百计的产品中。C/OS-II占用很少的系统资源,并且在高校教学使用是不需要申请许可证。,常见的嵌入式操作系统,常见的嵌入式操作系统uITRON,uITRON是指“实时操作系统内核(The Real-time Operating system Nucleux)”,它是在1984年由东京大学的Sakamura博士提出的,目的是为了建立一个理想的计算机体系结构。通过工业界和大学院校的合作,TRON方案正被逐步用到全
22、新概念的计算机体系结构中。 uITRON是TRON的一个子方案,它具有标准的实时内核,适用于任何小规模的嵌入式系统,日本国内现有很多基于该内核的产品,其中消费电器较多。目前已成为日本事实上的工业标准。,常见的嵌入式操作系统,uITRON明确的设计目标使其甚至比Linux更适合于做嵌入式应用,内核小,启动速度快,即时性能好,也很适合汉字系统的开发。另外,uITRON的成功还来源于如下两个重要的条件:,它是免费的它已经建立了开放的标准,形成了较完善的软硬件配套开发环境,较好地形成了产业化。,常见的嵌入式操作系统uITRON,常见的嵌入式操作系统,VxWorks操作系统是美国WindRiver公司于
23、1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。VxWorks所具有的显著特点是: 可靠性、实时性和可裁减性。 它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS 、POWER PC等等。 大多数的VxWorks API是专有的,火星机器人。,常见的嵌入式操作系统VxWorks,常见的嵌入式操作系统,Palm OS是著名的网络设备制造商3COM旗下的Palm Computing掌上电脑公司的产品。3COM、CISCO竞争Palm OS
24、在PDA市场上占有很大的市场份额, Palm OS的市场份额占到将近90%,最近下降70,目前主要与WIN CE进行激烈竞争。,常见的嵌入式操作系统Palm OS,常见的嵌入式操作系统,加拿大QNX公司的产品。 QNX是在X86体系上面开发出来的,这和别的RTOS不一样,别的好多RTOS都是从68K的CPU上面开发成熟,然后再移植到X86体系上面来的。 QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,由于QNX具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、手机)、GPS设备的实时操作系统使用。,常见的嵌入式操作系统QNX,常见的嵌入式操作系统,单片机是近
25、代计算机技术发展的一个分支嵌入式计算机系统。它是将计算机的主要部件:CPU、RAM、ROM、定时器/计数器、输入/输出接口电路等集成在一块大规模的集成电路中,形成芯片级的微型计算机称为单片微型计算机(Single Chip Microcomputer)简称单片机 。,单片机的概念,单片机的特点,体积小、重量轻、功耗低、功能强、性价比高。控制功能强,可以直接对功能部件操作,易于实现从简单到复杂的各类控制任务。数据大都在单片机内部传送,运行速度快,抗干扰能力强,可靠性高,能在恶劣的环境下工作。结构灵活,易于扩展,可组成各种应用系统。应用广泛,既可用于工业自动控制等场合,又可用于测量仪器、医疗仪器及
26、家用电器、玩具等领域,教育机器人。,性能不断提高CPU功能增强:速度、精度内部资源增多:A/D、D/A、EEPROM多功能引脚:寻址范围大高新技术下移,重点发展8位机性能,32位机,单片机的发展趋势,单片机的多品种:超微型化: MC68HC705:20PIN,2KEPROM、112BYTE RAM、15BIT TIMER WATCHDOG低功耗,低电压:CHMOSA工艺、空闲等待和掉电停机方式 、电 压 2.45.5V在线可编程,单片机的发展趋势,逐步采用16/32位高性能单片机采用C高级语言编程采用实时多任务OS及其平台进行开发开发新型嵌入式应用系统(手持式信息机、PDA、信息家电等),单片
27、机的发展趋势,立即寻址直接寻址寄存器寻址寄存器间接寻址相对寻址变址寻址位寻址,寻址方式,指令的操作数就是实际参与操作的数据,操作数为常量形式,称为立即数。存放于程序存储区,常用于程序中的常量赋值和计算。例:MOV A,#40HMOV DPTR,#2100H注意:“#”是唯一与地址区别的标志。,立即寻址,寻址方式,寻址方式,寻址方式,指令的操作数为数据的地址,真正参与操作的数据存放在该地址下的内存单元中。 MOV A,40H;(40H)(A)注意:若直接寻址的地址是SFR中的某一个时,可用名称符号来代表MOV A,TH0;(TH0)(A)MOV A,8CH; (8CH)(A),直接寻址,寻址方式
28、,寻址方式,指令的操作数指定一个寄存器,参与操作的数据存放在该寄存器中(R0R7)。通常寄存器寻址指令的字节数少,执行速度快。INC R0MOV A,R0注意:指令表中INC Rn,n取07MCS-51中用于寄存器寻址的寄存器有A、B、DPTR 和当前工作寄存器区的R0R7,寄存器寻址,寻址方式,寻址方式,指令码中含有操作数地址的寄存器号,实际上是二次寻址间接寻址采用Ri或DPTR,是区别寄存器寻址的标记若(R0)=30H,(30H)=0FFHMOV A ,R0MOV A ,R0寄存器寻址可使单片机寻址扩大到64K,寄存器间接寻址,寻址方式,寻址方式,指令码中含有相对地址的偏移量MOV A,4
29、0H ADD A,#30HSJMP SOUT ;PC=PC+2+relSOUT:MOV 50H,A,相对寻址,寻址方式,SJMP SOUT,寻址方式,基址寄存器变址寄存器偏移量 MOVC A,A+PC MOVC A,A+DPTR注意:变址寻址区是程序存储器而不是数据存储器。执行前,应预先在DPTR和A中存放地址,为指令执行提供条件。,变址寻址(变址间接寻址 ),寻址方式,寻址方式,指令中含有位地址,操作对应1位数据位地址和字节地址的区分通过指令区分: MOV A,20H MOV C,20H可供位寻址的区域片内RAM的20H2FH为位寻址空间(007FH)某些SFR:凡是地址能被8整除的SFR,
30、共11个。位地址的表示方法 MOV C,ACC.7 MOV 20H,C MOV 24H.0,C,位寻址,寻址方式,寻址方式,什么是DSP,模拟信号(Analog Signals):在时域中,时间和幅值连续变化的信号,例如:声音、温度、压力等等。数字信号(Digital Signals):对模拟信号按一定的时间间隔进行采样,并将采样值进行量化,即,时间和幅值均为离散的信号。数字信号处理(Digital Signal Processing):用数学方法对上述的数字信号进行处理,对信号进行变化或提取相应的信息。,单片机是从早期的Z80微处理器发展来的,将微处理器的外围设备如ROM,RAM,及外部串口
31、集成在一个片子上,也叫微型计算机。而DSP可说是功能更强大的高级单片机。,相同点:,DSP和单片机的异同,1.从片内资源看,DSP有硬件乘法器,单片机则没有。DSP的存储器容量比单片机大很多。2.从片内资源的连接看:DSP使用了改进的哈佛结构,就是数据和程序的存储可同时并行。广泛的使用了流水线的技术。,不同点:,DSP和单片机的异同,3. DSP是运算密集型处理器,是为了高速运算而存在。单片机是事务型处理器,是为了处理事务而存在。DSP中的中断比单片机中要少很多。4. DSP的A/D(如果有)比单片机精度要高。5. DSP器件是运算密集型的,而单片机是事务密集型的,DSP器件可以取代单片机,单
32、片机却不能取代DSP。,DSP和单片机的异同,1.多,可从广度和深度看。 广度是指DSP的型号越来越多,已经开始做市场细分,如2000系列是做控制的,5000系列是做低功耗的,6000系列是做高性能处理的。专用芯片越来越多。 从深度讲是多CPU的糅合,一是多DSP的糅合,再有就是将DSP的核与其他的核(如事务性处理)糅合在一起。,DSP技术的发展趋势,可用四个字“多快好省”来概括。,DSP技术的发展趋势,2.快,即:是运算的速度越来越快,指令速度 越来越快,频率越来越高,功能越来越强。3.好,主要是指性能价格比。 性价比符合摩尔定律:每隔18个月,芯片的速度提高一倍,价格是原来的一半。这是由于
33、半导体工艺的发展,使得成本降低引起的。4.省,功耗越来越低。,DSP技术的发展趋势,McBSP,是Multi channel Buffered Serial Port的缩写,即多通道缓冲型串行接口,是一种多功能的同步串行接口,McBSP的特点,提供很强的可编程能力,可以配置为多种同步串口标准,直接与各种器件高速接口T1/E1标准:通信器件MVIP和ST-BUS标准:通信器件IOM-2标准:ISDN器件AC97标准:PC Audio Codec器件IIS标准:Codec器件SPI:串行A/D、D/A,串行存储器等器件特殊配置+ 软件配合,可与特殊器件接口IIC:将McBSP引脚配置为通用I/O引
34、脚,用软件实现IIC标准UART:将McBSP引脚进行特殊连接,结合DMA与软件编程,方便实现UART功能,ARM 微处理器的特点,采用RISC 架构的ARM 微处理器一般具有如下特点:1体积小、低功耗、低成本、高性能;2应用方案灵活:由于ARM公司只是提供了一个高效精简的核心,各半导体厂商可根据自身需求进行应用设计,架构灵活简便,扩展力强。3得到大量的软件支持:包括Windows CE、Symbian和Palm OS在内的手持设备三种主要操作系统都是基于ARM架构所设计。,ARM 微处理器的特点,4支持Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容8 位/16 位器件;5大
35、量使用寄存器,指令执行速度更快;6大多数数据操作都在寄存器中完成;7寻址方式灵活简单,执行效率高;8指令长度固定;,异常(Exception)的概念,异常(Exception)是由内部或外部源产生以引起处理器处理一个事件,在处理异常之前,处理器状态必须保留;以便在异常处理程序完成后,原来的程序能够重新执行。,异常(Exception)的类型,从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:ARM状态,此时处理器执行32位的字对齐的ARM指令; Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。,ARM微处理器的工作状态,ARM微处理器支持7种运行模式
36、,分别为: 用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。 外部中断模式(irq):用于通用的中断处理。 管理模式(svc):操作系统使用的保护模式,系统复位后的缺省模式。数据访问终止模式(abt):当数据访问终止时进入该模式,可用于虚拟存储及存储保护。 指令未定义模式(und):支持硬件协处理器指令的软件 仿真系统模式(sys):运行具有特权的操作系统任务。,ARM微处理器的运行模式,1)寄存器寻址 操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值来操作。寄存器寻址指令举例如下: MOV R1,R
37、2;读取R2的值 SUB R0,R1,R2;将R1的值减去R2的;值,结果保存到R0中,ARM处理器寻址方式,立即寻址指令中的操作码字段后面的地址码部分即是操作数本身。也就是说,数据就包含在指令当中。立即寻址指令举例如下:SUBS R0,R0,#1;R0减1,结果放入R0,并且影响标志位MOV R0,#0 xFF000;将立即数0 xFF000装入R0寄存器立即数要以“#”号为前缀,16进制数值时以“0 x”表示。,2) 立即寻址,ARM处理器寻址方式,寄存器偏移寻址是ARM指令集特有的寻址方式。当第2个操作数是寄存器偏移方式时,第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。寄
38、存器偏移寻址指令举例如下:MOV R0,R2,LSL #3 ;R2的值左移3位,结果放人R0ANDS R1,R1,R2,LSL R3;R2的值左移R3位,与R1相“与”,结果放入R1,3) 寄存器偏移寻址,ARM处理器寻址方式,寄存器间接寻址是寄存器中存放操作数的地址。举例如下:LDR R1,R2;将R2指向的存储单元的数据读出,保存在R1中SWP R1,R1,R2;将寄存器R1的值与R2指定的存储单元的内容交换R2-R1,R1-R2,4)寄存器间接寻址,ARM处理器寻址方式,基址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。举例如下:LDR R2,R3,#0 x0
39、C;读取R3 + 0 x0C地址上的存储单元的内容,放人R2STR R1,R0,#-4!;先R0 = R0 - 4,然后把R1的值保存到R0指定的存储单元LDR R1,R0,R3,LSL#1;将R0+R32地址上的存储单元的内容读出,存入R1,5)基址寻址,ARM处理器寻址方式,多寄存器寻址即是一次可传送几个寄存器值,允许一条指令传送16个寄存器的任何子集或所有寄存器。多寄存器寻址指令举例如下: LDMIA R1!,R2-R7,R12;将R1指向的单元中的数据读出到R2R7、R12中,(R1自动加1) STMIA R0!,R2-R7,R12;将寄存器R2R7、R12的值保存到R0指向的存储单元
40、中(R0自动加1) 使用多寄存器寻址指令时,寄存器子集的顺序是按由小到大的顺序排列,连续的寄存器可用“-”连接;否则用“,”分隔书写。,6) 多寄存器寻址,ARM处理器寻址方式,堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈)。指针所指向的存储单元即是堆栈的栈顶。存储器堆栈可分为两种:向上生长:向高地址方向生长,称为递增堆栈。向下生长:向低地址方向生长,称为递减堆栈。 堆栈指针指向最后压入的堆栈的有效数据项,称为满堆栈; 堆栈指针指向下一个待压入数据的空位置,称为空堆栈。 这样就有4种类型的堆栈表示递增和递减的满和空堆栈的各种组合。,7)堆栈寻址,ARM处理器寻址方
41、式,满递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA、STMFA(ascend)等。空递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一个空位置。指令如LDMEA、STMEA等。满递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD、STMFD等。空递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向堆栈下的第一个空位置。指令如LDMED、STMED等。,ARM微处理器的指令系统,多寄存器传送指令用于将一块数据从存储器的某一位置拷贝到另一位置。例如:STMIA R0!,R1-R7 ;将R1R7的数据保存到存储器中。存储指针在保存第一个值之后增加,增长方向为向上增长。STMIB R0!,R1-R7 ;将R1R7的数据保存到存储器中。存储指针在保存第一个值之前增加,增长方向为向上增长,8) 块拷贝寻址,ARM处理器寻址方式,相对寻址是基址寻址的一种变通。由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址。相对寻址指令举例如下:BL SUBRl ;调用到SUBRl子程序. . .SUBR1MOV PC,R14 ;返回,9)相对寻址,ARM处理器寻址方式,谢 谢,本章结束,
链接地址:https://www.31ppt.com/p-1554473.html