ARM体系结构与编程读书笔记——处理器的运行模式
2024-10-06 18:36:53
ARM处理器共有7种运行模式,如下表:
处理器模式 | 描述 |
---|---|
用户模式(User, usr) | 正常程序执行的模式 |
快速中断模式(FIQ, fiq) | 用于高速数据传输和通道处理 |
外部中断模式(IRQ, irq) | 用于通常的中断处理 |
特权模式(Supervisor, sve) | 供操作系统使用的一种保护模式 |
数据访问中止模式(Abort, abt) | 用于虚拟存储及存储保护 |
未定义指令中止模式(Undefined, und) | 用于支持用过软件仿真硬件的协处理器 |
系统模式(System, sys) | 用于运行特权级的操作系统任务 |
特权模式:除了用户模式之外的其他6种处理器模式统称为特权模式,这些模式下程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换;
异常模式:除了系统模式外的其他5种特权模式又称为异常模式;
处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换:
- 大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统资源,也不能直接进行处理器模式的切换,当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式的切换;
- 当应用程序发生异常中断时,处理器进入相应的异常模式,在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保存了运行状态信息)不被破坏;
- 系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器,但是系统模式属于特权模式,可以访问所用的系统资源,也可以直接进行处理器模式切换,它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存器组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏;
最新文章
- Ionic实战四:ionic 即时通讯_ionic仿雅虎邮箱
- PRML读书笔记——Introduction
- 《Python核心编程》 第六章 序列 - 课后习题
- Python小工具--删除svn文件
- Swift3.0语法变化
- HTML5简介、视频
- C/C++ 用libcurl库进行http通讯网络编程
- DotNetZip 压缩下载
- TimeUnit枚举类
- 书写规范的javaScript
- wpf 研究之道 winform or wpf,u choose who?
- 部署wcf出现的问题与解决方法
- php 图片添加水印和二维码
- 我推荐阅读的微信公众号-IT类
- 查询正在执行的SQL语句DBCCINPUTBUFFER
- Android:客户端和服务器之间传输数据加密
- Linux常用命令的命名来源
- 我的QT5学习之路(二)——第一个程序
- ubuntu 下jdk安装配置
- [转]象棋AI算法(一)