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

📄 startup.s

📁 s3c2410的源代码
💻 S
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Copyright (c) 2004-2007 threewater@up-tech.com, All	rights reserved.
;;;
;;; Startup Code for
;;;	   S3C2410 : Startup.s
;;;; by	threewater	2005.2.22
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	#include "2410addr.inc"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Some ARM920	CPSR bit discriptions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

USERMODE    DEFINE	0x10
FIQMODE	    DEFINE	0x11
IRQMODE	    DEFINE	0x12
SVCMODE	    DEFINE	0x13
ABORTMODE   DEFINE	0x17
UNDEFMODE   DEFINE	0x1b
MODEMASK    DEFINE	0x1f
NOINT	    DEFINE	0xc0

I_Bit	    DEFINE	0x80
F_Bit	    DEFINE	0x40

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Start here
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                        MODULE	?RESET
                        COMMON	INTVEC:CODE:NOROOT(2)
                        PUBLIC  __program_start
                        EXTERN	?cstartup
			EXTERN	Enter_UNDEF
			EXTERN	Enter_SWI
			EXTERN	Enter_PABORT
			EXTERN	Enter_DABORT
			EXTERN	Enter_FIQ
                        EXTERN  IRQ_Handler
                        CODE32

__program_start
                        ldr pc,=?cstartup
                        ldr pc,=Enter_UNDEF
                        ldr pc,=Enter_SWI
                        ldr pc,=Enter_PABORT
                        ldr pc,=Enter_DABORT
                        b .
                        ldr pc,=IRQ_Handler
                        ldr pc,=Enter_FIQ

                        LTORG
                        ENDMOD

        MODULE	?CSTARTUP
        RSEG	IRQ_STACK:DATA(2)
        RSEG	FIQ_STACK:DATA(2)
        RSEG	SVC_STACK:DATA(2)
        RSEG	CSTACK:DATA(2)
        RSEG	ICODE:CODE:NOROOT(2)
        PUBLIC	?cstartup
        PUBLIC  IRQ_Handler
        EXTERN	?main
       	EXTERN	ISR_IrqHandler
        CODE32

?cstartup
	ldr	r0,=WTCON	;watch dog disable
	ldr	r1,=0x0		
	str	r1,[r0]

	ldr	r0,=INTMSK
	ldr	r1,=0xffffffff	;all interrupt disable
	str	r1,[r0]

	ldr	r0,=INTSUBMSK
	ldr	r1,=0x7ff	;all sub interrupt disable, 2002/04/10
	str	r1,[r0]

;****************************************************
;*	Initialize stacks			    *
;****************************************************
	BL	InitStacks	; Stack	Setup for each MODE

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;; start main function in C language
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	BL	?main
	B	.
        LTORG

IRQ_Handler

        STMFD	sp!, {r0-r12, lr}
      	BL	ISR_IrqHandler
      	LDMFD	sp!, {r0-r12, lr}
       	SUBS	pc, lr,	#4
        LTORG

InitStacks

    mrs	    r0,cpsr
    bic	    r0,r0,#MODEMASK

    orr	    r1,r0,#IRQMODE|NOINT
    msr	    cpsr_cxsf,r1 	    	;IRQ Mode
    ldr	    sp,=SFE(IRQ_STACK)&0xFFFFFFF8

    orr	    r1,r0,#FIQMODE|NOINT
    msr	    cpsr_cxsf,r1 	    	;FIQ Mode
    ldr	    sp,=SFE(FIQ_STACK)&0xFFFFFFF8

    bic	    r0,r0,#MODEMASK|NOINT
    orr	    r1,r0,#SVCMODE
    msr	    cpsr_cxsf,r1 	    	;SVC Mode
    ldr	    sp,=SFE(SVC_STACK)&0xFFFFFFF8
			
    ;USER mode is not initialized.
    mov	pc,lr
    LTORG

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;; End of startup.s79
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                        ENDMOD
			END

⌨️ 快捷键说明

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