📄 startup.lst
字号:
258 EXTERN CODE32 (SWI_Handler?A)
259 EXTERN CODE32 (PAbt_Handler?A)
260 EXTERN CODE32 (DAbt_Handler?A)
261 EXTERN CODE32 (IRQ_Handler?A)
262 EXTERN CODE32 (FIQ_Handler?A)
263
264
265
266
267
00000000 E59FF020 268 Vectors: LDR PC,Reset_Addr
00000004 E59FF024 269 LDR PC,Undef_Addr
00000008 E59FF028 270 LDR PC,SWI_Addr
0000000C E59FF02C 271 LDR PC,PAbt_Addr
00000010 E59FF030 272 LDR PC,DAbt_Addr
00000014 E1A00000 273 NOP
274 ; LDR PC,IRQ_Addr
00000018 E51FFFF0 275 LDR PC,[PC, #-0x0FF0]
0000001C E59FF03C 276 LDR PC,FIQ_Addr
277
00000020 00000040 R 278 Reset_Addr: DD Reset_Handler
00000024 00000000 E 279 Undef_Addr: DD Undef_Handler?A
00000028 00000000 E 280 SWI_Addr: DD SWI_Handler?A
0000002C 00000000 E 281 PAbt_Addr: DD PAbt_Handler?A
00000030 00000000 E 282 DAbt_Addr: DD DAbt_Handler?A
00000034 00000000 283 DD 0
00000038 00000000 E 284 IRQ_Addr: DD IRQ_Handler?A
0000003C 00000000 E 285 FIQ_Addr: DD FIQ_Handler?A
286
287
288
289
00000040 290 Reset_Handler:
291
292
293 $if (EXTMEM_MODE)
LDR R0, =PINSEL2
LDR R1, =PINSEL2_Val
STR R1, [R0]
$endif
298
299
300 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
AA MACRO ASSEMBLER RSTARTUP 27/03/06 10:45:53 PAGE 6
ENDIF
324
325
326 IF (VPBDIV_SETUP != 0)
LDR R0, =VPBDIV
LDR R1, =VPBDIV_Val
STR R1, [R0]
ENDIF
331
332
333 IF (PLL_SETUP != 0)
LDR R0, =PLL_BASE
MOV R1, #0xAA
MOV R2, #0x55
MOV R3, #PLLCFG_Val
STR R3, [R0, #PLLCFG_OFS]
MOV R3, #PLLCON_PLLE
STR R3, [R0, #PLLCON_OFS]
STR R1, [R0, #PLLFEED_OFS]
STR R2, [R0, #PLLFEED_OFS]
PLL_Loop: LDR R3, [R0, #PLLSTAT_OFS]
ANDS R3, R3, #PLLSTAT_PLOCK
BEQ PLL_Loop
MOV R3, #(PLLCON_PLLE | PLLCON_PLLC)
STR R3, [R0, #PLLCON_OFS]
STR R1, [R0, #PLLFEED_OFS]
STR R2, [R0, #PLLFEED_OFS]
ENDIF
357
358
359 IF (MAM_SETUP != 0)
LDR R0, =MAM_BASE
MOV R1, #MAMTIM_Val
STR R1, [R0, #MAMTIM_OFS]
MOV R1, #MAMCR_Val
STR R1, [R0, #MAMCR_OFS]
ENDIF
366
367
368
E01FC040 369 MEMMAP EQU 0xE01FC040
370
371 $if (REMAP)
LDR R0, =MEMMAP
$if (EXTMEM_MODE)
MOV R1, #3
$elseif (RAM_MODE)
MOV R1, #2
$else
MOV R1, #1
$endif
STR R1, [R0]
$endif
382
383
384
00000040 E59F0034 385 LDR R0, =Top_Stack
386
387
00000044 E321F0DB 388 MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
AA MACRO ASSEMBLER RSTARTUP 27/03/06 10:45:53 PAGE 7
00000048 E1A0D000 389 MOV SP, R0
0000004C E2400004 390 SUB R0, R0, #UND_Stack_Size
391
392
00000050 E321F0D7 393 MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit
00000054 E1A0D000 394 MOV SP, R0
00000058 E2400004 395 SUB R0, R0, #ABT_Stack_Size
396
397
0000005C E321F0D1 398 MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit
00000060 E1A0D000 399 MOV SP, R0
00000064 E2400004 400 SUB R0, R0, #FIQ_Stack_Size
401
402
00000068 E321F0D2 403 MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit
0000006C E1A0D000 404 MOV SP, R0
00000070 E2400080 405 SUB R0, R0, #IRQ_Stack_Size
406
407
00000074 E321F0D3 408 MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit
00000078 E1A0D000 409 MOV SP, R0
0000007C E2400004 410 SUB R0, R0, #SVC_Stack_Size
411
412
00000080 E321F010 413 MSR CPSR_c, #Mode_USR
00000084 E1A0D000 414 MOV SP, R0
415
416
00000088 E59F0034 417 LDR R0,=?C?INIT
0000008C E3100001 418 TST R0,#1 ; Bit-0 set: INIT is Thumb
00000090 E3A0E09C 419 LDREQ LR,=exit?A ; ARM Mode
00000094 E3A0E0A0 420 LDRNE LR,=exit?T ; Thumb Mode
00000098 E12FFF10 421 BX R0
422 ENDP
423
424 PUBLIC exit?A
425 exit?A PROC CODE32
0000009C EAFFFFFE 426 B exit?A
427 ENDP
428
429 PUBLIC exit?T
430 exit?T PROC CODE16
000000A0 E7FE 431 exit: B exit?T
432 ENDP
433
434
435 END
AA MACRO ASSEMBLER RSTARTUP 27/03/06 10:45:53 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. . . . . -- ---- 0000H A
DAbt_Addr. . . . . C ADDR 0030H R SEG=STARTUPCODE
DAbt_Handler?A . . C ADDR ------- EXT
EMC_BASE . . . . . -- ---- FFE00000H A
EMC_SETUP. . . . . -- ---- 0000H A
FIQ_Addr . . . . . C ADDR 003CH R SEG=STARTUPCODE
FIQ_Handler?A. . . C ADDR ------- EXT
FIQ_Stack_Size . . -- ---- 0004H A
F_Bit. . . . . . . -- ---- 0040H A
IRQ_Addr . . . . . C ADDR 0038H 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. . . . . -- ---- 0000H 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 002CH 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_SETUP. . . . . -- ---- 0000H A
Reset_Addr . . . . C ADDR 0020H R SEG=STARTUPCODE
Reset_Handler. . . C ADDR 0040H R SEG=STARTUPCODE
STACK. . . . . . . D SEG 0490H REL=UNIT, ALN=BYTE
AA MACRO ASSEMBLER RSTARTUP 27/03/06 10:45:53 PAGE 9
STARTUPCODE. . . . C SEG 00A2H REL=ABS, ALN=BYTE
SVC_Stack_Size . . -- ---- 0004H A
SWI_Addr . . . . . C ADDR 0028H 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 0024H R SEG=STARTUPCODE
Undef_Handler?A. . C ADDR ------- EXT
VPBDIV . . . . . . -- ---- E01FC100H A
VPBDIV_SETUP . . . -- ---- 0000H A
VPBDIV_Val . . . . -- ---- 0000H A
Vectors. . . . . . C ADDR 0000H R SEG=STARTUPCODE
__startup. . . . . C ADDR 0000H R SEG=STARTUPCODE
exit . . . . . . . C ADDR 00A0H R SEG=STARTUPCODE
exit?A . . . . . . C ADDR 009CH R SEG=STARTUPCODE
exit?T . . . . . . C ADDR 00A0H R SEG=STARTUPCODE
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -