English
Language : 

HD64F3337YCP16V Datasheet, PDF (493/749 Pages) Renesas Technology Corp – Old Company Name in Catalogs and Other Documents
ERASE:
LOOPE:
ADDS
MOV.W
MOV.W
MOV.W
BSET
NOP
NOP
NOP
NOP
SUBS
MOV.W
BNE
BCLR
MOV.W
MOV.W
#1,
#H'e,
R4,
R5,
#1,
R6
; Erase-verify fail counter + 1 → R6
R4
;
@TCSR ; Start watchdog timer
R4
; Set erase loop counter
@FLMCR:8 ;
Set E bit
#1,
R4,
LOOPE
#1,
#H'A500,
R4,
R4
;
R4
;
; Wait loop
@FLMCR:8 ;
Clear E bit
R4
;
@TCSR ; Stop watchdog timer
; Execute erase-verify
MOV.W
MOV.B
BSET
LOOPEV: DEC
BNE
EVR2: MOV.B
MOV.B
MOV.B
LOOPDW: DEC
BNE
MOV.B
CMP.B
BNE
CMP.W
BNE
BRA
R0,
#H'b,
#3,
R4H
LOOPEV
#H'FF,
R1H,
#H'c,
R4H
LOOPDW
@R3+,
#H'FF,
RERASE
R2,
EVR2
OKEND
R3
; Top address of block to be erased
R4H ; Set erase-verify loop counter
@FLMCR:8 ;
Set EV bit
;
; Wait loop
R1H ;
@R3 ; Dummy write
R4H ; Set erase-verify loop counter
;
; Wait loop
R1H ; Read
R1H ; Read data = H'FF?
; If read data ≠ H'FF, branch to RERASE
R3
; Last address of block?
RERASE: BCLR
SUBS
MOV.W
CMP.W
BPL
ADD.W
BRER:
MOV.W
CMP.W
BNE
BRA
OKEND:
BCLR
MOV.B
MOV.B
#3,
@FLMCR:8 ;
Clear EV bit
#1,
R3
; Erase-verify address – 1 → R3
#H'0004, R4
R4,
R6
BRER
R5,
R5
;
; Erase-verify fail count executed 4 times?
; If R6 ≥ 4, branch to BRER (branch until R6 is 4 to 602)
; If R6 < 4, Erase time × 2 (execute when R6 is 1, 2, or 3)
#H'025A, R4
R4,
R6
ERASE
ABEND2
;
; Erase-verify executed 602 times?
; If erase-verify not executed 602 times, erase again
; If erase-verify executed 602 times, branch to ABEND2
#3,
#H'00,
R6L,
@FLMCR:8
R6L ;
@EBR*:8 ;
;
Clear EV bit
Clear EBR*
One block erased
ABEND2: Erase error
461