English
Language : 

HD64F3337YCP16V Datasheet, PDF (438/749 Pages) Renesas Technology Corp – Old Company Name in Catalogs and Other Documents
; Execute erase-verify
EVR:
MOV.W
MOV.W
ADD.W
MOV.W
SUB.W
LOOPEV:
EBRTST:
EBR2EV:
ADD01:
MOV.B
MOV.B
BSET
DEC
BNE
CMP.B
BEQ
CMP.B
BMI
MOV.B
SUBX
BTST
BNE
BRA
BTST
BNE
INC
MOV.W
BRA
ERASE1: BRA
ERSEVF:
EVR2:
LOOPEP:
MOV.W
MOV.B
MOV.B
MOV.B
DEC
BNE
MOV.B
CMP.B
BNE
MOV.W
CMP.W
BNE
SBCLR:
BLKAD:
CMP.B
BMI
MOV.B
SUBX
BCLR
BRA
BCLR
INC
BRA
HANTEI: BCLR
MOV.W
BEQ
406
#RAMSTR, R2
#ERVADR, R3
R3,
R2
#START, R3
R3,
R2
; Starting transfer destination address (RAM)
;
; #RAMSTR + #ERVADR → R2
;
; Address of data area used in RAM
#H'00,
#H'b,
#3,
R4H
LOOPEV
#H'0C,
HANTEI
#H'08,
EBR2EV
R1L,
#H'08,
R1H,
ERSEVF
ADD01
R1L,
ERSEVF
R1L
@R2+,
EBRTST
R1L ; Used to test R1L bit in R0
R4H ; Set erase-verify loop counter
@FLMCR:8 ;
Set EV bit
;
; Wait loop
R1L ; R1L = H'0C?
; If finished checking all R0 bits, branch to HANTEI
R1L ;
; Test EBR1 if R1L ≥ 8, or EBR2 if R1L < 8
R1H ;
R1H ; R1L – 8 → R1H
R0H ; Test R1H bit in EBR1 (R0H)
; If R1H bit in EBR1 (R0H) is 1, branch to ERSEVF
; If R1H bit in EBR1 (R0H) is 0, branch to ADD01
R0L ; Test R1L bit in EBR2 (R0L)
; If R1L bit in EBR2 (R0H) is 1, branch to ERSEVF
; R1L + 1 → R1L
R3
; Dummy-increment R2
;
ERASE
; Branch to ERASE via Erase 1
@R2+,
#H'FF,
R1H,
#H'c,
R4H
LOOPEP
@R3+,
#H'FF,
BLKAD
@R2,
R4,
EVR2
R3
R1H
@R3
R4H
R1H
R1H
R4
R3
; Top address of block to be erase-verified
;
; Dummy write
; Set erase-verify loop counter
;
; Wait loop
; Read
; Read data = H'FF?
; If read data ≠ H'FF branch to BLKAD
; Top address of next block
; Last address of block?
#H'08,
SBCLR
R1L,
#H'08,
R1H,
BLKAD
R1L,
R1L
EBRTST
R1L
R1H
R1H
R0H
R0L
; Test EBR1 if R1L ≥ 8, or EBR2 if R1L < 8
;
; R1L – 8 → R1H
; Clear R1H bit in EBR1 (R0H)
; Clear R1L bit in EBR2 (R0L)
; R1L + 1 → R1L
;
#3,
R0,
EOWARI
@FLMCR:8 ;
Clear EV bit
@EBR1 ;
; If EBR1/EBR2 is all 0, erasing ended normally