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

📄 init.s

📁 msLinux v1.0 可以在arm ads 下仿真运行的linux
💻 S
字号:
;;**************************************************************
;;BootLoader for MSimulator,you can only free use it for personal study purpose!
;;www.MShowTec.com for more information.
;;lmjx,Email:limiao@mshowtec.com,All Right Reserved.
;;**************************************************************
		IMPORT undef
		IMPORT swi
		IMPORT prefetch
		IMPORT data
		IMPORT irq
		IMPORT fiq		
 
        AREA    Init, CODE, READONLY
		CODE32
		GET snds.s
		
        ENTRY

start

	B	reset					; Reset   
	B	undef  					; Undef	
	B	swi						; Software interrupt
	B	prefetch				; Prefetch Abort
	B	data					; Data Abort
	NOP							; Reserved
	B	irq						; Irq
	B	fiq						; Fiq



reset	

;Part 1
;***************************************************************
;disable interrupts in CPU and switch to SVC32 mode

	MRS	r0, cpsr
	BIC	r0, r0, #MASK_MODE
	ORR	r0, r0, #MODE_SVC32
	ORR 	r0, r0, #I_BIT
	ORR 	r0, r0, #F_BIT
	MSR	cpsr_c, r0
	
;Part 2
;***********************************************************************
; Set memory map
;For ARMulate do null
       
;Part 3
;***********************************************************************
;Set stack pointer & jump to c function

	; Put the stack base address into R0
	LDR     r0, =(0x1400000-0x10000)
	; Add the stack size to get the top of the stack in R0
	ADD	r0,r0,#0x6000
    SUB	r0,r0,#4

    ; stack IRQ
    MOV     r3,#2_11010010
    MSR     CPSR_c,r3		
    MOV     r13,r0			

    ; stack  ABORT
    SUB     r0,r0,#0x1000
    MOV     r3,#2_11010111
    MSR     CPSR_c,r3		
    MOV     r13,r0			

    ; stack UNDEF 
    SUB     r0,r0,#0x1000
    MOV     r3,#2_11011011
    MSR     CPSR_c,r3		
    MOV     r13,r0			

    ; stack FIQ 
    SUB     r0,r0,#0x1000
    MOV     r3,#2_11010001
    MSR     CPSR_c,r3		
    MOV     r13,r0			

    ; stack SYSTEM(USER)
    SUB     r0,r0,#0x1000
    MOV     r3,#2_11011111
    MSR     CPSR_c,r3		
    MOV     r13,r0		
    
    ; stack SVC
    SUB     r0,r0,#0x1000
    MOV     r3,#2_11010011
    MSR     CPSR_c,r3
    MOV	r13,r0

	IMPORT	load_kernel
	LDR		pc, =load_kernel 
	
    EXPORT  __user_initial_stackheap

__user_initial_stackheap    
        LDR     r0,=bottom_of_heap
        MOV     pc,lr		

		AREA	|C$$data|
		
bottom_of_heap
	%	4		
	
        END

⌨️ 快捷键说明

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