📄 startup.s
字号:
;/*
; * startup.s -- startup file for C_Entry
; *
; * Author: lumit-admin <admin@lumit.org>
; * Date: 2004-8-26
; * Copyright: http://www.lumit.org
; */
;
; *********************************************************************
; *
; * ARM Strategic Support Group
; *
; *********************************************************************
; *********************************************************************
; *
; * Module : startup.s
; * Description : used to initialize the embedded C library
; * Tool Chain : ARM Developer Suite v1.0
; * Platform : Evaluator7T
; * History :
; *
; * 980416 ASloss
; * - alter stack to point to 0x200000 (128k)
; * - added headers
; *
; * 2000-04-04 Andrew N. Sloss
; * - ported to the Evaluator7T
; *
; *
; *********************************************************************
AREA asm_code, CODE
; *********************************************************************
; * If assembled with TASM the variable {CONFIG} will be set to 16
; * If assembled with ARMASM the variable {CONFIG} will be set to 32
; * Set the variable THUMB to TRUE or false depending on whether the
; * file is being assembled with TASM or ARMASM.
; *********************************************************************
GBLL THUMB
[ {CONFIG} = 16
THUMB SETL {TRUE}
; *********************************************************************
; * If assembling with TASM go into 32 bit mode as the Armulator will
; * start up the program in ARM state.
; *********************************************************************
CODE32
|
THUMB SETL {FALSE}
]
IMPORT C_Entry
ENTRY
|__init|
; **********************************************************************
; * Set up the stack pointer to point to the 512K (Evaluator7T top of
; * memory).
; **********************************************************************
MOV sp, #0x80000
; **********************************************************************
; * Get the address of the C entry point.
; **********************************************************************
LDR lr, =C_Entry
[ THUMB
; **********************************************************************
; * If building a Thumb version pass control to C_entry using the BX
; * instruction so the processor will switch to THUMB state.
; **********************************************************************
BX lr
|
; **********************************************************************
; * Otherwise just pass control to C_Entry in ARM state.
; **********************************************************************
MOV pc, lr
]
ldr r0, =0x01805390 ; BootStrap Loader entry address
mov pc, r0
END
; **********************************************************************
; * End OF startup.s
; **********************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -