📄 startup.lst
字号:
235
236
237
238 EXTERN CODE32 (Undef_Handler?A)
239 EXTERN CODE32 (SWI_Handler?A)
240 EXTERN CODE32 (PAbt_Handler?A)
241 EXTERN CODE32 (DAbt_Handler?A)
242 EXTERN CODE32 (IRQ_Handler?A)
243 EXTERN CODE32 (FIQ_Handler?A)
244
245
246
247
248
00080000 E59FF000 249 Vectors: LDR PC,Reset_Addr
00080004 E59FF000 250 LDR PC,Undef_Addr
00080008 E59FF000 251 LDR PC,SWI_Addr
0008000C E59FF000 252 LDR PC,PAbt_Addr
00080010 E59FF000 253 LDR PC,DAbt_Addr
00080014 E1A00000 254 NOP
00080018 E59FF000 255 LDR PC,IRQ_Addr
0008001C E59FF000 256 LDR PC,FIQ_Addr
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:42:49 PAGE 5
257
00080020 00080040 R 258 Reset_Addr: DD Reset_Handler
00080024 00000000 E 259 Undef_Addr: DD Undef_Handler?A
00080028 00000000 E 260 SWI_Addr: DD SWI_Handler?A
0008002C 00000000 E 261 PAbt_Addr: DD PAbt_Handler?A
00080030 00000000 E 262 DAbt_Addr: DD DAbt_Handler?A
00080034 00000000 263 DD 0
00080038 00000000 E 264 IRQ_Addr: DD IRQ_Handler?A
0008003C 00000000 E 265 FIQ_Addr: DD FIQ_Handler?A
266
267
268
269
00080040 270 Reset_Handler:
271
272
273
274 IF (PLL_SETUP != 0)
00080040 E59F0034 275 LDR R0, =MMR_BASE
00080044 E3A01001 276 MOV R1, #0x01
00080048 E5801404 277 STR R1, [R0,#POWKEY1_OFFSET]
0008004C E3A01001 278 MOV R1, #PLLCFG_Val
00080050 E5801408 279 STR R1, [R0,#POWCON_OFFSET]
00080054 E3A010F4 280 MOV R1, #0xF4
00080058 E580140C 281 STR R1, [R0,#POWKEY2_OFFSET]
282 ENDIF ; PLL_SETUP
283
284
285
286 IF (GPIO_SETUP != 0)
287
0008005C E28FA008 288 ADR R10, GPIO_CFG
00080060 E89A003F 289 LDMIA R10, {R0-R5}
00080064 E880003E 290 STMIA R0, {R1-R5}
00080068 EA000005 291 B GPIO_END
292
0008006C FFFFF400 293 GPIO_CFG: DD GPIOBASE
00080070 01001220 294 DD GP0CON_Val
00080074 00000000 295 DD GP1CON_Val
00080078 00000000 296 DD GP2CON_Val
0008007C 00000000 297 DD GP3CON_Val
00080080 00000000 298 DD GP4CON_Val
00080084 299 GPIO_END:
300
301 ENDIF ; GPIO_SETUP
302
303
304
305 IF (XM_SETUP != 0)
306
00080084 E28FA00C 307 ADR R10, XM_CFG
00080088 E89A03FF 308 LDMIA R10, {R0-R9}
0008008C E4801010 309 STR R1, [R0],#0x10
00080090 E88003FC 310 STMIA R0, {R2-R9}
00080094 EA000009 311 B XM_END
312
00080098 FFFFF000 313 XM_CFG: DD XMBASE
0008009C 00000001 314 DD XMCFG_Val
000800A0 00000000 315 DD XM0CON_Val
000800A4 00000003 316 DD XM1CON_Val
000800A8 00000000 317 DD XM2CON_Val
000800AC 00000000 318 DD XM3CON_Val
000800B0 000070FF 319 DD XM0PAR_Val
000800B4 00001833 320 DD XM1PAR_Val
000800B8 000070FF 321 DD XM2PAR_Val
000800BC 000070FF 322 DD XM3PAR_Val
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:42:49 PAGE 6
000800C0 323 XM_END:
324
325 ENDIF ; XM_SETUP
326
327
328
329
330
331
000800C0 E24F80C8 332 ADR R8, Vectors ; Source
000800C4 E3A09801 333 LDR R9, =0x00010000 ; Destination
000800C8 E8B800FF 334 LDMIA R8!, {R0-R7} ; Load Vectors
000800CC E8A900FF 335 STMIA R9!, {R0-R7} ; Store Vectors
000800D0 E8B800FF 336 LDMIA R8!, {R0-R7} ; Load Handler Addresses
000800D4 E8A900FF 337 STMIA R9!, {R0-R7} ; Store Handler Addresses
000800D8 E59F0034 338 LDR R0, =MMR_BASE
000800DC E3A01001 339 MOV R1, #1
000800E0 E5801224 340 STR R1, [R0,#PREMAP_OFFSET]
000800E4 E5801220 341 STR R1, [R0,#REMAP_OFFSET]
342
343
344
345
000800E8 E59F0034 346 LDR R0, =Top_Stack
347
348
000800EC E321F0DB 349 MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
000800F0 E1A0D000 350 MOV SP, R0
000800F4 E2400004 351 SUB R0, R0, #UND_Stack_Size
352
353
000800F8 E321F0D7 354 MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit
000800FC E1A0D000 355 MOV SP, R0
00080100 E2400004 356 SUB R0, R0, #ABT_Stack_Size
357
358
00080104 E321F0D1 359 MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit
00080108 E1A0D000 360 MOV SP, R0
0008010C E2400004 361 SUB R0, R0, #FIQ_Stack_Size
362
363
00080110 E321F0D2 364 MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit
00080114 E1A0D000 365 MOV SP, R0
00080118 E2400080 366 SUB R0, R0, #IRQ_Stack_Size
367
368
0008011C E321F0D3 369 MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit
00080120 E1A0D000 370 MOV SP, R0
00080124 E2400004 371 SUB R0, R0, #SVC_Stack_Size
372
373
00080128 E321F010 374 MSR CPSR_c, #Mode_USR
0008012C E1A0D000 375 MOV SP, R0
376
377
00080130 E59F0034 378 LDR R0,=?C?INIT
00080134 E3100001 379 TST R0,#1 ; Bit-0 set: main is Thumb
00080138 E3AFE034 380 LDREQ LR,=exit?A ; ARM Mode
0008013C E3AFE034 381 LDRNE LR,=exit?T ; Thumb Mode
00080140 E12FFF10 382 BX R0
383 ENDP
384
385 PUBLIC exit?A
386 exit?A PROC CODE32
00080144 EAFFFFFE 387 B exit?A
388 ENDP
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:42:49 PAGE 7
389
390 PUBLIC exit?T
391 exit?T PROC CODE16
00080148 E7FE 392 B exit?T
393 ENDP
394
395 END
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:42:49 PAGE 8
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
GP0CON_Val . . . . -- ---- 01001220H A
GP1CON_Val . . . . -- ---- 0000H A
GP2CON_Val . . . . -- ---- 0000H A
GP3CON_Val . . . . -- ---- 0000H A
GP4CON_Val . . . . -- ---- 0000H A
GPIOBASE . . . . . -- ---- FFFFF400H A
GPIO_CFG . . . . . C ADDR 08006CH R SEG=STARTUPCODE
GPIO_END . . . . . C ADDR 080084H R SEG=STARTUPCODE
GPIO_SETUP . . . . -- ---- 0001H 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 . . . . -- ---- 0001H A
PLL_SETUP. . . . . -- ---- 0001H A
POWCON_OFFSET. . . -- ---- 0408H A
POWKEY1_OFFSET . . -- ---- 0404H A
POWKEY2_OFFSET . . -- ---- 040CH A
PREMAP_OFFSET. . . -- ---- 0224H A
REMAP_OFFSET . . . -- ---- 0220H 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 08014AH 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
XM0CON_Val . . . . -- ---- 0000H A
XM0PAR_Val . . . . -- ---- 70FFH A
XM1CON_Val . . . . -- ---- 0003H A
XM1PAR_Val . . . . -- ---- 1833H A
XM2CON_Val . . . . -- ---- 0000H A
XM2PAR_Val . . . . -- ---- 70FFH A
XM3CON_Val . . . . -- ---- 0000H A
XM3PAR_Val . . . . -- ---- 70FFH A
XMBASE . . . . . . -- ---- FFFFF000H A
AA MACRO ASSEMBLER RSTARTUP 09/01/06 14:42:49 PAGE 9
XMCFG_Val. . . . . -- ---- 0001H A
XM_CFG . . . . . . C ADDR 080098H R SEG=STARTUPCODE
XM_END . . . . . . C ADDR 0800C0H R SEG=STARTUPCODE
XM_SETUP . . . . . -- ---- 0001H A
__startup. . . . . C ADDR 080000H R SEG=STARTUPCODE
exit?A . . . . . . C ADDR 080144H R SEG=STARTUPCODE
exit?T . . . . . . C ADDR 080148H R SEG=STARTUPCODE
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -