paradoxfx

【原创】TI C2833x介绍---复位与中断(13)

0
阅读(2532)

 

中断的响应需要CPU的硬件操作,显然要经过多步操作是无法在一个时钟周期内完成的,所以就存在一定的延时。

首先看一下CPU处理中断时进行的操作;这里的前提是中断配置正确且正确触发,中断标志位已经置位、需要CPU做出响应了。

CPU的动作

描述

寄存器压入堆栈

14个寄存器字被自动保存

IFR位写入0

清除相应的IFR位

IER位写入0

清除相应的IER位

INTM/DBGM位写入1

禁止全局的中断/调试事件

写中断向量到程序计数器PC

PC跳转到中断向量的地址

清除其余相关的状态位

包括LOOP, EALLOW, IDLESTAT

其中,第一步所说的14个CPU寄存器字指的是(具体的CPU寄存器含义可以在《TMS320C28x

CPU and Instruction Set Reference Guide》即SPRU430E文档中找到,在不用汇编编程的情况下一般了解其大概含义即可):

1.      T:被乘数寄存器XT的高16位

2.      ST0:CPU状态寄存器0

3.      ST1:CPU状态寄存器1

4.      AH 、AL:CPU累加寄存器ACC的高、低16位

5.      PH、PL:CPU乘法寄存器P的高、低16位

6.      AR1:CPU辅助寄存器XAR1的低16位

7.      AR0:CPU辅助寄存器XAR0的低16位

8.      DP:数据页的指针

9.      DBGSTAT:调试状态寄存器,这些带有DBG,即debug相关的,一般都与仿真器运行的工况有关。

10.    IER:中断使能寄存器

11.    PC(msw) PC(lsw):程序计数器的高、低有效字

其中,这里面出了PC寄存器为22位,XAR0、DP、IER、IFR、SP、ST0、ST1为16位外,其余的寄存器都为32位。

 

补充一下几个有用的缩写:

LSb:Least Significant bit,低有效位

LSB:Least Significant Bytet,低有效字节

LSW:Least Significant Wordt,低有效字

MSb:Most Significant bit,高有效位

MSB:Most Significant Byte,高有效字节

MSW:Most Significant Word,高有效字