ARM的八种工作模式

ARM有八种工作模式,有些处理器可能是七种,这个要看处理器的版本,早期的处理器如ARM9有七种工作模式,到了后来的Cortex系列新增了一种Secure Monitor模式。对工作模式的理解需要记住以下三点:

  • 不同模式拥有不同的权限
  • 不同模式执行不同的代码
  • 不同模式完成不同的功能 

除了User、System、Monitor模式外,其余模式都属于异常模式。 


        目录

1、User

2、FIQ

3、IRQ

4、SVC

5、Abort

6、Undef

7、System

8、Monitor


1、User

User是用户模式,一般在执行上层的应用程序时,ARM处于该模式。

注意要区分之前了解的用户态和内核态,用户态和内核态指的是OS所处的状态,程序在执行正常运算操作时,OS处在用户态,当OS调用了系统接口的时候,就会由用户态切换为内核态。

2、FIQ

当一个高优先级中断产生后,ARM将进入这种模式。

中断可以简单理解为,CPU正在忙一件事,突然有意外发生了,CPU停下手里的活去处理意外,处理完了以后再继续忙之前的事。高优先级中断就可以理解为如果发生了多个意外,CPU会先处理优先级较高的意外。

3、IRQ

当一个低优先级中断产生后,ARM将进入这种模式。

这里就和FIQ相反了,因为优先级较低,如果当前存在多个中断,CPU会优先处理高优先级的中断

4、SVC

当复位或执行软中断指令后ARM将进入这种模式

当ARM刚上电的时候,ARM会进入SVC模式,直到OS正常运行进程或者应用的时候,ARM才会切换到User进程,这是一种情况。

还有一种情况就是软中断,软中断是相对于硬中断而言的,硬中断指的是硬件产生的中断,比如网卡收到消息了,就会给CPU发送一条指令,此时产生的就是硬中断。软中断指的是上层应用程序产生中断,这里就不作详细介绍。

5、Abort

当产生存取异常时ARM将进入这种模式。

比如CPU提供的地址,是一个空地址或者野指针,这个时候就会读取失败,然后进入Abort模式

6、Undef

当执行未定义的指令时ARM将进入这种模式。

ARM处理器可以识别哪些指令(二进制机器码)是由硬件设备决定的,比如处理器可以识别1100 为加法指令,如果提供了处理器无法识别的指令,ARM处理器就会进入Undefine模式。

7、System

使用和User模式相同寄存器集的特权模式。

System模式和User模式很类似,不同之处在于System模式的权限要比User模式更高。这里说的使用相同寄存器集指的是,每一种模式使用的寄存器数量是有限的,主要分为两类,一类是所有工作模式都可以共用的,一类是当前工作模式专属的。

8、Monitor

为了安全而扩展出的用于执行安全监控代码的模式。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值