ADUC7026的ARM中断系统介绍
0赞ADuC7026以ARM7TDMI作为微控制器内核。ARM7TDMI共定义了7种工作模式,在本章主要涉及的有:
(1)用户模式,即程序正常运行时的模式
(2)快速中断模式,即处理器响应快速中断而进入的模式
(3)常规中断模式,即中断模式处理器响应常规中断而进入的模式
(3)监督模式,即操作系统的保护模式,处理器响应软件中断时即进入监督模式
ARM7TDMI具有常规中断(IRQ)、快速中断(FIQ)和软件中断(Software Interrupt)三种中断方式,其中常规中断和快中断均属于硬件中断。其中断特性如表6-1所示。
表6-1 ARM7TDMI中断特性表
|
向量地址 |
中断类型 |
工作模式 |
优先级 |
返回地址 |
|
0x8 |
软件中断 |
SWI模式 |
6 |
PC-4 |
|
0x18 |
常规中断 |
IRQ模式 |
4 |
PC-8 |
|
0x1C |
快速中断 |
FIQ模式 |
3 |
PC-8 |
ARM7TDMI的CPU内核在同一时刻只接受常规中断请求IRQ和快速中断请求FIQ两种类型信号中的一种。所有的中断都能被独立屏蔽。
当中断产生时,ARM7TDMI将执行以下操作:
(1)把当前程序状态寄存器(CPSR)的内容拷贝到相应的备份程序状态寄存器(SPSR)。当前工作模式、中断屏蔽位和状态标志被保存下来;
(2)转入相应的模式,并关闭常规中断。如响应快速中断则同时关闭快速中断;
(3)把程序计数器(PC)的值减4后,存入相应的连接寄存器(LR);
(4)将程序计数器指向相应的中断向量。
由中断返回时,ARM7TDMI将完成下列操作:
(1)将备份程序状态寄存器(SPSR )的内容拷贝到当前程序状态寄存器(CPSR),恢复中断前的状态;
(2)清除相应禁止中断位(如果已设置的话);
(3)把连接寄存器(LR)的值拷贝到程序计数器(PC),继续运行原程序。
此外,执行ARM体系结构的中断过程时还需注意:响应中断时,必须转换处理器的工作模式,由任务所处模式转换到中断模式;退出中断处理函数时,必须计算返回地址且转换处理器模式,回到任务模式;使用C语言调用中断处理函数时,必须按照ATPCS (ARM/Thumb Procedure Call Standard)处理寄存器。
ARM的中断都位于存储阵列的底部,地址从0x00000000到0x00000020。如图6-1所示:

