JZ2440开发板之中断体系

ARM架构的CPU有7种工作模式:

1. 用户模式--usr

2. 管理模式--svc

3. 系统模式--sys

4. 快中断模式--fiq

5. 中断模式--irq

6. 数据访问终止模式--abt

7. 未定义指令终止模式--und

ARM架构的CPU有2种工作状态:

1. ARM状态--处理器执行32位的字对齐的ARM指令

2. Thumb状态--处理器执行16位的半字对齐的Thumb指令

ARM架构的CPU的寄存器:

1. ARM有31个通用的32位寄存器和6个状态寄存器

2. 每种ARM工作模式下都有16个通用寄存器和一个或两个程序状态寄存器

3. CPSR--程序状态寄存器,当前工作在什么模式下

4. SPSR--程序状态保存寄存器,保存前一个工作模式的CPSR寄存器的值

S3C2410/S3C2440中断控制器

1. 中断方式:发生中断时,会设置相应的寄存器;CPU在每执行完一条指令后就去检查这个寄存器,如果法相寄存器被设置,就去执行相应的中断。

有两种中断源:

1. with sub-register  发生中断后,SUBSRCPND寄存器的某些位被置1,如果相应位没有在INTSUBMSK寄存器中被屏蔽的话,SRCPND寄存器中的相应位也会被置1,如果相应位的INTMSK寄存器没有被屏蔽的话,会被进一步处理,选出优先级高的,并将此中断在INTPND寄存器中的相应位置1,然后CPU进入中断模式进行处理。

2. without sub-register  发生中断后,SRCPND寄存器中的相应位也会被置1,如果相应位的INTMSK寄存器没有被屏蔽的话,会被进一步处理,选出优先级高的,并将此中断在INTPND寄存器中的相应位置1,然后CPU进入中断模式进行处理。

用户可以通过读取INTPND或者INTOFFSET寄存器,来确定是哪种中断。

原文地址:https://www.cnblogs.com/bkyysd/p/4188593.html