dsp
计时器中断方式实验报告
通信0203班kddbg 02211272
一.中断初始化和服务程序的编制
5402DSP中断大致分为两类,一类是可断开的中断,是可以通过软件断开或释放的硬件和软件中断。 5402有INT3 ~INT0(外部中断)、BRINT0、BXINT0)、TRINT、TXINTW )、TINT )、计时器中断)、HPint )、HPI中断)。
另一个是非屏蔽中断。 这些中断不能屏蔽。 包括所有软件中断以及两个外部中断RS和NMI中断。
5402 DSP有两个与中断相关的寄存器。 中断屏蔽寄存器IMR和中断标志寄存器IFR。 这些都是存储器图像寄存器(MMR ),IMR定义可屏蔽的硬件中断,并且如果存在IMR的位置1,允许相应的中断。 IFR指示是否出现中断,如果位于IFR的某个位置1,则指示出现了相应的中断,并且在处理中断之前中断标志不会清除为0。 中断标志有C54X复位和C54X复位4种。 中断由中断服务程序处理,常用于中断方式; 将1写入IFR的相应位,常用于检索方式; 使用适当的中断号码运行INTR命令。
因此,进行中断初始化时一般的中断初始化是清除中断标志寄存器IFR的中断标志,将中断屏蔽寄存器IMR的对应的屏蔽位设定为1,释放对应的中断,在INTM=0时全部屏蔽例如,在本实验中开放外部中断1的情况下,制作c语言中断程序如下。
voidinterrupt_init(void ) )。
{
IFR|=0x0ffff; //清除中断标志寄存器
IMR|=0x0002; //开放外部中断1
自动取款机(rsbx intm ); //打开所有可以断开的中断
}
C54X处理中断分为三个阶段:
第一阶段:接受终端的请求,IFR中的相应中断标志位置1
第2阶段:对于软件中断和非屏蔽中断,CPU会立即响应。 对于可屏蔽中断,只有满足一些条件才能响应。
优先级最高(同时发生多个中断时) ) ) ) ) )。
状态寄存器ST1的INTM位为0
中断屏蔽寄存器IMR相应位为1
如果CPU对中断作出响应,则使PC移动到适当的地址来取出中断矢量,输出中断响应信号IACK,并清除相应的中断标志
阶段3 ) CPU在中断向量中执行预定义的跳转指令,跳转到中断服务程序的执行
PC存储在数据存储堆栈的堆栈顶部
将中断向量地址加载到PC中
执行分支转移指令,跳转到中断服务程序
运行中断服务程序
中断,从堆栈顶弹出返回地址到PC
继续运行被中断的程序
用c语言编写中断服务程序时,请在普通函数前面加上关键字interrupt。 例如,写入外部中断1时为interruptvoidint1_ISR{}。 其他,中断服务程序的创建方法与一般的c语言程序相同。