startup_rom.s

来自「T-kernel Tcp/ip Protocol Stack Sample」· S 代码 · 共 66 行

S
66
字号
#
#   Copyright (C) 2004 MITSUBISHI ELECTRIC CORPORATION and
#   RENESAS SOLUTIONS CORPORATION
#   All Rights Reserved.
#
#   Startup routine for the sample program.
#
#############################################################################

	.import	_main
	.text
	.align 4
	.global		_startup
_startup:
	# /* save return pointer */
	sts.l	pr, @-r15

	# /* copy D section to R section */ 
	mov.l	D_START, r1
	mov.l	R_START, r2
	cmp/eq	r1, r2
	bt	l_noinit

	mov.l   R_END, r3
	bra     L1
	nop
copydata:
	mov.l	@r1+, r0
	mov.l	r0, @r2
	add	#4, r2
L1:
	cmp/hi	r2, r3
	bt	copydata

	# /* Clear B section */
	mov.l	B_START, r2
	mov.l	B_END, r3
	bra	l2
	mov	#0, r0
clearBsection:
	mov.l	r0, @-r3
l2:
	cmp/hi	r2, r3
	bt	clearBsection

l_noinit:
	mov.l	MAIN_START, r0
	# jmp     @r0
	jsr     @r0
	nop

	# /* restore return pointer then return */
	rts
	lds.l	@r15+, pr

	.ALIGN	4
D_START:	.long	__data_org	# /* rom data start address */
R_START:	.long	__data_start	# /* loaded data start address */
R_END:		.long	_edata		# /* loaded data end address */
B_START:	.long	__bss_start
B_END:		.long	_end

MAIN_START:	.long	_main
	
		.end

⌨️ 快捷键说明

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