TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)

时间:2021-02-03 00:18:49

C66x DSP执行中断的简要流程:

1、使能了全局中断和子中断,如果硬件检测到中断发生,那么CPU就要跳转。

2、软件把CPU内部的A,B类寄存器的值等推入堆栈保存,把当前PC寄存器的值放入IRP寄存器中以备中断返回能找到当前被打断的位置。

3、CPUPC指针读出中断向量表的地址,也就是把“ISTP寄存器的ISTB值+子中断向量偏移量”装入PC寄存器,这样就执行跳转。

4、在中断向量表里一般有就用跳转指令,这样就可以跳转到我们用C语言编写的中断服务子程序中。由于我们在一般的中断服务子程序函数前面加入了interrupt关键字。那么编译器就会在函数返回的语句改成B IRP(B是跳转指令),这样就把IRP/NRP的值送给PC寄存器。(中断服务)

5、CPU在执行跳转之前会把堆栈中以前保存的那些值出栈到自己的相应的寄存器中。

 

Table 6-2 lists the interrupt control registers on the CPU:

TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)