📄 start_v2.lst
字号:
A166 MACRO ASSEMBLER START_V2 12/19/2003 11:51:09 PAGE 1
MACRO ASSEMBLER A166 V4.26
OBJECT MODULE PLACED IN Start_V2.OBJ
ASSEMBLER INVOKED BY: C:\Program Files\Keil\C166\BIN\A166.EXE Start_V2.A66 MODV2 SEGMENTED MODV2 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 $MODV2 ; Define C166v2 core mode
2 ;
3 ;------------------------------------------------------------------------------
4 ; This file is part of the C166 Compiler package
5 ; Copyright KEIL ELEKTRONIK GmbH 1993 - 2003
6 ; Version 4.06
7 ;------------------------------------------------------------------------------
8 ; START_V2.A66: This code is executed after processor reset and provides the
9 ; startup sequence for the C166v2/Super10 architecture CPU's.
10 ; (i.e. XC161, XC164 ect.)
11 ;
12 ; You may add this file to a uVision2 project - in this case it will be
13 ; automatically assembled and linked.
14 ;
15 ; For manual translation of this file use A166 with the following invocation:
16 ;
17 ; A166 START_V2.A66 SET (<model>)
18 ;
19 ; <model> determines the memory model and can be one of the following:
20 ; TINY, SMALL, COMPACT, HCOMPACT, MEDIUM, LARGE or HLARGE
21 ;
22 ; Example: A166 START_V2.A66 SET (SMALL)
23 ;
24 ; For manual linkage of the modified START_V2.OBJ file to your application
25 ; use the following L166 invocation:
26 ;
27 ; L166 <your object file list>, START_V2.OBJ <controls>
28 ;
29 ;------------------------------------------------------------------------------
30 ; Setup model-dependend Assembler controls
31 $CASE
32 $IF NOT TINY
33 $SEGMENTED
34 $ENDIF
35 ; Settings for ADDRSEL calculation (do not change!)
0400 36 KB EQU 0x400 ; define KB constant for CS _SIZE calculation
00100000 37 MB EQU 0x400*KB ; define MB as 1024KB
38 ;------------------------------------------------------------------------------
39 ;
40 ; Definitions for System and User Stack
41 ; =====================================
42 ;
43 ; STKSZ: Maximum System Stack Size selection
44 ; Defines the system stack space that is used by CALL/RET and PUSH/POP
45 ; instructions. The system stack space must be adjusted according the actual
46 ; requirements of the application.
0200 47 SSTSZ EQU 0x200 ; set System Stack Size to 200H Bytes
48 ;
49 ; USTSZ: User Stack Size Definition
50 ; Defines the user stack space available for automatics. This stack space is
51 ; accessed by R0. The user stack space must be adjusted according the actual
52 ; requirements of the application.
0200 53 USTSZ EQU 0x200 ; set User Stack Size to 200H Bytes.
54 ;
55 ; UST1SZ: User Stack Size for local register bank 1
56 ; Defines the user stack space available for the interrupt functions that are
57 ; assigned to the local register bank 1. Since the compiler cannot copy the R0
58 ; value to local register banks, the user stack must be assign separately.
A166 MACRO ASSEMBLER START_V2 12/19/2003 11:51:09 PAGE 2
59 ; If you have no interrupt functions assigned to local register bank 1, you may
60 ; set UST1SZ to 0.
0020 61 UST1SZ EQU 0x20 ; set User Stack Size to 20H Bytes.
62 ;
63 ; UST2SZ: User Stack Size for local register bank 2
64 ; Defines the user stack space available for the interrupt functions that are
65 ; assigned to the local register bank 1. Since the compiler cannot copy the R0
66 ; value to local register banks, the user stack must be assign separately.
67 ; If you have no interrupt functions assigned to local register bank 2, you may
68 ; set UST2SZ to 0.
0020 69 UST2SZ EQU 0x20 ; set User Stack Size to 20H Bytes.
70 ;
71 ;
72 ; Definitions for Startup Code
73 ; ============================
74 ;
75 ; CLR_MEMORY: Disable Memory Zero Initialization of RAM area
76 ; --- Set CLR_MEMORY = 0 to disable memory zero initilization
77 $SET (CLR_MEMORY = 1)
78 ;
79 ; INIT_VARS: Disable Variable Initialization
80 ; --- Set INIT_VARS = 0 to disable variable initilization
81 $SET (INIT_VARS = 1)
82 ;
83 ; DPPUSE: Re-assign DPP registers
84 ; --- Set DPPUSE = 0 to reduce the code size of the startup code, if you
85 ; are not using the L166 DPPUSE directive.
86 $SET (DPPUSE = 1)
87 ;
88 ; DPP3USE: Use DPP3 register during variable initilization
89 ; --- Set DPP3USE = 0 to disable the usage of DPP3 during initilization of
90 ; variables. This option might be required if you write
91 ; program parts that are reloaded during application
92 ; execution and increase code size of the startup code.
93 $SET (DPP3USE = 1)
94 ;
95 ;
96 ; Definitions for CPU Configuration Register CPUCON1
97 ; ==================================================
98 ;
99 ; ZCJ: Zero Cycle Jump Function (CPUCON1.0):
0001 100 _ZCJ EQU 1 ; Uv2/Dave /Dave/
101 ; 1 = Enable Zero Cycle Jump Function
102 ;
103 ; BP: Branch Prediction Unit (CPUCON1.1):
0001 104 _BP EQU 1 ; Uv2/Dave /Dave/
105 ; 1 = Enable Branch Prediction Unit
106 ;
107 ; INTSCXT: Interruptability of Switch Context Instruction (CPUCON1.2):
0000 108 _INTSCXT EQU 0 ; Uv2/Dave /Dave/
109 ; 1 = Enable Interruption of SCXT instruction
110 ;
111 ; SGTDIS: Disable Segmentation Control (CPUCON1.3):
$IF TINY
_SGTDIS EQU 0 ; Uv2/Dave /Dave/
114 $ELSE
0000 115 _SGTDIS EQU 0 ; enable segmented mode (Reset Value)
116 $ENDIF
117 ;
118 ; WDTCTL: Watchdog Timer Control (CPUCON1.4):
0000 119 _WDTCTL EQU 0 ; Uv2/Dave /Dave/
A166 MACRO ASSEMBLER START_V2 12/19/2003 11:51:09 PAGE 3
120 ; 1 = DISWDT/ENWDT always executable
121 ;
122 ; VECSC: Vector Table Scaling Factor (CPUCON1.5 .. CPUCON1.6)
0000 123 _VECSC EQU 0 ; Uv2/Dave /Dave/
124 ; 1 = Space between two vectors is 4 words
125 ; 2 = Space between two vectors is 8 words
126 ; 3 = Space between two vectors is 16 words
127 ;
128 ;
129 ; Definitions for CPU Configuration Register CPUCON2
130 ; ==================================================
131 ;
132 ; INIT_CPUCON2: Init CPUCON2 register
133 ; --- Set INIT_CPUCON2 = 1 to initilize the SYSCON1 register
134 $SET (INIT_CPUCON2 = 0) ; default: do not initilize CPUCON2
135 ;
136 ; SL: Short Loop Mode (CPUCON2.0)
0001 137 _SL EQU 1 ; Uv2/Dave /Dave/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -