📄 start_xc.lst
字号:
A51 MACRO ASSEMBLER START_XC 04/26/2008 19:04:53 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN START_XC.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE START_XC.a51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 $nomod51
2 ;------------------------------------------------------------------------------
3 ; This file is part of the C51 Compiler package
4 ; Startup Code for the Infineon XC8xx devices
5 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
6 ; Version 1.00
7 ;
8 ; *** <<< Use Configuration Wizard in Context Menu >>> ***
9 ;------------------------------------------------------------------------------
10 ; STARTUP.A51: This code is executed after processor reset.
11 ;
12 ; To translate this file use A51 with the following invocation:
13 ;
14 ; A51 STARTUP.A51
15 ;
16 ; To link the modified STARTUP.OBJ file to your application use the following
17 ; Lx51 invocation:
18 ;
19 ; Lx51 your object file list, STARTUP.OBJ controls
20 ;
21 ;------------------------------------------------------------------------------
22 ;
23 ;<e> Use off-chip XTAL
24 ;<i> XC8xx series runs by default from on-chip osciallator.
25 ;<i> optionally you may use a off-chip XTAL
26 ;
0000 27 XTAL EQU 0 ; set to 0 On-chip oscillator
28 ;
29 ;---------------------------------------------------------------------
30 ;resulting in fsys = 80MHz for XC866 and fsys = 96MHz for XC88x unless otherwise mentioned
31 ;
32 ;<e> Device = " XC866 "
0000 33 XC866_CHIP EQU 0
34 ;
35 ; <o> PLL N-Divider
36 ; <0=> N=14
37 ; <1=> N=15
38 ; <2=> N=16 (10 MHz XTAL)
39 ; <3=> N=17
40 ; <4=> N=18
41 ; <5=> N=19
42 ; <6=> N=20 (8 MHz XTAL)
43 ; <7=> N=21
44 ; <8=> N=24
45 ; <9=> N=28
46 ; <10=> N=30
47 ; <11=> N=32 (5 MHz XTAL)
48 ; <12=> N=40
49 ; <13=> N=42
50 ; <14=> N=45
51 ; <15=> N=50
52 ;
0002 53 NDIV_XC866 EQU 2 ; default 2
54 ;</e>
55
56 ;---------------------------------------------------------------------
57 ;<e> Device = " XC88x "
0001 58 XC88x_CHIP EQU 1
A51 MACRO ASSEMBLER START_XC 04/26/2008 19:04:53 PAGE 2
59 ;
60 ; <o> PLL N-Divider
61 ; <0=> N=10
62 ; <1=> N=12
63 ; <2=> N=13
64 ; <3=> N=14
65 ; <4=> N=15
66 ; <5=> N=16
67 ; <6=> N=17
68 ; <7=> N=18
69 ; <8=> N=19
70 ; <9=> N=20 (9.6 MHz On-Chip XTAL)
71 ; <10=> N=24 (8 MHz Ext XTAL)
72 ; <11=> N=30
73 ; <12=> N=32(6 MHz XTAL)
74 ; <13=> N=36
75 ; <14=> N=40
76 ; <15=> N=48(4 MHz XTAL)
77 ;
0009 78 NDIV_XC88x EQU 9 ; default 9
79 ;</e>
80 ;</e>
81 ;------------------------------------------------------------------------------
82 ;
83 ; User-defined <h> Power-On Initialization of Memory
84 ;
85 ; With the following EQU statements the initialization of memory
86 ; at processor reset can be defined:
87 ;
88 ;<o> IDATA memory length <0x0-0x100>
89 ;<i> Note: The absolute start-address of IDATA memory is always 0
90 ;<i> The IDATA space overlaps physically the DATA and BIT areas.
0080 91 IDATALEN EQU 0x80
92 ;
93 ; <o> XDATA memory start address <0x0-0xFFFF>
94 ; <i> absolute start-address of XDATA memory
F000 95 XDATASTART EQU 0xF000
96 ;
97 ; <o> XDATA memory length <0x0-0xFFFF>
98 ; <i> length of XDATA memory in bytes.
0200 99 XDATALEN EQU 0x200
100 ;
101 ; <o> PDATA memory start address <0x0-0xFFFF>
102 ; <i> absolute start-address of PDATA memory
F000 103 PDATASTART EQU 0xF000
104 ;
105 ; <o> PDATA memory length <0x0-0xFF>
106 ; <i> length of PDATA memory in bytes.
0000 107 PDATALEN EQU 0
108 ;
109 ; </h>
110 ;------------------------------------------------------------------------------
111 ;
112 ; <h> Reentrant Stack Initilization
113 ;
114 ; The following EQU statements define the stack pointer for reentrant
115 ; functions and initialized it:
116 ;
117 ; Stack Space for reentrant functions in the SMALL model.
118 ; <e> Activate reentrant Stack (SMALL model)
0000 119 IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
120 ; <o> top of stack <0x0-0xFF>
121 ; <i> set top of stack to highest location+1
0100 122 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
123 ; </e>
124 ;
A51 MACRO ASSEMBLER START_XC 04/26/2008 19:04:53 PAGE 3
125 ; Stack Space for reentrant functions in the LARGE model.
126 ; <e> Activate reentrant Stack (LARGE model)
0000 127 XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
128 ; <o> top of stack <0x0-0xFFFF>
129 ; <i> set top of stack to highest location+1.
0000 130 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
131 ; </e>
132 ;
133 ; Stack Space for reentrant functions in the COMPACT model.
134 ; <e> Activate reentrant Stack (COMPACT model)
0000 135 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
136 ;
137 ; <o> top of stack <0x0-0xFF>
138 ; <i> set top of stack to highest location+1.
0100 139 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
140 ; </e>
141 ; </h>
142 ;------------------------------------------------------------------------------
143 ;
144 ; <e>Set Memory Page for Using the Compact Model with 64 KByte xdata RAM
145 ;
146 ; <i>Define the xdata page used for pdata variables.
147 ; <i>PPAGE must conform with the PPAGE set in the linker invocation.
148 ;
149 ; Enable pdata memory page initalization
0000 150 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
151 ;
152 ; <o> PPAGE number <0x0-0xFF>
153 ; <i> uppermost 256-byte address of the page used for pdata variables.
00F0 154 PPAGE EQU 0xF0
155 ;
156 ; </e>
157 ;------------------------------------------------------------------------------
158 ;Check the chip selection
159 IF (XTAL <> 0)
IF ((XC866_CHIP <> 0)&& (XC88x_CHIP <> 0))
__ERROR__ "XC866 and XC88x chip are both selected.Please select only one"
NDIV EQU NDIV_XC866 ;Default
ELSEIF (XC866_CHIP <> 0)
NDIV EQU NDIV_XC866
ELSEIF (XC88x_CHIP <> 0)
NDIV EQU NDIV_XC88x
ELSE
__WARNING__ "Default NDIV selection is XC866"
NDIV EQU NDIV_XC866 ;Default
ENDIF
ENDIF ;End of XTAL selection
172
173 ; Standard SFR Symbols
00E0 174 ACC DATA 0E0H
00F0 175 B DATA 0F0H
0081 176 SP DATA 81H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -