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

📄 startup.s

📁 ucos_ii在mini2440上的移植KEIL编译环境
💻 S
字号:
	PRESERVE8
	AREA START, CODE, READONLY
	ENTRY
	CODE32
  	GET 2440addr.inc
	

	IMPORT InitPLL
	IMPORT InitBank
	IMPORT InitStack
	IMPORT InitRORWZI
	IMPORT IRQ_Dispatch	
	IMPORT Main
	IMPORT OSIntExit
	IMPORT OS_CPU_IRQ_ISR

;异常向量表
	LDR	PC, =HANDLE_ResetInit  		;复位异常
	LDR PC, =HandlerUndef			;未定义指令异常
	LDR PC, =HandlerSWI				;软中断异常
  	LDR PC, =HandlerPabort 	        ;取指中止异常
	LDR PC, =HandlerDabort			;数据中止异常
	LDR PC, . 						;保留
	LDR PC, =OS_CPU_IRQ_ISR				;IRQ中断异常
	LDR PC, =HandlerFIQ				;FIQ中断异常



;********************************************************
;复位异常处理函数
;处理系统的复位异常,初始化硬件系统环境,并调到c语言
;********************************************************
HANDLE_ResetInit

	;关闭看门狗
	LDR	R0, =WTCON
	LDR R1, =0X0
	STR R1, [R0]

	;屏蔽IRQ和FIQ中断位
	MRS    R0, CPSR
	ORR    R0, R0,#0xc0  
	MSR    CPSR_c,R0  
	
	BL	InitPLL			;配置MPLL和UPLL时钟				
	BL	InitBank		;配置bank的参数	
	BL	InitStack		;配置各种模式下的堆栈	
	BL	InitRORWZI		;RW和ZI段的初始化

	;开启IRQ和FIQ中断位
	MRS    R0, CPSR
	AND    R0, R0,#0x1F  
	MSR    CPSR_c,R0 

	B Main
;********************************************************
;未定义指令异常处理函数
;********************************************************
HandlerUndef

;********************************************************
;软中断处理函数
;********************************************************		
HandlerSWI	

;********************************************************
;指令终止异常处理函数
;********************************************************		
HandlerPabort 

;********************************************************
;数据终止异常处理函数
;********************************************************	      
HandlerDabort		

;********************************************************
;终端异常处理函数
;********************************************************					
HandlerIRQ

;	SUB LR, LR, #4
;	STMFD SP!, {R0-R12, LR}
;	LDR	LR, =RETURN_ADDR
;	LDR PC, =IRQ_Dispatch

RETURN_ADDR		
	LDMFD SP!, {R0-R12, PC}^
	;SPSR复制到CPSR中
	;是把R0到R7及其PC等十三个寄存器的值都恢复

;********************************************************
;快速中断异常处理函数
;********************************************************		
HandlerFIQ		

	END

⌨️ 快捷键说明

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