ARM处理器共有7种运行模式,如下表:

处理器模式 描述
用户模式(User, usr) 正常程序执行的模式
快速中断模式(FIQ, fiq) 用于高速数据传输和通道处理
外部中断模式(IRQ, irq) 用于通常的中断处理
特权模式(Supervisor, sve) 供操作系统使用的一种保护模式
数据访问中止模式(Abort, abt) 用于虚拟存储及存储保护
未定义指令中止模式(Undefined, und) 用于支持用过软件仿真硬件的协处理器
系统模式(System, sys) 用于运行特权级的操作系统任务

特权模式:除了用户模式之外的其他6种处理器模式统称为特权模式,这些模式下程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换;

异常模式:除了系统模式外的其他5种特权模式又称为异常模式;

处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换:

  • 大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统资源,也不能直接进行处理器模式的切换,当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式的切换;
  • 当应用程序发生异常中断时,处理器进入相应的异常模式,在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保存了运行状态信息)不被破坏;
  • 系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器,但是系统模式属于特权模式,可以访问所用的系统资源,也可以直接进行处理器模式切换,它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存器组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏;

最新文章

  1. Ionic实战四:ionic 即时通讯_ionic仿雅虎邮箱
  2. PRML读书笔记——Introduction
  3. 《Python核心编程》 第六章 序列 - 课后习题
  4. Python小工具--删除svn文件
  5. Swift3.0语法变化
  6. HTML5简介、视频
  7. C/C++ 用libcurl库进行http通讯网络编程
  8. DotNetZip 压缩下载
  9. TimeUnit枚举类
  10. 书写规范的javaScript
  11. wpf 研究之道 winform or wpf,u choose who?
  12. 部署wcf出现的问题与解决方法
  13. php 图片添加水印和二维码
  14. 我推荐阅读的微信公众号-IT类
  15. 查询正在执行的SQL语句DBCCINPUTBUFFER
  16. Android:客户端和服务器之间传输数据加密
  17. Linux常用命令的命名来源
  18. 我的QT5学习之路(二)——第一个程序
  19. ubuntu 下jdk安装配置
  20. [转]象棋AI算法(一)

热门文章

  1. MySQL简单管理
  2. Flutter 获取网络数据及渲染列表
  3. leetcode907 Sum of Subarray Minimums
  4. Sping POJO中如何添加验证规则和验证消息提示
  5. 【转】Windows 7下用VMware Workstation 10虚拟机安装 Ubuntu 14.04
  6. confluence导出PDF格式文件不显示中文解决
  7. The Maze II
  8. python在windows和linux下的安装和配置
  9. javaweb项目的全局监听配置
  10. C++继承种类