ARM处理器的工作模式ppt课件

上传人:资****亨 文档编号:132779401 上传时间:2020-05-20 格式:PPT 页数:40 大小:452KB
返回 下载 相关 举报
ARM处理器的工作模式ppt课件_第1页
第1页 / 共40页
ARM处理器的工作模式ppt课件_第2页
第2页 / 共40页
ARM处理器的工作模式ppt课件_第3页
第3页 / 共40页
ARM处理器的工作模式ppt课件_第4页
第4页 / 共40页
ARM处理器的工作模式ppt课件_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《ARM处理器的工作模式ppt课件》由会员分享,可在线阅读,更多相关《ARM处理器的工作模式ppt课件(40页珍藏版)》请在金锄头文库上搜索。

1、 嵌入式系统设计 ARM处理器的工作模式 1 1ARM处理器的工作状态和模式 为了能够体现ARM的特点和性能 ARM处理器有两种工作状态和7种工作模式 1 1 1ARM处理器的工作状态有两种工作状态 ARM状态 处理器执行32位的字对齐的ARM指令 Thumb状态 处理器执行16位的半字对齐的Thumb指令 两种状态可以切换 程序执行过程中 通过执行带状态切换的分支指令BX 随时在两种工作状态之间进行切换 并且 处理器工作状态的转变 并不影响处理器的工作模式和相应寄存器中的内容 1 1ARM处理器的工作状态和模式 2 从ARM状态切换到Thumb状态有两种情况ARM处理器自动切换到Thumb状

2、态 1 执行BX指令 当操作数寄存器的位 0 为1时 则微处理器从ARM状态切换到Thumb状态 此为主动切换 2 当处理器处于Thumb状态时发生异常 如IRQ FIQ Undef等 处理完异常后 在异常处理返回时 自动切换到Thumb状态 此为自动切换 从Thumb状态切换到ARM状态有两种情况ARM处理器自动切换到Thumb状态 1 执行BX指令 当操作数寄存器的位 0 为0时 则微处理器从Thumb状态切换到ARM状态 2 当处理器在Thumb状态时发生异常 如IRQ FIQ Undef等 则处理器从Thumb状态自动切换到ARM状态进行异常处理 1 1ARM处理器的工作状态和模式 3

3、 例1 1状态切换程序 从ARM状态切换到Thumb状态LDRR0 Lable 1BXR0 从Thumb状态切换到ARM状态LDRR0 LableBXR0注意 ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容 ARM处理器在开始执行代码时 只能处于ARM状态 1 1 2ARM处理器的工作模式 一 ARM9的7种工作模式1 用户模式 usr 非特权模式 大部分任务执行在这种模式 正常程序执行的模式2 快速中断模式 fiq 当一个高优先级 fast 中断产生时将会进入这种模式 高速数据传输或通道处理3 外部中断模式 irq 当一个低优先级 normal 中断产生时将会进入这种模式

4、通常的中断处理4 管理模式 svc 当复位或软中断指令执行时将会进入这种模式 供操作系统使用的一种保护模式 1 1 2ARM处理器的工作模式 2 5 中止模式 abt 当存取异常时将会进入这种模式虚拟存储及存储保护6 未定义模式 und 当执行未定义指令时会进入这种模式软件仿真硬件协处理器7 系统模式 sys 供需要访问系统资源的操作系统任务使用特权级的操作系统任务 1 1 2ARM处理器的工作模式 2 二 模式分类及特点七种模式可以划分成四类1 用户模式特点 应用程序不能够访问受操作系统保护的系统资源 应用程序不能进行处理器模式的切换 2 系统模式特点 不属于异常模式 不是通过异常进入的 系

5、统模式属于特权模式 可以访问所有的系统资源 也可以直接进行模式的切换 它主要供操作系统使用 3 特权模式及其特点 特权模式 除用户模式之外的工作模式又称为特权模式特点 应用程序可以访问所有的系统资源可以任意地进行处理器模式的切换 1 1 2ARM处理器的工作模式 3 4 异常模式及其特点 异常模式 除用户模式 系统模式之外的五种模式称为异常模式 特点 以各自的中断或异常方式进入 并且处理各自的中断或异常 对管理模式 svc 进入方式和处理内容有 系统上电复位后进入管理模式 运行系统初始化程序 如中断允许 禁止 主时钟设置 SDRAM配置 各个功能模块初始化等 当执行软件中断指令SWI时 进入管

6、理模式 1 1 2ARM处理器的工作模式 4 处理器模式的切换方式 软件控制进行切换 通过外部中断和异常进行切换处理器启动时的模式转换图 管理模式 Supervisor 多种特权模式变化 用户程序的运行模式 复位后的缺省模式 主要完成各模式的堆栈设置 注意不要进入用户模式 一般为用户模式User 1 2ARM9寄存器 本节主要内容1 ARM寄存器概述2 ARM通用寄存器3 ARM状态寄存器 1 2ARM9寄存器 1 2 1 ARM寄存器概述ARM处理器v4及以上版本有37个32位的寄存器其中31个为通用寄存器 6个为状态寄存器 31个通用寄存器R0 R15 R13 svc R14 svc R1

7、3 abt R14 abt R13 und R14 und R13 irq R14 irq R8 fiq R14 fiq6个状态寄存器CPSRSPSR svc SPSR abt SPSR und SPSR irq和SPSR fiq 1 2ARM9寄存器 2 每一类处理器模式都有一组相应的寄存器组 在任意的处理器模式下 可见的寄存器包括15个通用寄存器 R0 R14 1个或2个状态寄存器和程序寄存器 带灰色底纹的单元格表示 用户模式或系统模式使用的一般寄存器 已被异常模式特定的另一寄存器所替代 1 2ARM寄存器 4 1 2 2ARM的通用寄存器通用寄存器包括R0 R15 可以分为三类 未分组寄

8、存器R0 R7 分组寄存器R8 R14 程序计数器PC R15 一 未分组寄存器R0 R7在所有的运行模式下 未分组寄存器都指向同一个物理寄存器 他们未被系统用作特殊的用途 是真正的通用寄存器 因此 在中断或异常处理进行运行模式转换时 由于不同的处理器运行模式均使用相同的物理寄存器 可能会造成寄存器中数据的破坏 这一点在进行程序设计时应引起注意 1 2ARM寄存器 5 二 分组的寄存器R8 R14对于R8 R12 每一次所访问的物理寄存器 与处理器当前的工作模式有关 1 R8 R12当处理器工作于fiq模式时 访问的寄存器为R8 fiq R12 fiq 除fiq模式以外的其他模式 访问的寄存器

9、为R8 usr R12 usr 2 R13和R14 每个寄存器对应6个不同的物理寄存器 其中的一个是用户模式与系统模式共用 另外5个物理寄存器 对应于其他5种不同的异常模式 采用以下的记号来区分不同的物理寄存器 R13 R14 其中 mode为以下几种模式之一 usr fiq irq svc abt und 1 2ARM寄存器 6 R13 寄存器R13在ARM指令中常用作堆栈指针SP 但这只是一种习惯用法 用户也可使用其他的寄存器作为堆栈指针 而在Thumb指令集中 某些指令强制性的要求使用R13作为堆栈指针 R14 寄存器R14也称作子程序链接寄存器 SubroutineLinkRegist

10、er 或链接寄存器LR 当执行BL子程序调用指令时 R14中得到R15 程序计数器PC 的备份 其他情况下 R14用作通用寄存器 与之类似 当发生中断或异常时 对应的分组寄存器R14 svc R14 irq R14 fiq R14 abt和R14 und用来保存R15的返回值 1 2ARM寄存器 7 三 程序计数器PC R15 寄存器R15用作程序计数器 PC 在ARM状态下 位 1 0 为0 位 31 2 用于保存PC 在Thumb状态下 位 0 为0 位 31 1 用于保存PC 使用R15时注意 虽然R15可以用作通用寄存器 但是有一些指令在使用R15时有一些特殊限制 若不注意 执行的结果

11、将是不可预料的 所以 一般不这么使用 关于PC的值 由于ARM采用多级流水线技术 所以PC总是指向正在取指的指令 而不是正在执行的指令 也即PC总是指向当前指令的下两条指令的地址 因此 对于ARM指令集而言 PC的值为当前指令的地址值加8个字节 1 2ARM寄存器 8 1 2 3ARM的状态寄存器一 两种程序状态寄存器在ARM微处理器中 有CPSR和SPSR两种程序状态寄存器 1 当前程序状态寄存器CPSR CurrentProgramStatusRegister 用来保存当前程序状态的寄存器 所有处理器模式下都可以访问当前程序状态寄存器CPSR 仅一个CPSR 2 保存程序状态寄存器SPSR

