init.s

来自「s3c4510B 的一些实验成功的程序,对初学者有很大帮助」· S 代码 · 共 125 行

S
125
字号

IOPMOD		EQU	0x3FF5000
IOPCON		EQU	0x3FF5004
IOPDATA		EQU	0x3FF5008
TMOD		EQU	0x3FF6000
TDATA0		EQU	0x3FF6004
INTMOD		EQU	0x3FF4000
INTPND		EQU	0x3FF4004
INTMASK		EQU	0x3FF4008

    AREA    Init, CODE, READONLY
    
    ENTRY

	B		Reset_Handler
	B		.
	B		.
	B		.
	B		.	
	NOP			
	B		IRQ_Handler
	B		.
	
;***************************	
;LED Display	
;***************************	
Reset_Handler
	LDR		R1,=IOPMOD
	LDR		R0,=0x3FFFF		;// 输出使能
	STR		R0,[R1]
	
	LDR		R1,=IOPCON
	LDR		R0,=0x40000000	;// 允许TOUT0管脚输出脉冲
	STR		R0,[R1]
	
	LDR		R1,=IOPDATA
	LDR		R0,=0xFE				
	STR		R0,[R1]			;// P0 亮灯  低电平亮灯
	
	LDR     R0,=0x0
LEDDELAY
	ADD		R0,R0,#1
	CMP		R0,#&180000		;// 延时
	BNE		LEDDELAY
	
	LDR		R0,=IOPDATA
	LDR		R1,[R0]
	EOR		R1,R1,#1
	STR		R1,[R0]			;// P0 灭灯

;********************************************************
;Initialise system stack for different processor modes
;;Change to Interrupt Mode (IRQ)
;********************************************************
	mov		r0, #0x12
	MSR		cpsr_c, r0

;***************************		
;User Stack	
;***************************	
	LDR		R0,=0x3FF0000
	LDR		R1,=0xE7FFFF80
	STR		R1,[R0]
	
	LDR		SP,=0x3FE1000
	
;***************************		
;Interrupt special Registers	
;***************************	
	MRS		R0,CPSR
	BIC     R0,R0,#&80 			;//修改CPSR的控制位I,允许中断
	MSR		CPSR_c,R0
	
	LDR		R1,=INTMOD
	LDR		R0,=&0
	STR		R0,[R1]
	
	LDR		R1,=INTMASK
	LDR		R0,=&1FFbFF
	STR		R0,[R1]

;***************************	
;Timer0 Special Registers	
;***************************	
	LDR		R1,=TDATA0
    LDR		R0,=0x1FFFFFF
	STR		R0,[R1]
	
	LDR		R1,=TMOD
	LDR		R0,=&01
	STR		R0,[R1]

	B		.
	
;***************************		
;Timer0 Interrupt	
;***************************	
IRQ_Handler
	STMFD	SP!,{R0-R6,LR}
	
	LDR		R1,=INTPND
	LDR		R0,=&400
	STR		R0,[R1]
	
	MRS		R0,CPSR
	BIC     R0,R0,#&80 			;//修改CPSR的控制位I,允许中断
	MSR		CPSR_c,R0
	
	LDR		R0,=IOPDATA
	LDR		R1,[R0]
	EOR		R1,R1,#1
	STR		R1,[R0]
	
	LDMFD	SP!,{R0-R6,LR}
	SUBS	PC,LR,#4
	
	END


	
	
			
		

⌨️ 快捷键说明

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