?? startup.lst
字號:
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:44:55 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 09/01/06 14:44:55 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 EXTERN CODE32 (My_IRQ_Function?A)
96
97
98
99
100
00080000 E59FF000 101 Vectors: LDR PC,Reset_Addr
00080004 E59FF000 102 LDR PC,Undef_Addr
00080008 E59FF000 103 LDR PC,SWI_Addr
0008000C E59FF000 104 LDR PC,PAbt_Addr
00080010 E59FF000 105 LDR PC,DAbt_Addr
00080014 E1A00000 106 NOP
00080018 E59FF000 107 LDR PC,IRQ_Addr
0008001C E59FF000 108 LDR PC,FIQ_Addr
109
00080020 00080040 R 110 Reset_Addr: DD Reset_Handler
00080024 00000000 E 111 Undef_Addr: DD Undef_Handler?A
00080028 00000000 E 112 SWI_Addr: DD SWI_Handler?A
0008002C 00000000 E 113 PAbt_Addr: DD PAbt_Handler?A
00080030 00000000 E 114 DAbt_Addr: DD DAbt_Handler?A
00080034 00000000 115 DD 0
00080038 00000000 E 116 IRQ_Addr: DD IRQ_Handler?A
0008003C 00000000 E 117 FIQ_Addr: DD FIQ_Handler?A
118
119
120
121
00080040 122 Reset_Handler:
123
124
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:44:55 PAGE 3
125
126 IF (PLL_SETUP != 0)
00080040 E59F0034 127 LDR R0, =MMR_BASE
00080044 E3A01001 128 MOV R1, #0x01
00080048 E5801404 129 STR R1, [R0,#POWKEY1_OFFSET]
0008004C E3A01000 130 MOV R1, #PLLCFG_Val
00080050 E5801408 131 STR R1, [R0,#POWCON_OFFSET]
00080054 E3A010F4 132 MOV R1, #0xF4
00080058 E580140C 133 STR R1, [R0,#POWKEY2_OFFSET]
134 ENDIF ; PLL_SETUP
135
136
137
0008005C E59F0034 138 LDR R0, =Top_Stack
139
140
00080060 E321F0DB 141 MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
00080064 E1A0D000 142 MOV SP, R0
00080068 E2400004 143 SUB R0, R0, #UND_Stack_Size
144
145
0008006C E321F0D7 146 MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit
00080070 E1A0D000 147 MOV SP, R0
00080074 E2400004 148 SUB R0, R0, #ABT_Stack_Size
149
150
00080078 E321F0D1 151 MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit
0008007C E1A0D000 152 MOV SP, R0
00080080 E2400004 153 SUB R0, R0, #FIQ_Stack_Size
154
155
00080084 E321F0D2 156 MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit
00080088 E1A0D000 157 MOV SP, R0
0008008C E2400080 158 SUB R0, R0, #IRQ_Stack_Size
159
160
00080090 E321F0D3 161 MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit
00080094 E1A0D000 162 MOV SP, R0
00080098 E2400004 163 SUB R0, R0, #SVC_Stack_Size
164
165
0008009C E321F010 166 MSR CPSR_c, #Mode_USR
000800A0 E1A0D000 167 MOV SP, R0
168
169
000800A4 E59F0034 170 LDR R0,=?C?INIT
000800A8 E3100001 171 TST R0,#1 ; Bit-0 set: main is Thumb
000800AC E3AFE034 172 LDREQ LR,=exit?A ; ARM Mode
000800B0 E3AFE034 173 LDRNE LR,=exit?T ; Thumb Mode
000800B4 E12FFF10 174 BX R0
175 ENDP
176
177 PUBLIC exit?A
178 exit?A PROC CODE32
000800B8 EAFFFFFE 179 B exit?A
180 ENDP
181
182 PUBLIC exit?T
183 exit?T PROC CODE16
000800BC E7FE 184 B exit?T
185 ENDP
186
187 END
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:44:55 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
My_IRQ_Function?A. C ADDR ------- EXT
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 + -