📄 startup.lst
字号:
MOSCS_Loop: LDR R2, [R0, #APMC_SR]
ANDS R2, R2, #APMC_MOSCS
BEQ MOSCS_Loop
ENDIF
IF ((APMC_CGMR_Val & APMC_MUL) != 0)
LDR R1, =(APMC_CGMR_Val & ~APMC_CSS)
STR R1, [R0, #APMC_CGMR]
PLL_Loop: LDR R2, [R0, #APMC_SR]
ANDS R2, R2, #APMC_PLL_LOCK
BEQ PLL_Loop
ENDIF
; Switch from Slow Clock to Selected Clock
LDR R1, =APMC_CGMR_Val
STR R1, [R0, #APMC_CGMR]
ENDIF ; APMC_SETUP
441
442
443
444
01000058 E24F8040 445 ADR R8, Vectors
446 $if (REMAPPED)
MOV R9, #RAM_Base
$else
0100005C E3A09603 449 MOV R9, #RAM_Boot
450 $endif
01000060 E8B800FF 451 LDMIA R8!, {R0-R7} ; Load Vectors
01000064 E8A900FF 452 STMIA R9!, {R0-R7} ; Store Vectors
01000068 E8B800FF 453 LDMIA R8!, {R0-R7} ; Load Handler Addresses
0100006C E8A900FF 454 STMIA R9!, {R0-R7} ; Store Handler Addresses
AA MACRO ASSEMBLER STARTUP 19/08/06 14:09:57 PAGE 8
455
456
457
458
01000070 E59FC000 459 LDR R12, AfterRemapAdr ; Get the Real Jump Address
01000074 E28FB008 460 ADR R11, EBI_Table
01000078 E89B07FF 461 LDMIA R11, {R0-R10} ; Load EBI Data
0100007C E88A03FF 462 STMIA R10, {R0-R9} ; Store EBI Data with Remap
01000080 E1A0F00C 463 MOV PC, R12 ; Jump and flush Pipeline
464
01000084 010024A9 465 EBI_Table: DD EBI_CSR0_Val
01000088 040034A5 466 DD EBI_CSR1_Val
0100008C 20000000 467 DD EBI_CSR2_Val
01000090 30000000 468 DD EBI_CSR3_Val
01000094 40000000 469 DD EBI_CSR4_Val
01000098 50000000 470 DD EBI_CSR5_Val
0100009C 60000000 471 DD EBI_CSR6_Val
010000A0 70000000 472 DD EBI_CSR7_Val
010000A4 00000001 473 DD 0x00000001 ; Remap Command
010000A8 00000010 474 DD EBI_MCR_Val
010000AC FFE00000 475 DD EBI_BASE
476
010000B0 010000B4 R 477 AfterRemapAdr: DD AfterRemap
478
010000B4 479 AfterRemap:
480
481
482
010000B4 E59F0000 483 LDR R0, =Top_Stack
484
485
010000B8 E321F0DB 486 MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
010000BC E1A0D000 487 MOV SP, R0
010000C0 E2400004 488 SUB R0, R0, #UND_Stack_Size
489
490
010000C4 E321F0D7 491 MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit
010000C8 E1A0D000 492 MOV SP, R0
010000CC E2400004 493 SUB R0, R0, #ABT_Stack_Size
494
495
010000D0 E321F0D1 496 MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit
010000D4 E1A0D000 497 MOV SP, R0
010000D8 E2400004 498 SUB R0, R0, #FIQ_Stack_Size
499
500
010000DC E321F0D2 501 MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit
010000E0 E1A0D000 502 MOV SP, R0
010000E4 E2400080 503 SUB R0, R0, #IRQ_Stack_Size
504
505
010000E8 E321F0D3 506 MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit
010000EC E1A0D000 507 MOV SP, R0
010000F0 E2400004 508 SUB R0, R0, #SVC_Stack_Size
509
510
010000F4 E321F010 511 MSR CPSR_c, #Mode_USR
010000F8 E1A0D000 512 MOV SP, R0
513
514
010000FC E59F0000 515 LDR R0,=?C?INIT
01000100 E3100001 516 TST R0,#1 ; Bit-0 set: main is Thumb
01000104 E3AFE000 517 LDREQ LR,=exit?A ; ARM Mode
01000108 E3AFE000 518 LDRNE LR,=exit?T ; Thumb Mode
0100010C E12FFF10 519 BX R0
520 ENDP
AA MACRO ASSEMBLER STARTUP 19/08/06 14:09:57 PAGE 9
521
522 PUBLIC exit?A
523 exit?A PROC CODE32
01000110 EAFFFFFE 524 B exit?A
525 ENDP
526
527 PUBLIC exit?T
528 exit?T PROC CODE16
01000114 E7FE 529 B exit?T
530 ENDP
531
532 END
AA MACRO ASSEMBLER STARTUP 19/08/06 14:09:57 PAGE 10
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
APMC_BASE. . . . . -- ---- FFFF4000H A
APMC_CGMR. . . . . -- ---- 0020H A
APMC_CGMR_Val. . . -- ---- 032F8102H A
APMC_CSS . . . . . -- ---- C000H A
APMC_MCKO_DIS. . . -- ---- 0004H A
APMC_MOSCS . . . . -- ---- 0001H A
APMC_MOSC_BYP. . . -- ---- 0001H A
APMC_MOSC_EN . . . -- ---- 0002H A
APMC_MUL . . . . . -- ---- 3F00H A
APMC_OSCOUNT . . . -- ---- FF0000H A
APMC_PLLCOUNT. . . -- ---- 3F000000H A
APMC_PLL_LOCK. . . -- ---- 0002H A
APMC_PRES. . . . . -- ---- 0070H A
APMC_SETUP . . . . -- ---- 0000H A
APMC_SR. . . . . . -- ---- 0030H A
AfterRemap . . . . C ADDR 010000B4H R SEG=STARTUPCODE
AfterRemapAdr. . . C ADDR 010000B0H R SEG=STARTUPCODE
DAbt_Addr. . . . . C ADDR 01000050H R SEG=STARTUPCODE
DAbt_Handler?A . . C ADDR ------- EXT
DAbt_Vec . . . . . C ADDR 01000010H R SEG=STARTUPCODE
EBI_BASE . . . . . -- ---- FFE00000H A
EBI_CSR0_Val . . . -- ---- 010024A9H A
EBI_CSR1_Val . . . -- ---- 040034A5H A
EBI_CSR2_Val . . . -- ---- 20000000H A
EBI_CSR3_Val . . . -- ---- 30000000H A
EBI_CSR4_Val . . . -- ---- 40000000H A
EBI_CSR5_Val . . . -- ---- 50000000H A
EBI_CSR6_Val . . . -- ---- 60000000H A
EBI_CSR7_Val . . . -- ---- 70000000H A
EBI_MCR_Val. . . . -- ---- 0010H A
EBI_Table. . . . . C ADDR 01000084H R SEG=STARTUPCODE
FIQ_Stack_Size . . -- ---- 0004H A
FIQ_Vec. . . . . . C ADDR 0100001CH R SEG=STARTUPCODE
F_Bit. . . . . . . -- ---- 0040H A
IRQ_Stack_Size . . -- ---- 0080H A
IRQ_Vec. . . . . . C ADDR 01000018H R SEG=STARTUPCODE
I_Bit. . . . . . . -- ---- 0080H 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 0100004CH R SEG=STARTUPCODE
PAbt_Handler?A . . C ADDR ------- EXT
PAbt_Vec . . . . . C ADDR 0100000CH R SEG=STARTUPCODE
PMC_BASE . . . . . -- ---- FFFF4000H A
PMC_CGMR . . . . . -- ---- 0020H A
PMC_CGMR_Val . . . -- ---- 1003FF98H A
PMC_CSS. . . . . . -- ---- 0080H A
PMC_MCKO . . . . . -- ---- 0040H A
PMC_MCKOSS . . . . -- ---- 0030H A
PMC_MUL. . . . . . -- ---- 07FF00H A
PMC_PLLCOUNT . . . -- ---- FF000000H A
PMC_PLLS . . . . . -- ---- 0008H A
PMC_PLL_LOCK . . . -- ---- 0001H A
PMC_PRES . . . . . -- ---- 0007H A
AA MACRO ASSEMBLER STARTUP 19/08/06 14:09:57 PAGE 11
PMC_SETUP. . . . . -- ---- 0000H A
PMC_SR . . . . . . -- ---- 0030H A
RAM_Base . . . . . -- ---- 0000H A
RAM_Boot . . . . . -- ---- 300000H A
Reset_Addr . . . . C ADDR 01000040H R SEG=STARTUPCODE
Reset_Handler. . . C ADDR 01000058H R SEG=STARTUPCODE
Reset_Vec. . . . . C ADDR 01000000H R SEG=STARTUPCODE
STACK. . . . . . . D SEG 0490H REL=UNIT, ALN=BYTE
STARTUPCODE. . . . C SEG 01000116H REL=ABS, ALN=BYTE
SVC_Stack_Size . . -- ---- 0004H A
SWI_Addr . . . . . C ADDR 01000048H R SEG=STARTUPCODE
SWI_Handler?A. . . C ADDR ------- EXT
SWI_Vec. . . . . . C ADDR 01000008H R SEG=STARTUPCODE
Top_Stack. . . . . D ADDR 0490H R SEG=STACK
UND_Stack_Size . . -- ---- 0004H A
USR_Stack_Size . . -- ---- 0400H A
Undef_Addr . . . . C ADDR 01000044H R SEG=STARTUPCODE
Undef_Handler?A. . C ADDR ------- EXT
Undef_Vec. . . . . C ADDR 01000004H R SEG=STARTUPCODE
VECTORS. . . . . . D SEG 0020H REL=ABS, ALN=BYTE
Vectors. . . . . . C ADDR 01000020H R SEG=STARTUPCODE
__startup. . . . . C ADDR 01000000H R SEG=STARTUPCODE
exit?A . . . . . . C ADDR 01000110H R SEG=STARTUPCODE
exit?T . . . . . . C ADDR 01000114H R SEG=STARTUPCODE
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -