中断异常处理流程

计算机体系结构中,异常或者中断是处理系统中突发事件的一种机制,几乎所有的处理器都提供这种机制。异常主要是从处理器被动接受的角度出发的一种描述,指意外操作引起的异常。而中断则带有向处理器主动申请的意味。

计算机体系结构中,异常或者中断是处理系统中突发事件的一种机制,几乎所有的 处理器都提供这种机制。异常主要是从处理器被动接受的角度出发的一种描述,指意外操作 引起的异常。而中断则带有向处理器主动申请的意味。但这两种情况具有一定的共性,都是 “” 请求处理器打断正常的程序执行流程,进入特定程序的一种机制。若无特别说明,对异常 “”ARM9 和中断都不作严格的区分。本文结合经过实际验证的代码对中断处理流程进行分 S3C2410 析,并设计出基于芯片的外部中断处理程序。 1. 异常中断响应和返回 ARM 系统运行时,异常可能会随时发生。当一个异常出现以后,微处理器会执行以 下几步操作: 1)LR 将下一条指令的地址存入相应连接寄存器,以便程序在处理异常返回时能从 正确的位置重新开始执行。 2)CPSRSPSR 将复制到相应的中。 3)CPSR 根据异常类型,强制设置的运行模式位。 4)PC 强制从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处 理程序处。 ARM,ARM 这些工作是由内核完成的不需要用户程序参与。异常处理完毕之后, 微处理器会执行以下几步操作从异常返回: 1)LRPC 将连接寄存器的值减去相应的偏移量后送到中。 2)SPSRCPSR 将复制回中。 3) 若在进入异常处理时设置了中断禁止位,要在此清除。 ARM 这些工作必须由用户在中断处理函数中实现。为保证在处理器发生异常时不 至于处于未知状态,在应用程序的设计中,首先要进行异常处理。采用的方式是在异常向量 ARM 表中的特定位置放置一条跳转指令,跳转到异常处理程序。当处理器发生异常时,程 PC 序计数器会被强制设置为对应的异常向量,从而跳转到异常处理程序。当异常处理完成 以后,返回到主程序继续执行。可以认为应用程序总是从复位异常处理程序开始执行的,因 此复位异常处理程序不需要返回。 2. 异常处理程序设计 2.1 异常响应流程

腾讯文库中断异常处理流程