1.12.ARM的异常处理方式简单介绍
来源:互联网 发布:java log4j stdout 编辑:程序博客网 时间:2024/05/22 15:24
什么是异常?
* 正常工作之外的流程都是异常。
* 异常会打断正在执行的工作,正常我们希望异常处理完成后继续回来执行我们原来的工作。
* 中断也是异常的一种。
异常向量表:
* 所有的CPU都有异常向量表,这是CPU设计时就设定好的,由硬件决定。
* 当异常发生时,CPU会自动动作(PC会跳转到异常向量处处理异常,有时会伴有一些辅助动作)。
* 异常向量表是硬件向软件提供的处理异常的支持。
ARM的异常处理标志:
* 当异常产生时,ARM core:
- 拷贝CPSR到SPSR_<mode>
- 设置适当的CPSR位:
- 改变处理器状态到ARM态
-改变处理器模式到相应的异常模式
-设置中断禁止位禁止相应的中断(如果需要)
- 保存返回地址到LR_<mode>
- 设置PC为相应的异常向量
* 返回时异常处理需要:
- 从SPSR_<mode>恢复CPSR
- 从LR_<mode>恢复PC
- 注:这些操作只能在ARM态执行
总结:
* 异常处理中有一些是硬件自动做的,有一些是程序员需要自己做的。需要搞清楚哪些是需要自己做的,才知道如何写好代码。
* 上面说的是CPU设计时提供的异常向量表,一般称为一级向量表。有些CPU为了支持多个中断,还会提供二级中断向量表,处理方式和一级向量表类似。
阅读全文
0 0
- ARM的异常处理方式简单介绍
- 1.12.ARM的异常处理方式简单介绍
- ARM第一部分-ARM的异常处理方式简单介绍
- ARM异常处理方式简单介绍
- ARM异常处理方式简单介绍
- ARM的异常处理方式简单介绍(16_08_26_01)
- ARM的异常处理
- ARM的异常处理
- ARM的异常处理
- ARM 的异常处理
- ARM的异常处理
- ARM上的异常处理和简单汇编
- ARM:ARM中断异常的处理流程
- 二、ARM 的异常处理
- 对ARM的异常处理
- 异常的处理方式
- 异常的简单介绍
- 异常的简单处理
- PHP中htmlentities和htmlspecialchars的区别
- el表达式保留两位小数、使用jstl fmt formatNumber标签保留两位小数
- JavaScript-prototype属性
- 【Android】关于在Service中通过接口回调更新Activity的UI
- POj-2718 Smallest Difference--全排列next_permutation()的应用文章标题
- 1.12.ARM的异常处理方式简单介绍
- 一:基本数据类型
- 如何用php截取文章的一段话以及第一个图片
- 微笑---面对所遭遇的一切
- iOS 百度地图~申请key及下载流程
- 树状数组
- MySQL基本函数介绍
- 从汇编视角看函数调用
- Partitioning by Palindromes UVA