ISFP是服务中断的指令包,创建ISR的三种情况:
1。一个ISFP包的8条指令就能够满足ISR
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWl5ZWd1emhvdTEwMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">
2,ISR能够占用多个连续的ISFP(前提是以下的中断没有使用)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWl5ZWd1emhvdTEwMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">
3,ISR位于IST之外
上述图中。B IRP表示从可屏蔽中断(INT4~15)中返回(从ISR返回或者从ISFP中返回)的指令。由于B指令有5个cycle的延迟。所以在B跳转指令后加上5个NOP指令,目的是防止CPU运行到其它的程序。如在第一张图中。假设B IRP后面的指令是单cycle指令(如NOP 1),那么CPU会在运行完INT6的ISFP的前4条指令后,才会真正的跳转到IRP地址处的指令,这是不同意的。由于运行INT6前4条指令的后果是不可预測的。
所以B IRP指令后面应该加NOP 5或者5条单cycle指令。