CHAPTER 16 FLASH MEMORY
User’s Manual U18172EJ2V0UD
260
CALL
!ModeOff
; Shift to normal mode
BR StatusNormal
;---------------------------------------------------------------------
;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
;---------------------------------------------------------------------
; Processing to shift to normal mode
;---------------------------------------------------------------------
ModeOffLoop:
MOV
FLCMD,#00H
; Clears FLCMD register
MOV
PFS,#00H
; Clears flash status register
MOV
PFCMD,#0A5H
; PFCMD register control