📄 int.s.bak
字号:
;* 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 + -