我的DSP之路——关于中断
复制内容到剪贴板代码:
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。
1楼
0
0
回复
复制内容到剪贴板代码:
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。