init.s

来自「一些典型的阿arm嵌入式应用程序集锦!」· S 代码 · 共 53 行

S
53
字号
/*******************************************************
  * NAME    : SOURCE\INIT.S	     ver1.0		*
  * Author  : Nicolas Park				*
  * Description:					*
  * LCD test C start up codes	for NBC board S3C4510B0	*
  * Fill zeros into zero-initialized C-variables	*
  * The last Modification date:  24-April-2002         *
  * REMARKS:  Created initial version 1.0              *
  *            Copyright (C) 2002 AIJISYSTEM CO.,LTD   *
  ******************************************************/

#//////////// Start Area ///////////////////////

#	AREA     Init, CODE, READONLY

_ENTRY:

	LDR     sp, =0x1100000
	B       Reset_Handler

# ////////// The RESET entry point /////////

Reset_Handler:

# Initialise memory required by C code

	.extern	Image_RO_Limit		@ End of ROM code (=start of ROM data)
	.extern	Image_RW_Base		@ Base of RAM to initialise
	.extern	Image_ZI_Base		@ Base and limit of area
	.extern	Image_ZI_Limit		@ to zero initialise

	NOP
	LDR     r0, =Image_RO_Limit 	@ Get pointer to ROM data
	LDR     r1, =Image_RW_Base  	@ and RAM copy
	LDR     r3, =Image_ZI_Base  	@ Zero init base => top of initialised data
	
	CMP     r0, r1                  @ Check that they are different
	BEQ     L2
L1:	CMP     r1, r3                  @ Copy init data
	LDRCC   r2, [r0], #4
	STRCC   r2, [r1], #4
	BCC     L1
L2:	LDR     r1, =Image_ZI_Limit		@ Top of zero init segment
	MOV     r2, #0
L3:	CMP     r3, r1                  @ Zero init
	STRCC   r2, [r3], #4
	BCC     L3
                    
	.extern    Main
	BL        Main					@ Branch to C code Main routine

#  	END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?