📄 inth.asm
字号:
MOV A3, #1 ; |237|
SUB A2, V9, #32 ; |237|
BL _Setgroup32bit ; |237|
; |237|
.dwpsn "inth.c",239,3
B L24 ; |239|
; |239|
;* --------------------------------------------------------------------------*
L23:
.dwpsn "inth.c",243,6
LDR V9, [SP, #0] ; |243|
LDR A1, CON8 ; |243|
MOV A4, #1 ; |243|
MOV A3, #1 ; |243|
SUB A2, V9, #64 ; |243|
BL _Setgroup32bit ; |243|
; |243|
.dwpsn "inth.c",244,6
;* --------------------------------------------------------------------------*
L24:
.dwpsn "inth.c",246,3
.dwcfa 0x0e, 12
LDMFD SP!, {A3, A4, PC}
DW$53 .dwtag DW_TAG_loop
.dwattr DW$53, DW_AT_name("D:\src\boston_board_test\ARM\arm_src\inth.asm:L20:1:1214374294")
.dwattr DW$53, DW_AT_begin_file("inth.c")
.dwattr DW$53, DW_AT_begin_line(0xe1)
.dwattr DW$53, DW_AT_end_line(0xe1)
DW$54 .dwtag DW_TAG_loop_range
.dwattr DW$54, DW_AT_low_pc(DW$L$_DisableInerrupt$5$B)
.dwattr DW$54, DW_AT_high_pc(DW$L$_DisableInerrupt$5$E)
.dwendtag DW$53
.dwattr DW$48, DW_AT_end_file("inth.c")
.dwattr DW$48, DW_AT_end_line(0xf6)
.dwattr DW$48, DW_AT_end_column(0x03)
.dwendentry
.dwendtag DW$48
.sect ".text"
.align 4
.clink
.armfunc _GetInthVectorForIRQ
.state32
.global _GetInthVectorForIRQ
DW$55 .dwtag DW_TAG_subprogram, DW_AT_name("GetInthVectorForIRQ"), DW_AT_symbol_name("_GetInthVectorForIRQ")
.dwattr DW$55, DW_AT_low_pc(_GetInthVectorForIRQ)
.dwattr DW$55, DW_AT_high_pc(0x00)
.dwattr DW$55, DW_AT_begin_file("inth.c")
.dwattr DW$55, DW_AT_begin_line(0xff)
.dwattr DW$55, DW_AT_begin_column(0x0e)
.dwpsn "inth.c",256,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: GetInthVectorForIRQ *
;* *
;* Regs Modified : A1,V9,SP,SR *
;* Regs Used : A1,V9,SP,SR *
;* Local Frame Size : 0 Args + 4 Auto + 0 Save = 4 byte *
;*****************************************************************************
_GetInthVectorForIRQ:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #4
.dwcfa 0x0e, 4
DW$56 .dwtag DW_TAG_variable, DW_AT_name("isrNumber"), DW_AT_symbol_name("_isrNumber")
.dwattr DW$56, DW_AT_type(*DW$T$11)
.dwattr DW$56, DW_AT_location[DW_OP_breg13 0]
.dwpsn "inth.c",257,16
MOV V9, #65536 ; |257|
SUB V9, V9, #1 ; |257|
STR V9, [SP, #0] ; |257|
.dwpsn "inth.c",259,3
LDR V9, CON17 ; |259|
LDR V9, [V9, #0] ; |259|
AND V9, V9, #31 ; |259|
STR V9, [SP, #0] ; |259|
.dwpsn "inth.c",260,3
LDR V9, [SP, #0] ; |260|
CMP V9, #0 ; |260|
BNE L25 ; |260|
; |260|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",261,7
LDR V9, CON18 ; |261|
LDR V9, [V9, #0] ; |261|
AND V9, V9, #127 ; |261|
STR V9, [SP, #0] ; |261|
.dwpsn "inth.c",262,7
LDR V9, [SP, #0] ; |262|
ADD V9, V9, #32 ; |262|
STR V9, [SP, #0] ; |262|
.dwpsn "inth.c",264,7
LDR A1, [SP, #0] ; |264|
B L26 ; |264|
; |264|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L25:
.dwpsn "inth.c",268,3
LDR A1, [SP, #0] ; |268|
;* --------------------------------------------------------------------------*
L26:
.dwpsn "inth.c",269,3
ADD SP, SP, #4 ; |268|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$55, DW_AT_end_file("inth.c")
.dwattr DW$55, DW_AT_end_line(0x10d)
.dwattr DW$55, DW_AT_end_column(0x03)
.dwendentry
.dwendtag DW$55
.sect ".text"
.align 4
.clink
.armfunc _EnableNewInterrupt
.state32
.global _EnableNewInterrupt
DW$57 .dwtag DW_TAG_subprogram, DW_AT_name("EnableNewInterrupt"), DW_AT_symbol_name("_EnableNewInterrupt")
.dwattr DW$57, DW_AT_low_pc(_EnableNewInterrupt)
.dwattr DW$57, DW_AT_high_pc(0x00)
.dwattr DW$57, DW_AT_begin_file("inth.c")
.dwattr DW$57, DW_AT_begin_line(0x116)
.dwattr DW$57, DW_AT_begin_column(0x06)
.dwpsn "inth.c",279,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: EnableNewInterrupt *
;* *
;* Regs Modified : A1,A2,A3,A4,V9,SP,LR,SR *
;* Regs Used : A1,A2,A3,A4,V9,SP,LR,SR *
;* Local Frame Size : 0 Args + 4 Auto + 4 Save = 8 byte *
;*****************************************************************************
_EnableNewInterrupt:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {A4, LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 8
.dwcfa 0x80, 3, 2
.dwcfa 0x0e, 8
;* A1 assigned to _isrMode
DW$58 .dwtag DW_TAG_formal_parameter, DW_AT_name("isrMode"), DW_AT_symbol_name("_isrMode")
.dwattr DW$58, DW_AT_type(*DW$T$11)
.dwattr DW$58, DW_AT_location[DW_OP_reg0]
DW$59 .dwtag DW_TAG_variable, DW_AT_name("isrMode"), DW_AT_symbol_name("_isrMode")
.dwattr DW$59, DW_AT_type(*DW$T$11)
.dwattr DW$59, DW_AT_location[DW_OP_breg13 0]
STR A1, [SP, #0] ; |279|
.dwpsn "inth.c",280,4
LDR V9, [SP, #0] ; |280|
CMP V9, #0 ; |280|
BNE L27 ; |280|
; |280|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",282,8
LDR A1, CON20 ; |282|
MOV A4, #1 ; |282|
MOV A3, #1 ; |282|
MOV A2, #0 ; |282|
BL _Setgroup32bit ; |282|
; |282|
.dwpsn "inth.c",283,8
MOV A4, #1 ; |283|
MOV A3, #1 ; |283|
MOV A2, #0 ; |283|
LDR A1, CON22 ; |283|
BL _Setgroup32bit ; |283|
; |283|
.dwpsn "inth.c",285,4
B L28 ; |285|
; |285|
;* --------------------------------------------------------------------------*
L27:
.dwpsn "inth.c",286,9
LDR V9, [SP, #0] ; |286|
CMP V9, #1 ; |286|
BNE L28 ; |286|
; |286|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",287,8
LDR A1, CON20 ; |287|
MOV A4, #1 ; |287|
MOV A3, #1 ; |287|
MOV A2, #1 ; |287|
BL _Setgroup32bit ; |287|
; |287|
.dwpsn "inth.c",288,5
MOV A4, #1 ; |288|
MOV A3, #1 ; |288|
MOV A2, #1 ; |288|
LDR A1, CON22 ; |288|
BL _Setgroup32bit ; |288|
; |288|
.dwpsn "inth.c",290,4
;* --------------------------------------------------------------------------*
L28:
.dwpsn "inth.c",291,1
.dwcfa 0x0e, 8
LDMFD SP!, {A4, PC}
.dwattr DW$57, DW_AT_end_file("inth.c")
.dwattr DW$57, DW_AT_end_line(0x123)
.dwattr DW$57, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$57
.sect ".text"
.align 4
.clink
.armfunc _IsrRegister
.state32
.global _IsrRegister
DW$60 .dwtag DW_TAG_subprogram, DW_AT_name("IsrRegister"), DW_AT_symbol_name("_IsrRegister")
.dwattr DW$60, DW_AT_low_pc(_IsrRegister)
.dwattr DW$60, DW_AT_high_pc(0x00)
.dwattr DW$60, DW_AT_begin_file("inth.c")
.dwattr DW$60, DW_AT_begin_line(0x12e)
.dwattr DW$60, DW_AT_begin_column(0x0e)
.dwpsn "inth.c",303,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: IsrRegister *
;* *
;* Regs Modified : A1,A2,V9,SP,SR *
;* Regs Used : A1,A2,V9,SP,SR *
;* Local Frame Size : 0 Args + 8 Auto + 0 Save = 8 byte *
;*****************************************************************************
_IsrRegister:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #8
.dwcfa 0x0e, 8
;* A1 assigned to _inthIndex
DW$61 .dwtag DW_TAG_formal_parameter, DW_AT_name("inthIndex"), DW_AT_symbol_name("_inthIndex")
.dwattr DW$61, DW_AT_type(*DW$T$11)
.dwattr DW$61, DW_AT_location[DW_OP_reg0]
;* A2 assigned to _isrHandlerName
DW$62 .dwtag DW_TAG_formal_parameter, DW_AT_name("isrHandlerName"), DW_AT_symbol_name("_isrHandlerName")
.dwattr DW$62, DW_AT_type(*DW$T$28)
.dwattr DW$62, DW_AT_location[DW_OP_reg1]
DW$63 .dwtag DW_TAG_variable, DW_AT_name("inthIndex"), DW_AT_symbol_name("_inthIndex")
.dwattr DW$63, DW_AT_type(*DW$T$11)
.dwattr DW$63, DW_AT_location[DW_OP_breg13 0]
DW$64 .dwtag DW_TAG_variable, DW_AT_name("isrHandlerName"), DW_AT_symbol_name("_isrHandlerName")
.dwattr DW$64, DW_AT_type(*DW$T$28)
.dwattr DW$64, DW_AT_location[DW_OP_breg13 4]
STR A2, [SP, #4] ; |303|
STR A1, [SP, #0] ; |303|
.dwpsn "inth.c",306,4
LDR V9, [SP, #0] ; |306|
CMP V9, #95 ; |306|
BLS L29 ; |306|
; |306|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",307,6
MOV A1, #255 ; |307|
B L30 ; |307|
; |307|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L29:
.dwpsn "inth.c",312,3
LDR V9, [SP, #4] ; |312|
LDR A1, [SP, #0] ; |312|
LDR A2, CON9 ; |312|
STR V9, [A2, +A1, LSL #2] ; |312|
.dwpsn "inth.c",315,3
MOV A1, #0 ; |315|
;* --------------------------------------------------------------------------*
L30:
.dwpsn "inth.c",318,1
ADD SP, SP, #8 ; |315|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$60, DW_AT_end_file("inth.c")
.dwattr DW$60, DW_AT_end_line(0x13e)
.dwattr DW$60, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$60
.sect ".text"
.align 4
.armfunc _EX_AbortD
.state32
.global _EX_AbortD
DW$65 .dwtag DW_TAG_subprogram, DW_AT_name("EX_AbortD"), DW_AT_symbol_name("_EX_AbortD")
.dwattr DW$65, DW_AT_low_pc(_EX_AbortD)
.dwattr DW$65, DW_AT_high_pc(0x00)
.dwattr DW$65, DW_AT_begin_file("inth.c")
.dwattr DW$65, DW_AT_begin_line(0x144)
.dwattr DW$65, DW_AT_begin_column(0x06)
.dwattr DW$65, DW_AT_TI_interrupt(0x01)
.dwpsn "inth.c",325,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: EX_AbortD *
;* *
;* Regs Modified : A1,A2,A3,A4,V9,SP,LR,SR *
;* Regs Used : A1,A2,A3,A4,V9,SP,LR,SR *
;* Local Frame Size : 0 Args + 0 Auto + 24 Save = 24 byte *
;*****************************************************************************
_EX_AbortD:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {A1, A2, A3, A4, V9, LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 8
.dwcfa 0x80, 12, 2
.dwcfa 0x0e, 12
.dwcfa 0x80, 3, 3
.dwcfa 0x0e, 16
.dwcfa 0x80, 2, 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -