⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startup.s

📁 sansumg s3c2443 bootload 的源码
💻 S
字号:
;/**
;* Project Name : S3C2443 verification project
;*
;* Copyright 2004 by Samsung Electronics, Inc.
;* All rights reserved.
;*
;* Project Description :
;* This software is only for verifying functions of the S3C2443. 
;* Anybody can use this code without our permission.
;*/

;/**
;* File Name    : startup.s
;* Description  : S3C2443 startup code
;* Author       : WOOSEOK, OH
;* Dept         : Mobile solution, AP
;* Created Date : 2005.09.7
;* Version      : 0.0
;* History
;*   R0.0 (2005.09.7): WOOSEOK draft
;*/

				GET		Option.inc
				GET		2443addr.inc

				;;;GBLL	RUN_JTAG  ;;;run for jtag debug

				MACRO
$HandlerLabel 	HANDLER		$HandleLabel

$HandlerLabel
				sub		sp,sp,#4        	;decrement sp(to store jump address)
				stmfd	sp!,{r0}        	;PUSH the work register to stack(lr doesnt push because it return to original address)
				ldr     r0,=$HandleLabel	;load the address of HandleXXX to r0
				ldr     r0,[r0]         	;load the contents(service routine start address) of HandleXXX
				str     r0,[sp,#4]      	;store the contents(ISR) of HandleXXX to stack
				ldmfd   sp!,{r0,pc}     	;POP the work register and pc(jump to ISR)

				MEND


				IMPORT	MMU_SetAsyncBusMode
				IMPORT	InitMEM
				IMPORT	InitSSMC	
				IMPORT  WdDisable
				;IMPORT  WDReset
				IMPORT  SWReset;;xyin0301
				IMPORT  SetClkDiv
				IMPORT  SetLockTime
				IMPORT  SetPLL
				IMPORT  IntDisable

				IMPORT  Delay
				IMPORT  ClearSdram
				IMPORT	SuspendWakeUp
				IMPORT  __user_initial_stackheap			
				

				IMPORT  __main   			; The main entry of mon program 
				;;;IMPORT  main

				AREA    Init,CODE,READONLY 

				ENTRY 

				b		ResetHandler	;handler for Reset  
				b		HandlerUndef	;handler for Undefined mode
				b		HandlerSWI		;handler for SWI interrupt
				b		HandlerPabort	;handler for PAbort
				b		HandlerDabort	;handler for DAbort
				b		.				;reserved
			    b		HandlerIRQ		;handler for IRQ interrupt 
				b		HandlerFIQ		;handler for FIQ interrupt
	
HandlerUndef	HANDLER HandleUndef
HandlerSWI		HANDLER HandleSWI
HandlerPabort	HANDLER HandlePabort
HandlerDabort	HANDLER HandleDabort
HandlerIRQ		HANDLER HandleIRQ
HandlerFIQ		HANDLER	HandleFIQ


;=======================================================
;						ENTRY  
;=======================================================

ResetHandler	; edited by junon 060522

PowerOff
				cmp 	r7, #0x78
				bne 	normalboot
				ldr     r7,=0x0
				
				ldr     r4, =vPWRMODE
				ldr		r5, [r4]
				bic		r5, r5, #0xff00
				bic		r5, r5, #0x00ff
				ldr		r6, =0x2BED
				orr     r5, r5, r6            ; Power Off Mode

				str     r5, [r4]		; Power Off !!				
				
				bl		Halt
normalboot
				; Karr test
				ldr		r0, =0x01000000
				ldr		r1,	=GPHCON
				str		r0,	[r1]
				ldr		r0, =0x1000
				ldr		r1,	=GPHDAT
				str		r0,	[r1]
				; Karr Test
				
				bl		WdDisable

				bl		IntDisable

				bl		SetClkDiv

				ldr		r0,=0x200
				bl		Delay
				
				bl      SetLockTime
				
				bl      SetPLL

				ldr		r0,=0x200
				bl		Delay
				
				bl		MMU_SetAsyncBusMode

				bl		InitSSMC				

				bl		InitMEM
				
				ldr		r0,=0x200
				bl		Delay
				

				IF :DEF: RUN_JTAG
				
				b		PwrReset
				
				ENDIF

				ldr		r1,	=RSTSTAT 
				ldr		r0,	[r1]
				tst     r0,	#0x8
				bne     SuspendUp

				tst     r0,	#0x20;xyin0301 for swrest #0x4
				bne		WatchDog
			
				b		PwrReset
SuspendUp
				bl		SuspendWakeUp
WatchDog
				bl		SWReset;xyin0301 WDReset
PwrReset				
				
				
				bl		ClearSdram 

				IF :DEF: RUN_JTAG
				
				b		.
				
				ENDIF

				bl      __user_initial_stackheap 
			   	bl		__main

Halt
			   	b		.

				LTORG


			   	ALIGN

			   	AREA IntVector, DATA, READWRITE

				^   _ISR_STARTADDRESS

HandleReset 	#   4
HandleUndef 	#   4
HandleSWI   	#   4
HandlePabort    #   4
HandleDabort    #   4
HandleReserved  #   4
HandleIRQ   	#   4
HandleFIQ   	#   4

		        END

⌨️ 快捷键说明

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