📄 gpio.asm
字号:
.dwattr DW$55, DW_AT_name("D:\src\boston_board_test\ARM\arm_src\GPIO.asm:L17:1:1214374289")
.dwattr DW$55, DW_AT_begin_file("GPIO.c")
.dwattr DW$55, DW_AT_begin_line(0xca)
.dwattr DW$55, DW_AT_end_line(0xd7)
DW$56 .dwtag DW_TAG_loop_range
.dwattr DW$56, DW_AT_low_pc(DW$L$_gpio_readirq$2$B)
.dwattr DW$56, DW_AT_high_pc(DW$L$_gpio_readirq$2$E)
DW$57 .dwtag DW_TAG_loop_range
.dwattr DW$57, DW_AT_low_pc(DW$L$_gpio_readirq$6$B)
.dwattr DW$57, DW_AT_high_pc(DW$L$_gpio_readirq$6$E)
.dwendtag DW$55
.dwattr DW$47, DW_AT_end_file("GPIO.c")
.dwattr DW$47, DW_AT_end_line(0xdb)
.dwattr DW$47, DW_AT_end_column(0x04)
.dwendentry
.dwendtag DW$47
.sect ".text"
.align 4
.clink
.armfunc _gpio_readirq2
.state32
.global _gpio_readirq2
DW$58 .dwtag DW_TAG_subprogram, DW_AT_name("gpio_readirq2"), DW_AT_symbol_name("_gpio_readirq2")
.dwattr DW$58, DW_AT_low_pc(_gpio_readirq2)
.dwattr DW$58, DW_AT_high_pc(0x00)
.dwattr DW$58, DW_AT_begin_file("GPIO.c")
.dwattr DW$58, DW_AT_begin_line(0xdd)
.dwattr DW$58, DW_AT_begin_column(0x05)
.dwpsn "GPIO.c",222,3
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: gpio_readirq2 *
;* *
;* Regs Modified : A1,V9,SP,SR *
;* Regs Used : A1,V9,SP,SR *
;* Local Frame Size : 0 Args + 24 Auto + 0 Save = 24 byte *
;*****************************************************************************
_gpio_readirq2:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #24
.dwcfa 0x0e, 24
;* A1 assigned to _module_num
DW$59 .dwtag DW_TAG_formal_parameter, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$59, DW_AT_type(*DW$T$10)
.dwattr DW$59, DW_AT_location[DW_OP_reg0]
DW$60 .dwtag DW_TAG_variable, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$60, DW_AT_type(*DW$T$10)
.dwattr DW$60, DW_AT_location[DW_OP_breg13 0]
DW$61 .dwtag DW_TAG_variable, DW_AT_name("temp"), DW_AT_symbol_name("_temp")
.dwattr DW$61, DW_AT_type(*DW$T$11)
.dwattr DW$61, DW_AT_location[DW_OP_breg13 4]
DW$62 .dwtag DW_TAG_variable, DW_AT_name("num"), DW_AT_symbol_name("_num")
.dwattr DW$62, DW_AT_type(*DW$T$11)
.dwattr DW$62, DW_AT_location[DW_OP_breg13 8]
DW$63 .dwtag DW_TAG_variable, DW_AT_name("gpio_irq_num"), DW_AT_symbol_name("_gpio_irq_num")
.dwattr DW$63, DW_AT_type(*DW$T$11)
.dwattr DW$63, DW_AT_location[DW_OP_breg13 12]
DW$64 .dwtag DW_TAG_variable, DW_AT_name("shift_num"), DW_AT_symbol_name("_shift_num")
.dwattr DW$64, DW_AT_type(*DW$T$10)
.dwattr DW$64, DW_AT_location[DW_OP_breg13 16]
DW$65 .dwtag DW_TAG_variable, DW_AT_name("shift_data"), DW_AT_symbol_name("_shift_data")
.dwattr DW$65, DW_AT_type(*DW$T$10)
.dwattr DW$65, DW_AT_location[DW_OP_breg13 20]
STR A1, [SP, #0] ; |222|
.dwpsn "GPIO.c",227,9
MOV V9, #1 ; |227|
STR V9, [SP, #20] ; |227|
.dwpsn "GPIO.c",229,5
LDR V9, [SP, #0] ; |229|
LDR A1, CON14 ; |229|
MOV V9, V9, ASR #1 ; |229|
LDR V9, [A1, +V9, LSL #11] ; |229|
STR V9, [SP, #4] ; |229|
.dwpsn "GPIO.c",231,9
MOV V9, #0 ; |231|
STR V9, [SP, #16] ; |231|
.dwpsn "GPIO.c",231,21
LDR V9, [SP, #16] ; |231|
CMP V9, #31 ; |231|
BGE L25 ; |231|
; |231|
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L22
;*
;* Loop source line : 231
;* Loop closing brace source line : 244
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L22:
DW$L$_gpio_readirq2$2$B:
.dwpsn "GPIO.c",233,11
LDR V9, [SP, #20] ; |233|
LDR A1, [SP, #4] ; |233|
AND V9, A1, V9 ; |233|
STR V9, [SP, #8] ; |233|
.dwpsn "GPIO.c",234,11
LDR V9, [SP, #20] ; |234|
MOV V9, V9, LSL #1 ; |234|
STR V9, [SP, #20] ; |234|
.dwpsn "GPIO.c",235,11
LDR V9, [SP, #8] ; |235|
CMP V9, #0 ; |235|
BEQ L24 ; |235|
; |235|
DW$L$_gpio_readirq2$2$E:
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",237,15
LDR V9, [SP, #16] ; |237|
STR V9, [SP, #12] ; |237|
.dwpsn "GPIO.c",238,15
LDR V9, [SP, #0] ; |238|
CMP V9, #1 ; |238|
BNE L23 ; |238|
; |238|
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",238,33
LDR A1, [SP, #12] ; |238|
B L26 ; |238|
; |238|
;* --------------------------------------------------------------------------*
L23:
.dwpsn "GPIO.c",239,20
LDR V9, [SP, #12] ; |239|
ADD A1, V9, #32 ; |239|
B L26 ; |239|
; |239|
;* --------------------------------------------------------------------------*
L24:
DW$L$_gpio_readirq2$6$B:
.dwpsn "GPIO.c",231,34
LDR V9, [SP, #16] ; |231|
ADD V9, V9, #1 ; |231|
STR V9, [SP, #16] ; |231|
.dwpsn "GPIO.c",231,21
LDR V9, [SP, #16] ; |231|
CMP V9, #31 ; |231|
BLT L22 ; |231|
; |231|
DW$L$_gpio_readirq2$6$E:
;* --------------------------------------------------------------------------*
L25:
.dwpsn "GPIO.c",245,5
LDR V9, [SP, #8] ; |245|
CMP V9, #0 ; |245|
BNE L26 ; |245|
; |245|
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",245,15
MOV A1, #65 ; |245|
;* --------------------------------------------------------------------------*
L26:
.dwpsn "GPIO.c",248,4
ADD SP, SP, #24 ; |245|
.dwcfa 0x0e, 0
BX LR
DW$66 .dwtag DW_TAG_loop
.dwattr DW$66, DW_AT_name("D:\src\boston_board_test\ARM\arm_src\GPIO.asm:L22:1:1214374289")
.dwattr DW$66, DW_AT_begin_file("GPIO.c")
.dwattr DW$66, DW_AT_begin_line(0xe7)
.dwattr DW$66, DW_AT_end_line(0xf4)
DW$67 .dwtag DW_TAG_loop_range
.dwattr DW$67, DW_AT_low_pc(DW$L$_gpio_readirq2$2$B)
.dwattr DW$67, DW_AT_high_pc(DW$L$_gpio_readirq2$2$E)
DW$68 .dwtag DW_TAG_loop_range
.dwattr DW$68, DW_AT_low_pc(DW$L$_gpio_readirq2$6$B)
.dwattr DW$68, DW_AT_high_pc(DW$L$_gpio_readirq2$6$E)
.dwendtag DW$66
.dwattr DW$58, DW_AT_end_file("GPIO.c")
.dwattr DW$58, DW_AT_end_line(0xf8)
.dwattr DW$58, DW_AT_end_column(0x04)
.dwendentry
.dwendtag DW$58
.sect ".text"
.align 4
.clink
.armfunc _reset_irqstatus
.state32
.global _reset_irqstatus
DW$69 .dwtag DW_TAG_subprogram, DW_AT_name("reset_irqstatus"), DW_AT_symbol_name("_reset_irqstatus")
.dwattr DW$69, DW_AT_low_pc(_reset_irqstatus)
.dwattr DW$69, DW_AT_high_pc(0x00)
.dwattr DW$69, DW_AT_begin_file("GPIO.c")
.dwattr DW$69, DW_AT_begin_line(0xfb)
.dwattr DW$69, DW_AT_begin_column(0x06)
.dwpsn "GPIO.c",252,4
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: reset_irqstatus *
;* *
;* Regs Modified : A1,A2,V9,SP,SR *
;* Regs Used : A1,A2,V9,SP,SR *
;* Local Frame Size : 0 Args + 12 Auto + 0 Save = 12 byte *
;*****************************************************************************
_reset_irqstatus:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #12
.dwcfa 0x0e, 12
;* A1 assigned to _module_num
DW$70 .dwtag DW_TAG_formal_parameter, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$70, DW_AT_type(*DW$T$10)
.dwattr DW$70, DW_AT_location[DW_OP_reg0]
;* A2 assigned to _gpio_num
DW$71 .dwtag DW_TAG_formal_parameter, DW_AT_name("gpio_num"), DW_AT_symbol_name("_gpio_num")
.dwattr DW$71, DW_AT_type(*DW$T$10)
.dwattr DW$71, DW_AT_location[DW_OP_reg1]
DW$72 .dwtag DW_TAG_variable, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$72, DW_AT_type(*DW$T$10)
.dwattr DW$72, DW_AT_location[DW_OP_breg13 0]
DW$73 .dwtag DW_TAG_variable, DW_AT_name("gpio_num"), DW_AT_symbol_name("_gpio_num")
.dwattr DW$73, DW_AT_type(*DW$T$10)
.dwattr DW$73, DW_AT_location[DW_OP_breg13 4]
DW$74 .dwtag DW_TAG_variable, DW_AT_name("temp"), DW_AT_symbol_name("_temp")
.dwattr DW$74, DW_AT_type(*DW$T$11)
.dwattr DW$74, DW_AT_location[DW_OP_breg13 8]
STR A2, [SP, #4] ; |252|
STR A1, [SP, #0] ; |252|
.dwpsn "GPIO.c",255,6
LDR V9, [SP, #0] ; |255|
LDR A1, CON13 ; |255|
MOV V9, V9, ASR #1 ; |255|
LDR V9, [A1, +V9, LSL #11] ; |255|
STR V9, [SP, #8] ; |255|
.dwpsn "GPIO.c",256,6
LDR V9, [SP, #4] ; |256|
CMP V9, #32 ; |256|
BGE L27 ; |256|
; |256|
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",258,11
LDR V9, [SP, #4] ; |258|
MOV A2, #1 ; |258|
LDR A1, [SP, #8] ; |258|
ORR V9, A1, A2, LSL V9 ; |258|
LDR A1, [SP, #0] ; |258|
LDR A2, CON13 ; |258|
MOV A1, A1, ASR #1 ; |258|
STR V9, [A2, +A1, LSL #11] ; |258|
.dwpsn "GPIO.c",259,9
B L28 ; |259|
; |259|
;* --------------------------------------------------------------------------*
L27:
.dwpsn "GPIO.c",262,11
LDR V9, [SP, #4] ; |262|
MOV A2, #1 ; |262|
LDR A1, [SP, #8] ; |262|
SUB V9, V9, #32 ; |262|
ORR V9, A1, A2, LSL V9 ; |262|
LDR A1, [SP, #0] ; |262|
LDR A2, CON13 ; |262|
MOV A1, A1, ASR #1 ; |262|
STR V9, [A2, +A1, LSL #11] ; |262|
.dwpsn "GPIO.c",263,9
;* --------------------------------------------------------------------------*
L28:
.dwpsn "GPIO.c",265,4
ADD SP, SP, #12
.dwcfa 0x0e, 0
BX LR
.dwattr DW$69, DW_AT_end_file("GPIO.c")
.dwattr DW$69, DW_AT_end_line(0x109)
.dwattr DW$69, DW_AT_end_column(0x04)
.dwendentry
.dwendtag DW$69
.sect ".text"
.align 4
.clink
.armfunc _GPIO_Test
.state32
.global _GPIO_Test
DW$75 .dwtag DW_TAG_subprogram, DW_AT_name("GPIO_Test"), DW_AT_symbol_name("_GPIO_Test")
.dwattr DW$75, DW_AT_low_pc(_GPIO_Test)
.dwattr DW$75, DW_AT_high_pc(0x00)
.dwattr DW$75, DW_AT_begin_file("GPIO.c")
.dwattr DW$75, DW_AT_begin_line(0x10c)
.dwattr DW$75, DW_AT_begin_column(0x06)
.dwpsn "GPIO.c",269,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: GPIO_Test *
;* *
;* 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 + 20 Auto + 4 Save = 24 byte *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -