Maxim Integrated Ultra-High-Speed Flash Microcontroller User Manual

Page 152

Advertising
background image

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

Advertising