⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startu32.lst

📁 一个基于XMODEM协议的下载字库的程序
💻 LST
字号:
A51 MACRO ASSEMBLER  STARTU32                                                             04/13/2006 11:35:15 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN Startu32.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Startu32.a51 SET(LARGE) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     $nomod51 
                       2     ;------------------------------------------------------------------------------
                       3     ;  STARTU32.A51:  This code is executed after processor reset.
                       4     ;    
                       5     ;  Modified for uPSD Startup:
                       6     ;     - Disable Watchdog timer - enable at beginning of user application
                       7     ;     - Settup various IP prescalers to large values (lowers power requirements)
                       8     ;       The IP device drivers wil need to initialize the prescaler to the right value
                       9     ;
                      10     ;------------------------------------------------------------------------------
                      11     
                      12     
                      13     ;  User-defined Power-On Initialization of Memory (Clear Memory)
                      14     ;
                      15     ;  With the following EQU statements the initialization of memory
                      16     ;  at processor reset can be defined:
                      17     
                      18     ;               ; the absolute start-address of IDATA memory is always 0
  0100                19     IDATALEN        EQU     100H    ; the length of IDATA memory in bytes.
                      20     
                      21     ; *** NOTE: uPSD users need to fill in the following based on where SRAM memory mapped.
                      22     
  0200                23     XDATASTART      EQU     0200H      ; the absolute start-address of XDATA memory
  7D00                24     XDATALEN        EQU     7D00H      ; the length of XDATA memory in bytes.
                      25     
  0000                26     PDATASTART      EQU     0H      ; the absolute start-address of PDATA memory
  0000                27     PDATALEN        EQU     0H      ; the length of PDATA memory in bytes.
                      28     
                      29     ;  Notes:  The IDATA space overlaps physically the DATA and BIT areas of the
                      30     ;          8051 CPU. At minimum the memory space occupied from the C51 
                      31     ;          run-time routines must be set to zero.
                      32     
                      33     
                      34     ;------------------------------------------------------------------------------
                      35     ;
                      36     ;  Reentrant Stack Initilization
                      37     ;
                      38     ;  The following EQU statements define the stack pointer for reentrant
                      39     ;  functions and initialized it:
                      40     ;
                      41     ;  Stack Space for reentrant functions in the SMALL model.
  0000                42     IBPSTACK        EQU     0       ; set to 1 if small reentrant is used.
  0100                43     IBPSTACKTOP     EQU     0FFH+1  ; set top of stack to highest location+1.
                      44     ;
                      45     ;  Stack Space for reentrant functions in the LARGE model.      
  0000                46     XBPSTACK        EQU     0       ; set to 1 if large reentrant is used.
  0000                47     XBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
                      48     ;
                      49     ;  Stack Space for reentrant functions in the COMPACT model.    
  0000                50     PBPSTACK        EQU     0       ; set to 1 if compact reentrant is used.
  0000                51     PBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
                      52     ;
                      53     ;------------------------------------------------------------------------------
                      54     ;
                      55     ;  Page Definition for Using the Compact Model with 64 KByte xdata RAM
                      56     ;
                      57     ;  The following EQU statements define the xdata page used for pdata
                      58     ;  variables. The EQU PPAGE must conform with the PPAGE control used
A51 MACRO ASSEMBLER  STARTU32                                                             04/13/2006 11:35:15 PAGE     2

                      59     ;  in the linker invocation.
                      60     ;
  0000                61     PPAGEENABLE     EQU     0       ; set to 1 if pdata object are used.
                      62     ;
  0000                63     PPAGE           EQU     0       ; define PPAGE number.
                      64     ;
  00A0                65     PPAGE_SFR       DATA    0A0H    ; SFR that supplies uppermost address byte
                      66     ;               (most 8051 variants use P2 as uppermost address byte)
                      67     ;
                      68     ;------------------------------------------------------------------------------
  0000                69     PSD_REG_ADDR    EQU             0000H
  00E0                70     PAGEREG                 EQU             PSD_REG_ADDR + 0E0H
  00E2                71     VMREG                   EQU             PSD_REG_ADDR + 0E2H
  0000                72     APPLICATION_PAGE                EQU     000H
  0080                73     BOOTLOADER_PAGE                 EQU     080H
                      74     
  000A                75     KEY_LENGTH              EQU             10              ;from app->bootloader,
  7FF0                76     key                             EQU     07FF0H
                      77     
                      78     ; Standard SFR Symbols 
  00E0                79     ACC     DATA    0E0H
  00F0                80     B       DATA    0F0H
  0081                81     SP      DATA    81H
  0082                82     DPL     DATA    82H
  0083                83     DPH     DATA    83H
  00AE                84     WDKEY   DATA    0AEH
  0095                85     ASCL    DATA    095H
  00B1                86     PSCL0L  DATA    0B1H
  00B2                87     PSCL0H  DATA    0B2H
  00B3                88     PSCL1L  DATA    0B3H
  00B4                89     PSCL1H  DATA    0B4H
  00E1                90     USCL    DATA    0E1H
  00D7                91     DDCCON  DATA    0D7H
  00D8                92     S1CON   DATA    0D8H
                      93     
                      94                     NAME    ?C_STARTUP
                      95     
                      96     
                      97     ?C_C51STARTUP   SEGMENT   CODE
                      98     ?STACK          SEGMENT   IDATA
                      99     
----                 100                     RSEG    ?STACK
0000                 101                     DS      1
                     102     
                     103                     EXTRN CODE (?C_START)
                     104                     PUBLIC  ?C_STARTUP
                     105     
----                 106                     CSEG    AT      0
0000 020000   F      107     ?C_STARTUP:     LJMP    STARTUP1
                     108     
----                 109                     RSEG    ?C_C51STARTUP
                     110     
0000                 111     STARTUP1:
                     112     
                     113     ; uPSD specific initialization
                     114     
0000 74FE            115                     MOV     A, #0FEH        ; Load pre-scalars with large value
0002 F595            116                     MOV     ASCL, A         ; Slow down ADC Logic
0004 F5B1            117                     MOV     PSCL0L, A       ; Slow down PWM Logic
0006 F5B2            118                     MOV     PSCL0H, A
0008 F5B3            119                     MOV     PSCL1L, A
000A F5B4            120                     MOV     PSCL1H, A
000C F5E1            121                     MOV     USCL, A         ; Slow down USB Logic
                     122     
000E 7455            123                     MOV     A, #055H        ; Disable Watch Dog Reset
0010 F5AE            124                     MOV     WDKEY, A
A51 MACRO ASSEMBLER  STARTU32                                                             04/13/2006 11:35:15 PAGE     3

                     125     
0012 E500            126                     MOV     A, 0            ; Disable DDC and DDC XRAM out of addr space
0014 F5D7            127                     MOV     DDCCON, A
0016 F5D8            128                     MOV     S1CON, A        ; Disable DDC I2C as well
                     129     
                     130     
                     131     IF IDATALEN <> 0
0018 78FF            132                     MOV     R0,#IDATALEN - 1
001A E4              133                     CLR     A
001B F6              134     IDATALOOP:      MOV     @R0,A
001C D8FD            135                     DJNZ    R0,IDATALOOP
                     136     ENDIF
                     137     
                     138     IF PPAGEENABLE <> 0
                                             MOV     PPAGE_SFR,#PPAGE
                             ENDIF
                     141     
                     142     IF PDATALEN <> 0
                                             MOV     R0,#LOW (PDATASTART)
                                             MOV     R7,#LOW (PDATALEN)
                                             CLR     A
                             PDATALOOP:      MOVX    @R0,A
                                             INC     R0
                                             DJNZ    R7,PDATALOOP
                             ENDIF
                     150     
                     151     IF IBPSTACK <> 0
                             EXTRN DATA (?C_IBP)
                             
                                             MOV     ?C_IBP,#LOW IBPSTACKTOP
                             ENDIF
                     156     
                     157     IF XBPSTACK <> 0
                             EXTRN DATA (?C_XBP)
                             
                                             MOV     ?C_XBP,#HIGH XBPSTACKTOP
                                             MOV     ?C_XBP+1,#LOW XBPSTACKTOP
                             ENDIF
                     163     
                     164     IF PBPSTACK <> 0
                             EXTRN DATA (?C_PBP)
                                             MOV     ?C_PBP,#LOW PBPSTACKTOP
                             ENDIF
                     168     
001E 758100   F      169                     MOV     SP,#?STACK-1
                     170     ; This code is required if you use L51_BANK.A51 with Banking Mode 4
                     171     ; EXTRN CODE (?B_SWITCH0)
0021 9000E2          172                             MOV DPTR,       #VMREG
0024 7406            173                             MOV A,  #06H
0026 F0              174                             MOVX @DPTR,     A
                     175     
0027 7809            176                             MOV R0, #KEY_LENGTH - 1;
0029                 177             CHECKBOOT:                                      ;;;;;;;;;;7FF0--7FF9               
                                  
0029 74F0            178                             MOV A, #0F0H
002B 28              179                             ADD A, R0
002C F582            180                             MOV DPL, A
002E 747F            181                             MOV A, #7FH
0030 3400            182                             ADDC A, #00H
0032 F583            183                             MOV DPH, A
0034 E0              184                             MOVX A, @DPTR
0035 F9              185                             MOV R1,A
                     186                             
0036 E8              187                             MOV     A,R0
0037 FA              188                             MOV     R2,A
0038 7478            189                             MOV     A,#'x'
A51 MACRO ASSEMBLER  STARTU32                                                             04/13/2006 11:35:15 PAGE     4

003A F0              190                             MOVX @DPTR, A    ;擦潮晔

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -