中断体系结构

时间:2021-03-19 19:08:25

一、S3C2440中断体系结构

1.1 ARM体系CPU的7中工作模式

ARM体系的CPU以下7种工作模式

1、用户模式:ARM处理器正常的程序执行状态

2、快速中断模式:用于高速数据传输或通道处理

3、中断模式:用于通用的中断处理

4、管理模式:操作系统使用的保护模式

5、数据访问终止模式:当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护

6、系统模式:运行具有特权的操作系统任务

7、未定义指令种植模式:党委定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真

 

  可以通过软件来进行模式切换,或者发生各类中断,异常时CPU自动进入相应的模式。处用户模式外,其他6种工作都属于特权模式,大多数程序运行于用户模式,进入特权模式为了处理中断,异常或者访问被保护的系统资源。

  r0~r15可以直接访问,这些寄存器中除r15外都是通用寄存器,即他们既可以用于保存数据也可以用于保存地址。另外,r13~r15稍有特殊。r13又被称为栈指针寄存器,通常被用于保存栈指针。r14又被称为程序链接寄存器或连接寄存器。当执行BL子程序调用指令时,r14中得到r15的备份。而当发生中断或异常时,对应的r14_svc,r14_irq,r14_abt或r14_und中保存r15的返回值。r15是程序计数器。

  每种工作模式除r0~r15共有16个寄存器外,还有第17个寄存器CPSR,即“当前程序状态寄存器”,CPSR中一些被用于标识各种状态,一些位被用于标志当前处于什么工作模式。

  当一个异常发生时,将切换进入想用的工作模式,这是ARM920T CPU和将自动完成如下事情:

  1、在一场工作模式的链接寄存器r14中保存前一个工作模式的吓一跳,即将执行的指令的地址。对于ARM状态,这个值是当前PC值加4或加8.

  2、将CPSR的值复制到异常模式的SPSR。

  3、将CPSR的工作模式位设为这个异常对应的工作模式。

  4、令PC值等于这个异常模式向量表中的地址,即跳转去执行异常向量表中的相应指令。

  相反的,从异常工作模式退出回到之前的工作模式时,需要通过软件完成如下事情。

  1、前面进入异常工作模式时,连接寄存器中保存了前一工作模式的一个指令地址,将它减去一个适当的值后赋给PC寄存器。

  2、将SPSR的值复制回CPSR