📄 start_up.s
字号:
/****************************************************************************
** File Name: start_up.s
** Description:
** Generated Automatically for: ARM7TDMI-S3c44b0x Evaluation Board.
** Time: Saturday, August 14, 2004 20:45:57
** Copyright 2001 Hitool System Inc.
****************************************************************************/
#include "maindef.h"
.text
.global _start
_start:
BL Init_Stack
BL __main
/*********************************************************************************/
# Init_Stack : Initialise stack pointer registers and copy .Data
# to RAM
/*********************************************************************************/
Init_Stack:
# Because we will change mode, so save LR to general register
MOV R7, LR
LDR R1, =_stackBottom
# Enter IRQ mode and set up the IRQ stack pointer
MOV R0, #(Mode_IRQ | I_Bit | F_Bit) @ No interrupts
MSR cpsr, R0
MOV SP, R1
SUB R1, R1, #IRQ_Stack
# Enter FIQ mode and set up the FIQ stack pointer
MOV R0, #(Mode_FIQ | I_Bit | F_Bit) @ No interrupts
MSR cpsr, R0
MOV SP, R1
SUB R1, R1, #FIQ_Stack
# Enter ABT mode and set up the ABT stack pointer
MOV R0, #(Mode_ABT | I_Bit | F_Bit) @ No interrupts
MSR cpsr, R0
MOV SP, R1
SUB R1, R1, #ABT_Stack
# Enter IRQ mode and set up the IRQ stack pointer
MOV R0, #(Mode_UNDEF | I_Bit | F_Bit) @ No interrupts
MSR cpsr, R0
MOV SP, R1
SUB R1, R1, #UNDEF_Stack
# Enter SYS mode and set up the SYS stack pointer
MOV R0, #(Mode_SYS | I_Bit | F_Bit) @ No interrupts
MSR cpsr, R0
MOV SP, R1
SUB R1, R1, #SYS_Stack
# Set up the SVC stack pointer last and return to SVC mode
MOV R0, #(Mode_SVC | I_Bit | F_Bit) @ No interrupts
MSR cpsr, R0
MOV SP, R1
SUB R1, R1, #SVC_Stack
MOV R4, R1
# clear bss
MOV R2, #0x0
LDR R0, =_fbss
LDR R1, =end
Do_Clear:
STR R2, [R0], #0x4
CMP R0, R1
BCC Do_Clear
### return, LR has been saved to R7
MOV PC, R7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -