Using The Tijmp Instruction To Reduce Interrupt Service Overhead - Intel 8XC196K Series User Manual

Table of Contents

Advertisement

10.8.1 Using the TIJMP Instruction to Reduce Interrupt Service Overhead

The EPAIPV register and the TIJMP instruction can be used together to reduce the interrupt ser-
vice overhead. The primary purpose of the TIJMP instruction is to reduce the interrupt response
time associated with servicing multiplexed interrupts. With TIJMP, the additional time required
to service interrupts is only the instruction time, 15 states. (See Appendix A for additional infor-
mation about TIJMP.)
The format for the TIJMP instruction is TIJMP tbase,[index],#index_mask
where:
tbase
[index]
#index_mask
TIJMP calculates the destination address as follows:
( [index] AND #index_mask ) × 2 + tbase
To use the TIJMP instruction in this application, you would create a jump table with 21 destina-
tion addresses; one for each of the 20 EPA interrupt sources and one for the return.
The following code is a simplified example of an interrupt service routine that uses the EPAIPV
register with the TIJMP instruction to service an EPAx interrupt. This routine services all active
interrupts in the EPA in order of their priority. The TIJMP instruction calculates an offset to fetch
a word from a jump table (JTBASE in this example) which contains the start addresses of the in-
terrupt service routines.
is a word register containing the 16-bit starting address of the jump
table.
is a word register containing a 16-bit address that points to a register
that contains a 7-bit value used to calculate the offset into the jump
table.
is 7-bit immediate data to mask the index. This value is ANDed with
the 7-bit value pointed to by [index] and multiplies the result by two
to determine the offset into the jump table.
EVENT PROCESSOR ARRAY (EPA)
10-31

Advertisement

Table of Contents
loading

Table of Contents