ARM 寄存器学习:(前言)七种模式\异常源\向量表\异常返回

一、ARM的七种工作模式

Arm微处理器支持7种工作模式,分别为:

1. 用户模式(Usr)            用于正常执行程序

2. 系统模式(sys)            运行均有特权的操作系统任务

3. 快速中断模式(FIQ)    用于高速数据传输

4. 外部中断模式(IRQ)   用于通常的中断处理

5. 管理模式(SVC)          操作系统使用的保护模式(高权限),复位和软件中断进入

6. 数据访问终止模式(abt)   当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护

7. 未定义指令终止模式(und)   用于支持硬件协处理器的软件仿真(浮点、微量运算)

其中除了用户模式以外,其余所有6种模式称之为非用户模式也叫特权模式,权限比用户模式高。

二:ARM的异常模式

特权模式中除去系统模式(sys)外的5种模式称之为异常模式(在用户模式和系统模式看来这些都属于异常),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

三:ARM的异常源

1.reset复位异常(SVC异常模式)

        当CPU刚上电时或按下reset重启键之后进入该异常,该异常在管理模式下处理。

2.软件中断指令(swi)异常 SVC异常模式

        该异常是应用程序自己调用时产生的,用于用户程序申请访问硬件资源时,例如:printf()打印函数,要将用户数据打印到显示器上,用户程序要想实现打印必须申请使用显示器,而用户程序又没有外设硬件的使用权,只能通过使用软件中断指令切换到内核态,通过操作系统内核代码来访问外设硬件,内核态是工作在特权模式下,操作系统在特权模式下完成将用户数据打印到显示器上。这样做的目的无非是为了保护操作系统的安全和硬件资源的合理使用,该异常在管理模式下处理。

3.未定义指令异常主动(und异常模式)

        该异常发生在流水线技术里的译码阶段,如果当前指令不能被识别为有效指令,产生未定义指令异常,该异常在未定义异常模式下处理。

4.预取指令中止异常(abt异常模式)

        该异常发生在CPU流水线取指阶段,如果目标指令地址是非法地址进入该异常,该异常在中止异常模式下处理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值