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为了支持多个中断,还会提供二级中断向量表,处理方式和一级向量表类似。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 血糖偏高怎么办雅培益力佳SR 投诉电话打不通怎么办 宝宝换奶粉拉肚子怎么办 微店没有客源怎么办 itunes文件被保护怎么办 魅族e1黑屏了怎么办 窗帘打孔的扣环怎么办 棉质裤子掉色怎么办 孕期喝咖啡了怎么办 实体店买到假手机怎么办 派派提现没有那么多好友怎么办 派派提现没有支付宝怎么办 电脑电源不够用怎么办 电脑电源不够会怎么办 中行信用卡异常了怎么办 美借还款后秒拒怎么办 海尔空调关不了怎么办 华为p9无服务怎么办 贝贝买到假货怎么办 京东不予退货怎么办? 咸鱼收到货不对怎么办 闲鱼没收到货怎么办 淘宝购物不到货怎么办 百世快递不派送怎么办 圆通快递不派送怎么办 无卡存款没到账怎么办 中国银行分行冻结信用卡怎么办 银行信用卡没还怎么办 免税店提货单丢了怎么办 店长故意整我怎么办 被康妆大道骗了怎么办 银座卡丢了怎么办 银座消费卡丢失怎么办 天津欠债不还怎么办 苹果x买到假的怎么办 网贷到我们家要钱怎么办? 网贷上门要钱怎么办 红酒盖子岂不开怎么办 小程序尚未发布怎么办 魔域9星爆满怎么办 没有顾客进店怎么办