版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、异常的响应异常的响应/ /返回:返回:PCPC、LRLR偏移量的计算偏移量的计算2/106项目项目ARM7ARM9ARM10ARM11流水线流水线3568典型频率典型频率MHz80150260335功耗功耗mW/MHz0.060.19(+cache)0.5(+cache)0.4(+cache)性能性能MIPS/MHz0.971.11.31.2架构架构冯冯 诺伊曼诺伊曼哈佛哈佛哈佛哈佛哈佛哈佛ARM处理器(核)比较处理器(核)比较3-Stage Pipeline 3-Stage Pipeline vs 5-Stage Pipeline 4InstructionFetch Shift + ALUM
2、emoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMIARMARM处理器内核流水线工作流程处理器内核流水线工作流程5ARM的编程模型的编程模型p所谓ARM的编程模型,就是决定ARM程序组织形式的硬件架构,ARM的编程模型主要包括:ARMARM微处理器的微处理
3、器的工作状态工作状态ARMARM体系结构的体系结构的存储器模式存储器模式ARMARM微处理器的微处理器的运行(操作)模式运行(操作)模式ARMARM体系结构的体系结构的寄存器组织寄存器组织ARMARM微处理器的微处理器的异常状态异常状态6ARM Processor Core Registers7ARMARM支持的数据类型支持的数据类型字节:字节:8 8位位半字:半字:1616位(必须分配为占用位(必须分配为占用2 2个字节)个字节)字:字:3232位(必须分配为占用位(必须分配为占用4 4个字节)个字节)注意:注意:1 1)半字存储单元地址最低位为)半字存储单元地址最低位为0 0 2 2)字存
4、储单元地址最低两位为)字存储单元地址最低两位为0 0N N位无符号数:位无符号数: 二进制格式表示范围为二进制格式表示范围为0202N-1N-1的非负整数;的非负整数;N N位有符号数时,位有符号数时,N N位数据值使用位数据值使用2 2的补码格式表示范围为的补码格式表示范围为-2-2N-1N-1+2+2N-1N-1-1-1的整数的整数1112342数据存储格式数据存储格式 ARMARM体系结构所支持的最大寻址空间为体系结构所支持的最大寻址空间为4GB4GB(2 23232字节)字节) ARMARM体系结构将存储器看成是以字节为单位的线性组合,存体系结构将存储器看成是以字节为单位的线性组合,存
5、储单元地址从储单元地址从0 x000000000 x00000000开始编址开始编址 ARMARM可按大端格式和小端格式两种方式存储字数据可按大端格式和小端格式两种方式存储字数据 地址地址 大端格式大端格式 0 x00000000 0 x12 0 x00000001 0 x34 0 x00000002 0 x56 0 x00000003 0 x78 地址地址 小端格式小端格式 0 x00000000 0 x78 0 x00000001 0 x56 0 x00000002 0 x34 0 x00000003 0 x12字数据字数据0 x12345678 一个基于一个基于ARMARM内核的芯片可以
6、只支持大端模式或小端模式,也可以两内核的芯片可以只支持大端模式或小端模式,也可以两者都支持。通常,小端模式是者都支持。通常,小端模式是ARMARM处理器的默认形式。处理器的默认形式。 在在ARMARM指令集中不包含任何直接选择大小端的指令,但是一个同时支指令集中不包含任何直接选择大小端的指令,但是一个同时支持大小端模式的持大小端模式的ARMARM芯片可以通过硬件配置(一般使用芯片的引脚来配置)芯片可以通过硬件配置(一般使用芯片的引脚来配置)来匹配存储器系统所使用的规则。来匹配存储器系统所使用的规则。ARM微处理器支持微处理器支持7种运行模式种运行模式 用户模式用户模式(usrusr):): A
7、RMARM处理器处理器正常的程序执行正常的程序执行状态状态 快速中断模式快速中断模式(fiqfiq):): 用于高速数据传输或通道处理用于高速数据传输或通道处理 外部中断模式外部中断模式(irqirq):): 用于通用的中断处理用于通用的中断处理 管理模式管理模式(svcsvc):): 操作系统使用的保护模式操作系统使用的保护模式 数据访问中止模式数据访问中止模式( (abtabt) ): 访问存储器失败访问存储器失败,当数据或,当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护。指令预取中止时进入该模式,可用于虚拟存储及存储保护。 系统模式系统模式(syssys):): 运行具有特权
8、的操作系统任务。运行具有特权的操作系统任务。 未定义指令中止模式未定义指令中止模式(undund):当未定义的指令执行时):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。进入该模式,可用于支持硬件协处理器的软件仿真。 ARMARM微处理器的微处理器的运行模式可以通过软件改变运行模式可以通过软件改变,也可以通过,也可以通过外外部中断或异常处理改变部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在用大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的户模式下时,某些被保护的系统资源是不能被访问的10ARM的运行模
9、式:的运行模式:if u, as u11异常异常exceptionexception异常指正常执行的程序流因故被暂时中止;异常指正常执行的程序流因故被暂时中止;ARM支持支持7种异常类型、种异常类型、5种处理器异常工作模式种处理器异常工作模式若同时发生多个异常,将按优先级顺序处理;若同时发生多个异常,将按优先级顺序处理;异常类型对应异常模式优先级复位Supervisor1(最高优先级)数据中止Abort2FIQFIQ3IRQIRQ4指令预取中止Abort5未定义指令Undefined6SWISupervisor7(最低优先级)优先级降低12异常(异常(exception)的进入和返回)的进入和
10、返回异常向量(表)向量地址异常类型进入时模式进入时I状态 进入时F状态0 x0000 0000复位管理禁止禁止0 x0000 0004未定义指令未定义IF0 x0000 0008软件中断(SWI)管理禁止F0 x0000 000C 预取中止(指令)中止IF0 x0000 0010数据中止中止IF0 x0000 0014保留保留0 x0000 0018IRQ中断禁止F0 x0000 001CFIQ快中断禁止禁止注:表中的I和F表示不对该位有影响异常发生时处理器将PC值强制设置为对应的异常向量; 异常向量处通常只存放一条跳转指令,指向真正的异常处理程序;异常向量表的后面一般紧跟着存放FIQ的异常处
11、理程序,这样可以减少一次跳转,提高FIQ的响应速度;14异常响应过程异常响应过程在在LRLR中保存返回地址信息;中保存返回地址信息; ARMARM状态下将当前指令地址加状态下将当前指令地址加4 4或加或加8 8复制到复制到LRLR ThumbThumb状态下将当前指令地址加状态下将当前指令地址加2 2、4 4或加或加8 8 复制到复制到LRLR将将CPSRCPSR复制到适当的复制到适当的SPSRSPSR中;中;将将CPSRCPSR模式位强制设置为与异常类型相对应的模式位强制设置为与异常类型相对应的值;值;强制强制PCPC从相关的异常向量处取指;从相关的异常向量处取指;注注1 1:中断异常时置位
12、中断禁止标志可以防止不受控制的异常嵌套:中断异常时置位中断禁止标志可以防止不受控制的异常嵌套 2 2:异常总是在:异常总是在ARMARM状态中处理。若处理器处于状态中处理。若处理器处于ThumbThumb状态时发生状态时发生异常,则异常向量地址装入异常,则异常向量地址装入PCPC时会自动切换到时会自动切换到ARMARM状态。状态。取决于异常类型取决于异常类型异常返回(退出)过程异常返回(退出)过程将LR( R14 )中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;将SPSR的值复制回CPSR;清零在入口置位的中断禁止标志;注:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的
13、值。异常异常exception异常指正常执行的程序流因故被暂时中止;ARM支持7种异常类型、5种处理器异常工作模式若同时发生多个异常,将按优先级顺序处理;异常类型对应异常模式优先级复位Supervisor1(最高优先级)数据中止Abort2FIQFIQ3IRQIRQ4指令预取中止Abort5未定义指令Undefined6SWISupervisor7(最低优先级)优先级降低17复位异常复位异常Reset 微处理器刚开始上电,其实就算进入了复位状态。后面执行时,如果发生了不可恢复的异常,也会强制进入复位异常,复位操作包括:p1)停止当前指令操作,PC写入:0 x0000_0000。p2) CPSR
14、寄存器做出如下改变 (CPSR7:0 = 8b110_10011): 禁止IRQ中断, 禁止FIQ中断; 进入ARM指令执行状态; 系统进入管理模式。18未定义指令异常(未定义指令异常(UND)当ARM处理器在取到一条指令时,发现该指令不是一条有效指令,或者识别是一条协处理器指令,但是没有应答时,进入的异常模式将进行如下操作:p1)停止当前指令操作,停止当前指令操作,PC写入:写入:Ox0000_0004。p2)下一条指令的存放地址写入下一条指令的存放地址写入R14_und。p3) CPSR写入SPSR_und。p4) CPSR寄存器做出如下改变(CPSR7:0=8b1x0_11011)禁止I
15、RQ中断;进入ARM指令执行状态;系统进入未定义指令异常模式(UND)。由于这条指令属于未定义指令,因此这条指令并不执行。当前状态寄存器CPSR会自动保存入SPSR_und,下一条指令地址保存入R14_und。未定义指令异常处理完毕后,它可以把PSR_und送回CPSR,可以把R14_und写回PC,这样就可跳过未定义指令继续执行。如果未定义指令已经被排除,可以用R14_und-4替代R14 und写回PC,则可从未定义指令处执行程序。软件中断异常软件中断异常(SWI)软件中断异常是由微处理器执行SWI指令时触发的。软件中断异常和未定义指令异常一样,不是由外界的中断引起的,而是由指令执行引起的
16、。未定义指令异常是由非法指令引起的,软件中断异常是由合法的“中断”指令引起的。SWI指令将进行如下操作:p 1)对对PC写入写入Ox0000 0008。p 2)下一条指令的地址写入下一条指令的地址写入R14_svc。p 3) CPSR写入SPSR_svc。p 4) CPSR寄存器做出如下改变 (CPSR7:0 = 8blx0_10011): 禁止IRQ中断; 进入ARM指令执行状态; 系统进入管理模式(SVC)。在软件中断后,可以轻松返回,它只需把SPSR_svc写回CPSR,把R14_svc写回PC,则可以继续从SWI的下一条指令开始执行。20取指令异常(取指令异常(abort)取指令异常是
17、在向指令池取指令时,指令池发出该次取指令操作异常的信号,而微处理器会进入的一种中断异常。如果触发取指令异常,则微处理器会进行如下操作:p 1)当前指令发生异常,并不执行,当前指令发生异常,并不执行,PC写入写入0 x0000_000C。p 2)下一条指令地址写入下一条指令地址写入R14_abt。p 3) CPSR写入SPSR_abt。p 4) CPSR寄存器做出如下改变(CPSR7:0 =8blx0_10111): 禁止IRQ中断; 进入ARM指令执行状态; 系统进入数据访问异常模式(ABT)。l 取指令异常引导微处理器进入排除异常的中断服务程序。在排除异常完毕后,可能会再次取该条指令,则可以
18、通过把R14_abt 4写入PC来实现。21数据处理异常(数据处理异常(abort)向数据池进行数据处理操作时,数据池也会发出异常信号,这时的异常称为数据处理异常。在发生数据处理异常时,数据处理指令已经执行完毕,它在发生数据处理异常时,数据处理指令已经执行完毕,它的的下一条指令正在执行,当然由于发生了异常,它的下一条指令必须放弃执下一条指令正在执行,当然由于发生了异常,它的下一条指令必须放弃执行行。发生数据处理异常时,微处理器会进行如下操作:p 1)下一条指令放弃执行,PC写入0 x0000_0010。p 2)下一条指令的下一条的地址,也就是数据异常对应执行指令的地址+8,写入R14_abt。
19、p 3) CPSR写入SPSR_abt。 ;p 4) CPSR寄存器做出如下改变(CPSR7:0 = 8blx0_10111): 禁止IRQ中断; 进入ARM指令执行状态; 系统进入数据访问异常模式(ABT)。n 数据处理异常发生时,正处于下一条指令执行的时刻,因此,对处理现数据处理异常发生时,正处于下一条指令执行的时刻,因此,对处理现场的保留都是基于下一条指令的。如果我们需薯重新执行发生数据处理场的保留都是基于下一条指令的。如果我们需薯重新执行发生数据处理异常的指令,则应该对异常的指令,则应该对R14_abt减去减去8,这才是发生数据处理异常的指令。,这才是发生数据处理异常的指令。22IRQ
20、中断异常中断异常IRQ中断由外部中断输入引起,是由输入端口irq为一个周期的高电平触发的,当IRQ中断生效,则会进行下列操作:p 1)当前指令放弃执行,当前指令放弃执行,PC写入写入Ox0000_0018。p 2)下一条指令的地址写入下一条指令的地址写入R14_irq。p 3) CPSRTs入SPSR_irq。p 4) CPSR寄存器做出如下改变(CPSR7:0 = 8blx0_10010): 禁止IRQ中断; 进入ARM指令执行状态; 系统进入外部中断模式(IRQ)。n 一旦进入IRQ模式,首先是对cpsr_i置位,避免新的IRQ中断对其影响,形成IRQ中断嵌套,但是并能不禁止FIQ中断,因
21、为FIQ中断具有较高的优先级。需要返回现场时,将执行发生需要返回现场时,将执行发生IRQ中断放弃执行的指令,则可以执行中断放弃执行的指令,则可以执行指令指令SUBS PC R14,#4。它不仅对PC写入放弃执行的那条指令的地址,而且同时还会把SPSR_irq写回CPSR。23FIQ中断异常中断异常FIQ中断异常和IRQ中断类似,都是由外部输入端口触发的。也可由cpsr_f来禁止它生效。在cpsr_f为低电平,外部生成FIQ中断时,会进行下列操作:p 1)当前指令放弃执行,当前指令放弃执行,PC写入写入0 x0000_00IC。p 2)下一条指令的地址写入下一条指令的地址写入R14_fiq。p
22、3) CPSRs入SPSR_fiq。p 4) CPSR寄存器做出如下改变(CPSR7:0 = 8b110_10001): 禁止IRQ中断;禁止FIQ中断;进入ARM指令执行状态; 系统进入快速中断模式(FIQ)。与IRQ中断异常不同,FIQ中断异常会禁用cpsr_f,这样会避免进入FIQ中断嵌套。FIQ中断有专有的寄存器R8-R14。因此进入FIQ中断,对于R8-R14来说,不用保存然后导入这个过程。把FIQ中断的入口放在所有中断的入口的最后,可以不用在0 x0000_00IC中放置跳转指令令,而是可以直接放置执行程序,从0 x0000_00IC继续执行下去。这样,FIQ中断执行可以发挥更高的
23、效率。24寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通用寄通用寄存器和存器和程序计程序计数器数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_
24、irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄状态寄存器存器CPSRCPSRSPSR无无SPSR_svc SPSR_abtSPSR_und SPSR_irq SPSR_fiq无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCP
25、SRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断FIQ中断有专用的寄存器中断有专用的寄存器R8-R1425异常excepti
26、on的操作异常类型操作复位停止当前指令操作,PC写入:0 x0000_0000。数据中止下一条指令放弃执行,PC写入0 x0000_0010。下一条指令的下一条的地址,也就是数据异常对应执行指令的地址+8,写入R14_abt。FIQ当前指令放弃执行,PC写入x0000_00IC。下一条指令的地址写入R14_fiq。IRQ当前指令放弃执行,PC写入x0000_0018。下一条指令的地址写入R14_irq。指令预取中止当前指令发生异常,并不执行,PC写入0 x0000_000C。下一条指令地址写入R14_abt。未定义指令停止当前指令操作,PC写入:Ox0000_0004。下一条指令的存放地址写入
27、R14_und。SWI对PC写入Ox0000 0008,下一条指令的地址写入R14_svc。27/106Lable程序程序1程序程序2R14R14(LR)寄存器与子程序调用BL Lable地址地址A?MOV PC,LRR14(地址地址A)Lable?1. 1.程序程序1 1执行过程中执行过程中调用程序调用程序2 2;2.2.程序跳转至标号程序跳转至标号LableLable,执行程序,执行程序2 2。3.3.同时硬件将同时硬件将“BL BL LableLable” 的下一条指令的下一条指令所在地址存入所在地址存入R14R14(LRLR););3.3.程序程序2 2执行完后,将执行完后,将R14R
28、14 (LRLR)寄存器的内容放入)寄存器的内容放入PCPC,返回程序,返回程序1 1继续执行;继续执行;28/1061. 1.异常返回地址的处理与子程序调用类似,都是由硬件异常返回地址的处理与子程序调用类似,都是由硬件自动完成。区别在于有些异常有一个小自动完成。区别在于有些异常有一个小常量偏移常量偏移。2.2.当发生异常嵌套时,这些异常之间可能会发生冲突。当发生异常嵌套时,这些异常之间可能会发生冲突。如用户模式下发生如用户模式下发生IRQIRQ中断嵌套中断嵌套时,时,R14_irqR14_irq中低级中中低级中断返回主程序的地址将被高级中断的返回地址所覆盖;断返回主程序的地址将被高级中断的返
29、回地址所覆盖;R14(LR)寄存器与异常处理R14R14_irq用户模式下的程序用户模式下的程序0IRQ模式下的程序模式下的程序1指令指令m+1.指令指令m+n指令指令m地址地址A地址地址A未被破坏未被破坏IRQ模式下的程序模式下的程序2return指令指令j+1.指令指令j+k指令指令j地址地址B地址地址BR14_irq 被破坏被破坏returnreturn1. 1.执行用户模式执行用户模式下的程序下的程序0 0;2.2.发生发生IRQIRQ中断中断后,硬件将带后,硬件将带偏移的返回地偏移的返回地址存入址存入IRQIRQ模式模式下的下的R14_irqR14_irq寄寄存器,存器,用户模用户模
30、式下的式下的R14R14没有没有被破坏被破坏;3. IRQ3. IRQ服务程服务程序序1 1执行完后,执行完后,可将可将R14_irqR14_irq寄寄存器的内容减存器的内容减去偏移量后存去偏移量后存入入PCPC,返回之,返回之前被中断的程前被中断的程序;序;4. 4. 如果在如果在IRQIRQ处理程序中打处理程序中打开开IRQIRQ中断,并中断,并且再次发生且再次发生IRQIRQ中断;中断;5. 5. 硬件将返回硬件将返回地址保存在地址保存在R14_irqR14_irq寄存器寄存器中,中,原来保存原来保存的返回地址信的返回地址信息将被覆盖,息将被覆盖,造成错误造成错误;6. 6. 在程序在程
31、序2 2返回返回到程序到程序1 1,然后,然后在返回到用户在返回到用户模式下被中断模式下被中断的程序时,发的程序时,发生错误,将不生错误,将不能正确返回;能正确返回; 解决办法是确解决办法是确保保R14R14的对应版本的对应版本在发生中断嵌套在发生中断嵌套时不再保存任何时不再保存任何有意义的值(将有意义的值(将R14R14入栈),或者入栈),或者切换到其它处理切换到其它处理器模式下。器模式下。R15(PC)寄存器的读操作)寄存器的读操作l ARM指令以字为单位,因此R15的最低两位总是为0;l R15的值是处理器正在取指的指令地址。因为有流水线,它与当前正在执行指令的地址之间存在一个偏移(对于
32、确定的ARM芯片该值为常量)。l 当使用指令STR/STM保存R15时,不同芯片中(可能是三级流水或五级流水)PC偏移量可能是8或12,因此需事先计算出该芯片的PC偏移量。30/1061. 1. 写入写入R15 R15 的值被当作指令地址,程序将从这个的值被当作指令地址,程序将从这个地址处继续执行(相当于执行地址处继续执行(相当于执行无条件跳转无条件跳转););2.2. 由于由于ARMARM指令以字为边界,因此写入指令以字为边界,因此写入R15R15的值的值最低两位通常为最低两位通常为0b000b00。具体的规则取决于内核。具体的规则取决于内核结构的版本:结构的版本: 在在V3V3及以下版本中
33、,写入及以下版本中,写入R15R15的值的最低两位的值的最低两位被忽略,因此跳转地址由指令的实际目标地址被忽略,因此跳转地址由指令的实际目标地址(写入(写入R15R15的值)和的值)和0 xFFFFFFFC0 xFFFFFFFC相与得到;相与得到; 在在V4V4及以上版本中,写入及以上版本中,写入R15R15的值的最低两位的值的最低两位如果不为如果不为0 0,结果将不可预测。,结果将不可预测。R15(PC)寄存器的写操作31/106异常响应过程异常响应过程在在LRLR中保存返回地址信息;中保存返回地址信息; ARMARM状态下将当前指令地址加状态下将当前指令地址加4 4或加或加8 8复制到复制
34、到LRLR ThumbThumb状态下将当前指令地址加状态下将当前指令地址加2 2、4 4或加或加8 8 复制到复制到LRLR将将CPSRCPSR复制到适当的复制到适当的SPSRSPSR中;中;将将CPSRCPSR模式位模式位强制设置为与异常类型相对应强制设置为与异常类型相对应的值;的值;强制强制PCPC从相关的从相关的异常向量异常向量处取指;处取指;注注1 1:中断异常时置位:中断异常时置位中断禁止中断禁止标志可以防止不受控制的异常嵌套标志可以防止不受控制的异常嵌套 2 2:异常总是在:异常总是在ARMARM状态状态中处理。若处理器处于中处理。若处理器处于ThumbThumb状态时状态时发生
35、异常,则异常向量地址装入发生异常,则异常向量地址装入PCPC时会自动切换到时会自动切换到ARMARM状态状态。取决于异常类型取决于异常类型32/106程序AIRQ服务程序系统模式IRQ模式程序寄存器组异常响应(进入)过程异常响应(进入)过程1. 1. 程序运行用户程序,假定当前处程序运行用户程序,假定当前处理器状态为理器状态为ThumbThumb状态、允许状态、允许IRQIRQ中断;中断;2. 2. 用户程序运行时发生用户程序运行时发生IRQIRQ中断,中断,硬件硬件完成以下动作:完成以下动作:LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .? ? ? ?
36、MODTFI. . .N Z C V置位置位I I位(禁止位(禁止IRQIRQ中断)中断)清零清零T T位(进入位(进入ARMARM状态)状态) 设置设置MODMOD位,切换处理器模位,切换处理器模式至式至IRQIRQ模式模式将返回地址信息存入将返回地址信息存入IRQIRQ模式的模式的LRLR寄存器寄存器将将CPSRCPSR寄存器内容存入寄存器内容存入IRQIRQ模式的模式的SPSRSPSR寄存器寄存器将跳转地址存入将跳转地址存入PCPC,实现跳转,实现跳转IRQ0?1. . .? ? ? ?BackAddrJumpAddrJumpSYS1?0. . .?“?”表示对该位不关心表示对该位不关心
37、33/106异常返回(退出)过程异常返回(退出)过程 将将LRLR( R14 R14 )中的值减去偏移量后)中的值减去偏移量后存入存入PCPC,偏移量根据异常的类型而,偏移量根据异常的类型而有所不同;有所不同; 将将SPSRSPSR的值复制回的值复制回CPSRCPSR; 清零在入口置位的清零在入口置位的中断禁止标志中断禁止标志;注:恢复注:恢复CPSRCPSR的动作会将的动作会将T T、F F和和I I位自动恢复位自动恢复为异常发生前的值。为异常发生前的值。34/106在异常处理结束后,在异常处理结束后,异常处理程序异常处理程序完成以完成以下动作:下动作:程序AIRQ服务程序系统模式IRQ模式程序寄存器组异常返回(退出)过程异常返回(退出)过程LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .? ? ? ?MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑与土木工程实习周志20篇
- 2022“返家乡”大学生寒假社会实践志愿服务活动心得体会8篇
- 雪景作文三年级300字5篇
- 大学生社会实践心得体会15篇
- 2022壮族三月三观后感作文五篇
- 安全生产承诺书15篇
- 农业区域规划
- 学校个人心理健康工作计划
- 2021初中教研个人工作总结
- 营销方案策划公司锦集九篇
- 广东省佛山市南海区2023-2024学年九年级上学期期末考试模拟卷
- 花卉学智慧树知到期末考试答案章节答案2024年浙江农林大学暨阳学院
- 2023版学前教育专业人才需求调研报告及人培方案(普招)
- 2024年研究生考试《中医综合》备考真题库(含答案)
- 幼儿园保育实践报告
- 外国人的汉语之谜怎么破智慧树知到期末考试答案章节答案2024年鲁东大学
- 保险客服正规劳动合同范本
- 变电站运维培训
- 劳动争议仲裁申请书范本
- 学习解读2024年新制定的学位法课件
- 四川省高等教育自学考试自考毕业生登记表001汇编
评论
0/150
提交评论