ARM处理器的工作模式

ARM处理器的工作模式

ARM系列有7种基本工作模式,Cortex-A系列有8种工作模式

CPU在运行时必须具备的功能

  1. 程序正常运行
  2. 运行中处理中断异常
  3. 权限管理

ARM 之所以设计这么多模式,是为了应对CPU运行时的各种突发事件

要支持正常的应用程序的运行,在运行的任何一个时间点又可能发生很多异常事件
比如:关机、收到网卡信息、除数)、访问非法内存、解析到了非法指令等等,不光要能处理这些异常还要能够从异常中再返回到原来的程序执行

八种基本工作模式 1

简记: USA UFI SM

  1. USer(用户模式)2

非特权模式,大部分任务执行在这种模式
Linux下的用户空间,用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限操作其他硬件资源,只能执行处理自己的数据,也不能切换到其他模式,想要访问硬件资源或切换到其他模式下只能通过软中断或产生异常

  1. System(系统模式)

一种特殊的用户模式,允许访问所以的寄存器,操作系统内核运行在此模式下
系统模式是特殊模式,不受用户模式的限制,用户模式和系统模式共用一套寄存器,操作系统在该模式下可以方便的访问用户模式用户模式的寄存器,而操作系统的一些特权任务可以使用这个模式访问一些受控的资源

  1. ABT(Abort数据访问中止模式)

在数据或指令预取异常发生时被使用
中止模式用于支持虚拟内存或存储器保护,当用户程序访问非法地址、没有访问权限的内存地址时,会进入该模式,Linux下编程时经常遇到segme fault(段错误)通常都是该模式下抛出返回的

  1. UND(Undef未定义指令中止模式)

当执行未定义指令时会进入这种模式
未定义模式用于支持硬件协处理器软件仿真,CPU在指令的译码阶段不能识别该指令操作时,会进入未定义模式

  1. IRQ(一般中断模式)

当一个低优先级(normal)中断产生时将会进入这种模式
一般中断信号之后自动进入该模式,该模式为特权模式,可以自由访问系统硬件资源

  1. FIQ(快速中断模式)

当一个高优先级(fast)中断产生时将会进入这种模式
快速中断模式时相对一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求,主要用于高速数据传输及通道处理中

  1. SVC(Supervisor管理/特权模式)

当复位或软中断指令执行时会进入这种模式
管理模式时CUP上电后的默认模式,因此在该模式下主要用来做系统的初始化,软中断处理也在该模式下,当用户模式下的用户程序请求使用硬件资源时,通过软件中断进入该模式

  1. MON(monitor安全/监控模式)

也被称为监视模式,是Cortex-A特有模式
是为了安全而扩展出的用于执行安全监控代码的模式,也是一种特权模式


  1. 除了用户模式和系统模式以外的5种模式称为异常模式;当特定的异常出现的时候,程序就会进入到相应的异常模式中 ↩︎

  2. 除了用户模式其他都属于特权模式。可以自己切换到任意模式 ↩︎

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值