嵌入式系统概述与ARM7体系结构.ppt

上传人:小飞机 文档编号:6569796 上传时间:2023-11-13 格式:PPT 页数:85 大小:2MB
返回 下载 相关 举报
嵌入式系统概述与ARM7体系结构.ppt_第1页
第1页 / 共85页
嵌入式系统概述与ARM7体系结构.ppt_第2页
第2页 / 共85页
嵌入式系统概述与ARM7体系结构.ppt_第3页
第3页 / 共85页
嵌入式系统概述与ARM7体系结构.ppt_第4页
第4页 / 共85页
嵌入式系统概述与ARM7体系结构.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《嵌入式系统概述与ARM7体系结构.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统概述与ARM7体系结构.ppt(85页珍藏版)》请在三一办公上搜索。

1、嵌入式系统原理及设计,陈子为,课程安排,课时:32学时(上课)+16学时(实验)形式:专题讲座+讨论+实验+项目设计内容安排第1讲 嵌入式系统概述与ARM7体系结构 第2讲 指令系统与程序编制 第3讲 存储器映射与重映射第4讲 系统控制与启动代码第5讲 异常与中断第6讲 定时器、PWM与实时时钟 第7讲 UART与SPI第8讲 其它外设模块,工程项目:声音播放器数字时钟 要按照完整工程项目要求来做。要提交相关技术文档,并且文档要规范作业与实验报告:,不写作业写博客,教材与参考书目,教材ARM嵌入式系统基础教程(第2版)周立功 等编著,北京航空航天大学出版社,2005 ARM嵌入式系统实验教程(

2、一)周立功 等编著,北京航空航天大学出版社,2004参考书目深入浅出ARM7LPC2200周立功 等编著,广州致远电子有限公司,2006 ARM体系结构及其嵌入式处理器任哲 等编著,北京航空航天大学出版社,2008,1ARM程序分析与设计王宇行 编著,北京航空航天大学出版社,2008,3,1,L E C T U R E,嵌入式系统概述与ARM7体系结构,陈子为,现实中的嵌入式系统,嵌入式系统无处不在,讨 论,什么是嵌入式系统、自己身边的嵌入式系统、与单片机、DSP的联系话题范围不限定,谈谈自己对嵌入式系统的理解,1、什么是嵌入式系统:来自IEEE的定义,“Embedded system is

3、devices used to control,monitor,or assist the operation of equipment,machinery or plants”.IEEE上述定义主要从应用上加以定义。可以看出:嵌入式系统是软硬件的综合体,还可以涵盖机械等附属装置。,什么是嵌入式系统:广义上,嵌入式系统是一种应用系统,它至少包含一个可编程的计算机(通常是某种形式的微控制器、微处理器或数字信号处理芯片(DSP)且使用该系统的人一般并未意识到该系统是基于计算机的。,什么是嵌入式系统:国内的经典定义,嵌入式系统是“以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功

4、能、可靠性、成本、体积、功耗有严格要求的专用计算机系统”一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等部分组成,用于实现对其他设备的控制、监视或管理等功能。,嵌入式系统的特点,嵌入式系统与通用型计算机系统相比,具有如下特点:专用性强。可裁减性。实时性与可靠性好。功耗低。,通用计算机与嵌入式系统对比,嵌入式处理器,目前来讲,嵌入式处理器可以分成这样一些类型1、嵌入式微处理器(Microprocessor Unit,MPU)2、嵌入式微控制器(Microcontroller Unit,MCU)3、嵌入式DSP(Digital Signal Processor)处理器 4、嵌

5、入式片上系统(System on Chip,SoC),ExternalMemory,CPU,Address,Data,扩展芯片,内核(core),处理器存储器子系统,SoC的片内外设,系统的片外设备,微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。,嵌入式系统的组成,嵌入式系统一般由嵌入式硬件和软件组成硬件以微处理器为核心集成存储器和系统专用的输入/输出设备软件包括:初始化代码及驱动、嵌入式操作系统和应用程序等,这些软件有机地结合在一起,形成系统特定的一体化软件。,手机的大概组成,微波炉,CPU,BUS,ROM,RAM,输入接口,输出接口,输入键,开门,马达,磁电

6、管,风扇,灯具,嵌入式处理器,喇叭,嵌入式系统的应用领域,A Digital Camera,嵌入式系统硬件部分,嵌入式系统软件部分,如人的大脑,决定了硬件的操作模式。通过良好的操作系统以及应用程序,把硬件功能发挥到极至。,如人的手、脚、神经等部位,决定了嵌入式系统的先天功能。如运算能力和I/O接口等。,2 ARM简介,ARM公司简介,ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。,

7、ARM公司简介,将技术授权给其它芯片厂商,形成各具特色的ARM芯片,IP商,半导体芯片(SOC)商,嵌入式系统开发者,分工边界,嵌入式系统构成层次图,ARM处理器的应用当前主要应用于消费类电子领域;到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75以上的市场份额全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器,“掌上计算”相关的所有领域皆为其所主宰。ARM技术正在逐步渗入到我们生活的各个方面。,ARM处理器核简介,ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM cortex了,而ARM6核以及更早

8、的系列已经很罕见了。,ARM7,ARM9,ARM9E,ARM10,ARM11,Cortex,V4,V4T,V5TE,V5TE,V6,V7,ARM体系结构版本,ARM体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号V1V7表示。,Roadmap of ARM V4/V5/V6,ARM系列产品表示,ARM系列产品很多,以ARM7系列为例,其内核ARM7TDMI表示为:ARM7:ARM系列具有32位整数运算核T:内含16位压缩指令集ThumbD:支持片内Debug调试,M:采用增强型

9、乘法器(Multiplier),I:内含嵌入式ICE宏单元另外,各产品的后缀提供了各种形式与功能的选择:-S:可综合的软核Softcore-E:具有DSP的功能-J:Jazeller,允许直接执行Java字节码,对本部分的要求,由于C语言编译器已经考虑到了许多复杂的因素,所以作为初学者无需成为一个专家就可以使用LPC2200。但是为了能够设计出可靠的应用系统和培养学习新技术的能力,作为初学者确实需要对CPU(即ARM内核)的运作机制及其独特的性能有所了解。同一个系列ARM(例如都是ARM7或均为V4架构),其内核的体系结构基本相同,了解其中一种,其它也能很快上手。,3、ARM7TDMI,简介,

10、ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。,注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。,冯诺依曼体系结构,ARM7TDMI处理器使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。,冯诺依曼体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令0,指令1,指令2,指令3,指令4,数据,数据0,数据1,数据2,哈佛体系结构,指令寄存器,控制器,数据通道,输入,输

11、出,CPU,程序存储器,指令0,指令1,指令2,数据存储器,数据0,数据1,数据2,地址,指令,地址,数据,存储器的字与半字,ARM处理器直接支持字节(8位)、半字(16位)或者字(32位)的数据类型。其中能被4整除的地址开始连续的4个字节构成一个字,字的数据类型为4个连续的字节。从偶数地址开始的连续的2个字节构成一个半字,半字的数据类型为2个连续的字节。ARM指令的长度刚好是1个字。,字/半字对齐,存储方式,小端存储方式,大端存储方式,流水线技术,流水线(Pipeline)技术:几个指令可以并行执行允许多个操作同时处理,比逐条指令执行要快。提高了CPU的运行效率,译码,取指,执行add,译码

12、,取指,执行sub,译码,取指,执行cmp,时间,Add,Sub,Cmp,为增加处理器指令流的速度,ARM7 系列使用3级流水线.PC指向正被取指的指令,而非正在执行的指令,PC值=当前程序执行位置+8,第1条指令,第2条指令,第3条指令,4、处理器状态,处理器状态,ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb状态:16位,这种状态下执行半字方式的ARM指令。,注意:两个状态之间的切换并不影响处理器模式或寄存器内容。,由“

13、当前程序状态寄存器CPSR”中的第5位(即控制位T)反映处理器正在操作的状态。,ARM指令集与Thumb指令集的关系,Thumb指令集具有灵活、小巧的特点,ARM指令集支持ARM核所有的特性,具有高效、快速的特点,处理器状态切换,使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换(详见第4章),程序如下所示。,;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0,地址最低位为1,表示切换到Thumb状态,地址最低位为0,表示切换到ARM状态,跳转地址标号,5 处

14、理器模式,处理器7种模式,特权模式,除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。,异常模式,这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。,MSR CPSR_c,#(NoInt|SYS32Mode);从管理模式切换到系统模式,MSR CPSR_c,#(NoInt|SVC32Mode);从系统模式切换到

15、管理模式,用户和系统模式,这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。,6 ARM内部寄存器,在ARM7TDMI处理器内部有37个用户可见的寄存器。31 个通用32位寄存器(包括程序计数器PC)6 个状态寄存器通用寄存器包括R0R15,可以分为三类:未分组寄存器R0R7 分组寄存器R8R14 程序计数器PC(R15)状态寄存器:CPSR(Current Program Status Register,当前程序状态寄存器)SPSR

16、(Saved Program Status Register,备份程序状态寄存器),在不同的工作模式和处理器状态下,程序员可以访问的寄存器不尽相同。,ARM状态各模式下的寄存器,ARM状态各模式下的寄存器,所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。,ARM状态各模式下可以访问的寄存器,一般的通用寄存器,在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。,一般的通用寄存器,其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器

17、。,一般的通用寄存器,寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器,一般的通用寄存器,寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。,一般的通用寄存器,寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。,堆栈指针寄存器R13(SP),寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但

18、是在Thumb指令集中存在使用R13的指令。,链接寄存器R14(LR),R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。,R14(LR)寄存器与子程序调用,MOV PC,LR,R14(地址A),1.程序A执行过程中调用程序B;,操作流程,2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14(LR);,3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;,R14寄存器与异常发生,异

19、常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。,R14寄存器注意要点,a,return,地址A,1.执行用户模式下的程序;,2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;,3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;,未被破坏,R14_irq,R14寄存器注意要点,a,地址A,1.执行用户模式下的程序;,2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被

20、破坏;,3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;,未被破坏,a,return,地址B,4.如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断;,5.硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;,R14_irq 被破坏,6.在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;,return,return,解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。,程序计数器R15(PC),寄存器R

21、15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。,读R15的限制,正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。,读R15的限制,当使用STR或STM指令保存R15时,会有一个例外。这些指令可能将当前指令地址加8字节或加12字节保存(将来可能还有其它数字)。偏移量是8还是12取决于具体的ARM芯片,但是对于一个确定的芯片,这个

22、值是一个常量。所以最好避免使用STR和STM指令来保存R15,如果很难做到,那么应当在程序中计算出该芯片的偏移量。,读R15的限制,计算偏移量(PC值和当前指令地址的差)程序代码:,SUBR1,PC,#4;R1=下面STR指令的地址STRPC,R0;保存STR指令地址+偏移量LDRR0,R0;然后重装SUBR0,R0,R1;计算偏移量,0,4,8,12,ARM状态,写R15的限制,正常操作时,写入R15 的值被当作一个指令地址,程序从这个地址处继续执行(相当于执行一次无条件跳转)。,写R15的限制,由于ARM指令以字节为边界,因此写入R15的值最低两位通常为0b00。具体的规则取决于内核结构的

23、版本:在ARM结构V3版及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址由指令的实际目标地址(写入R15的值)和0 xFFFFFFFC相与得到;在ARM结构V4版及以上版本中,写入R15的值的最低两位为0,如果不是,结果将不可预测。,程序状态寄存器CPSR,寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。详细描述参看3.8小节。,ARM 指令集所有的指令都可以被有条件的执行,简称条件执行。在以往的微控制器中,只有条件转移指令或位测试

24、和设置一类的指令是条件指令。但是在ARM 指令集中,操作码的最高四位与CPSR 中的条件码进行比较,如果它们彼此不匹配,指令将不被执行,而是以NOP 指令(无操作)通过流水线。但是在Thumb状态下,仅有分支指令是有条件执行的。,7 程序状态寄存器,简介,ARM7TDMI内核包含1个CPSR和5个供异常处理程序使用的SPSR。CPSR反映了当前处理器的状态,其包含:4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V));2个中断禁止位,分别控制一种类型的中断;5个对当前处理器模式进行编码的位;1个用于指示当前执行指令(ARM还是Thumb)的位。,条件代码标志,保留,控制位,溢出标志

25、oVerflow,进位或借位扩展 Carry,零 Zero,负或小于 Negative,IRQ禁止 Interrupt,FIQ禁止 Fast,状态位 Thumb,模式位 Mode,N,Z,C,V,I,T,F,CPSR寄存器的格式,每个异常模式还带有一个程序状态保存寄存器(SPSR),它用于保存在异常发生之前的CPSR。CPSR和SPSR通过特殊指令(MRS、MSR)进行访问。,条件代码标志,大多数“数值处理指令”可以选择是否影响条件代码标志位。通常如果指令带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。N、Z、C和V位都是条件代码标志。算术操作、逻辑操作、

26、MSR或者LDM指令可以对这些位进行设置。所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。,条件代码标志,各标志位的含义如下:N 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;Z 指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0;,CPSR_f,条件代码标志,各标志位的含义如下:C 当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。当进行减法运算(包括CMP 指令),并且最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通

27、常不变;V当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。,控制位,CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。它们分别是:中断禁止位;T位;模式位。,CPSR_c,控制位,中断禁止位包括I和F位:当I位置位时,IRQ中断被禁止;当F位置位时,FIQ中断被禁止。T位反映了正在操作的状态:当T位为1时,处理器正在Thumb状态下运行;当T位清零时,处理器正在ARM状态下运行。,控制位,模式位包括M4、M3、M2、M1和M0,这些位决定处理器的操作模式。注意:不是所有模式位的组合都定义了有效的处理器模式,如果使用了错误的设置,将引起一个无法恢复的错误。,CPSR模式位设置表,保留位,CPSR中的保留位被保留将来使用。为了提高程序的可移植性,当改变CPSR标志和控制位时,请不要改变这些保留位。另外,请确保程序的运行不受保留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号