打印
[学习资料]

ARM处理器工作模式

[复制链接]
128|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

Cortex系列之前的ARM处理器工作模式一共有7种。

1. 工作模式
Cortex系列的ARM处理器工作模式有8种,多了1个monitor模式,如下图所示:


ARM处理器工作模式
ARM之所以设计出这么多种模式出来,就是为了「应对CPU在运行时各种突发事件」,比如要支持正常的应用程序的运行,在运行任何一个时间点又可能发生很多异常事件,比如:关机、收到网卡信息、除数为0、访问非法内存、解析到了非法指令等等,不光要能处理这些异常还要能够从异常中再返回到原来的程序继续执行。

用户模式:用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源,只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常。
系统模式:系统模式是特权模式,不受用户模式的限制。用户模式和系统模式共用一套寄存器,操作系统在该模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。
一般中断模式:一般中断模式也叫普通中断模式,用于处理一般的中断请求,通常在硬件产生中断信号之后自动进入该模式,该模式为特权模式,可以自由访问系统硬件资源。
快速中断模式:快速中断模式是相对一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求,主要用于高速数据传输及通道处理中。
管理模式:管理模式是「CPU上电后默认模式」,因此在该模式下主要用来做系统的初始化,软中断处理也在该模式下,当用户模式下的用户程序请求使用硬件资源时通过软件中断进入该模式。
终止模式:中止模式用于支持虚拟内存或存储器保护,当用户程序访问非法地址,没有权限读取的内存地址时,会进入该模式,linux下编程时经常出现的segment fault通常都是在该模式下抛出返回的。
未定义模式:未定义模式用于支持硬件协处理器的软件仿真,CPU在指令的译码阶段不能识别该指令操作时,会进入未定义模式。
Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;也是一种特权模式
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。


使用特权

评论回复
沙发
小小蚂蚁举千斤|  楼主 | 2023-12-26 08:28 | 只看该作者
2. 模式切换
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。

3. 异常(Exception)
指由处理器执行指令导致原来运行程序的中止,异常与指令运行相关,是CPU执行程序产生的,是同步的,可分为精确异常和非精确异常。异常处理遵守严格的程序顺序,不能嵌套,只有当第一个异常处理完并返回后才能处理后续的异常。

使用特权

评论回复
板凳
小小蚂蚁举千斤|  楼主 | 2023-12-26 08:28 | 只看该作者
4. 异常源
要进入异常模式,一定要有异常源,ARM规定有7种异常源:


使用特权

评论回复
地板
小小蚂蚁举千斤|  楼主 | 2023-12-26 08:29 | 只看该作者
5. 异常源与模式关系
重启异常进入管理模式;
快速中断请求异常进入快中断模式,支持高速数传输及通道处理(FIQ异常响应时进入此模式);
中断请求异常进入中断模式,用于通用中断处理,(IRQ异常响应时进入此模式);
预取指中止,数据中止异常进入中止模式,用于支持虚拟内存和/或存储器保护;
未定义指令异常进入未定义模式,支持硬件协处理器的软件仿真(未定义指令异常响应时进入此模式) ;
软件中断,复位异常进入管理模式,操作系统保护代码(系统复位和软件中断响应时进入此模式) ;
异常发生之后,CPU必须要立刻做出响应,关于异常后面会详细讲解。

使用特权

评论回复
5
drawingchips| | 2023-12-26 09:09 | 只看该作者
有没有和risc-v的对比表。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

1165

帖子

0

粉丝