zoukankan      html  css  js  c++  java
  • 中断和异常

    1 检测事件发生的方式:轮询方式和中断方式

    2 S3C2440异常中断系统框图

          

    中断是异常的一种。

    ARM处理器不同模式间的切换:

    a、在特权级(非用户模式)的运行模式下,可以通过修改程序状态寄存器CPSR的模式控制位,切换运行模式。

    b、通过异常处理过程进行运行模式切换。

    注意,用户模式下,不能直接进行处理器模式的切换,需要通过产生异常处理,在异常处理过程中,进行处理器运行模式的切换。

    3 ARM寄存器

    未备份寄存器:模式间共用。

    备份寄存器:某模式下专有。

    对程序计数器PC的值的理解:

    PC指向对于读取级的指令地址,而不是处于执行级的指令地址,根据流水线深度的的不同,相对于当前指令地址,PC的偏移量也不相同。下面以ARM架构,3级流水线为例说明:

    ARM指令占据的空间为4个字节,因此在执行MOV指令时,

    PC值 = 当前执行级指令地址 + 8

    4 异常向量表

    CPU每执行完一条指令,都会检测有无异常中断产生,当程序运行出现异常的的时候,程序会跳转到相应的异常向量地址,执行异常处理操作,异常向量地址跟芯片的设计有关,这个跳转的过程是CPU强制执行的;但是异常处理是由用户通过代码实现的,可以在向量表定义的地址上,放置一个跳转指令,实现用户自定义的异常处理功能。

    5 异常中断响应过程

    6 异常中断处理流程 

     

    7 S3C2440中断控制器的相关寄存器描述

     

    8 printfException

    9 und异常处理示例代码

    10 swi异常处理示例代码

    11 irq异常处理示例代码

  • 相关阅读:
    小白简单留言板(2)-将表单信息输入数据库
    小白简单留言板(1)-页面设置等
    HTMLCSS学习
    golang函数调用计时
    iOS中堆和栈的区别
    UIButton的继承链
    TCP三次握手
    iOS 控制任务执行顺序
    将NSNumber转成字符串,为什么.0丢失
    HTTP状态码
  • 原文地址:https://www.cnblogs.com/lilto/p/10967638.html
Copyright © 2011-2022 走看看