Maxim Integrated Ultra-High-Speed Flash Microcontroller User Manual
Page 152

13-4
Ultra-High-Speed Flash
Microcontroller User’s Guide
A transient occurs while the op code is being fetched for the first instruction. The transient causes 1 bit of the op code in the first instruc-
tion to be read as a 0 instead of 1. The resulting program is what the microcontroller would actually execute:
TABLE_READ:
C2D2 80 0A 00
SJMP
0BH
;RELATIVE JUMP BY 10 LOCATIONS
C2D5 79 FF
MOV
R1, #0FFH
;LOAD COUNTER
C2D7 78 90
MOV
R0, #90H
;DESTINATION POINTER
LOOP:
C2D9 E0
MOVX
A, @DPTR
;READ DATA BYTE
C2DA F6
MOV
@R0, A
;STORE IT IN RAM
C2DB 06
INC
R0
;NEXT TABLE LOCATION
C2DC A3
INC
DPTR
;NEXT DATA VALUE
C2DD D9 C2 D9
DJNZ
R1, LOOP
;NEXT BYTE OR DONE ?
The resulting jump is to address C2DE. This is not even a real op code, but would be treated as such. The resulting fetch is the value
C2 D9. This is the op code for CLR D9h. The bit-addressable location D9h corresponds to the EWT. If the timed-access procedure did
not prevent it, this errant instruction would disable the watchdog. Note that the program execution is completely lost now. Real op
codes are being replaced by operands, data, and garbage. In the ultra-high-speed microcontroller, the watchdog recovers from this
state as soon as it times out, since it could not have been disabled in this way.
In the ultra-high-speed microcontroller it is very hard to contrive a situation that accidentally disables the watchdog. Note, the timed
access prevents accidentally writing a bit. It can not prevent accidentally calling the correct code that writes a bit. This is much more
unlikely, however.
Maxim Integrated