📄 startup.lst
字号:
40000004 E59FF000 245 LDR PC,Undef_Addr
40000008 E59FF000 246 LDR PC,SWI_Addr
4000000C E59FF000 247 LDR PC,PAbt_Addr
40000010 E59FF000 248 LDR PC,DAbt_Addr
40000014 E1A00000 249 NOP
250 ; LDR PC,IRQ_Addr
40000018 E51FFFF0 251 LDR PC,[PC, #-0x0FF0]
4000001C E59FF000 252 LDR PC,FIQ_Addr
253
40000020 40000040 R 254 Reset_Addr: DD Reset_Handler
40000024 00000000 E 255 Undef_Addr: DD Undef_Handler?A
40000028 00000000 E 256 SWI_Addr: DD SWI_Handler?A
AA MACRO ASSEMBLER RSTARTUP 21/04/05 14:01:17 PAGE 5
4000002C 00000000 E 257 PAbt_Addr: DD PAbt_Handler?A
40000030 00000000 E 258 DAbt_Addr: DD DAbt_Handler?A
40000034 00000000 259 DD 0
40000038 00000000 E 260 IRQ_Addr: DD IRQ_Handler?A
4000003C 00000000 E 261 FIQ_Addr: DD FIQ_Handler?A
262
263
264
265
40000040 266 Reset_Handler:
267
268
269 $if (EXTERNAL_MODE)
LDR R0, =PINSEL2
LDR R1, =PINSEL2_Val
STR R1, [R0]
$endif
274
275
276 IF (EMC_SETUP != 0)
LDR R0, =EMC_BASE
IF (BCFG0_SETUP != 0)
LDR R1, =BCFG0_Val
STR R1, [R0, #BCFG0_OFS]
ENDIF
IF (BCFG1_SETUP != 0)
LDR R1, =BCFG1_Val
STR R1, [R0, #BCFG1_OFS]
ENDIF
IF (BCFG2_SETUP != 0)
LDR R1, =BCFG2_Val
STR R1, [R0, #BCFG2_OFS]
ENDIF
IF (BCFG3_SETUP != 0)
LDR R1, =BCFG3_Val
STR R1, [R0, #BCFG3_OFS]
ENDIF
ENDIF
300
301
302 IF (VPBDIV_SETUP != 0)
LDR R0, =VPBDIV
LDR R1, =VPBDIV_Val
STR R1, [R0]
ENDIF
307
308
309 IF (PLL_SETUP != 0)
40000040 E59F0034 310 LDR R0, =PLL_BASE
40000044 E3A010AA 311 MOV R1, #0xAA
40000048 E3A02055 312 MOV R2, #0x55
313
314
4000004C E3A03024 315 MOV R3, #PLLCFG_Val
40000050 E5803004 316 STR R3, [R0, #PLLCFG_OFS]
40000054 E3A03001 317 MOV R3, #PLLCON_PLLE
40000058 E5803000 318 STR R3, [R0, #PLLCON_OFS]
4000005C E580100C 319 STR R1, [R0, #PLLFEED_OFS]
40000060 E580200C 320 STR R2, [R0, #PLLFEED_OFS]
321
322
AA MACRO ASSEMBLER RSTARTUP 21/04/05 14:01:17 PAGE 6
40000064 E5903008 323 PLL_Loop: LDR R3, [R0, #PLLSTAT_OFS]
40000068 E2133B01 324 ANDS R3, R3, #PLLSTAT_PLOCK
4000006C 0AFFFFFC 325 BEQ PLL_Loop
326
327
40000070 E3A03003 328 MOV R3, #(PLLCON_PLLE | PLLCON_PLLC)
40000074 E5803000 329 STR R3, [R0, #PLLCON_OFS]
40000078 E580100C 330 STR R1, [R0, #PLLFEED_OFS]
4000007C E580200C 331 STR R2, [R0, #PLLFEED_OFS]
332 ENDIF
333
334
335 IF (MAM_SETUP != 0)
40000080 E59F0034 336 LDR R0, =MAM_BASE
40000084 E3A01004 337 MOV R1, #MAMTIM_Val
40000088 E5801004 338 STR R1, [R0, #MAMTIM_OFS]
4000008C E3A01002 339 MOV R1, #MAMCR_Val
40000090 E5801000 340 STR R1, [R0, #MAMCR_OFS]
341 ENDIF
342
343
344
E01FC040 345 MEMMAP EQU 0xE01FC040
346
347 $if (RAM_INTVEC)
40000094 E59F0034 348 LDR R0, =MEMMAP
40000098 E3A01002 349 MOV R1, #2
4000009C E5801000 350 STR R1, [R0]
351 $endif
352
353
354
400000A0 E59F0034 355 LDR R0, =Top_Stack
356
357
400000A4 E321F0DB 358 MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
400000A8 E1A0D000 359 MOV SP, R0
400000AC E2400004 360 SUB R0, R0, #UND_Stack_Size
361
362
400000B0 E321F0D7 363 MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit
400000B4 E1A0D000 364 MOV SP, R0
400000B8 E2400004 365 SUB R0, R0, #ABT_Stack_Size
366
367
400000BC E321F0D1 368 MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit
400000C0 E1A0D000 369 MOV SP, R0
400000C4 E2400004 370 SUB R0, R0, #FIQ_Stack_Size
371
372
400000C8 E321F0D2 373 MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit
400000CC E1A0D000 374 MOV SP, R0
400000D0 E2400080 375 SUB R0, R0, #IRQ_Stack_Size
376
377
400000D4 E321F0D3 378 MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit
400000D8 E1A0D000 379 MOV SP, R0
400000DC E2400004 380 SUB R0, R0, #SVC_Stack_Size
381
382
400000E0 E321F010 383 MSR CPSR_c, #Mode_USR
400000E4 E1A0D000 384 MOV SP, R0
385
386
400000E8 E59F0034 387 LDR R0,=?C?INIT
400000EC E3100001 388 TST R0,#1 ; Bit-0 set: INIT is Thumb
AA MACRO ASSEMBLER RSTARTUP 21/04/05 14:01:17 PAGE 7
400000F0 E3AFE034 389 LDREQ LR,=exit?A ; ARM Mode
400000F4 E3AFE034 390 LDRNE LR,=exit?T ; Thumb Mode
400000F8 E12FFF10 391 BX R0
392 ENDP
393
394 PUBLIC exit?A
395 exit?A PROC CODE32
400000FC EAFFFFFE 396 B exit?A
397 ENDP
398
399 PUBLIC exit?T
400 exit?T PROC CODE16
40000100 E7FE 401 exit: B exit?T
402 ENDP
403
404
405 END
AA MACRO ASSEMBLER RSTARTUP 21/04/05 14:01:17 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
BCFG0_OFS. . . . . -- ---- 0000H A
BCFG0_SETUP. . . . -- ---- 0000H A
BCFG0_Val. . . . . -- ---- FBEFH A
BCFG1_OFS. . . . . -- ---- 0004H A
BCFG1_SETUP. . . . -- ---- 0000H A
BCFG1_Val. . . . . -- ---- FBEFH A
BCFG2_OFS. . . . . -- ---- 0008H A
BCFG2_SETUP. . . . -- ---- 0000H A
BCFG2_Val. . . . . -- ---- FBEFH A
BCFG3_OFS. . . . . -- ---- 000CH A
BCFG3_SETUP. . . . -- ---- 0000H A
BCFG3_Val. . . . . -- ---- FBEFH A
CODE_BASE. . . . . -- ---- 40000000H A
DAbt_Addr. . . . . C ADDR 40000030H R SEG=STARTUPCODE
DAbt_Handler?A . . C ADDR ------- EXT
EMC_BASE . . . . . -- ---- FFE00000H A
EMC_SETUP. . . . . -- ---- 0000H A
FIQ_Addr . . . . . C ADDR 4000003CH R SEG=STARTUPCODE
FIQ_Handler?A. . . C ADDR ------- EXT
FIQ_Stack_Size . . -- ---- 0004H A
F_Bit. . . . . . . -- ---- 0040H A
IRQ_Addr . . . . . C ADDR 40000038H R SEG=STARTUPCODE
IRQ_Handler?A. . . C ADDR ------- EXT
IRQ_Stack_Size . . -- ---- 0080H A
I_Bit. . . . . . . -- ---- 0080H A
MAMCR_OFS. . . . . -- ---- 0000H A
MAMCR_Val. . . . . -- ---- 0002H A
MAMTIM_OFS . . . . -- ---- 0004H A
MAMTIM_Val . . . . -- ---- 0004H A
MAM_BASE . . . . . -- ---- E01FC000H A
MAM_SETUP. . . . . -- ---- 0001H A
MEMMAP . . . . . . -- ---- E01FC040H 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 4000002CH R SEG=STARTUPCODE
PAbt_Handler?A . . C ADDR ------- EXT
PINSEL2. . . . . . -- ---- E002C014H A
PINSEL2_Val. . . . -- ---- 0E6149E4H A
PLLCFG_MSEL. . . . -- ---- 001FH A
PLLCFG_OFS . . . . -- ---- 0004H A
PLLCFG_PSEL. . . . -- ---- 0060H A
PLLCFG_Val . . . . -- ---- 0024H A
PLLCON_OFS . . . . -- ---- 0000H A
PLLCON_PLLC. . . . -- ---- 0002H A
PLLCON_PLLE. . . . -- ---- 0001H A
PLLFEED_OFS. . . . -- ---- 000CH A
PLLSTAT_OFS. . . . -- ---- 0008H A
PLLSTAT_PLOCK. . . -- ---- 0400H A
PLL_BASE . . . . . -- ---- E01FC080H A
PLL_Loop . . . . . C ADDR 40000064H R SEG=STARTUPCODE
PLL_SETUP. . . . . -- ---- 0001H A
Reset_Addr . . . . C ADDR 40000020H R SEG=STARTUPCODE
Reset_Handler. . . C ADDR 40000040H R SEG=STARTUPCODE
AA MACRO ASSEMBLER RSTARTUP 21/04/05 14:01:17 PAGE 9
STACK. . . . . . . D SEG 0490H REL=UNIT, ALN=BYTE
STARTUPCODE. . . . C SEG 40000102H REL=ABS, ALN=BYTE
SVC_Stack_Size . . -- ---- 0004H A
SWI_Addr . . . . . C ADDR 40000028H 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 40000024H R SEG=STARTUPCODE
Undef_Handler?A. . C ADDR ------- EXT
VPBDIV . . . . . . -- ---- E01FC100H A
VPBDIV_SETUP . . . -- ---- 0000H A
VPBDIV_Val . . . . -- ---- 0000H A
Vectors. . . . . . C ADDR 40000000H R SEG=STARTUPCODE
__startup. . . . . C ADDR 40000000H R SEG=STARTUPCODE
exit . . . . . . . C ADDR 40000100H R SEG=STARTUPCODE
exit?A . . . . . . C ADDR 400000FCH R SEG=STARTUPCODE
exit?T . . . . . . C ADDR 40000100H R SEG=STARTUPCODE
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -