【原创】TI C2833x介绍---复位与中断(13)
0赞中断的响应需要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,高有效字