📄 startup.lst
字号:
AA MACRO ASSEMBLER RSTARTUP 06/03/07 11:32:19 PAGE 1
MACRO ASSEMBLER AA V2.40b
OBJECT MODULE PLACED IN startup.OBJ
ASSEMBLER INVOKED BY: C:\Keil\ARM\BIN\AA.exe startup.s DEBUG EP
LOC OBJ LINE SOURCE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0010 21 Mode_USR EQU 0x10
0011 22 Mode_FIQ EQU 0x11
0012 23 Mode_IRQ EQU 0x12
0013 24 Mode_SVC EQU 0x13
0017 25 Mode_ABT EQU 0x17
001B 26 Mode_UND EQU 0x1B
001F 27 Mode_SYS EQU 0x1F
28
0080 29 I_Bit EQU 0x80
0040 30 F_Bit EQU 0x40
31
32
33
34
35
36
37
38
39
40
41
42
0004 43 UND_Stack_Size EQU 0x00000004
0004 44 SVC_Stack_Size EQU 0x00000004
0004 45 ABT_Stack_Size EQU 0x00000004
0004 46 FIQ_Stack_Size EQU 0x00000004
0080 47 IRQ_Stack_Size EQU 0x00000080
0400 48 USR_Stack_Size EQU 0x00000400
49
00000000 50 AREA STACK, DATA, READWRITE, ALIGN=2
00000000 51 DS (USR_Stack_Size+3)&~3 ; Stack for User/System Mode
00000400 52 DS (IRQ_Stack_Size+3)&~3 ; Stack for Interrupt Mode
00000480 53 DS (FIQ_Stack_Size+3)&~3 ; Stack for Fast Interrupt Mode
00000484 54 DS (ABT_Stack_Size+3)&~3 ; Stack for Abort Mode
00000488 55 DS (SVC_Stack_Size+3)&~3 ; Stack for Supervisor Mode
0000048C 56 DS (UND_Stack_Size+3)&~3 ; Stack for Undefined Mode
00000490 57 Top_Stack:
58
AA MACRO ASSEMBLER RSTARTUP 06/03/07 11:32:19 PAGE 2
59
60
FFFF0000 61 MMR_BASE EQU 0xFFFF0000 ; MMR Base Address
0404 62 POWKEY1_OFFSET EQU 0x0404
0408 63 POWCON_OFFSET EQU 0x0408
040C 64 POWKEY2_OFFSET EQU 0x040C
65
66
67
68
69
70
71
72
73
0001 74 PLL_SETUP EQU 1
0000 75 PLLCFG_Val EQU 0x00000000
76
77
78
79
00080000 80 AREA STARTUPCODE, CODE, AT 0x00080000
81 PUBLIC __startup
82
83 EXTERN CODE32 (?C?INIT)
84
85 __startup PROC CODE32
86
87
88
89 EXTERN CODE32 (Undef_Handler?A)
90 EXTERN CODE32 (SWI_Handler?A)
91 EXTERN CODE32 (PAbt_Handler?A)
92 EXTERN CODE32 (DAbt_Handler?A)
93 EXTERN CODE32 (IRQ_Handler?A)
94 EXTERN CODE32 (FIQ_Handler?A)
95
96
97
98
99
00080000 E59FF000 100 Vectors: LDR PC,Reset_Addr
00080004 E59FF000 101 LDR PC,Undef_Addr
00080008 E59FF000 102 LDR PC,SWI_Addr
0008000C E59FF000 103 LDR PC,PAbt_Addr
00080010 E59FF000 104 LDR PC,DAbt_Addr
00080014 E1A00000 105 NOP
00080018 E59FF000 106 LDR PC,IRQ_Addr
0008001C E59FF000 107 LDR PC,FIQ_Addr
108
00080020 00080040 R 109 Reset_Addr: DD Reset_Handler
00080024 00000000 E 110 Undef_Addr: DD Undef_Handler?A
00080028 00000000 E 111 SWI_Addr: DD SWI_Handler?A
0008002C 00000000 E 112 PAbt_Addr: DD PAbt_Handler?A
00080030 00000000 E 113 DAbt_Addr: DD DAbt_Handler?A
00080034 00000000 114 DD 0
00080038 00000000 E 115 IRQ_Addr: DD IRQ_Handler?A
0008003C 00000000 E 116 FIQ_Addr: DD FIQ_Handler?A
117
118
119
120
00080040 121 Reset_Handler:
122
123
124
AA MACRO ASSEMBLER RSTARTUP 06/03/07 11:32:19 PAGE 3
125 IF (PLL_SETUP != 0)
00080040 E59F0034 126 LDR R0, =MMR_BASE
00080044 E3A01001 127 MOV R1, #0x01
00080048 E5801404 128 STR R1, [R0,#POWKEY1_OFFSET]
0008004C E3A01000 129 MOV R1, #PLLCFG_Val
00080050 E5801408 130 STR R1, [R0,#POWCON_OFFSET]
00080054 E3A010F4 131 MOV R1, #0xF4
00080058 E580140C 132 STR R1, [R0,#POWKEY2_OFFSET]
133 ENDIF ; PLL_SETUP
134
135
136
0008005C E59F0034 137 LDR R0, =Top_Stack
138
139
00080060 E321F0DB 140 MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
00080064 E1A0D000 141 MOV SP, R0
00080068 E2400004 142 SUB R0, R0, #UND_Stack_Size
143
144
0008006C E321F0D7 145 MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit
00080070 E1A0D000 146 MOV SP, R0
00080074 E2400004 147 SUB R0, R0, #ABT_Stack_Size
148
149
00080078 E321F0D1 150 MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit
0008007C E1A0D000 151 MOV SP, R0
00080080 E2400004 152 SUB R0, R0, #FIQ_Stack_Size
153
154
00080084 E321F0D2 155 MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit
00080088 E1A0D000 156 MOV SP, R0
0008008C E2400080 157 SUB R0, R0, #IRQ_Stack_Size
158
159
00080090 E321F0D3 160 MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit
00080094 E1A0D000 161 MOV SP, R0
00080098 E2400004 162 SUB R0, R0, #SVC_Stack_Size
163
164
0008009C E321F010 165 MSR CPSR_c, #Mode_USR
000800A0 E1A0D000 166 MOV SP, R0
167
168
000800A4 E59F0034 169 LDR R0,=?C?INIT
000800A8 E3100001 170 TST R0,#1 ; Bit-0 set: main is Thumb
000800AC E3AFE034 171 LDREQ LR,=exit?A ; ARM Mode
000800B0 E3AFE034 172 LDRNE LR,=exit?T ; Thumb Mode
000800B4 E12FFF10 173 BX R0
174 ENDP
175
176 PUBLIC exit?A
177 exit?A PROC CODE32
000800B8 EAFFFFFE 178 B exit?A
179 ENDP
180
181 PUBLIC exit?T
182 exit?T PROC CODE16
000800BC E7FE 183 B exit?T
184 ENDP
185
186 END
AA MACRO ASSEMBLER RSTARTUP 06/03/07 11:32:19 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C?INIT. . . . . . C ADDR ------- EXT
ABT_Stack_Size . . -- ---- 0004H A
DAbt_Addr. . . . . C ADDR 080030H R SEG=STARTUPCODE
DAbt_Handler?A . . C ADDR ------- EXT
FIQ_Addr . . . . . C ADDR 08003CH R SEG=STARTUPCODE
FIQ_Handler?A. . . C ADDR ------- EXT
FIQ_Stack_Size . . -- ---- 0004H A
F_Bit. . . . . . . -- ---- 0040H A
IRQ_Addr . . . . . C ADDR 080038H R SEG=STARTUPCODE
IRQ_Handler?A. . . C ADDR ------- EXT
IRQ_Stack_Size . . -- ---- 0080H A
I_Bit. . . . . . . -- ---- 0080H A
MMR_BASE . . . . . -- ---- FFFF0000H A
Mode_ABT . . . . . -- ---- 0017H A
Mode_FIQ . . . . . -- ---- 0011H A
Mode_IRQ . . . . . -- ---- 0012H A
Mode_SVC . . . . . -- ---- 0013H A
Mode_SYS . . . . . -- ---- 001FH A
Mode_UND . . . . . -- ---- 001BH A
Mode_USR . . . . . -- ---- 0010H A
PAbt_Addr. . . . . C ADDR 08002CH R SEG=STARTUPCODE
PAbt_Handler?A . . C ADDR ------- EXT
PLLCFG_Val . . . . -- ---- 0000H A
PLL_SETUP. . . . . -- ---- 0001H A
POWCON_OFFSET. . . -- ---- 0408H A
POWKEY1_OFFSET . . -- ---- 0404H A
POWKEY2_OFFSET . . -- ---- 040CH A
Reset_Addr . . . . C ADDR 080020H R SEG=STARTUPCODE
Reset_Handler. . . C ADDR 080040H R SEG=STARTUPCODE
STACK. . . . . . . D SEG 0490H REL=UNIT, ALN=BYTE
STARTUPCODE. . . . C SEG 0800BEH REL=ABS, ALN=BYTE
SVC_Stack_Size . . -- ---- 0004H A
SWI_Addr . . . . . C ADDR 080028H R SEG=STARTUPCODE
SWI_Handler?A. . . C ADDR ------- EXT
Top_Stack. . . . . D ADDR 0490H R SEG=STACK
UND_Stack_Size . . -- ---- 0004H A
USR_Stack_Size . . -- ---- 0400H A
Undef_Addr . . . . C ADDR 080024H R SEG=STARTUPCODE
Undef_Handler?A. . C ADDR ------- EXT
Vectors. . . . . . C ADDR 080000H R SEG=STARTUPCODE
__startup. . . . . C ADDR 080000H R SEG=STARTUPCODE
exit?A . . . . . . C ADDR 0800B8H R SEG=STARTUPCODE
exit?T . . . . . . C ADDR 0800BCH R SEG=STARTUPCODE
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -