Datasheet

CHAPTER 16 FLASH MEMORY
User’s Manual U18172EJ3V0UD
272
CMP A,#00H
BNZ $StatusError ; Checks blank check error
; Performs abnormal termination processing when an error occurs
CALL !ModeOff ; Shift to normal mode
BR StatusNormal
RetryCheck:
DBNZ B,$EraseRetry
;---------------------------------------------------------------------
;END (abnormal termination processing); Perform processing to shift to
normal mode in order to return to normal processing
;---------------------------------------------------------------------
StatusError:
;---------------------------------------------------------------------
;END (normal termination processing)
;---------------------------------------------------------------------
StatusNormal:
;---------------------------------------------------------------------
;Processing to shift to self programming mode
;---------------------------------------------------------------------
ModeOn:
MOV MK0,#11111111B ; Masks all interrupts
MOV FLCMD,#00H ; Clears FLCMD register
DI
ModeOnLoop: ; Configure settings so that the CPU clock 1 MHz
MOV PFS,#00H ; Clears flash status register
MOV PFCMD,#0A5H ; PFCMD register control
MOV FLPMC,#01H ; FLPMC register control (sets value)
MOV FLPMC,#0FEH ; FLPMC register control (inverts set value)
MOV FLPMC,#01H ; Sets self programming mode via FLPMC register control (sets
; value)
NOP
HALT
BT PFS.0,$ModeOnLoop ; Checks completion of write to specific registers
; Repeats the same processing when an error occurs.
RET
<R>