中断服务表指针ISTP(Interrupt Service Table Pointer)位置寄存器用于定位的中断服务例程,那ISTP去哪里找要运行的程序,ISTP(当中的ISTB字段)就是指向IST表的寄存器。ISTP中的一个字段ISTB确定IST的地址基数部分。还有一个字段HPEINT确定特定的中断并定位特定的取指包在IST中的位置。图6-4所看到的为ISTP的各字段。表6-2描写叙述了各字段及其怎样使用。
下图为ISTP寄存器,bit 0~4必须设置为0,即IST表的起始地址或者说获取包必须是32字节对齐。
ISTB域表示IST地址的中断服务表基地址。
该字段在复位时为默认值0地址。因此,在启动时,IST必须置于该0地址处,由于复位RESET时。系统必需要从RESET的vector处运行。即从地址0处開始运行,然后跳转到bootloader程序运行(RESET中断的ISR)。
但复位后,能够向ISTB写入新的值来重定位IST。假设又一次定位,则第一个ISFP(相应于RESET中断)将从不被运行,由于复位使ISTB置为0。
HPEINT字段给定当前IER中使能的最高优先级中断号(与IFR相关位的位置相关),即当前pending的而且在IER中使能的最高优先级的中断号,这样。ISTP就能够用于手动的跳转到*的使能的中断(通过ISTP的值加上最高优先级中断在IST中的偏移。就能够得到对应的vector地址)。假设没有挂起和使能的中断。HPEINT的值为0000b。这个对应的中断不须要靠NMIE(除非NMI)或GIE来使能。