
Preliminary W77LE532
Publication Release Date: May 14, 2003
- 83 - Revision A1
BLANK_CHECK_ERROR:
JMP $
;*******************************************************************************
;* RE-PROGRAMMING 64KB APFLASH BANK
;*******************************************************************************
PROGRAM_64KROM:
MOV R2, #00H
; TARGET LOW BYTE ADDRESS
MOV R1, #00H
; TARGET HIGH BYTE ADDRESS
MOV DPTR, #0H
MOV SFRAH, R1
; SFRAH, TARGET HIGH ADDRESS
MOV SFRCN, #21H
; SFRCN = 21H, PROGRAM 64K APFLASH0
; SFRCN = A1H, PROGRAM 64K APFLASH1
MOV R6, #9CH
; SET TIMER FOR PROGRAMMING, ABOUT 50
μ
S.
MOV R7, #FFH
MOV TL0, R6
MOV TH0, R7
PROG_D_64K:
MOV A, SFRAL
JNZ BLANK_CHECK_LOOP
INC SFRAH
MOV A, SFRAH
CJNE A, #0H, BLANK_CHECK_LOOP ; END ADDRESS = FFFFH
JMP PROGRAM_64KROM
;*****************************************************************************
; * VERIFY 64KB APFLASH BANK
;*****************************************************************************
MOV R4, #03H
MOV R6, #FDH
MOV R7, #FFH
MOV TL0, R6
MOV TH0, R7
MOV DPTR, #0H
MOV R2, #0H
MOV R1, 0H
MOV SFRAH, R1
MOV SFRCN, #00H
MOV SFRAL, R2
CALL GET_BYTE_FROM_PC_TO_ACC
MOV @DPTR, A
MOV SFRFD, A
MOV TCON, #10H
MOV PCON, #01H
INC DPTR
INC R2
CJNE R2, #0H, PROG_D_64K
INC R1
MOV SFRAH, R1
CJNE R1, #0H, PROG_D_64K
; SFRAL = LOW BYTE ADDRESS
; THIS PROGRAM IS BASED ON USER’S CIRCUIT.
; SAVE DATA INTO SRAM TO VERIFY CODE.
; SFRFD = DATA IN
; TCON = 10H, TR0 = 1,GO
; ENTER IDLE MODE (PRORGAMMING)
; ERROR COUNTER
; SET TIMER FOR READ VERIFY, ABOUT 1.5
μ
S.
; The start address of sample code
; Target low byte address
; Target high byte address
; SFRAH, Target high address
; SFRCN = 00H, Read APFLASH0
; SFRCN = 80H , Read APFLASH1