Datasheet

CHAPTER 16 FLASH MEMORY
User’s Manual U18172EJ3V0UD
252
An example of a program that performs a block erase in self programming mode is shown below.
;----------------------------
;START
;----------------------------
MOV B,#48 ; Specifies the number of times the erase command can be
; executed.
; (4.0 V to 5.5 V Time for executing block erasure 100 times)
FlashBlockErase:
MOV FLCMD,#03H ; Sets flash control command (block erase)
MOV FLAPH,#07H ; Sets number of block to be erased (block 7 is specified here)
MOV FLAPL,#00H ; Fixes FLAPL to “00H”
MOV FLAPHC,#07H ; Sets erase block compare number (same value as that of FLAPH)
MOV FLAPLC,#00H ; Fixes FLAPLC to “00H”
EraseRetry:
MOV PFS,#00H ; Clears flash status register
MOV WDTE,#0ACH ; Clears & restarts WDT
HALT ; Self programming is started
MOV A,PFS
CMP A,#00H ; Checks execution result
BZ $StatusNormal ; Normal termination
DBNZ B,$EraseRetry ; Checks whether to re-execute the erase command.
;---------------------------------------------------------------------
;END (abnormal termination processing); Perform processing to shift to
normal mode in order to return to normal processing
;---------------------------------------------------------------------
StatusError:
;---------------------------------------------------------------------
;END (normal termination processing)
;---------------------------------------------------------------------
StatusNormal:
<R>
<R>