2 1-arm7体系结构-内部寄存器_第1页
2 1-arm7体系结构-内部寄存器_第2页
2 1-arm7体系结构-内部寄存器_第3页
2 1-arm7体系结构-内部寄存器_第4页
2 1-arm7体系结构-内部寄存器_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、2.1 ARM7(ARM7TDMI)处理器内核体系结构1. ARM7内核体系结构2. 三级流水线3. 处理器工作模式4. 处理器状态5. ARM7处理器工作模式6. ARM7内部寄存器7. ARM7运行状态标志寄存器CPSR1.ARM7内核体系结构ARM处理器为精简指令集(RISC)计算机中央处理器(CPU)。RISC: RISC CPU结构简单,使得ARM内核非常小, 功耗非常低,所以几乎垄断了类似手机的嵌入式应用领域.CISC: PC兼容机中的x86系列CPU是复杂指令集(CISC)计算机CPU,指令复杂,硬件结构复杂,功耗高.“ARM核”并不是芯片;ARM核与其它部件如RAM、ROM、片

2、内外设组合在一起才能构成现实的“片上计算机系统”(SOC)芯片。MemoryMemoryMicro- processorMixed Signal/AnalogStandard CellsMemoryI/O Cells高性能CPU/MCU(ARMMIPS/PowerPC/8051等) IP(知识库)是SoC设计的一个元件ARM7SOC芯片片上计算机系统总线结构ARM处理器内核特点:大的、统一的寄存器文件;只有装载/保存指令可以对存储器操作,其他指令能不直接对存储器进行操作; 简单的寻址方式;统一固定长度的指令域,简化了指令的译码。每条数据处理指令都可以对算术逻辑单元和移位器进行控制;地址自动增加

3、和减少寻址模式,优化程序循环;多寄存器装载和存储指令实现最大数据吞吐量;所有指令可带条件执行, 代码执行效率高。ARM7处理器是ARM通用32位微处理器的成员之一, 垄断了早期数字移动电话终端70%市场份额,其出色性能表现在: 高的指令吞吐量; 出色的实时中断响应; 小的、高性价比的处理器宏单元。ARM7TDMInM4:0 nMREQ SEQ LOCKA31:0MCLKnWAIT时钟ISYNC BUSENBIGENDD31:0存储器接口配置DIN31:0 DOUT31:0nENOUTnRWnIRQnFIQ中断MAS1:0nRESETnTRANS ABORTnOPC nCPI CPACPBAPE

4、存储器管理总线控制DBE协处理器接口VDDVSS电源内核信号ARM7TDMI内核控制信号 ARM7TDMI地址总线ARM7TDMI内核数据总线TAP控制器JTAG 接口方框图Embedded ICE逻辑BUSSplitterARM7TDMIABEA31:0IncremeP CBIGEND MCLK nWAITnRW MAS1:0ISYNC nIRQ nFIQ nRESET ABORT nTRANSnMREQ SEQ LOCK nM4:0nOPC nCPI CPA CPBP32 位 ALUDBE内核D31:0写数据寄存器读数据寄存器解码站指令解压缩寄存器 BankABu sBBu s桶移位器乘法

5、器指令解码及控制 逻辑A L UBu s地址寄存器地址自增器ntereC UpdatARM7TDMIJTAG 和非 AMBA 信号AMBA总线接口 带Cache的ARM7TDMIARM720T同ARM710T,但支持WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲ARM710T 8K 统一的 cache 完整的内存管理单元(MMU),支持虚拟地址和存储器保护 写缓冲地址地址数据ARM7xxTCacheAMBA接口写缓冲数据写数据读MMU控制逻辑CP15ARM7TDMI内核ARM7 CPU核 内部结构A31:0控制总线DBG输入/出nRESETnIRQ/nFIQ nRD

6、nWR时钟CLK32位ALUDO31:0DI31:0D31:0写数据寄存器指令管线读数据寄存器Thumb指令译码器寄存器组31*32位寄存器(6个状态寄存器)指令译码和控制逻辑扫描调试控制地址寄存器桶形移位器乘法器地址增加器主存储器及片上IO外设2.三级流水线ARM7处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,ARM7TDMI的流水线分3级:取指译码执行ARM核能提供: 0.9MIPS/MHz的指令执行速度,至少是复杂指令集CPU的3倍。正常操作过程中,任一时刻有下面三个工位在工作:(1) 执行一条指令;(2) 对下一条指令进行译码;(3)

7、 将第三条指令从存储器中取出。三描述线工位设当前时刻,程序计数器PC=8008(PC)= 8008C指令取指从存储器中取出C指令(PC-4)= 8004B指令译码对B指令进行译码(PC-8) = 8000A指令执行执行A指令 CLK-1 CLK CLK+1 CLK+2 CLK+3 8000 指令A 800 8008 指令C取指译码执行 800c 指令D 8010 指令EARM 32位指令 三级流水线示意图8014指令存储器指令F取指译码取指执行译码取指4 指令B取指译码执行执行译码执行时钟节拍ARM7TDMI指令流水线 为增加处理器指令流的速度,ARM7 系列使用3级流水线。允许多个操作同时处

8、理,而非顺序执行。PC指向正被取指的指令,而非正在执行的指令。ARMThumb从存储器中读取指令PCPCPC - 42PC-解码指令中用到的寄存器寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank )PC - 8PC - 4ExecuteDecodeFetch。ARM7TDMI指令流水线周期123456操作ADD SUB MOV AND ORR EOR CMPRSB 最佳流水线该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1FetchDecodeExecuteFetchDecodeExecuteFetchDecodeEx

9、ecuteFetchDecodeExecute FetchDecodeExecute FetchDecodeExecuteFetchDecodeFetch3.存储器访问1)ARM7TDMI处理器使用了冯诺依曼结构,指令和数据共用一条32位总线。计算机结构说明:“冯诺依曼” 结构:把代码作为一种特殊的数据来操作, 指令总线和数据总线及其存储区域是统一的;“哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。 地址 冯诺依曼结构数据CPU PC主存储器MOVr8,#8地址数据存储器数据CPU PC地址程序存储器MOV指令r8,#8哈佛结构2)只有“装载LDR、存储STR、交换SWAP”三种指令

10、可以对存储器中的数据进行访问。3)支持3种数据存储格式:0x8008*字节(半字(8位16位32位)字(word)intunigned int0x8004字(半字(half word)short intunsigned short int0x8002例:字节(byte)charunsigned char0x8000LDRSTRH SWAPBR0,R1;R2,R1;R0,R1;1121234WB3WB2WB1WB0HB1HB0BYTE(字节)4.处理器状态1) ARM7TDMI处理器结构包含两套指令集:一套32位ARM指令集一套16位Thumb指令集2) ARM7TDMI处理器有两种操作状态:A

11、RM状态:32位,执行字(32b)方式ARM指令Thumb状态:16位,执行半字(16b)方式Thumb指令3) 两种操作状态可通过“BX” 指令相互切换。使用”BX”指令 切换 工作状态的例程:注意:两个状态之间的切换不影响处理器的 工作模式和 寄存器内容地址最低位为0,表示切换到ARM状态地址最低位为1,表示切换到Thumb状态跳转地址标号;从Arm状态切换到Thumb状态CODE32L32 LDRR0,=L16+1 BXR0;从Thumb状态切换到ARM状态CODE16L16 LDRR0,=L32BXR0启动调试器演示状态切换代码程序5.ARM7处理器工作模式ARM体系结构支持7种处理器

12、模式:系统模式,用户模式管理模式、快中断模式、中断模式中止模式未定义模式7中工作模式可以更好的支持操作系统,提高工作效率;ARM7TDMI完全支持这七种模式。处理器模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)与用户模式类似,但具有可以直接切换到其它模式等快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿

13、真未定义指令异常响应时进入此模式用理(svc)操断(irq)用中断(fiq)通支统(sys)用模式处理器模式说明备注(usr)用户正常程序工作模式不能直接切换到其它模式与用户模式类似,但具有可于支持操作系统的系统(sys)系任务1.除等用户模式外式;(fiq)快中断持高速2.数AR据M传内输部及寄存FI器Q异和常一响些应时片进内入外此设模在式快(irq)中断道硬处理件设计上(可选)只允许模式下访(svc)管理IRQ异常响应时进入此模式中于问通用;中断处理3.作系模式可以系自统由复的位和切软换件到中其断他响应各时进入此模式(abt)中止管种统处保理器代模码式;护4.用户模式不能直接切换到其他模式

14、,未定义(und)于支持虚拟内存和/中止(abt)进在入A模DM式I没。有大用处或存可储器通保过护SWI指令支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式(und)未定义系统(sys)用户(usr)用户和系统模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式用于支1.持这操两作系种统模的是任程序与用正户常模式工类作似,模但式具有,可都以直不接切(sys)系统务能等 由异常进入,使 用换完到全其它相模同式等存器组。2.系统模式是模式;支持高3速.用数据户传模输及式通是道处受限模式;快中断(fiq)FIQ异常响应时进入此模式理4.操作系统在系统模式下访问用户模式(

15、irq)用的于通寄用存中断器处比理 较方便 ;IRQ异常响应时进入此模式中断5.操作系统的系任统务复位可和以软件使中用断响系应统时进模入此模(svc)管理操作系统保护代码式访问一些受控的资式源;用于支持虚拟内存和/或存储器保护中止(abt)在ARM7TDMI没有大用处支持硬件协处理器的软件仿真未定义(und)未定义指令异常响应时进入此模式系统(sys)用户(usr)用户和系统模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的任务等与用户模式类似,但具有可以直接切换到其它模式等快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此

16、模式中断(irq)用于通这用中五断种处理工作模式称I常响应模时式进入,此即模式管理(svc)正常程序流程断后操作式系,统保所护有代码异常模式的一种工作模都系是统软模件式中断。响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式6. 内部寄存器在ARM7TDMI处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。右图是在调试软件AXD1.2上打开的(Views)寄存器窗口。ARM状态各模式下的寄存器寄存器类别寄存器在汇编中的名称各模式下实

17、际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRS

18、PSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqSPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0ARM状态各模式下的寄存器各模式下实际访问的寄存器寄存器类别寄存器在汇编中的名称用户系统管理中止未定义中断快中断R0(a1)R0R1(a2)R

19、1R2R2(a3)R3R3(a4)R4R4(v1)R5R5(v2)共37个R寄6(v3存)器,分为两大类:R6通用寄R7存器3和1个R通7(v用4)32位寄存器;程序计R8R8_fiqR8(v5)数器R9R9_fiq6个R状9(S态B,v寄6)存器。R10R10_fiqR10(SL,v7)R11R11_fiqR11(FP,v8)R12R12_fiqR12(IP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR13(SP)R14R14_svcR14_abtR14_undR14_irqR14_fiqR14(LR)R15R15(PC)CPSRCPSR状态寄存器SPSR_

20、abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqSPSR无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4

21、R3R2R1R0未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断ARM状态各模式下可以访问的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fi

22、qR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR1

23、0R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0一般的通用寄存器各模式下实际访问的寄存器寄存器类别寄存器在汇编中的名称用户系统管理中止未定义中断快中断R0R0(a1)R1R1(a2)R2R2(a3)寄存器R3(Ra4)0R13:R31.是R保4(v1存)数据或地址值的R4R5完全通R5(用v2) 的寄存器;R6通用寄2.通R6用(v3的)寄存器,不会被R7R7(v4)存器和程序体计系结R8(构v5) 作为特殊用途,R8R8_fiq数器3.可R9(以SB,v作6)为指令的源操作R9R9_fiq或目R1的0(S操L,v7作)数。R10R10_fiqR11R11_fiqR11(FP

24、,v8)R12R12_fiqR12(IP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR13(SP)R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15CPSRCPSR状态寄存器SPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0一般的通用

25、寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断存器R0通用存寄器空存器和程序计数器R0(a1)R0R1(a2)R11R.2R(a03)R7:未分组的寄R2;R3(a4)R32R.4对(v1)于任何处理器模式,R4RR75使(v2)用同一32位物理寄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_irqR13_fiq

26、R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8一般的通用寄存器各模式下实际访问的寄存器寄存器类别寄存器在汇编中的名称用户系统管理中止未定义中断快中断R0(a1)R0R1(a2)

27、R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6通用寄存寄器和存器RR7(8v4)R14为分组寄R7程序计R8R8_fiqR8(v5)存器。不同处理器模式对应数器R9R9_fiqR9(SB,v6)不同物理寄存器空间。R10R10_fiqR10(SL,v7)R11R11_fiqR11(FP,v8)R12R12_fiqR12(IP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR13(SP)R14R14_svcR14_abtR14_undR14_irqR14_fiqR14(LR)R15(PC)R15CPSRCPSR状态寄存器SPSR

28、无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8一般的通用寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户寄存器系统R8管R理12有两中止个分未组定的义物理中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)寄存器。R1R2(a3)一个用于除FIQ模式R2之外的所有寄R3(a4)存器模式,另一个用于R3 FIQ模式。R4(v1)发生FIQ中断后,可R4以加速FIQ的R5(v2)处理速度。R5R6(v3)R6R7(v4)R7R8(v5)R8R8_f

29、iqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abt

30、R13_svcR13一般的通用寄存器各模式下实际访问的寄存器寄存器类别寄存器在汇编中的名称用户系统管理中止未定义中断快中断R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6通用寄存器和程序计数器R7(v4)寄存器R13、R1R47 分别有6个分组R8(v5)R8的物理寄存器R。9R8_fiqR9(SB,v6)R9_fiq一个用于用R户10 和系统模式,其余R10(SL,v7)R10_fiq5个分别用于5R种11 异常模式。R11(FP,v8)R11_fiqR12(IP)R12R12_fiqR13R13_svcR13_abtR13_u

31、ndR13_irqR13_fiqR13(SP)R14R14_svcR14_abtR14_undR14_irqR14_fiqR14(LR)R15(PC)R15CPSRCPSR状态寄存器SPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆栈指针寄存器R13(SP)惯上都这样使用;寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)1.寄存器R13常作R5 为堆栈指针SP;R6(v3)2.在ARM指令集R6当中,没

32、有以特殊方R7(v4)式使用R13的指令R或7其它功能,只是习R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)3.在ThumbR指10 令集中存在使用R13的R10_fiqR11(FP,v8)特殊指令。R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_

33、fiq链接寄存器R14(LR)各模式下实际访问的寄存器寄存器类别寄存器在汇编中的名称用户系统管理中止未定义中断快中断R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R14为链接寄存器(R4LR),在结构上有两R5(v2)R5个特殊功能:R6(v3)R6在每种模式下,R1R47版本用于保存子程序通用寄存器和程序计数器R7(v4)返回地址;R8(v5)R8R8_fiq当发生异常时,R9将R14对应的异常模式R版9_fiqR9(SB,v6)R10(SL,v7)常返回R1地0R10_fiq本设置址。R11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR

34、13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15CPSRCPSR状态寄存器SPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14R14寄存器与子程序调用操作流程1. 程序A执行过程中调用程序B;2. 程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14;3. 程序B执行最后,将R14寄存器的内容放入PC,返回程序A;程序A程序BLable地址AR14(地址

35、A)?MOVPC,LRBLLable?R14寄存器与异常发生异常发生时,程序要跳转至异常服务程序,对返回地址由硬件完成备份工作。不同中断异常压入地址偏移不尽相同, 地址要作适当修改, 才能返回到中断下一条指令。R14寄存器注意要点当发生异常嵌套时,这些异常之间可能会发生冲突。例:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。R14_irqR14寄存器注意要点用户模式下的程序IRQ模式下的程序A3. I

36、RQ服务程2.发生IRQ中断,序A执行完毕,硬件将某个地将R14_irq寄存址存入IRQ模式1器.执的行内用容户减模去式下的R14_irq寄下某的个程常序量;后存地址A存器,用户模入PC,返回之式下的R14没有前被中断的程被破坏;序;未被破坏地址AR14areturnAB.XR14_irq地址AreturnR14寄存器注意要点用户模式下的程序IRQ模式下的程序AIRQ模式下的程序B3. IRQ服务程256.发在硬生件程I序RQB返中返回断回,4序. A如执果行在完IR 毕Q,到硬地址件解保序将决A某存办,个在法然地是后确保R14将处理R1程4_序irq中寄打存R址在对1返存4应_回入版irqI

37、到本寄RQ用在存模户发器式生中断器开1.执I的R行Q内用中容户断减模,去式并中下模时式,的不原R下再1来被4保_保中存irq存断任寄何有意某下且再的次程发序生后;I存RQ地址A地址B的存值器程返(,序回将用地R1户,址4入模发将栈),或入中断PC,或返者回调之被式生切错覆下换误盖的到R,其1造将4它没成不处有理器模式前用被子中程断序的;程被错能正误;确坏;返回;序;未被破坏被破坏地址BR14areturnaAB.Xreturn的A嵌套B义的.者X下。程序计数器R15(PC)寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R

38、0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)寄存器R15为程序计R数7 器(PC),它指向R8(v5)正在取指的地址。R可8以认为它是一个通用R寄8_fiqR9(SB,v6)存器,但是对于它R的9使用有许多与指令相R关9_fiqR10(SL,v7)的限制或特殊情况R1。0如果R15使用的方式R超10_fiqR11(FP,v8)出了这些限制,那R1么1结果将是不可预测的R1。1_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R1

39、4_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq读R15的限制正常读取R15的值 = 处理器正在取指的地址即当前正在执行指令的地址加上8个字节(三级流水,超前两条ARM指令)。ARM指令是以字为单位,R15寄存器的最低两位总是为0。地址程序代码流水线状态8000LDRR0,PC正在执行8004?正在译码8008?正在取指1程序状态寄存器CPSR寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程

40、序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)寄存器CPSR为程序R状7态寄存器,在异常R8(v5)模式中,另外一个R寄8存器“程序状态保存R寄8_fiqR9(SB,v6)存器(SPSR)”可R9以被访问。每种异常都R有9_fiqR10(SL,v7)R1R10_fiqR11(FP,v8)自己的SPSR,在因R常而进入异常R1时1_fiqR12(IP)它保存CPSR的当前R12值,异常退出时可通过R12_fiqR13(SP)它恢R1复3CPSR。R13详_sv细c描R13述_ab参t看R133_u.n3d小R节13_。irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqThumb状态寄存器Thumb状态寄存器集是ARM状态集的子集程序员可以直接访问的寄存器为: 8个通用寄存器R0R7; 程序计数器(PC); 堆栈指针(SP); 链接寄存器(LR); 有条件访问程序状态寄存器( CPSR)。Thumb状态各模式下的寄存器注意:括号

温馨提示

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

评论

0/150

提交评论