startup.s
来自「hreadx实时嵌入式操作系统源代码,ARM移植. threadx是一个很好的多」· S 代码 · 共 280 行 · 第 1/2 页
S
280 行
;/**************************************************************************/
;/* */
;/* 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 + =
减小字号Ctrl + -
显示快捷键?