English
Language : 

COP8SGE5_14 Datasheet, PDF (50/82 Pages) Texas Instruments – COP8SG Family 8-Bit CMOS ROM Based and OTP Microcontrollers with 8k to 32k Memory, Two Comparators and USART
COP8SGE5, COP8SGE7, COP8SGH5
COP8SGK5, COP8SGR5, COP8SGR7
SNOS516E – JANUARY 2000 – REVISED APRIL 2013
.
.
JP INT_EXIT
; Return, set the GIE bit
www.ti.com
NON-MASKABLE INTERRUPT
Pending Flag
There is a pending flag bit associated with the non-maskable interrupt, called STPND. This pending flag is not
memory-mapped and cannot be accessed directly by the software.
The pending flag is reset to zero when a device Reset occurs. When the non-maskable interrupt occurs, the
associated pending bit is set to 1. The interrupt service routine should contain an RPND instruction to reset the
pending flag to zero. The RPND instruction always resets the STPND flag.
Software Trap
The Software Trap is a special kind of non-maskable interrupt which occurs when the INTR instruction (used to
acknowledge interrupts) is fetched from program memory and placed in the instruction register. This can happen
in a variety of ways, usually because of an error condition. Some examples of causes are listed below.
If the program counter incorrectly points to a memory location beyond the available program memory space, the
non-existent or unused memory location returns zeroes which is interpreted as the INTR instruction.
If the stack is popped beyond the allowed limit (address 06F Hex), a 7FFF will be loaded into the PC, if this last
location in program memory is unprogrammed or unavailable, a Software Trap will be triggered.
A Software Trap can be triggered by a temporary hardware condition such as a brownout or power supply glitch.
The Software Trap has the highest priority of all interrupts. When a Software Trap occurs, the STPND bit is set.
The GIE bit is not affected and the pending bit (not accessible by the user) is used to inhibit other interrupts and
to direct the program to the ST service routine with the VIS instruction. Nothing can interrupt a Software Trap
service routine except for another Software Trap. The STPND can be reset only by the RPND instruction or a
chip Reset.
The Software Trap indicates an unusual or unknown error condition. Generally, returning to normal execution at
the point where the Software Trap occurred cannot be done reliably. Therefore, the Software Trap service routine
should reinitialize the stack pointer and perform a recovery procedure that restarts the software at some known
point, similar to a device Reset, but not necessarily performing all the same functions as a device Reset. The
routine must also execute the RPND instruction to reset the STPND flag. Otherwise, all other interrupts will be
locked out. To the extent possible, the interrupt routine should record or indicate the context of the device so that
the cause of the Software Trap can be determined.
If the user wishes to return to normal execution from the point at which the Software Trap was triggered, the user
must first execute RPND, followed by RETSK rather than RETI or RET. This is because the return address
stored on the stack is the address of the INTR instruction that triggered the interrupt. The program must skip that
instruction in order to proceed with the next one. Otherwise, an infinite loop of Software Traps and returns will
occur.
Programming a return to normal execution requires careful consideration. If the Software Trap routine is
interrupted by another Software Trap, the RPND instruction in the service routine for the second Software Trap
will reset the STPND flag; upon return to the first Software Trap routine, the STPND flag will have the wrong
state. This will allow maskable interrupts to be acknowledged during the servicing of the first Software Trap. To
avoid problems such as this, the user program should contain the Software Trap routine to perform a recovery
procedure rather than a return to normal execution.
Under normal conditions, the STPND flag is reset by a RPND instruction in the Software Trap service routine. If a
programming error or hardware condition (brownout, power supply glitch, etc.) sets the STPND flag without
providing a way for it to be cleared, all other interrupts will be locked out. To alleviate this condition, the user can
use extra RPND instructions in the main program and in the WATCHDOG service routine (if present). There is
no harm in executing extra RPND instructions in these parts of the program.
50
Submit Documentation Feedback
Copyright © 2000–2013, Texas Instruments Incorporated
Product Folder Links: COP8SGE5 COP8SGE7 COP8SGH5 COP8SGK5 COP8SGR5 COP8SGR7