zoukankan      html  css  js  c++  java
  • 异常处理学习笔记


    ARM处理器的工作模式

    用户模式 user

    快速中断模式 FIQ

    处部中断模式 IRQ

    特权模式supervisor

    数据访问中止模式 abort

    未定义指令中止模式 undefined

    系统模式 system

    一上电,cpu处于supervisor (svc管理模式)

    发生中断,cpu进入RIQ(外部中断模式)

       R13,R14切换到自已的R13R14R13-irq,R14-irq

       跳转到0x18处执行

    碰到一条机器码,cpu不认识,cpu进入undefined(未定义指令中止)模式

      R13,R14切换到自已的R13R14R13-und,R14-und

       跳转到0x4执行

    当程序执行 swi #val ,cpu会进入SVC模式

       .R13,R14切换到自已的R13R14R13-svc,R14-svc

       跳转到0x8处执行

    swi异常处理硬件所作工作:

     1 cpu进入svc模式

     2 cpsr内容复制到spsr_svc

     3 R13,R14切换R13_svc,R14_svc

     4 下一条指令保存到R14_svc

     5 跳转到0x8t处执行 

    软件所作工作:

     1 在地址8处放一条跳转指令

     2 保存现场

     3 处理异常

     4 恢复现场

    Swi 应用场景:

      如果应用中用到open read write等函数

       相当于用户发出一条swi #val的指令

       内核根扰val调用相应的函数(sys_open/sys_read)

    未定义指令应用场景:

      一般用于调试程序

      在程序中添加未定义指令,在异常处理中作相应操作

  • 相关阅读:
    大道至简阅读笔记08-完结
    (转)MySQL的JDBC驱动源码解析
    Win7如何开启Telnet服务
    idea 设置jetty进程jvm参数
    (转)如何在maven环境中设置JVM参数
    (转)IntelliJ Idea 常用快捷键列表 for win
    cglib Demo
    MAVEN 配置阿里巴巴镜像
    MyBatis入门基础(一)
    JAVA常见面试题之Forward和Redirect的区别
  • 原文地址:https://www.cnblogs.com/retacn-yue/p/3263103.html
Copyright © 2011-2022 走看看