12、 mode SavedProgramStatusRegister SPSR mode用来进行异常处理 其功能包括 保存ALU中的当前操作信息当异常发生时 用来保存CPSR的值 从异常返回时 将SPSR mode复制到CPSR中 恢复CPSR的值 控制允许和禁止中断修改SPSR的值 设置处理器的运行模式修改SPSR的值问题 一共有多少个SPSR 为什么 1 2 3ARM的状态寄存器 2 二 ARM状态寄存器的格式1 条件码标志位 保存ALU中的当前操作信息 N 正负号 大小标志位0表示 正数 大于 1表示 负数 小于Z 零标志位0表示 结果不为零 1表示 结果为零C 进位 借位 移出位0表示 未

13、进位 借位 移出0 1表示 进位 未借位 移出1V 溢出标志位0表示 结果未溢出 1表示 结果溢出 1 2 3ARM9的状态寄存器 3 2 控制位I F中断控制位 控制允许和禁止中断I 1禁止IRQ中断I 0允许IRQ中断F 1禁止FIQ中断F 0允许FIQ中断T控制 标志 位 反映处理器的运行状态T 1时 程序运行于Thumb状态T 0时 程序运行于ARM状态M控制位 决定了处理器的运行模式当发生异常时这些位被改变 如果处理器运行在特权模式 这些位也可以由程序修改 1 2 3ARM9的状态寄存器 4 3 保留位CPSR中的其余位为保留位 当改变CPSR中的条件码标志位或者控制位时 保留位不要

14、改变 在程序中也不要使用保留位来存储数据 保留位将用于ARM版本的扩展 1 2 4Thumb状态下的寄存器组织Thumb状态下的寄存器集是ARM状态下寄存器集的子集 程序员可以直接访问8个通用的寄存器 R0 R7 程序计数器PC 堆栈指针SP 链接寄存器LR和当前状态寄存器CPSP 本节主要内容1 中断和异常的概念2 ARM的异常中断介绍3 ARM的异常中断响应过程4 中断向量和中断优先级 1 3ARM异常 1 3ARM异常 1 3 1中断和异常的概念1 中断当CPU正在执行程序时 系统发生了一件急需处理的事件 CPU暂时停下正在执行的程序 转去处理相应的事件 事件处理完后 CPU再返回执行原

15、来的程序 这种情况称为中断 这是中断的本来意义 中断事件 引起CPU产生中断 并且与CPU当前所执行的程序无关的 由外部硬件产生的事件 也叫中断源 中断事件也常称为外中断 常说的中断 有时指的是中断的本意 有时指的是外部中断事件 即外中断 中断是计算机系统基本的功能利用中断 外设可以与CPU并行工作 当外设需要传输数据或控制时 向CPU发出中断请求信号 CPU响应其请求进行处理 因此 使用中断既可以实现CPU与外设并行工作 又可以实时处理各种紧急事件 1 3ARM异常 2 异常是指CPU在执行指令时出现的错误 即不正常的情况 异常是与当前所执行的程序有关的 如存取数据或指令错误 计算结果溢出等

16、 异常的处理 也用中断的方式进行处理 计算机通常是用中断来处理外中断和异常 因此下面将二者均称为异常 3 ARM程序的三种执行流程顺序流程 每执行一条ARM指令 程序计数器 PC 的值加4 每执行一条Thumb指令 程序计数器寄存器 PC 的值加2 整个过程是按顺序执行 对异常的说明当系统运行时 异常可能会随时发生 为保证在ARM处理器发生异常时不至于处于未知状态 在应用程序的设计中 首先要进行异常处理 采用的方式是在异常向量表中的特定位置放置一条跳转指令 跳转到异常处理程序 当ARM处理器发生异常时 程序计数器PC会被强制设置为对应的异常向量 从而跳转到异常处理程序 当异常处理完成以后 返回到主程序继续执行 我们需要处理所有的异常 尽管我们可以简单的在某些异常处理程序处放置死循环 1 3ARM异常 1 3ARM异常 跳转流程 程序执行了跳转指令 则要跳转到特定的地址标号处执行 包括跳转到子程序 例如 跳转指令 B BL BLX和BX 中断流程 当异常中断发生时 系统执行完当前指令后 将跳转到相应的异常中断处理程序处执行 在当异常中断处理程序执行完成后 程序返回到发生中断的指令的下条指

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号