




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2 2章章 ARMARM体系结构体系结构 本章主要介绍的内容:本章主要介绍的内容: ARMARM体系结构、寄存器结构、异常处理、体系结构、寄存器结构、异常处理、 中断、存储器结构、数据类型、工作模式和工中断、存储器结构、数据类型、工作模式和工 作状态。作状态。 重点内容:重点内容: 寄存器结构、异常处理、中断、存储器结寄存器结构、异常处理、中断、存储器结 构、数据类型、工作模式和工作状态。构、数据类型、工作模式和工作状态。 目的和要求:目的和要求: 了解了解ARMARM分类方法,掌握存储结构、寄存分类方法,掌握存储结构、寄存 器结构、处理器状态与模式及两种状态集。器结构、处理器状态与模式及
2、两种状态集。 2.1.1 ARM2.1.1 ARM体系结构的技术特征体系结构的技术特征 1.ARM1.ARM的体系结构采用了若干的体系结构采用了若干Berkeley RISCBerkeley RISC 处理器设计中的特征处理器设计中的特征 Load/storeLoad/store体系结构体系结构 固定的固定的3232位指令位指令 3 3地址指令格式地址指令格式 2.2.也放弃了其它若干也放弃了其它若干Berkeley RISCBerkeley RISC特征特征 寄存器窗口寄存器窗口 延迟转移延迟转移 所有的指令单周期执行所有的指令单周期执行 2.1 ARM2.1 ARM体系结构简介体系结构简介
3、 RISCRISC架构的架构的ARMARM微处理器特点:微处理器特点: (1 1)支持)支持ThumbThumb(1616位)位)/ARM/ARM(3232位)双指令集;位)双指令集; (2 2)指令执行采用)指令执行采用3 3级流水线级流水线/5/5级流水线技术;级流水线技术; (3 3)带有指令)带有指令cachecache和数据和数据cachecache,大量使用寄存器;,大量使用寄存器; (4 4)支持大端格式和小端格式两种方法存储字数据;)支持大端格式和小端格式两种方法存储字数据; (5 5)支持用户、快速中断、中断、管理、中止、系统)支持用户、快速中断、中断、管理、中止、系统 和未
4、定义这和未定义这7 7种处理器模式;种处理器模式; (6 6)使用)使用JTAGJTAG仿真调试仿真调试ARMARM体系结构芯片;体系结构芯片; (7 7)具有片上总线)具有片上总线AMBAAMBA(Advanced Microcontroller Advanced Microcontroller Bus ArchitectureBus Architecture)。)。AMBAAMBA定义了定义了3 3组总线:先进高性能组总线:先进高性能 总线总线AHBAHB、先进系统总线、先进系统总线ASBASB和先进外围总线和先进外围总线APBAPB。 2.1.1 ARM2.1.1 ARM体系结构的技术特
5、征体系结构的技术特征 2.1 ARM2.1 ARM体系结构简介体系结构简介 2.1.1 ARM2.1.1 ARM体系结构的技术特征体系结构的技术特征 2.1 ARM2.1 ARM体系结构简介体系结构简介 测试测试 接口接口 ARMARM CPUCPU SDRAMSDRAM ControlControl SRAMSRAM LCDLCD ControlControl 并行并行 接口接口 串行串行 接口接口 TimerTimerUARTUART 基于基于AMBAAMBA总线的典型系统总线的典型系统 桥桥 高性能高性能 总线总线 AHBAHB 外部外部 总线总线 APBAPB 2.1 ARM2.1 A
6、RM体系结构简介体系结构简介 写缓冲器写缓冲器 ARM7TDMIARM7TDMI核核 8KB Cache8KB Cache CPU CPU 单元单元 电源管理电源管理 AIN7:0AIN7:0 A/DA/D转换器转换器 看门狗定时器看门狗定时器 32768Hz32768Hz 实时时钟实时时钟RTCRTC TCLKTCLK 总线仲裁器总线仲裁器 ARM7TDMIARM7TDMI边界边界 扫描节拍控制器扫描节拍控制器 时钟产生器时钟产生器 (PLL)(PLL) JTAGJTAG 模拟量输入模拟量输入 EXTCLKEXTCLK 存储器存储器ROM/SRAMROM/SRAM DRAM/SDRAMDRA
7、M/SDRAM LCD DMALCD DMA 中断控制器中断控制器 ZDMA(2ZDMA(2路路) ) 系统总线桥系统总线桥 ;从从ARMARM状态切换到状态切换到ThumbThumb状态状态 LDRLDRR0,R0,=Lable+1=Lable+1 BX BXR0R0 ; ;从从ThumbThumb状态切换到状态切换到ARMARM状态状态 LDRLDRR0,R0,=Lable=Lable BX BXR0R0 注意:注意:(1 1)ARMARM和和ThumbThumb之间状态的切换不影响之间状态的切换不影响 处理器的模式或寄存器的内容。处理器的模式或寄存器的内容。 (2 2)ARMARM处理器
8、在开始执行代码时,只处理器在开始执行代码时,只 能处于能处于ARMARM状态。状态。 2.4.1 ARM2.4.1 ARM处理器的工作状态处理器的工作状态 1.1.处理器模式处理器模式 2 2.4.2.4.2 ARM ARM处理器工作模式处理器工作模式 处理器模式处理器模式说明说明备注备注 用户用户 (usrusr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (syssys) 用于支持操作系统用于支持操作系统 的特权任务等的特权任务等 与用户模式类似,但具有与用户模式类似,但具有 可以直接切换到其它模式可以直接切换到其它模式 等特权等特权 快中断(快
9、中断(fiqfiq) ) 支持高速数据传输支持高速数据传输 及通道处理及通道处理 FIQFIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irqirq)用于通用中断处理用于通用中断处理IRQIRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svcsvc)操作系统保护代码操作系统保护代码 系统复位和软件中断响应系统复位和软件中断响应 时进入此模式时进入此模式 中止中止 (abtabt) 用于支持虚拟内存用于支持虚拟内存 或存储器保护或存储器保护 在在ARM7TDMIARM7TDMI没有大用处没有大用处 未定义(未定义(undund) 支持硬件协处理器支持硬件协处理器 的软件仿
10、真的软件仿真 未定义指令异常响应时进未定义指令异常响应时进 入此模式入此模式 2.2.特权模式特权模式 2 2.4.2.4.2 ARM ARM处理器工作模式处理器工作模式 处理器模式处理器模式说明说明备注备注 用户用户 (usrusr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (syssys) 用于支持操作系统用于支持操作系统 的特权任务等的特权任务等 与用户模式类似,但具有与用户模式类似,但具有 可以直接切换到其它模式可以直接切换到其它模式 等特权等特权 快中断(快中断(fiqfiq) ) 支持高速数据传输支持高速数据传输 及通道处理及通道处理
11、FIQFIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irqirq)用于通用中断处理用于通用中断处理IRQIRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svcsvc)操作系统保护代码操作系统保护代码 系统复位和软件中断响应系统复位和软件中断响应 时进入此模式时进入此模式 中止中止 (abtabt) 用于支持虚拟内存用于支持虚拟内存 或存储器保护或存储器保护 在在ARM7TDMIARM7TDMI没有大用处没有大用处 未定义(未定义(undund) 支持硬件协处理器支持硬件协处理器 的软件仿真的软件仿真 未定义指令异常响应时进未定义指令异常响应时进 入此模式入此模式 除用
12、户模式外,其它模除用户模式外,其它模 式均为式均为特权模式特权模式。ARMARM内部寄内部寄 存器和一些片内外设在硬件存器和一些片内外设在硬件 设计上只允许(或者可选为设计上只允许(或者可选为 只允许)特权模式下访问。只允许)特权模式下访问。 此外,特权模式可以自由的此外,特权模式可以自由的 切换处理器模式,而用户模切换处理器模式,而用户模 式不能直接切换到别的模式。式不能直接切换到别的模式。 未定义(未定义(undund) 中止中止 (abtabt) 管理管理 (svcsvc) 中断中断 (irqirq) 快中断(快中断(fiqfiq) 系统系统 (syssys) 2 2.4.2.4.2 A
13、RM ARM处理器工作模式处理器工作模式 3.3.异常模式异常模式 处理器模式处理器模式说明说明备注备注 用户用户 (usrusr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (syssys) 用于支持操作系统用于支持操作系统 的特权任务等的特权任务等 与用户模式类似,但具有与用户模式类似,但具有 可以直接切换到其它模式可以直接切换到其它模式 等特权等特权 快中断(快中断(fiqfiq) ) 支持高速数据传输支持高速数据传输 及通道处理及通道处理 FIQFIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irqirq)用于通用中断处理用于通用
14、中断处理IRQIRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svcsvc)操作系统保护代码操作系统保护代码 系统复位和软件中断响应系统复位和软件中断响应 时进入此模式时进入此模式 中止中止 (abtabt) 用于支持虚拟内存用于支持虚拟内存 或存储器保护或存储器保护 在在ARM7TDMIARM7TDMI没有大用处没有大用处 未定义(未定义(undund) 支持硬件协处理器支持硬件协处理器 的软件仿真的软件仿真 未定义指令异常响应时进未定义指令异常响应时进 入此模式入此模式 这五种模式称为这五种模式称为异常模式异常模式。 它们除了可以通过程序切换进入它们除了可以通过程序切换进入 外
15、,也可以由特定的异常进入。外,也可以由特定的异常进入。 当特定的异常出现时,处理器进当特定的异常出现时,处理器进 入相应的模式。每种异常模式都入相应的模式。每种异常模式都 有一些独立的寄存器,以避免因有一些独立的寄存器,以避免因 异常退出时用户模式的状态不可异常退出时用户模式的状态不可 靠。靠。 未定义(未定义(undund) 中止中止 (abtabt) 管理管理 (svcsvc) 中断中断 (irqirq) 快中断(快中断(fiqfiq) 2 2.4.2.4.2 ARM ARM处理器工作模式处理器工作模式 4.4.用户和系统模式用户和系统模式 处理器模式处理器模式说明说明备注备注 用户用户
16、(usrusr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (syssys) 用于支持操作系统用于支持操作系统 的特权任务等的特权任务等 与用户模式类似,但具有与用户模式类似,但具有 可以直接切换到其它模式可以直接切换到其它模式 等特权等特权 快中断(快中断(fiqfiq) ) 支持高速数据传输支持高速数据传输 及通道处理及通道处理 FIQFIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irqirq)用于通用中断处理用于通用中断处理IRQIRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svcsvc)操作系统保护代码操作系统保护
17、代码 系统复位和软件中断响应系统复位和软件中断响应 时进入此模式时进入此模式 中止中止 (abtabt) 用于支持虚拟内存用于支持虚拟内存 或存储器保护或存储器保护 在在ARM7TDMIARM7TDMI没有大用处没有大用处 未定义(未定义(undund) 支持硬件协处理器支持硬件协处理器 的软件仿真的软件仿真 未定义指令异常响应时进未定义指令异常响应时进 入此模式入此模式 这两种模式都不能由异常进这两种模式都不能由异常进 入,而且它们使用完全相同的寄入,而且它们使用完全相同的寄 存器组。存器组。 系统模式是特权模式,不受系统模式是特权模式,不受 用户模式的限制。操作系统在该用户模式的限制。操作
18、系统在该 模式下访问用户模式的寄存器就模式下访问用户模式的寄存器就 比较方便,而且操作系统的一些比较方便,而且操作系统的一些 特权任务可以使用这个模式访问特权任务可以使用这个模式访问 一些受控的资源。一些受控的资源。 用户用户 (usrusr) 系统系统 (syssys) CPSRCPSR(当前程序状态寄存器)的低(当前程序状态寄存器)的低5 5位用于定义当前位用于定义当前 操作模式:操作模式: CPSR4:0CPSR4:0模式模式用途用途可访问的寄存器可访问的寄存器 1000010000用户用户 正常用户模式,程序正常执正常用户模式,程序正常执 行模式行模式 PCPC、R14R14R0R0、
19、CPSRCPSR 1000110001FIQFIQ 处理快速中断,支持高速数处理快速中断,支持高速数 据传送或通道处理据传送或通道处理 PCPC、R14_fiqR14_fiqR8_fiqR8_fiq、 R7R7R0R0、CPSRCPSR、SPSR_fiqSPSR_fiq 1001010010IRQIRQ处理普通中断处理普通中断 PCPC、R14_irqR14_irqR13_irqR13_irq、R12R12R0R0、 CPSRCPSR、SPSR_irqSPSR_irq 1001110011SVCSVC 操作系统保护模式,处理软操作系统保护模式,处理软 件中断(件中断(SWISWI) PCPC、
20、R14_svcR14_svcR13_svcR13_svc、R12R12R0R0、 CPSRCPSR、SPSR_svcSPSR_svc 1011110111中止中止 处理存储器故障、实现虚拟处理存储器故障、实现虚拟 存储器和存储器保护存储器和存储器保护 PCPC、R14_abtR14_abtR13_abtR13_abt、R12R12R0R0、 CPSRCPSR、SPSR_abtSPSR_abt 1101111011未定义未定义 处理未定义的指令陷阱,支处理未定义的指令陷阱,支 持硬件协处理器的软件仿真持硬件协处理器的软件仿真 PCPC、R14_undR14_undR13_undR13_und、R
21、12R12R0R0、 CPSRCPSR、SPSR_undSPSR_und 1111111111系统系统运行特权操作系统任务运行特权操作系统任务PCPC、R14R14R0R0、 CPSRCPSR 2 2.4.2.4.2 ARM ARM处理器工作模式处理器工作模式 异常向量异常向量 地址地址异常类型异常类型 进入时进入时 的模式的模式 进入时进入时I 的状态的状态 进入时进入时F 的状态的状态 异常中断含义异常中断含义 0 x0000 0000 复位复位管理管理禁止禁止禁止禁止 当处理器的复位引脚有效时,系统产生复位异常中断,当处理器的复位引脚有效时,系统产生复位异常中断, 程序跳转到复位异常中断
22、处理程序处执行。复位异常程序跳转到复位异常中断处理程序处执行。复位异常 中断通常用在下面几种情况下:中断通常用在下面几种情况下: 1、系统加电时、系统加电时 2、系统复位时、系统复位时 3、跳转到复位中断向量处执行,称为软复位、跳转到复位中断向量处执行,称为软复位 0 x0000 0004 未定义指令未定义指令未定义未定义IF 当当ARM处理器或系统中的协处理器认为当前指令未定处理器或系统中的协处理器认为当前指令未定 义时,产生未定义的指令异常中断。可通过该异常中义时,产生未定义的指令异常中断。可通过该异常中 断机制仿真浮点向量运算断机制仿真浮点向量运算 0 x0000 0008 软件中断软件
23、中断管理管理禁止禁止F 这是一个由用户定义的中断指令。可用于用户模式下这是一个由用户定义的中断指令。可用于用户模式下 的程序调用特权操作的程序调用特权操作 0 x0000 000C 中止(预取)中止(预取)中止中止IF 如果处理器预取的指令地址不存在,或者该地址不允如果处理器预取的指令地址不存在,或者该地址不允 许当前指令访问,当该被预取的指令执行时,处理器许当前指令访问,当该被预取的指令执行时,处理器 产生指令预取中止异常中断产生指令预取中止异常中断 0 x0000 0010 中止(数据)中止(数据)中止中止IF 如果数据访问指令的目标地址不存在,或者该地址不如果数据访问指令的目标地址不存在
24、,或者该地址不 允许当前指令访问,处理器产生数据访问中止异常中允许当前指令访问,处理器产生数据访问中止异常中 断断 0 x0000 0014 保留保留保留保留系统保留系统保留 0 x0000 0018 IRQ中断中断禁止禁止F 当处理器的外部中断请求引脚有效,而且当处理器的外部中断请求引脚有效,而且CPSR寄存器寄存器 的的I控制位被清除时,处理器产生外部中断请求异常中控制位被清除时,处理器产生外部中断请求异常中 断。系统中各外设通常通过该异常中断请求处理器服断。系统中各外设通常通过该异常中断请求处理器服 务务 0 x0000 001C FIQ快中断快中断禁止禁止禁止禁止 当处理器的外部快速中
25、断请求引脚有效,而且当处理器的外部快速中断请求引脚有效,而且CPSR寄寄 存器的存器的F控制位被清除时,处理器产生外部中断请求控制位被清除时,处理器产生外部中断请求 注:注:表中的表中的I I和和F F表示不对该位有影响,保留原来的值。表示不对该位有影响,保留原来的值。 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 ARM状态各模式下实际访问的寄存器状态各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(
26、v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 2
27、.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 R0R0R0R0R0R0R0 R1R1R1R1R1R1R1 R2R2R2R2R2R2R2 R3R3R3R3R3R3R3 R4R4R4R4R4R4R4 R5R5R5R5R5R5R5 R6R6R6R6R6R6R6 R7R7R7R7R7R7R7 R8R8R8R8R8R8R8_fiq R9R9R9R9R9R9R9_fiq R10R10R10R10R10R10R10_fiq R11R11R11R
28、11R11R11R11_fiq R12R12R12R12R12R12R12_fiq R13R13R13_svcR13_abtR13_undR13_irqR13_fiq R14R14R14_svcR14_abtR14_undR14_irqR14_fiq PCPCPCPCPCPCPC CPSRCPSRCPSRCPSRCPSRCPSRCPSR SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq 异常模式异常模式 特权模式特权模式 模式模式 1. ARM状态的通用寄存器状态的通用寄存器 (1)不分组寄存器:)不分组寄存器:R0R7 (2)分组寄存器:)分组寄存器:R8R1
29、4 (3)程序计数器:)程序计数器:R15(PC) 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 (1)不分组寄存器)不分组寄存器R0R7 R0R7是不分组寄存器。这意味着在所有处是不分组寄存器。这意味着在所有处 理器模式下,它们每一个都访问的是同一理器模式下,它们每一个都访问的是同一 个物理寄存器。它们是真正并且在每种状个物理寄存器。它们是真正并且在每种状 态下都统一的通用寄存器。态下都统一的通用寄存器。 未分组寄存器没有被系统用于特别的用途,未分组寄存器没有被系统用于特别的用途, 任何可采用通用寄存器的应用场合都可以任何可采用通用寄存器的应用场合都可以 使用未分
30、组寄存器,但必须注意对同一寄使用未分组寄存器,但必须注意对同一寄 存器在不同模式下使用时的存器在不同模式下使用时的数据保护数据保护。 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 (2 2)分组寄存器)分组寄存器R8R8R14R14 分组寄存器分组寄存器R8R8R12R12 FIQ FIQ模式分组寄存器模式分组寄存器R8R8R12 R12 FIQ FIQ以外的分组寄存器以外的分组寄存器R8R8R12R12 分组寄存器分组寄存器R13R13、R14R14 寄存器寄存器R13R13通常用做堆栈指针通常用做堆栈指针SP SP 寄存器寄存器R14R14用作子程序链接寄存器用
31、作子程序链接寄存器LR LR 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 (3 3)程序计数器)程序计数器R15R15 寄存器寄存器R15R15被用作程序计数器,也称为被用作程序计数器,也称为PCPC。 R15 R15值的改变将引起程序执行顺序的变化,值的改变将引起程序执行顺序的变化, 这有可能引起程序执行中出现一些不可预这有可能引起程序执行中出现一些不可预 料的结果。料的结果。 ARM ARM处理器采用多级流水线技术,因此保处理器采用多级流水线技术,因此保 存在存在R15R15的程序地址并不是当前指令的地的程序地址并不是当前指令的地 址。址。 一些指令对于一些指
32、令对于R15R15的用法有一些特殊要求。的用法有一些特殊要求。 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v
33、7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq ARMARM状态各模式下的寄存器状态各模式下的寄存器 SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abt CPSR R1
34、5 R14_fiqR14_irqR14_undR14_abtR14_svcR14 R13_fiqR13_irqR13_undR13_abtR13_svcR13 R12_fiqR12 R11_fiqR11 R10_fiqR10 R9_fiqR9 R8_fiqR8 R7 R6 R5 R4 R3 R2 R1 R0 所有的所有的37个寄存器,分成个寄存器,分成 两大类:两大类: (1)31个通用个通用32位寄存器;位寄存器; (2)6个状态寄存器。个状态寄存器。 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管
35、理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14
36、_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 无无 CPSR R15 R14 R13 R12 R11 R10 R9 R8 R7 R6 R5 R4 R3 R2 R1 R0 用户用户 无无 CPSR R15 R14 R13 R12 R11 R10 R9 R8 R7 R6 R5 R4 R3 R2 R1 R0 系统系统 SPSR_abt CPSR R15 R14_svc R13_svc R12 R11 R10 R9 R8 R7 R6 R5 R4 R3 R2 R1 R0 管理管理
37、 SPSR_abt CPSR R15 R14_abt R13_abt R12 R11 R10 R9 R8 R7 R6 R5 R4 R3 R2 R1 R0 中止中止 SPSR_und CPSR R15 R14_und R13_und R12 R11 R10 R9 R8 R7 R6 R5 R4 R3 R2 R1 R0 未定义未定义 SPSR_irq CPSR R15 R14_irq R13_irq R12 R11 R10 R9 R8 R7 R6 R5 R4 R3 R2 R1 R0 中断中断 SPSR_fiq CPSR R15 R14_fiq R13_fiq R12_fiq R11_fiq R10_
38、fiq R9_fiq R8_fiq R7 R6 R5 R4 R3 R2 R1 R0 快中断快中断 ARMARM状态各模式下可以访问的寄存器状态各模式下可以访问的寄存器 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9
39、R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 一般的通用寄存器一般的通用寄存器 R13_fiqR13_irqR13_undR13_abtR13_svcR13 R12_
40、fiqR12 R11_fiqR11 R10_fiqR10 R9_fiqR9 R8_fiqR8 R7 R6 R5 R4 R3 R2 R1 R0 在汇编语言中寄存在汇编语言中寄存 器器R0R13为保存数据为保存数据 或地址值的或地址值的通用寄存器通用寄存器。 它们是完全通用的寄存它们是完全通用的寄存 器,不会被体系结构作器,不会被体系结构作 为特殊用途,并且可用为特殊用途,并且可用 于任何使用通用寄存器于任何使用通用寄存器 的指令。的指令。 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未
41、定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(
42、PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 一般的通用寄存器一般的通用寄存器 R13_fiqR13_irqR13_undR13_abtR13_svcR13 R12_fiqR12 R11_fiqR11 R10_fiqR10 R9_fiqR9 R8_fiqR8 R7 R6 R5 R4 R3 R2 R1 R0 R7 R6 R5 R4 R3 R2 R1 R0 其中其中R0R7为为 未分组的寄存器未分组的寄存器,也,也 就是说对于任何处理就是说对于任何处理 器模式,这些寄存器器模式,这些寄存器
43、都对应于相同的都对应于相同的32位位 物理寄存器。物理寄存器。 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12
44、(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 一般的通用寄存器一般的通用寄存器 R14_fiqR14_irqR14_undR14_abtR14_svcR14 R13_fiqR13_irqR13_undR13_abtR13_svcR13 R12_fiqR12 R11_fi
45、qR11 R10_fiqR10 R9_fiqR9 R8_fiqR8 寄存器寄存器R8R14为分组为分组 寄存器。它们所对应的物理寄存器。它们所对应的物理 寄存器取决于当前的处理器寄存器取决于当前的处理器 模式,几乎所有允许使用通模式,几乎所有允许使用通 用寄存器的指令都允许使用用寄存器的指令都允许使用 分组寄存器。分组寄存器。 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1
46、 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_
47、und SPSR_irqSPSR_fiq 一般的通用寄存器一般的通用寄存器 R12_fiqR12 R11_fiqR11 R10_fiqR10 R9_fiqR9 R8_fiqR8 寄存器寄存器R8R8R12R12有两个分组的有两个分组的 物理寄存器。一个用于除物理寄存器。一个用于除FIQFIQ模式模式 之外的所有寄存器模式,另一个用之外的所有寄存器模式,另一个用 于于FIQFIQ模式。这样在发生模式。这样在发生FIQFIQ中断后,中断后, 可以加速可以加速FIQFIQ的处理速度。的处理速度。 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际
48、访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_ab
49、tR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 一般的通用寄存器一般的通用寄存器 寄存器寄存器R13、R14分别有分别有6个分个分 组的物理寄存器。一个用于用户和组的物理寄存器。一个用于用户和 系统模式,其余系统模式,其余5个分别用于个分别用于5种异种异 常模式。常模式。 R14_fiqR14_irqR14_undR14_abtR14_svcR14 R13_fiqR13_irqR13_undR13_abtR13_svcR13 寄存器寄存
50、器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(IP)R12R12_fiq R13(SP)R13R13_svcR13_a
51、btR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 堆栈指针寄存器堆栈指针寄存器R13R13(SPSP) 寄存器寄存器R13常作为堆栈指针常作为堆栈指针 (SP)。在)。在ARM指令集当中,指令集当中, 没有以特殊方式使用没有以特殊方式使用R13的指令的指令 或其它功能,只是习惯上都这或其它功能,只是习惯上都这 样使用。但是在样使用。但是在Thum
52、b指令集指令集 中存在使用中存在使用R13的指令。的指令。 寄存器寄存器 类别类别 寄存器在汇编寄存器在汇编 中的名称中的名称 各模式下实际访问的寄存器各模式下实际访问的寄存器 用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断 通用寄通用寄 存器和存器和 程序计程序计 数器数器 R0(a1)R0 R1(a2)R1 R2(a3)R2 R3(a4)R3 R4(v1)R4 R5(v2)R5 R6(v3)R6 R7(v4)R7 R8(v5)R8R8_fiq R9(SB,v6)R9R9_fiq R10(SL,v7)R10R10_fiq R11(FP,v8)R11R11_fiq R12(I
53、P)R12R12_fiq R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq R15(PC)R15 状态寄状态寄 存器存器 CPSRCPSR SPSR无无SPSR_abtSPSR_abt SPSR_und SPSR_irqSPSR_fiq 链接寄存器链接寄存器R14R14(LRLR) R14为链接寄存器(为链接寄存器(LR),在结构),在结构 上有两个特殊功能:上有两个特殊功能: (1)在每种模式下,模式自身的)在每种模式下,模式自身的R14版版 本用本用 于保存
54、子程序返回地址;于保存子程序返回地址; (2)当发生异常时,将)当发生异常时,将R14对应的异常对应的异常 模式版本设置为异常返回地址(有些异模式版本设置为异常返回地址(有些异 常有一个小的固定偏移量)。常有一个小的固定偏移量)。 Lable 程序程序A程序程序B R14 2.R142.R14寄存器与子程序调用寄存器与子程序调用 BL Lable 地址地址A? MOV PC,LR R14(地址(地址A) Lable ? (1 1)程序程序A A执行过程中执行过程中 调用程序调用程序B B; 操作流程操作流程 (2 2)程序跳转至标号程序跳转至标号 为为LableLable,再执行,再执行 程序
55、程序B B。同时硬件。同时硬件 将将“BL LableBL Lable” 指令的下一条指指令的下一条指 令所在地址存入令所在地址存入 R14R14; (3 3)程序程序B B执行最后,将执行最后,将R14R14寄存器寄存器 的内容放入的内容放入PCPC,返回程序,返回程序A A; 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 异常发生时,程序要跳转至异常服务程序,对返回异常发生时,程序要跳转至异常服务程序,对返回 地址的处理与子程序调用类似,都是由硬件完成的。区地址的处理与子程序调用类似,都是由硬件完成的。区 别在于有些异常有一个小常量的偏移。别在于有些异常有一个小
56、常量的偏移。 当发生异常嵌套时,这些异常之间可能会发生冲突。当发生异常嵌套时,这些异常之间可能会发生冲突。 如:如:如果用户在用户模式下执行程序时发生了如果用户在用户模式下执行程序时发生了IRQ 中断,用户模式寄存器不会被破坏。但是如果允许在中断,用户模式寄存器不会被破坏。但是如果允许在 IRQ模式下的中断处理程序重新使能模式下的中断处理程序重新使能IRQ中断,并且发中断,并且发 生了嵌套的生了嵌套的IRQ中断时,外部中断处理程序保存在中断时,外部中断处理程序保存在 R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。中的任何值都将被嵌套中断的返回地址所覆盖。 3.R143.R14寄存器与
57、异常发生和注意事项寄存器与异常发生和注意事项 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 R14R14_irq 用户模式下的程序用户模式下的程序IRQ模式下的程序模式下的程序A a return B . X A 地址地址A 地址地址A 1.1.执行用户模执行用户模 式下的程序;式下的程序; 2.2.发生发生IRQIRQ中断中断 时,时, 硬件将某硬件将某 个地址存入个地址存入IRQIRQ 模式模式 下的下的 寄存寄存 器器R14_irqR14_irq中,中, 用户用户 模式模式 下的下的 R14 R14 没有没有 被被 破破 坏;坏; 3.3.IRQIRQ服务程序
58、服务程序 A A执行完毕,将执行完毕,将 寄存器寄存器R14_irqR14_irq 的内容的内容 减去减去 某某 个个 常量后常量后 存入存入 PCPC,返回之前,返回之前 被被 中断的中断的 程序程序 中;中; 未被破坏未被破坏 2.4.3 ARM2.4.3 ARM状态下的寄存器组织状态下的寄存器组织 3.R143.R14寄存器与异常发生和注意事项寄存器与异常发生和注意事项 R14R14_irq 用户模式下的程序用户模式下的程序IRQ模式下的程序模式下的程序A a B . X A 地址地址A 地址地址A 1.执行用户模式 下的程序; 2.发生IRQ中断, 硬件将某个地 址存入IRQ模式 下的
59、R14_irq寄 存器,用户模 式下的R14没有 被破坏; 3.3.IRQIRQ服务程序服务程序 A A执行完毕,将执行完毕,将 寄存器寄存器R14_irqR14_irq 的内容的内容 减去减去 某某 个个 常量后常量后 存入存入 PCPC, 返回之前返回之前 被被 中断的中断的 程序程序 中;中; 未被破坏 IRQ模式下的程序模式下的程序B a return D . Y C 地址地址B 地址地址B 4.4.如果在如果在IRQIRQ处处 理理 程序中程序中 打开打开 IRQIRQ中断,并且中断,并且 再次发生再次发生IRQIRQ中中 断;断; 5.5.硬件将返回硬件将返回 地址保存在寄地址保存
60、在寄 存器存器 R14_irqR14_irq 中,中,原来保存原来保存 的返回地址将的返回地址将 被覆盖,造成被覆盖,造成 错误;错误; 被破坏 6. 6. 在从程序在从程序B B 返回到程序返回到程序A A, 然后在返回到然后在返回到 用户模式下被用户模式下被 中断的程序时中断的程序时 发生错误,将发生错误,将 不能正确地返不能正确地返 回;回; returnreturn 解决办法是确保解决办法是确保 R14R14 的对应版本在发生中断嵌的对应版本在发生中断嵌 套时不再保存任何有意义套时不再保存任何有意义 的值(将的值(将R14R14入栈),或者入栈),或者 切换到其它处理器模式下。切换到其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年福建南平交通一卡通有限公司招聘3人笔试参考题库附带答案详解
- 2024年甘肃兰州农村产权交易中心有限公司招聘人员及拟录用情况笔试参考题库附带答案详解
- 第23课《孟子》三章之《富贵不能淫》教学设计 2024-2025学年统编版语文八年级上册
- 第22课 从局部抗战到全国抗战 教学设计-2024-2025学年高中历史统编版(2019)必修中外历史纲要上册
- 高中信息技术必修1教学设计-7.3 信息的安全和保护1-浙教版
- 第15课《青春之光》教学设计 2024-2025学年统编版语文七年级下册
- 2024山西云时代技术有限公司社会招聘59人笔试参考题库附带答案详解
- 2024山东青岛中石化经纬有限公司招聘115人笔试参考题库附带答案详解
- 2024山东滨州高新技术产业开发区所属国有企业招聘4人笔试参考题库附带答案详解
- 第10课 《凡尔赛条约》和《九国公约》(教学设计) 九年级历史下册同步高效课堂(部编版)
- 《走近世界民间美术》 课件 2024-2025学年人美版(2024)初中美术七年级下册
- 2025年江苏省高职单招《职测》高频必练考试题库400题(含答案)
- 2025云南红河州个旧市大红屯粮食购销限公司招聘及人员高频重点模拟试卷提升(共500题附带答案详解)
- X证书失智老年人照护讲解
- 工厂安全事故预防知识
- 2024-2025学年人教版数学八年级下册期中检测卷(含答案)
- 2024年江西应用工程职业学院高职单招职业适应性测试历年参考题库含答案解析
- 2025届江苏苏州市四校高三12月联考语文试题(教师版)
- 传感器技术-武汉大学
- 2024新版有限空间作业安全大培训
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
评论
0/150
提交评论