为什么无论何时查看ISTP寄存器,其HPEINT位域总是0呢??当进入中断后在清除事件以及中断挂起之前去查看ISTP,其HPEINT位域不应该是当前处理的中断号吗??下面是手册中关于ISTP的描述:
The interrupt service table pointer register (ISTP) is used to locate the interrupt service routine (ISR). The ISTB field identifies the base portion of the address of the interrupt service table (IST) and the HPEINT field identifies the specific interrupt and locates the specific fetch packet within the IST.
Table 2-15. Interrupt Service Table Pointer Register (ISTP) Field Descriptions
Bit Field Value Description
31-10 ISTB 0-3FFFFFh Interrupt service table base portion of the IST address. This field is cleared to a device-specific
default value on reset; therefore, upon startup the IST must reside at this specific address. See
the device-specific data manual for more information. After reset, you can relocate the IST by
writing a new value to ISTB. If relocated, the first ISFP (corresponding to RESET) is never
executed via interrupt processing, because reset clears the ISTB to its default value. See
Example 5-1.
9-5 HPEINT 0-1Fh Highest priority enabled interrupt that is currently pending. This field indicates the number
(related bit position in the IFR) of the highest priority interrupt (as defined in Table 5-1) that is
enabled by its bit in the IER. Thus, the ISTP can be used for manual branches to the highest
priority enabled interrupt. If no interrupt is pending and enabled, HPEINT contains the value 0.
The corresponding interrupt need not be enabled by NMIE (unless it is NMI) or by GIE.
4-0 0 0 Cleared to 0 (fetch packets must be aligned on 8-word (32-byte) boundaries).