start_up.s

来自「关于lcd数显的源程序」· S 代码 · 共 68 行

S
68
字号
/****************************************************************************
** 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 + =
减小字号Ctrl + -
显示快捷键?