Download DK900 User Manual

Transcript
LCALL PSDload_init
LCALL PSDload
LJMP
STARTUP2
; execute Cstartup of BOOT
; Set SWAP and EXECUTE main flash
;
EXE_MAIN:
MOV
IE,#0
MOV
MOV
MOVX
; diable all interrupts
DPTR,#PSD8XX_reg+0E2h
A,#06h
@DPTR,A
; VM register
; both MAIN and BOOT=CODE SPACE
MOV
DPTR,#PSD8XX_reg+0E0h
; PAGE register
MOV
A,#80h
; SWAP=1, UNLOCK=0, PAGE=0
MOVX @DPTR,A
;****** now works in main flash ********
MOV
MOV
MOVX
DPTR,#PSD8xx_reg+0E2h
A,#0Ch
@DPTR,A
; VM register
; BOOT = DATA, MAIN = CODE space
LJMP STARTUP2
; execute Cstartup of MAIN
;
; This location will hold execution source
; EXECUTE_SOURCE: 0xFF, execute boot flash
;
: 0x00, execute main flash
;
CSEG AT 70h
PUBLIC
EXECUTE_SOURCE
EXECUTE_SOURCE:
DS
1
;
;**************************************************************************
;
EXTRN CODE(psd_init)
RSEG ?C_C51STARTUP
STARTUP1:
;
;**************************************************************************
; When port A is used to generate latched address out for external data
memories,
; port A must be initialize before entering variable initialztion as
followings.
;
;
LCALL psd_init
;
;*************************************************************************
;
STARTUP2:
IF IDATALEN
MOV
CLR
IDATALOOP:
<> 0
R0,#IDATALEN - 1
A
MOV
@R0,A
45