83 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
##==============================================================================
 | 
						|
##
 | 
						|
##	crt0-eval.S
 | 
						|
##
 | 
						|
##	MN10300 Series Evaluation Board C startup code
 | 
						|
##
 | 
						|
##==============================================================================
 | 
						|
######COPYRIGHTBEGIN####
 | 
						|
##
 | 
						|
## Copyright (c) 1995, 1996, 1997, 1998 Cygnus Solutions
 | 
						|
## 
 | 
						|
## The authors hereby grant permission to use, copy, modify, distribute,
 | 
						|
## and license this software and its documentation for any purpose, provided
 | 
						|
## that existing copyright notices are retained in all copies and that this
 | 
						|
## notice is included verbatim in any distributions. No written agreement,
 | 
						|
## license, or royalty fee is required for any of the authorized uses.
 | 
						|
## Modifications to this software may be copyrighted by their authors
 | 
						|
## and need not follow the licensing terms described here, provided that
 | 
						|
## the new terms are clearly indicated on the first page of each file where
 | 
						|
## they apply.
 | 
						|
##
 | 
						|
######COPYRIGHTEND####
 | 
						|
	
 | 
						|
##------------------------------------------------------------------------------
 | 
						|
	
 | 
						|
	.file	"crt0-eval.S"
 | 
						|
 | 
						|
##------------------------------------------------------------------------------
 | 
						|
## Startup code
 | 
						|
			
 | 
						|
	.equ	DRAM_TOP,0x48100000
 | 
						|
 | 
						|
	.text
 | 
						|
 | 
						|
	.globl	__start
 | 
						|
__start:
 | 
						|
	# Set up stack.  Leave 4K at top for use by Cygmon.
 | 
						|
 | 
						|
	mov	DRAM_TOP - 0x1000,a0
 | 
						|
	sub	8,a0
 | 
						|
	mov	a0,sp
 | 
						|
 | 
						|
	# Clear BSS
 | 
						|
 | 
						|
	mov	__bss_start,a0
 | 
						|
	mov	_end,a1
 | 
						|
 | 
						|
	cmp	a0,a1
 | 
						|
	beq	8f
 | 
						|
	clr	d0
 | 
						|
1:	
 | 
						|
	movbu	d0,(a0)
 | 
						|
	inc	a0
 | 
						|
	cmp	a0,a1
 | 
						|
	bne	1b	
 | 
						|
8:	
 | 
						|
	# Call constructors
 | 
						|
 | 
						|
	.extern	___main
 | 
						|
	call	___main,[],0
 | 
						|
 | 
						|
	# Call main
 | 
						|
	clr	d0
 | 
						|
	clr	d1
 | 
						|
	mov	d0,(4,sp)
 | 
						|
 | 
						|
9:	
 | 
						|
 	or	0x0800,psw	# Enable interrupts
 | 
						|
	
 | 
						|
	.extern	_main
 | 
						|
	call	_main,[],0
 | 
						|
 | 
						|
	.extern	__exit
 | 
						|
	call	__exit,[],0
 | 
						|
 | 
						|
#	bra	9b		# Loop if we return
 | 
						|
 | 
						|
	
 | 
						|
			
 | 
						|
##------------------------------------------------------------------------------		
 | 
						|
## end of crt0-eval.S
 | 
						|
 |