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

📄 int.s.bak

📁 Nuclues嵌入式RTOS源码
💻 BAK
📖 第 1 页 / 共 5 页
字号:
;* DESCRIPTION                                                           
;*                                                                       
;*      This function sets up the specified vector with the new vector   
;*      value.  The previous vector value is returned to the caller.     
;*                                                                       
;*                                                                       
;*      Major Revision:                                                  
;*                                                                       
;*          M. Kyle Craig, Accelerated Technology, Inc.                  
;*                                                                       
;*                                                                       
;*                                                                       
;* CALLED BY                                                             
;*                                                                       
;*      Application                                                      
;*      TCC_Register_LISR                   Register LISR for vector     
;*                                                                       
;* CALLS                                                                 
;*                                                                       
;*      None                                                             
;*                                                                       
;* INPUTS                                                                
;*                                                                       
;*      vector                              Vector number to setup       
;*      new                                 Pointer to new assembly      
;*                                            language ISR               
;*                                                                       
;* OUTPUTS                                                               
;*                                                                       
;*      old vector contents                                              
;*                                                                       
;* HISTORY                                                               
;*                                                                       
;*         NAME            DATE                    REMARKS               
;*                                                                       
;*      W. Lamie        08-27-1994      Created initial version 1.0      
;*      D. Lamie        08-27-1994      Verified version 1.0             
;*                                                                       
;************************************************************************
;VOID  *INT_Setup_Vector(INT vector, VOID *new)
;{
;    EXPORT    INT_Setup_Vector

;INT_Setup_Vector               ; Dual-state interworking veneer
;    CODE16
;    BX  pc
;    NOP
;    CODE32
;    B   _INT_Setup_Vector

    EXPORT    INT_Setup_Vector
INT_Setup_Vector

;VOID    *old_vector;                        /* Old interrupt vector      */
;VOID   **vector_table;                      /* Pointer to vector table   */

; Calculate the starting address of the actual vector table.
;    vector_table =  (VOID **) 0;

; Pickup the old interrupt vector.
;    old_vector =  vector_table[vector];
;    
; Setup the new interrupt vector.
;    vector_table[vector] =  new;
;    
; Return the old interrupt vector.
;    return(old_vector);


        LDR     r2, IRQ_Vectors             ; Load the vector table address
        MOV     r0, r0, LSL #2              ; Multiply vector by 4 to get offset into table
        LDR     r3, [r2,r0]                 ; Load the old pointer
        STR     r1, [r2,r0]                 ; Store the new pointer into the vector table

        MOV     r0, r3                      ; Put the old pointer into the return register

        BX      lr                          ; Return to caller

;}

;************************************************************************
;*                                                                       
;* FUNCTION                                                              
;*                                                                       
;*      INT_Retrieve_Shell                                               
;*                                                                       
;* DESCRIPTION                                                           
;*                                                                       
;*      This function retrieves the pointer to the shell interrupt       
;*      service routine.  The shell interrupt service routine calls      
;*      the LISR dispatch routine.                                       
;*                                                                       
;*                                                                       
;*      Major Revision:                                                  
;*                                                                       
;*          M. Kyle Craig, Accelerated Technology, Inc.                  
;*                                                                       
;*                                                                       
;*                                                                       
;* CALLED BY                                                             
;*                                                                       
;*      TCC_Register_LISR                   Register LISR for vector     
;*                                                                       
;* CALLS                                                                 
;*                                                                       
;*      None                                                             
;*                                                                       
;* INPUTS                                                                
;*                                                                       
;*      vector                              Vector number to setup       
;*                                                                       
;* OUTPUTS                                                               
;*                                                                       
;*      shell pointer                                                    
;*                                                                       
;* HISTORY                                                               
;*                                                                       
;*         NAME            DATE                    REMARKS               
;*                                                                       
;*      W. Lamie        08-27-1994      Created initial version 1.0      
;*      D. Lamie        08-27-1994      Verified version 1.0             
;*                                                                       
;************************************************************************
;VOID  *INT_Retrieve_Shell(INT vector)
;{
;    EXPORT    INT_Retrieve_Shell

;INT_Retrieve_Shell                         ; Dual-state interworking veneer
;    CODE16
;    BX  pc
;    NOP
;    CODE32
;    B   _INT_Retrieve_Shell

        EXPORT    INT_Retrieve_Shell

INT_Retrieve_Shell

    ; Return the LISR Shell interrupt routine.
    ; return(INT_Vectors[vector]);

        LDR     r1, IRQ_Vectors             ; Load the vector table address
        MOV     r0, r0, LSL #2              ; Multiply vector by 4 to get offset into table
        LDR     r0, [r1,r0]                 ; Load interrupt handler pointer into return register
                           
        BX      lr                          ; Return to caller

     
;}

;************************************************************************
;*                                                                       
;* FUNCTION                                                              
;*                                                                       
;*      INT_Undef_Inst                                                   
;*                                                                       
;* DESCRIPTION                                                           
;*                                                                       
;*     This is a stub for the Undefined Instruction Interrupt            
;*                                                                       
;*                                                                       
;* CALLED BY                                                             
;*                                                                       
;*      None                                                             
;*                                                                       
;* CALLS                                                                 
;*                                                                       
;*      None                                                             
;*                                                                       
;* INPUTS                                                                
;*                                                                       
;*      None                                                             
;*                                                                       
;* OUTPUTS                                                               
;*                                                                       
;*      None                                                             
;*                                                                       
;* HISTORY                                                               
;*                                                                       
;*         NAME            DATE                    REMARKS               
;*                                                                       
;*                                                                       
;************************************************************************
;    EXPORT  INT_Undef_Inst	
    
INT_Undef_Inst
    STMDB   sp!,{r0-r3,lr}

    LDMIA   sp!,{r0-r3,lr}               ;Restore registers
    BX      LR
    B       INT_Undef_Inst

;************************************************************************
;*                                                                       
;* FUNCTION                                                              
;*                                                                       
;*      INT_Software                                                     
;*                                                                       
;* DESCRIPTION                                                           
;*                                                                       
;*     This is a stub for the Software Interrupt                         
;*                                                                       
;*                                                                       
;* CALLED BY                                                             
;*                                                                       
;*      None                                                             
;*                                                                       
;* CALLS                                                                 
;*                                                                       
;*      None                                                             
;*                                                                       
;* INPUTS                                                                
;*                                                                       
;*      None                                                             
;*                                                                       
;* OUTPUTS                                                               
;*                                                                       
;*      None                                                             
;*                                                                       
;* HISTORY                                                               
;*                                                                       
;*         NAME            DATE                    REMARKS               
;*                                                                       
;*                                                                       
;************************************************************************
;    EXPORT INT_Software
    
INT_Software
    MOV     r0, lr
    B       INT_Software

;************************************************************************
;*                                                                       
;* FUNCTION                                                              
;*                                                                       
;*      INT_Prefetch_Abort                                               
;*                                                                       
;* DESCRIPTION                                                           
;*                                                                       
;*     This is a stub for the Prefetch Abort Interrupt                   
;*                                                                       
;*                                                                       
;* CALLED BY                                                             
;*                                                                       
;*      None                                                             
;*                                                                       
;* CALLS                                                                 
;*                                                                       
;*      None                                                             

⌨️ 快捷键说明

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