📄 startup.s
字号:
;/**************************************************************************/
;/* */
;/* only for 32bit mode and dosn't support interrupt nesting */
;/* */
;/* File name: startup.s */
;/* Last modified Date: 2008-03-28 */
;/* Last Version: 0.01 */
;/* Descriptions: asm file for armtarget */
;/* QQ: 307102293 */
;/* ENAIL: wodexinxiang1949@163.com */
;/* */
;/**************************************************************************/
;/* Include necessary system files. */
GET option.inc
GET 2440addr.inc
EXTERN FiqInterrupt
EXTERN __thread_irq_handle
EXTERN __thread_swi_handle
EXTERN __main
EXTERN __use_no_semihosting_swi
EXTERN __use_two_region_memory
GLOBAL bottom_of_heap
GLOBAL __user_initial_stackheap
AREA Heap, DATA, READWRITE, NOINIT, ALIGN=4
bottom_of_heap SPACE 1
CODE32
AREA vectorsFSTTAB, CODE, READONLY
;/**************************************************************************/
;/* */
;/* hardware of vectors */
;/* */
;/**************************************************************************/
ENTRY
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWIAddr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
LDR PC, ReserveAddr
LDR PC, IRQ_Addr
LDR PC, FIQ_Addr
;SWIAddr DCD __thread_swi_handle
;IRQ_Addr DCD __thread_irq_handle
;FIQ_Addr DCD FiqInterrupt
ResetAddr DCD ResetInit
UndefinedAddr DCD 0x31000004
SWIAddr DCD __thread_swi_handle
PrefetchAddr DCD 0x3100000c
DataAbortAddr DCD 0x31000010
ReserveAddr DCD 0x31000014
IRQ_Addr DCD __thread_irq_handle
FIQ_Addr DCD FiqInterrupt
;/**************************************************************************/
;/* */
;/* FUNCTION RELEASE */
;/* */
;/* ResetInit */
;/* 3.0a */
;/* AUTHOR */
;/* */
;/* */
;/* */
;/* DESCRIPTION */
;/* */
;/* Reset target and jump to C entry main */
;/* */
;/* INPUT */
;/* */
;/* */
;/* OUTPUT */
;/* */
;/* None */
;/* */
;/* CALLS */
;/* */
;/* None */
;/* */
;/* CALLED BY */
;/* */
;/* resert vector */
;/* */
;/* RELEASE HISTORY */
;/* */
;/* DATE NAME DESCRIPTION */
;/* */
;/* */
;/**************************************************************************/
SYS_STACK_LEGTH EQU 100
SvcStackSpace SPACE SYS_STACK_LEGTH * 4
StackSYS DCD SvcStackSpace + (SYS_STACK_LEGTH - 1) * 4
ResetInit FUNCTION
MSR CPSR_c, #(Mode_SYS | NO_FIQ | NO_IRQ)
ldr sp, =StackSYS
BL TargetInitReset
B __main
B .
ENDFUNC
;/**************************************************************************/
;/* */
;/* FUNCTION RELEASE */
;/* */
;/* __user_initial_stackheap */
;/* 3.0a */
;/* AUTHOR */
;/* */
;/* */
;/* */
;/* DESCRIPTION */
;/* */
;/* initialize the heap */
;/* */
;/* INPUT */
;/* */
;/* */
;/* OUTPUT */
;/* */
;/* None */
;/* */
;/* CALLS */
;/* */
;/* None */
;/* */
;/* CALLED BY */
;/* */
;/* resert handle */
;/* */
;/* RELEASE HISTORY */
;/* */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -