版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章ARM体系结构及编程模型1/17/2023主讲张道德1提纲13245ARM技术的应用领域及特点ARM处理器的寄存器组织ARM处理器的工作模式ARM微处理器系列67第二章ARM体系结构及编程模型ARM异常处理ARM处理器的工作状态ARM处理器的存储器格式2ARM-AdvancedRISCMachines
ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM技术的应用领域及特点1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。3ARM公司的Chipless模式世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。ARM技术的应用领域及特点基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。我国的中兴集成电路、大唐电讯、中芯国际和上海华虹,以及国外的一些公司如德州仪器、意法半导体、Philips、Intel、Samsung等都推出了自己设计的基于ARM核的处理器。4ARM微处理器的应用领域
工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。ARM技术的应用领域及特点到目前为止,ARM微处理器及技术的应用已经广泛深入到国民经济的各个领域5ARM微处理器的应用领域ARM技术的应用领域及特点网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。……6ARM微处理器的特点—低功耗、低成本、高性能采用RISC指令集ARM技术的应用领域及特点低功耗、低成本、高性能使用大量的寄存器ARM/THUMB指令支持三/五级流水线7ARM微处理器的特点—采用RISC体系结构ARM技术的应用领域及特点采用RISC架构的ARM处理器一般具有如下特点:固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种;使用单周期指令,便于流水线操作执行;大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。8ARM微处理器的特点—大量使用寄存器ARM技术的应用领域及特点ARM处理器共有37个寄存器,被分为若干个组,这些寄存器包括:31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器;6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位。9ARM微处理器的特点—高效的指令系统ARM技术的应用领域及特点ARM微处理器支持两种指令集:ARM指令集和Thumb指令集。ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。10ARM微处处理器的特特点—其他技术ARM技术术的应用领领域及特点点除此以外,,ARM体体系结构还还采用了一一些特别的的技术,在在保证高性性能的前提提下尽量缩缩小芯片的的面积,并并降低功耗耗:所有的ARM指令都都可根据前前面的执行行结果决定定是否被执执行,从而而提高指令令的执行效效率。可用加载/存储指令令批量传输输数据,以以提高数据据的传输效效率。可在一条数数据处理指指令中同时时完成逻辑辑处理和移移位处理。。在循环处理理中使用地地址的自动动增减来提提高运行效效率。11ARM微处处理器系列列ARM微处处理器系列列ARM7系系列ARM9系系列ARM9E系列ARM10E系列SecurCore系列Intel的Xscale其中,ARM7、ARM9、、ARM9E和ARM10为为4个通用用处理器系系列,每一一个系列提提供一套相相对独特的的性能来满满足不同应应用领域的的需求。SecurCore系列专门门为安全要要求较高的的应用而设设计。12ARM7微微处理器系系列ARM7系系列是低功功耗的32位RISC处理器器,最适合合用于对价价位和功耗耗要求较高高的消费类类应用。ARM7系系列有如下下特点:具有嵌入式式ICE--RT逻辑辑,调试开开发方便;;极低的功耗耗,适合对对功耗要求求较高的应应用,如便便携式产品品;能够提供0.9MIPS/MHz的的三级流水水线结构;;兼容16位位的Thumb指令令集,代码码密度高;;对操作系统统的支持广广泛,如WindowsCE、Linux、、PalmOS等等;指令系统与与ARM9系列、ARM9E系列和ARM10E系列兼兼容,便于于用户的产产品升级换换代;主频最高可可达130M,高速速的运算处处理能力能能胜任绝大大多数的复复杂应用。。ARM微处处理器系列列13ARM7微微处理器系系列ARM微处处理器系列列主要应用领领域:工业业控制、Internet设设备、网络络和调制解解调器设备备、移动电电话等多种种多媒体和和嵌入式应应用。ARM7系系列微处理理器包括如如下几种类类型的核::ARM7TDMI、ARM7TDMI-S、、ARM720T、、ARM7EJ。其其中,ARM7TMDI是目目前使用最最广泛的32位嵌入入式RISC处理器器,属低端端ARM处处理器核。。TDMI的基本含含义为:T:支持16位压缩缩指令集Thumb;D:支持片片上Debug;M:内嵌硬硬件乘法器器(Multiplier))I:嵌入式式ICE,,支持片上上断点和调调试点;14ARM9微微处理器系系列ARM微处处理器系列列ARM9系系列微处理理器在高性性能和低功功耗特性方方面提供最最佳的表现现。具有以以下特点::5级流水线线,指令执执行效率更更高。提供1.1MIPS/MHz的哈佛结结构。支持32位位ARM指指令集和16位Thumb指指令集。支持32位位的高速AMBA总总线接口。。全性能的MMU,支支持WindowsCE、、Linux、PalmOS等多种种主流嵌入入式操作系系统。MPU支持持实时操作作系统。支持数据Cache和指令Cache,具有更更高的指令令和数据处处理能力。。15ARM9微微处处理理器器系系列列ARM9系列列微微处处理理器器主主要要应应用用于于无无线线设设备备、、仪仪器器仪仪表表、、安安全全系系统统、、机机顶顶盒盒、、高高端端打打印印机机、、数数字字照照相相机机和和数数字字摄摄像像机机等等。。ARM微微处处理理器器系系列列ARM9系列列微微处处理理器器包包含含ARM920T、ARM922T和ARM940T三种种类类型型,,以以适适用用于于不不同同的的应应用用场场合合。。16ARM9E微处理理器系系列ARM微处处理器器系列列ARM9E系列列微处处理器器的主主要特特点如如下::支持DSP指令令集,,适合合于需需要高高速数数字信信号处处理的的场合合。5级流流水线线,指指令执执行效效率更更高。。支持32位位ARM指指令集集和16位位Thumb指指令集集。支持32位位的高高速AMBA总总线接接口。。支持VFP9浮浮点处处理协协处理理器。。全性能能的MMU,支支持众众多主主流嵌嵌入式式操作作系统统。支持数数据Cache和指指令Cache,具具有更更高的的处理理能力力。主频最最高可可达300M。。17ARM9E微处处理器器系列列ARM9E系列列微处处理器器主要要应用用于下下一代代无线线设备备、数数字消消费品品、成成像设设备、、工业业控制制、存存储设设备和和网络络设备备等领领域。。ARM微处处理器器系列列ARM9E系列列微处处理器器包含含ARM926EJ-S、ARM946E-S和ARM966E-S三种种类型型,以以适用用于不不同的的应用用场合合。18ARM10E微微处理器器系列ARM微微处理器器系列ARM10E系系列微处处理器的的主要特特点如下下:支持DSP指令令集,适适合于需需要高速速数字信信号处理理的场合合。6级流水水线,指指令执行行效率更更高。支持32位ARM指令令集和16位Thumb指令令集。支持32位的高高速AMBA总总线接口口。支持VFP10浮点处处理协处处理器。。全性能的的MMU,支持持众多主主流嵌入入式操作作系统。。支持数据据Cache和和指令Cache,具具有更高高的处理理能力主频最高高可达400M。内嵌并行行读/写写操作部部件。19ARM10E微微处理器器系列ARM10E系系列微处处理器主主要应用用于下一一代无线线设备、、数字消消费品、、成像设设备、工工业控制制、通信信和信息息系统等等领域。。ARM微微处理器器系列ARM10E系系列微处处理器包包含ARM1020E、ARM1022E和ARM1026EJ-S三种类类型,以以适用于于不同的的应用场场合。20SecurCore微微处理器器系列ARM微微处理器器系列SecurCore系系列微处处理器除除了具有有ARM体系结结构各种种主要特特点外,,还在系系统安全全方面具具有如下下的特点点:带有灵活活的保护护单元,,确保操操作系统统和应用用数据的的安全。。采用软内内核技术术,防止止外部对对其进行行扫描探探测。可集成用用户自己己的安全全特性和和其他协协处理器器。21SecurCore微微处理器器系列SecurCore系系列微处处理器主主要应用用于一些些对安全全性要求求较高的的应用产产品及应应用系统统,如电电子商务务、电子子政务、、电子银银行业务务、网络络和认证证系统等等领域。。ARM微微处理器器系列SecurCore系系列微处处理器包包含SecurCoreSC100、SecurCoreSC110、、SecurCoreSC200和SecurCoreSC210四种种类型,,以适用用于不同同的应用用场合。。22StrongARM微微处理器器系列ARM微微处理器器系列IntelStrongARM处理器是是便携式式通讯产产品和消消费类电电子产品品的理想想选择,,已成功功应用于于多家公公司的掌掌上电脑脑系列产产品。IntelStrongARMSA-1100处理理器是采采用ARM体系系结构高高度集成成的32位RISC微微处理器器。它融融合了Intel公司司的设计计和处理理技术以以及ARM体系系结构的的电源效效率,采采用在软软件上兼兼容ARMv4体系结结构、同同时采用用具有Intel技术术优点的的体系结结构。23Xscale处理器ARM微微处理器器系列Xscale处处理器器是基于于ARMv5TE体系系结构的的解决方方案,是是一款全全性能、、高性价价比、低低功耗的的处理器器。它支支持16位的Thumb指令令和DSP指令令集,已已使用在在数字移移动电话话、个人人数字助助理和网网络产品品等场合合。Xscale处处理器器是Intel目前主主要推广广的一款款ARM微处理理器。24ARM微微处理器器的工作作状态ARM微微处理器器的工作作状态从编程的的角度看看,ARM微处处理器的的工作状状态一般般有两种种,并可可在两种种状态之之间切换换:ARM状状态,此此时处理理器执行行32位位的字对对齐的ARM指指令;Thumb状态态,此时时处理器器执行16位的的、半字字对齐的的Thumb指指令。25ARM与与THUMBTHUMB指令令是ARM指令令的子集集ARM微微处理器器的工作作状态可以相互互调用,,只要遵遵循一定定的调用用规则Thumb指令令与ARM指令令的时间间效率和和空间效效率关系系为:存储空间间约为ARM代代码的60%~~70%%指令数比比ARM代码多多约30%~40%存储器为为32位位时ARM代码码比Thumb代码快快约40%存储器为为16位位时Thumb比ARM代码码快约40~50%使用Thumb代码,,存储器器的功耗耗会降低低约30%26状态切换换方法ARM指指令集和和Thumb指指令集均均有切换换处理器器状态的的指令,,并可在在两种工工作状态态之间切切换,ARM微微处理器器的工作作状态在开始执执行代码码时,处处于ARM状态态。27进入Thumb状态当操作数数寄存器器的状态态位(位位0)为为1时,,可以采采用执行行BX指指令的方方法,使使微处理理器从ARM状状态切换换到Thumb状态。。当处理器器处于Thumb状态态时发生生异常((如IRQ、FIQ、、Undef、、Abort、、SWI等),,则异常常处理返返回时,,自动切切换到Thumb状态态。ARM微微处理器器的工作作状态28切换到ARM状状态当操作数数寄存器器的状态态位为0时,执执行BX指令时时可以使使微处理理器从Thumb状态态切换到到ARM状态。。ARM微微处理器器的工作作状态在处理器器进行异异常处理理时,把把PC指指针放入入异常模模式链接接寄存器器中,并并从异常常向量地地址开始始执行程程序,也也可以使使处理器器切换到到ARM状态。。29处理器模模式ARM微微处理器器的工作作模式usr::ARM处理器器正常的的程序执执行状态态fiq::用于高高速数据据传输或或通道处处理irq::用于通通用的中中断处理理svc::操作系系统使用用的保护护模式abt::用于虚虚拟存储储及存储储保护sys::运行具具有特权权的操作作系统任任务und:当当出现未定定义指令终终止时进入入该模式30用户模式和和特权模式式ARM微处处理器的工工作模式除了用户模模式之外的的其他6种种处理器模模式称为特特权模式特权权模模式式下下,,程程序序可可以以访访问问所所有有的的系系统统资资源源,,也也可可以以任任意意地地进进行行处处理理器器模模式式的的切切换换。。特权权模模式式中中,,除除系系统统模模式式外外,,其其他他5种种模模式式又又称称为为异异常常模模式式大多多数数的的用用户户程程序序运运行行在在用用户户模模式式下下,,此此时时,,应应用用程程序序不不能能够够访访问问一一些些受受操操作作系系统统保保护护的的系系统统资资源源,,应应用用程程序序也也不不能能直直接接进进行行处处理理器器模模式式的的切切换换。。用户户模模式式下下,,当当需需要要进进行行处处理理器器模模式式切切换换时时,,应应用用程程序序可可以以产产生生异异常常处处理理,,在在异异常常处处理理中中进进行行处处理理器器模模式式的的切切换换。。31模式式切切换换ARM微微处处理理器器的的工工作作模模式式处理理器器模模式式可可以以通通过过软软件件进进行行切切换换,,也也可可以以通通过过外外部部中中断断或或者者异异常常处处理理过过程程进进行行切切换换。。当应应用用程程序序发发生生异异常常中中断断时时,,处处理理器器进进入入相相应应的的异异常常模模式式。。在在每每一一种种异异常常模模式式下下都都有有一一组组寄寄存存器器,,供供相相应应的的异异常常处处理理程程序序使使用用,,这这样样就就可可以以保保证证在在进进入入异异常常模模式式时时,,用用户户模模式式下下的的寄寄存存器器不不被被破破坏坏。。系统模模式并并不是是通过过异常常进入入的,,它和和用户户模式式具有有完全全一样样的寄寄存器器。但但是系系统模模式属属于特特权模模式,,可以以访问问所有有的系系统资资源,,也可可以直直接进进行处处理器器模式式切换换。它它主要要供操操作系系统任任务使使用。。通常常操作作系统统的任任务需需要访访问所所有的的系统统资源源,同同时该该任务务仍然然使用用用户户模式式的寄寄存器器组,,而不不是使使用异异常模模式下下相应应的寄寄存器器组,,这样样可以以保证证当异异常中中断发发生时时任务务状态态不被被破坏坏。32ARM微处处理器器的存存储器器格式式ARM体系系结构构所支支持的的最大大寻址址空间间为4GB(232字节))ARM微处处理器器的存存储器器格式式ARM体系系结构构将存存储器器看作作是从从零地地址开开始的的字节节的线线性组组合。。从零零字节节到三三字节节放置置第一一个存存储的的字数数据,,从第第四个个字节节到第第七个个字节节放置置第二二个存存储的的字数数据,,依次次排列列。ARM体系系结构构可以以用两两种方方法存存储字字数据据,称称之为为大端端格式式和小小端格格式33ARM体系系结构构的存存储器器格式式—大端格格式ARM微处处理器器的存存储器器格式式在这种种格式式中,,字数数据的的高字字节存存储在在低地地址中中,而而字数数据的的低字字节则则存放放在高高地址址中34ARM体系系结构构的存存储器器格式式—小端端格格式式ARM微微处处理理器器的的存存储储器器格格式式与大大端端存存储储格格式式相相反反,,在在小小端端存存储储格格式式中中,,低低地地址址中中存存放放的的是是字字数数据据的的低低字字节节,,高高地地址址存存放放的的是是字字数数据据的的高高字字节节35指令令长长度度及及数数据据类类型型ARM微微处处理理器器的的指指令令长长度度可可以以是是32位位((在在ARM状状态态下下)),,也也可可以以为为16位位((在在Thumb状状态态下下))。。ARM微处理理器的存储器器格式ARM微处理理器中支持字字节(8位))、半字(16位)、字字(32位))三种数据类类型,其中,,字需要4字字节对齐(地地址的低两位位为0)、半半字需要2字字节对齐(地地址的最低位位为0)36非对齐的存储储访问操作在ARM中,,如果存储单单元的地址没没有遵守对齐齐规则,则称称为非对齐的的存储访问操操作。ARM微处处理器的存存储器格式式非对齐的指指令预取操操作非对齐的数数据访问操操作37非对齐的指指令预取操操作当处理器处处于ARM状态期间间,如果写写入到寄存存器PC中中的值是非非字对齐的的,要么指指令执行的的结果不可可预知,要要么地址值值中最低两两位被忽略略。ARM微处处理器的存存储器格式式当处理器处处于THUMB状态态期间,如如果写入到到寄存器PC中的值值是非半字字对齐的,,要么指令令执行的结结果不可预预知,要么么地址值中中最低位被被忽略。38非对齐的数数据访问操操作对于Load/Store操操作,如果果是非对齐齐的数据访访问操作,,系统定义义了三种可可能的结果果:ARM微处处理器的存存储器格式式执行的结果果不可预知知忽略字单元元地址的低低两位的值值,即访问问地址为(addressAND0XFFFFFFFC)的的字单元;;忽略半字字单元地址址的最低位位的值,即即访问地址址为(addressAND0XFFFFFFFE)的半字字单元。忽略字单元元地址的低低两位的值值;或忽略略半字单元元地址的最最低位的值值;由存储储系统实现现这种忽略略。也就是是说,这时时该地址值值原封不动动地送到存存储系统。。当发生非非对齐的的数据访访问时,,到底采采用上述述三种方方法中的的哪一种种,是由由各指令令指定的的。39寄存器组组织ARM微微处理器器共有37个32位寄寄存器,,其中31个为为通用寄寄存器,,6个为为状态寄寄存器。。但是这这些寄存存器不能能被同时时访问,,具体哪哪些寄存存器是可可编程访访问的,,取决微微处理器器的工作作状态及及具体的的运行模模式。但但在任何何时候,,通用寄寄存器R14~~R0、、程序计计数器PC、一一个或两两个状态态寄存器器都是可可访问的的。ARM微处处理器器的寄寄存器器格式式40ARM状态态下的的寄存存器组组织通用寄寄存器器:通通用寄寄存器器包括括R0~R15,可可以分分为三三类::未分组组寄存存器R0~~R7分组寄寄存器器R8~R14程序计计数器器PC(R15)ARM微处处理器器的寄寄存器器格式式41ARM状态态下的的寄存存器组组织ARM微处处理器器的寄寄存器器格式式42未分组组寄存存器R0~~R7ARM微处处理器器的寄寄存器器格式式在所有有的运运行模模式下下,未未分组组寄存存器都都指向向同一一个物物理寄寄存器器,他他们未未被系系统用用作特特殊的的用途途,因因此,,在中中断或或异常常处理理进行行运行行模式式转换换时,,由于于不同同的处处理器器运行行模式式均使使用相相同的的物理理寄存存器,,可能能会造造成寄寄存器器中数数据的的破坏坏,这这一点点在进进行程程序设设计时时应引引起注注意。。43分组寄寄存器器R8~R12ARM微处处理器器的寄寄存器器格式式每次所所访问问的物物理寄寄存器器与处处理器器当前前的运运行模模式有有关R8~~R12::每个个寄存存器对对应两两个不不同的的物理理寄存存器当使用用fiq模模式时时,访访问寄寄存器器R8_fiq~R12_fiq;当使用用除fiq模式式以外外的其其他模模式时时,访访问寄寄存器器R8_usr~R12_usr。44分组寄寄存器器R13~~R14ARM微处处理器器的寄寄存器器格式式R13、R14:每每个寄寄存器器对应应6个个不同同的物物理寄寄存器器其中的的一个个是用用户模模式与与系统统模式式共用用,另另外5个物物理寄寄存器器对应应于其其他5种不不同的的运行行模式式采用以以下的的记号号来区区分不不同的的物理理寄存存器::R13_<mode>R14_<mode>mode为为以下下几种种之一一:usr、fiq、irq、svc、abt、und。45堆栈指指针——R13ARM微处处理器器的寄寄存器器格式式R13在ARM指令令中常常用作作堆栈栈指针针,但但这只只是一一种习习惯用用法,,用户户也可可使用用其他他的寄寄存器器作为为堆栈栈指针针。在Thumb指指令集集中,,某些些指令令强制制性的的要求求使用用R13作作为堆堆栈指指针。。由于处处理器器的每每种运运行模模式均均有自自己独独立的的物理理寄存存器R13,在在初始始化部部分,,都要要初始始化每每种模模式下下的R13,这这样,,当程程序的的运行行进入入异常常模式式时,,可以以将需需要保保护的的寄存存器放放入R13所指指向的的堆栈栈,而而当程程序从从异常常模式式返回回时,,则从从对应应的堆堆栈中中恢复复。46子程程序序连连接接寄寄存存器器——R14ARM微微处处理理器器的的寄寄存存器器格格式式R14也也称称作作子子程程序序连连接接寄寄存存器器或或连连接接寄寄存存器器LR。。当当执执行行BL子子程程序序调调用用指指令令时时,,可可以以从从R14中中得得到到R15((程程序序计计数数器器PC))的的备备份份。。其其他他情情况况下下,,R14用用作作通通用用寄寄存存器器。。在每一种种运行模模式下,,都可用用R14保存子子程序的的返回地地址,当当用BL或BLX指令令调用子子程序时时,将下下一条指指令的地地址值拷拷贝给R14,,执行完完子程序序后,又又将R14的值值拷贝回回PC,,即可完完成子程程序的调调用返回回。BLSUB1……SUB1:STMFDSP!,{<regs>,LR}/*将将R14存入堆堆栈*/……LDMFDSP!,{<regs>,PC}/*完成成子程序序返回*/47程序计数数器PC(R15)ARM微微处理器器的寄存存器格式式ARM状状态下,,位[1:0]为0,,位[31:2]用于于保存PC;Thumb状态态下,位位[0]为0,,位[31:1]用于于保存PC;R15虽然然也可可用作作通用用寄存存器,,但一一般不不这么么使用用,因因为对对R15的的使用用有一一些特特殊的的限制制,当当违反反了这这些限限制时时,程程序的的执行行结果果是未未知的的。由于ARM体系结结构采采用了了多级级流水水线技技术,,对于于ARM指令集集而言言,PC总是指指向当当前指指令的的下两两条指指令的的地址址,即即PC的值为为当前前指令令的地地址值值加8个字节节。48程序状状态寄寄存器器(CPSR/SPSR)CPSR(当前程程序状状态寄寄存器器),CPSR可在任任何运运行模式式下被被访问问,它它包括括条件件标志志位、、中断断禁止止位、、当前前处理理器模模式标标志位位,以以及其其他一一些相相关的的控制制和状状态位位。ARM微处处理器器的寄寄存器器格式式每一种种运行行模式式下又又都有有一个个专用用的物物理状状态寄寄存器器,称称为SPSR(备份份的程程序状状态寄寄存器器),,异常常发生生时,,SPSR用于于保存存CPSR的值值,从从异常常退出出时则则可由由SPSR来恢恢复CPSR。。由于用用户模模式和和系统统模式式不属属于异异常模模式,,他们们没有有SPSR,当当在这这两种种模式式下访访问SPSR,,结果果是未未知的的。49Thumb状态态下的的寄存存器组组织Thumb状态态下的的寄存存器集集是ARM状态态下寄寄存器器集的的一个个子集集ARM微处理理器的寄存器器格式程序可以直接接访问8个通通用寄存器((R7~R0)、程序计计数器(PC)、堆栈指指针(SP))、连接寄存存器(LR))和CPSR。同样,每一种种特权模式下下都有一组SP、LR和和SPSR。。50Thumb状状态下的寄存存器组织图ARM微处理理器的寄存器器格式51Thumb状状态下的寄存存器与ARM状态下的寄寄存器关系ARM微处理理器的寄存器器格式Thumb状状态下和ARM状态下的的R0~R7是相同的。。Thumb状状态下和ARM状态下的的CPSR和和所有的SPSR是相同同的。Thumb状状态下的SP对应于ARM状态下的的R13。Thumb状状态下的LR对应于ARM状态下的的R14。Thumb状状态下的程序序计数器对应应于ARM状状态下R15。52Thumb状状态下的寄存存器与ARM状态下的寄寄存器关系图图ARM微处理理器的寄存器器格式53访问THUMB状态下的的高位寄存器器(Hi-registers)在Thumb状态下,高高位寄存器R8~R15并不是标准准寄存器集的的一部分,但但可使用汇编编语言程序受受限制的访问问这些寄存器器,将其用作作快速的暂存存器。ARM微处理理器的寄存器器格式使用带特殊变变量的MOV指令,数据据可以在低位位寄存器和高高位寄存器之之间进行传送送;高位寄存存器的值可以以使用CMP和ADD指指令进行比较较或加上低位位寄存器中的的值。54程序状态寄存存器ARM微处理理器的寄存器器格式ARM体系结结构包含一个个当前程序状状态寄存器((CPSR))和五个备份份的程序状态态寄存器(SPSRs))。备份的程程序状态寄存存器用来进行行异常处理,,其功能包括括:保存ALU中中的当前操作作信息控制允许和禁禁止中断设置处理器的的运行模式55程序状态寄存存器的每一位位的安排ARM微处理理器的寄存器器格式56程序状态寄存存器的条件码标志N、Z、C、、V均为条件件码标志位。。它们的内容容可被算术或或逻辑运算的的结果所改变变,并且可以以决定某条指指令是否被执执行ARM微处理理器的寄存器器格式在ARM状态态下,绝大多多数的指令都都是有条件执执行的。在Thumb状态下,仅仅有分支指令令是有条件执执行的。57标志位的含义义标志位含
义N当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零;ZZ=1表示运算的结果为零;Z=0表示运算的结果为非零;C加法运算结果进位时,C=1,减法运算借位时,C=0;移位操作的非加/减运算指令,C为移出的最后一位;其他的非加/减运算指令,C的值通常不改变。V加/减法运算指令,V=1表示符号位溢出。对于其他的非加/减运算指令,C的值通常不改变。Q在ARMv5及以上版本的E系列处理器中,Q标志指示DSP运算指令是否溢出。在其他版本中,Q标志位无定义。ARM微处理理器的寄存器器格式58程序状态寄存存器的控制位状态寄存器的的低8位(I、F、T和和M[4:0])称为控控制位,发生生异常时这些些位可以被改改变。如果处处理器运行特权模式,这些位也可可以由程序修修改。ARM微处理理器的寄存器器格式中断禁止位I、F:I=1禁禁止IRQ中断;F=1禁禁止FIQ中断。T标志位:该该位反映处理理器的运行状状态ARM体系结结构v5及以以上的版本的的T系列处理理器,当该位位为1时,程程序运行于Thumb状状态,否则运运行于ARM状态。ARM体系结结构v5及以以上的版本的的非T系列处处理器,当该该位为1时,,执行下一条条指令以引起起未定义的指指令异常;当当该位为0时时,表示运行行于ARM状状态。运行模模式位位M[4::0]是模模式位位,决决定处处理器器的运运行模模式59处理器器运行行模式式及可可以访访问的的寄存存器M[4:0]处理器模式可访问的寄存器0b10000用户模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7~R00b10010IRQ模式PC,CPSR,SPSR_irq,R14_irq,R13_irq,R12~R00b10011管理模式PC,CPSR,SPSR_svc,R14_svc,R13_svc,R12~R0,0b10111中止模式PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12~R0,0b11011未定义模式PC,CPSR,SPSR_und,R14_und,R13_und,R12~R0,0b11111系统模式PC,CPSR(ARMv4及以上版本),R14~R0ARM微处处理器器的寄寄存器器格式式60异常((Exceptions)当正常常的程程序执执行流流程发发生暂暂时的的停止止时,,称之之为异异常,,例如如处理理一个个外部部的中中断请请求。。在处处理异异常之之前,,当前前处理理器的的状态态必须须保留留,这这样当当异常常处理理完成成之后后,当当前程程序可可以继继续执执行。。处理理器允允许多多个异异常同同时发发生,,它们们将会会按固固定的的优先先级进进行处处理。。ARM异常常处理ARM体系系结构中的的异常,与与8位/16位体系系结构的中中断有很大大的相似之之处,但异异常与中断断的概念并并不完全等等同。61ARM体体系结构构所支持持的异常常类型异常类型具体含义复位复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行。未定义指令遇到不能处理的指令时,产生未定义指令异常。软件中断执行SWI指令产生,用于用户模式下的程序调用特权操作指令。指令预取中止处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常。数据中止处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。IRQ外部中断请求有效,且CPSR中的I位为0时,产生IRQ异常。FIQ快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。ARM异异常处理理62对异常的的响应ARM异异常处理理当一个异异常出现现以后,,ARM微处理理器会执执行以下下几步操操作将下一条条指令的的地址存存入相应应连接寄寄存器LR,以以便程序序在处理理异常返返回时能能从正确确的位置置重新开开始执行行。将CPSR复制制到相应应的SPSR中中。根据异常常类型,,强制设设置CPSR的的运行模模式位。。强制PC从相关关的异常常向量地地址取下下一条指指令执行行,从而而跳转到到相应的的异常处处理程序序处。63R14_<Exception_Mode>=ReturnLinkSPSR_<Exception_Mode>=CPSRCPSR[4:0]=ExceptionModeNumberCPSR[5]=0If<Exception_Mode>==ResetorFIQthenCPSR[6]=1CPSR[7]=1PC=ExceptionVectorAddress异常响应应伪代码码ARM异异常处理理处理器处处于Thumb状态,,则当异异常向量量地址加加载入PC时,,处理器器自动切切换到ARM状状态。ARM微微处理器器对异常常的响应应过程用用伪码可可以描述述为:在ARM状态态下执行禁止快速中断断禁止正常中断断转入异常入口口地址64从异常返回ARM异常处处理异常处理完毕毕之后,ARM微处理器器会执行以下下几步操作从从异常返回::将连接寄存器器LR的值减减去相应的偏偏移量后送到到PC中。将SPSR复复制回CPSR中。若在进入异常常处理时设置置了中断禁止止位,要在此此清除。可以认为应用用程序总是从从复位异常处处理程序开始始执行的,因因此复位异常常处理程序不不需要返回。。65FIQ(FastInterruptRequest)FIQ异常是是为了支持数数据传输或者者通道处理而而设计的。ARM异常处处理若将CPSR的F位置为为1,则会禁禁止FIQ中中断,若将CPSR的F位清零,处处理器会在指指令执行时检检查FIQ的的输入。注意意只有在特权权模式下才能能改变F位的的状态。可由外部通过过对处理器上上的nFIQ引脚输入低低电平产生FIQ。不管管是在ARM状态还是在在Thumb状态下进入入FIQ模式式,FIQ处处理程序均可可以执行以下下指令从FIQ模式返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术选题申报流程说明(4篇)范文
- 租赁方确认合同年限回函签署说明内容6篇范文
- 专业成长与贡献评估表
- 汽车零部件质量异议反馈流程告知函(3篇)
- 会计师税务筹划与审计准确性绩效考评表
- 2026二下数学第九单元说课课件
- 2026二下数学表内除法二趣味课件
- 加强交通安全教育生命至上四年级主题班会课件
- 服装设计公司设计部设计师KPI考核表
- 技术文档资料归档确认函3篇范本
- 灌区工程施工管理工作报告(单位、合同工程验收)
- 2025云南富滇银行总行专业岗位社会招聘10人笔试历年典型考题及考点剖析附带答案详解
- 钢结构焊接动火作业控制方案
- 护理科普比赛题目及答案57
- 神经纤维瘤病合并咖啡斑
- 杭州安全员考试题库及答案解析
- Storyline3课件实例教学课件
- 养牛技术网络教学课件
- 认知障碍护理课件
- 建设项目环境影响评价分类管理名录2026版
- 湖南长沙2019-2021年中考满分作文36篇
评论
0/150
提交评论