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

📄 init.s

📁 基于嵌入式系统ep9135系列的ep93xx 中断例程
💻 S
字号:
;------------------------------------------------------------------------/
;Compony:       CASIA
;File Name:		Init.s
;Description:		
;Author:		Wjh	
;Date:			2005-07-11
;------------------------------------------------------------------------/	

AT91_Stack_Begin      EQU  0x2000000                          ; 堆栈的起始地址

ARM_MODE_IRQ          EQU  0x12                               ; IRQ模式标志
ARM_MODE_SVC          EQU  0x13                               ; SVC模式标志
I_BIT                 EQU  0x80                               ; IRQ禁止标志位
F_BIT                 EQU  0x40                               ; FIQ禁止标志位
IRQ_STACK_SIZE		  EQU  0x100                              ; IRQ模式堆栈大小
SVC_STACK_SIZE		  EQU  0x100                              ; FIQ模式堆栈大小

;------------------------------------------------------------------------/	
;*************************************************************************************************/
    CODE32
	AREA    	Init,CODE,READONLY
		
		EXPORT	__ENTRY
__ENTRY 
          
       
	            B           Reset_Handler
	
undefvec        B           undefvec 

swivec          B           swivec   

pabtvec         B           pabtvec  

dabtvec         B           dabtvec  

rsvdvec         B           rsvdvec  

                B           Irq_Handler 

fiqvec          B           fiqvec   
    

Reset_Handler

;------------------------------------------------------------------------------
;- The reset handler
;------------------------------------------------------------------------------

        ldr     r0,=0x0           
        ldr     r1,=__ENTRY
        ldr     r2,=0x1000     
        
vector_copy
        
        subs    r2, r2, #1
        ldr     r3,[r1],#4  
        str     r3,[r0],#4
        bne	vector_copy   
        
        ldr    	r0,=0x44
        mov    	pc,r0
        
           
        MRS     R3,CPSR
        BIC     R3,R3,#I_BIT
        MSR     CPSR_c,R3
        MSR     SPSR_c,R3 
        
;------------------------------------------------------------------------------        
;Jump to Main Routine	
	  IMPORT C_Entry
	  
_main
__main
	EXPORT    _main
	EXPORT    __main
	ldr       r0, =C_Entry
	mov       lr, pc
	bx        r0

here  B  	   here
	


;------------------------------------------------------------------------/
;- Irq_Handler
;------------------------------------------------------------------------/

   IMPORT Irq_C_Handler                                       

Irq_Handler
 
   STMFD   SP!,{R0-R12,LR}                                      ; 保护现场,将R0-R12,LR存入堆栈    
	
   
   BL Irq_C_Handler                                             ; 调用中断处理的C语言函数                                    
   
   LDMFD   SP!,{R0-R12,LR}                                      ; 恢复现场,中断返回
   SUBS    PC,LR,#4  

   END

⌨️ 快捷键说明

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