2008-3-8 中断标志寄存器IFR,由CPU内核控制,一旦中断被响应,IFR会被CPU自动清除(除INTR指令引起的中断外),不需要人工干预。 IFR中断标志寄存器只有INT1~INT6,那上面说的是用INTR引起外部中断,那时就需要人工干预了?引起的中断如何执行? 无法观察到IFR的变化,其一直为0,可能是有置1,只是中断响应又把它清0了。那上述所说的除外情况是怎样的情况呢。 用INTR进外部中断时,不可屏蔽,即IMR对其无影响。IMR只是屏蔽对外部中断源的响应。 CMD文件里可以用/* */来注释,其它的汇编的文件,如.ASM、.H文件就只能用;来注释。
外部中断XINT1、XINT2。外部中断输入引脚必须至少被拉低或拉高5或11个CLKOUT时钟周期才被认为是有效的中断请求输入,这由SCSR2中的I/O QUAL位决定。
每一个外设中断都有三个屏蔽位:INTM、INTn、各自的屏蔽位。两个中断请求标志位:IFR、PIRQR0~2、各自的中断请求标志位。 2008-3-10 中断被响应后,CUP级IFR中相应中断标志位自动清零,外部中断的XINT1/2的外设级中断标志位也会自动被清零;但片内外设(包括事件管理中断和系统模块中断)中断被响应后不会自动清0,需要用户对其进行写1清0。 通过INTR指令来请求中断时,CPU不会清除IFR中的位。但仿真时观察IFR值一直为0? 通过INTR指令来请求外设中断时,不会装PIVR外设中断向量,PIVR默认的0000装入。 INTM在硬件中断被响应时自动置1,因此在中断服务程序返回时一定要重新开中断。如果要实现中断嵌套,可以在中断服务程序中开放中断。
查看是否有可屏蔽中断发出请求,应看其标志位而不是PIRQR0~2。
中断有两个中断向量:CPU中断向量(即0~40H地址的向量表)和外设中断向量PIV。
参考:中断向量表(文档)下载链接:http://www.hellodsp.com/bbs/attachment.php?aid=2687&k=10e1536af78fa6693d484829652058f5&t=1217815922 转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=8436
|