Acknowledging Interrupts (Acking)
4-6
4.3
Acknowledging Interrupts (Acking)
The ThunderLAN controllers have been designed to minimize the code neces-
sary to acknowledge interrupts. This is accomplished by matching the
HOST_INT register’s bits to the corresponding bits in the HOST_CMD regis-
ter. Also, the HOST_INT’s two LSBs are set to 0 so that it forms a table-offset
vector, which can be used in a jump table. This allows for quick branching to
the appropriate interrupt service routine.
To acknowledge interrupts:
-
Disable all interrupts.
-
Create a jump vector from the value read in HOST_INT.
-
Use a jump table or a conditional branch structure to branch to the ISR.
-
Execute the appropriate commands for the particular interrupt.
-
Load the Ack_Count register with the number of interrupts to be acknowl-
edged. This is useful if several EOF interrupts are acknowledged at once.
-
Write to
HOST_CMD. You may assert the GO bit (Ack and GO com-
mands), if desired.
Interrupts can be disabled by writing to the HOST_INT register. One quick and
easy way of doing this is by writing the contents of HOST_INT back after read-
ing it at the start of the interrupt routine.
A jump table contains the starting address of the individual interrupt routines.
Offsets to this table can be easily created from the HOST_INT
vector read. It
may be necessary to shift the vector read in order to factor out bits 1 and 0
(They are read as 0 always). Using this table or a conditional branching struc-
ture, the appropriate jump to the interrupt routine is easy to find.
The interrupt routine that is branched to performs the commands for the inter-
rupt call. In some cases, this involves loading Ack_Count with a value greater
than 1. This is particularly true when acknowledging Tx EOF with the Ld_Thr
register loaded.
To acknowledge the interrupt, write the HOST_INT vector into HOST_CMD.
The bit values in HOST_INT have a one-to-one correspondence with
HOST_CMD. This simplifies the driver code and saves programming time. In-
terrupts should be reenabled when exiting the interrupt routine. Acknowledg-
ing interrupts to HOST_INT achieves this goal.
Summary of Contents for ThunderLAN TNETE100A
Page 2: ...Printed in U S A October 1996 L411001 9761 revisionA SPWU013A ...
Page 3: ......
Page 17: ...xiv ...
Page 23: ...1 6 ...
Page 67: ...3 10 ...
Page 81: ...4 14 ...
Page 113: ...7 10 ...
Page 165: ...A 52 ...
Page 179: ...C 2 ...