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

📄 int.s

📁 已移植到TI OMAP1610处理器的Nucleus操作系统源码
💻 S
📖 第 1 页 / 共 5 页
字号:
    .state16
    BX  pc
    NOP
    .state32
    B   _INT_Setup_Vector

        .def    _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)
;{
    .def    $INT_Retrieve_Shell
$INT_Retrieve_Shell                         ; Dual-state interworking veneer
    .state16
    BX  pc
    NOP
    .state32
    B   _INT_Retrieve_Shell

        .def    _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               
;*                                                                       
;*                                                                       
;************************************************************************
    .def _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               
;*                                                                       
;* NOTE:	The ISR of software interrupt is replaced by the one from 
;*			intvecs_16.asm (in ARM_CSL)                                                                      
;************************************************************************
;    .def _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                                                             
;*                                                                       
;* INPUTS                                                                
;*                                                                       
;*      None                                                             
;*                                                                       
;* OUTPUTS                                                               
;*                                                                       
;*      None                                                             
;*                                                                       
;* HISTORY                                                               
;*                                                                       
;*         NAME            DATE                    REMARKS               
;*                                                                       
;*                                                                       
;************************************************************************
    .def _INT_Prefetch_Abort
_INT_Prefetch_Abort
    MOV     r0, lr
    B       _INT_Prefetch_Abort

;************************************************************************
;*                                                                       
;* FUNCTION                                                              
;*                                                                       
;*      INT_Data_Abort                                                   
;*                                                                       
;* DESCRIPTION                                                           
;*                                                                       
;*     This is a stub for the Data Abort Interrupt                       
;*                                                                       
;*                                                                       
;* CALLED BY                                                             
;*                                                                       
;*      None                                                             
;*                                                                       
;* CALLS                                                                 
;*                                                                       
;*      None                                                             
;*                                                                       
;* INPUTS                                                                
;*                                                                       
;*      None                                                             
;*                                                                       
;* OUTPUTS                                                               
;*                                                                       
;*      None                                                             
;*                                                                       
;* HISTORY                                                               
;*                                                                       
;*         NAME            DATE                    REMARKS               
;*                                                                       
;*                                                                       
;************************************************************************
    .def _INT_Data_Abort
_INT_Data_Abort
    STMDB   sp!,{r0-r3,lr}

    LDMIA   sp!,{r0-r3,lr}               

⌨️ 快捷键说明

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