📄 startup.lst
字号:
184
185
186
00000040 187 Reset_Handler:
188
189
190 IF (VPBDIV_SETUP != 0)
AA MACRO ASSEMBLER RSTARTUP 09/06/07 15:42:23 PAGE 4
00000040 E59F0034 191 LDR R0, =VPBDIV
00000044 E3A01001 192 LDR R1, =VPBDIV_Val
00000048 E5801000 193 STR R1, [R0]
194 ENDIF
195
196
197 IF (PLL_SETUP != 0)
0000004C E59F0034 198 LDR R0, =PLL_BASE
00000050 E3A010AA 199 MOV R1, #0xAA
00000054 E3A02055 200 MOV R2, #0x55
201
202
00000058 E3A03024 203 MOV R3, #PLLCFG_Val
0000005C E5803004 204 STR R3, [R0, #PLLCFG_OFS]
00000060 E3A03001 205 MOV R3, #PLLCON_PLLE
00000064 E5803000 206 STR R3, [R0, #PLLCON_OFS]
00000068 E580100C 207 STR R1, [R0, #PLLFEED_OFS]
0000006C E580200C 208 STR R2, [R0, #PLLFEED_OFS]
209
210
00000070 E5903008 211 PLL_Loop: LDR R3, [R0, #PLLSTAT_OFS]
00000074 E2133B01 212 ANDS R3, R3, #PLLSTAT_PLOCK
00000078 0AFFFFFC 213 BEQ PLL_Loop
214
215
0000007C E3A03003 216 MOV R3, #(PLLCON_PLLE | PLLCON_PLLC)
00000080 E5803000 217 STR R3, [R0, #PLLCON_OFS]
00000084 E580100C 218 STR R1, [R0, #PLLFEED_OFS]
00000088 E580200C 219 STR R2, [R0, #PLLFEED_OFS]
220 ENDIF
221
222
223 IF (MAM_SETUP != 0)
0000008C E59F0034 224 LDR R0, =MAM_BASE
00000090 E3A01004 225 MOV R1, #MAMTIM_Val
00000094 E5801004 226 STR R1, [R0, #MAMTIM_OFS]
00000098 E3A01002 227 MOV R1, #MAMCR_Val
0000009C E5801000 228 STR R1, [R0, #MAMCR_OFS]
229 ENDIF
230
231
232
E01FC040 233 MEMMAP EQU 0xE01FC040
234
235 $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
246
247
248
000000A0 E59F0034 249 LDR R0, =Top_Stack
250
251
000000A4 E321F0DB 252 MSR CPSR_c, #Mode_UND|I_Bit|F_Bit
000000A8 E1A0D000 253 MOV SP, R0
000000AC E2400004 254 SUB R0, R0, #UND_Stack_Size
255
256
AA MACRO ASSEMBLER RSTARTUP 09/06/07 15:42:23 PAGE 5
000000B0 E321F0D7 257 MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit
000000B4 E1A0D000 258 MOV SP, R0
000000B8 E2400004 259 SUB R0, R0, #ABT_Stack_Size
260
261
000000BC E321F0D1 262 MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit
000000C0 E1A0D000 263 MOV SP, R0
000000C4 E2400004 264 SUB R0, R0, #FIQ_Stack_Size
265
266
000000C8 E321F0D2 267 MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit
000000CC E1A0D000 268 MOV SP, R0
000000D0 E2400C01 269 SUB R0, R0, #IRQ_Stack_Size
270
271
000000D4 E321F0D3 272 MSR CPSR_c, #Mode_SVC|I_Bit|F_Bit
000000D8 E1A0D000 273 MOV SP, R0
000000DC E2400004 274 SUB R0, R0, #SVC_Stack_Size
275
276
000000E0 E321F010 277 MSR CPSR_c, #Mode_USR
000000E4 E1A0D000 278 MOV SP, R0
279
280
000000E8 E59F0034 281 LDR R0,=?C?INIT
000000EC E3100001 282 TST R0,#1 ; Bit-0 set: INIT is Thumb
000000F0 E3A0E0FC 283 LDREQ LR,=exit?A ; ARM Mode
000000F4 E3A0EC01 284 LDRNE LR,=exit?T ; Thumb Mode
000000F8 E12FFF10 285 BX R0
286 ENDP
287
288 PUBLIC exit?A
289 exit?A PROC CODE32
000000FC EAFFFFFE 290 B exit?A
291 ENDP
292
293 PUBLIC exit?T
294 exit?T PROC CODE16
00000100 E7FE 295 exit: B exit?T
296 ENDP
297
298
299 END
AA MACRO ASSEMBLER RSTARTUP 09/06/07 15:42:23 PAGE 6
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
CODE_BASE. . . . . -- ---- 0000H A
DAbt_Addr. . . . . C ADDR 0030H R SEG=STARTUPCODE
DAbt_Handler?A . . C ADDR ------- EXT
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 . . -- ---- 0100H 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 002CH R SEG=STARTUPCODE
PAbt_Handler?A . . C ADDR ------- EXT
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 0070H R SEG=STARTUPCODE
PLL_SETUP. . . . . -- ---- 0001H A
Reset_Addr . . . . C ADDR 0020H R SEG=STARTUPCODE
Reset_Handler. . . C ADDR 0040H R SEG=STARTUPCODE
STACK. . . . . . . D SEG 0510H REL=UNIT, ALN=BYTE
STARTUPCODE. . . . C SEG 0102H 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 0510H 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 . . . -- ---- 0001H A
VPBDIV_Val . . . . -- ---- 0001H A
Vectors. . . . . . C ADDR 0000H R SEG=STARTUPCODE
__startup. . . . . C ADDR 0000H R SEG=STARTUPCODE
exit . . . . . . . C ADDR 0100H R SEG=STARTUPCODE
AA MACRO ASSEMBLER RSTARTUP 09/06/07 15:42:23 PAGE 7
exit?A . . . . . . C ADDR 00FCH R SEG=STARTUPCODE
exit?T . . . . . . C ADDR 0100H R SEG=STARTUPCODE
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -