📄 i2c_gpio.asm
字号:
.dwattr DW$24, DW_AT_high_pc(DW$L$_I2C_GPIO$10$E)
DW$25 .dwtag DW_TAG_loop_range
.dwattr DW$25, DW_AT_low_pc(DW$L$_I2C_GPIO$4$B)
.dwattr DW$25, DW_AT_high_pc(DW$L$_I2C_GPIO$4$E)
DW$26 .dwtag DW_TAG_loop_range
.dwattr DW$26, DW_AT_low_pc(DW$L$_I2C_GPIO$5$B)
.dwattr DW$26, DW_AT_high_pc(DW$L$_I2C_GPIO$5$E)
DW$27 .dwtag DW_TAG_loop_range
.dwattr DW$27, DW_AT_low_pc(DW$L$_I2C_GPIO$6$B)
.dwattr DW$27, DW_AT_high_pc(DW$L$_I2C_GPIO$6$E)
DW$28 .dwtag DW_TAG_loop_range
.dwattr DW$28, DW_AT_low_pc(DW$L$_I2C_GPIO$7$B)
.dwattr DW$28, DW_AT_high_pc(DW$L$_I2C_GPIO$7$E)
DW$29 .dwtag DW_TAG_loop_range
.dwattr DW$29, DW_AT_low_pc(DW$L$_I2C_GPIO$9$B)
.dwattr DW$29, DW_AT_high_pc(DW$L$_I2C_GPIO$9$E)
DW$30 .dwtag DW_TAG_loop_range
.dwattr DW$30, DW_AT_low_pc(DW$L$_I2C_GPIO$13$B)
.dwattr DW$30, DW_AT_high_pc(DW$L$_I2C_GPIO$13$E)
DW$31 .dwtag DW_TAG_loop_range
.dwattr DW$31, DW_AT_low_pc(DW$L$_I2C_GPIO$14$B)
.dwattr DW$31, DW_AT_high_pc(DW$L$_I2C_GPIO$14$E)
.dwendtag DW$20
.dwattr DW$16, DW_AT_end_file("i2c_gpio.c")
.dwattr DW$16, DW_AT_end_line(0x49)
.dwattr DW$16, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$16
.sect ".text"
.align 4
.clink
.armfunc _GPIO_E_high_Tca6408
.state32
.global _GPIO_E_high_Tca6408
DW$32 .dwtag DW_TAG_subprogram, DW_AT_name("GPIO_E_high_Tca6408"), DW_AT_symbol_name("_GPIO_E_high_Tca6408")
.dwattr DW$32, DW_AT_low_pc(_GPIO_E_high_Tca6408)
.dwattr DW$32, DW_AT_high_pc(0x00)
.dwattr DW$32, DW_AT_begin_file("i2c_gpio.c")
.dwattr DW$32, DW_AT_begin_line(0x4c)
.dwattr DW$32, DW_AT_begin_column(0x06)
.dwpsn "i2c_gpio.c",77,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: GPIO_E_high_Tca6408 *
;* *
;* 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 + 24 Auto + 4 Save = 28 byte *
;*****************************************************************************
_GPIO_E_high_Tca6408:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
SUB SP, SP, #24
.dwcfa 0x0e, 28
;* A1 assigned to _gpio_e_num
DW$33 .dwtag DW_TAG_formal_parameter, DW_AT_name("gpio_e_num"), DW_AT_symbol_name("_gpio_e_num")
.dwattr DW$33, DW_AT_type(*DW$T$10)
.dwattr DW$33, DW_AT_location[DW_OP_reg0]
DW$34 .dwtag DW_TAG_variable, DW_AT_name("gpio_e_num"), DW_AT_symbol_name("_gpio_e_num")
.dwattr DW$34, DW_AT_type(*DW$T$10)
.dwattr DW$34, DW_AT_location[DW_OP_breg13 0]
DW$35 .dwtag DW_TAG_variable, DW_AT_name("previous_content"), DW_AT_symbol_name("_previous_content")
.dwattr DW$35, DW_AT_type(*DW$T$10)
.dwattr DW$35, DW_AT_location[DW_OP_breg13 4]
DW$36 .dwtag DW_TAG_variable, DW_AT_name("num"), DW_AT_symbol_name("_num")
.dwattr DW$36, DW_AT_type(*DW$T$10)
.dwattr DW$36, DW_AT_location[DW_OP_breg13 8]
DW$37 .dwtag DW_TAG_variable, DW_AT_name("outputadd"), DW_AT_symbol_name("_outputadd")
.dwattr DW$37, DW_AT_type(*DW$T$10)
.dwattr DW$37, DW_AT_location[DW_OP_breg13 12]
DW$38 .dwtag DW_TAG_variable, DW_AT_name("reverseadd"), DW_AT_symbol_name("_reverseadd")
.dwattr DW$38, DW_AT_type(*DW$T$10)
.dwattr DW$38, DW_AT_location[DW_OP_breg13 16]
DW$39 .dwtag DW_TAG_variable, DW_AT_name("directionadd"), DW_AT_symbol_name("_directionadd")
.dwattr DW$39, DW_AT_type(*DW$T$10)
.dwattr DW$39, DW_AT_location[DW_OP_breg13 20]
STR A1, [SP, #0] ; |77|
.dwpsn "i2c_gpio.c",80,2
LDR V9, [SP, #0] ; |80|
STR V9, [SP, #8] ; |80|
.dwpsn "i2c_gpio.c",81,2
MOV V9, #1 ; |81|
STR V9, [SP, #12] ; |81|
.dwpsn "i2c_gpio.c",82,2
MOV V9, #2 ; |82|
STR V9, [SP, #16] ; |82|
.dwpsn "i2c_gpio.c",83,2
MOV V9, #3 ; |83|
STR V9, [SP, #20] ; |83|
.dwpsn "i2c_gpio.c",88,4
MOV A1, #32 ; |88|
LDR A2, [SP, #12] ; |88|
BL _MSI2C_MasterPollingReceive ; |88|
; |88|
STR A1, [SP, #4] ; |88|
.dwpsn "i2c_gpio.c",89,4
MOV A2, #1 ; |89|
LDR V9, [SP, #8] ; |89|
LDR A1, [SP, #4] ; |89|
ORR A3, A1, A2, LSL V9 ; |89|
MOV A1, #32 ; |89|
LDR A2, [SP, #12] ; |89|
BL _MSI2C_MasterPollingSend ; |89|
; |89|
.dwpsn "i2c_gpio.c",92,4
MOV A1, #32 ; |92|
LDR A2, [SP, #16] ; |92|
BL _MSI2C_MasterPollingReceive ; |92|
; |92|
STR A1, [SP, #4] ; |92|
.dwpsn "i2c_gpio.c",93,4
MOV A2, #1 ; |93|
LDR A1, [SP, #4] ; |93|
LDR V9, [SP, #8] ; |93|
BIC A3, A1, A2, LSL V9 ; |93|
MOV A1, #32 ; |93|
LDR A2, [SP, #16] ; |93|
BL _MSI2C_MasterPollingSend ; |93|
; |93|
.dwpsn "i2c_gpio.c",95,5
MOV A1, #32 ; |95|
LDR A2, [SP, #20] ; |95|
BL _MSI2C_MasterPollingReceive ; |95|
; |95|
STR A1, [SP, #4] ; |95|
.dwpsn "i2c_gpio.c",96,4
MOV A2, #1 ; |96|
LDR A1, [SP, #4] ; |96|
LDR V9, [SP, #8] ; |96|
BIC A3, A1, A2, LSL V9 ; |96|
MOV A1, #32 ; |96|
LDR A2, [SP, #20] ; |96|
BL _MSI2C_MasterPollingSend ; |96|
; |96|
.dwpsn "i2c_gpio.c",98,1
ADD SP, SP, #24
.dwcfa 0x0e, 4
LDMFD SP!, {PC}
.dwattr DW$32, DW_AT_end_file("i2c_gpio.c")
.dwattr DW$32, DW_AT_end_line(0x62)
.dwattr DW$32, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$32
.sect ".text"
.align 4
.clink
.armfunc _GPIO_E_low_Tca6408
.state32
.global _GPIO_E_low_Tca6408
DW$40 .dwtag DW_TAG_subprogram, DW_AT_name("GPIO_E_low_Tca6408"), DW_AT_symbol_name("_GPIO_E_low_Tca6408")
.dwattr DW$40, DW_AT_low_pc(_GPIO_E_low_Tca6408)
.dwattr DW$40, DW_AT_high_pc(0x00)
.dwattr DW$40, DW_AT_begin_file("i2c_gpio.c")
.dwattr DW$40, DW_AT_begin_line(0x65)
.dwattr DW$40, DW_AT_begin_column(0x06)
.dwpsn "i2c_gpio.c",102,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: GPIO_E_low_Tca6408 *
;* *
;* 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 + 24 Auto + 4 Save = 28 byte *
;*****************************************************************************
_GPIO_E_low_Tca6408:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
SUB SP, SP, #24
.dwcfa 0x0e, 28
;* A1 assigned to _gpio_e_num
DW$41 .dwtag DW_TAG_formal_parameter, DW_AT_name("gpio_e_num"), DW_AT_symbol_name("_gpio_e_num")
.dwattr DW$41, DW_AT_type(*DW$T$10)
.dwattr DW$41, DW_AT_location[DW_OP_reg0]
DW$42 .dwtag DW_TAG_variable, DW_AT_name("gpio_e_num"), DW_AT_symbol_name("_gpio_e_num")
.dwattr DW$42, DW_AT_type(*DW$T$10)
.dwattr DW$42, DW_AT_location[DW_OP_breg13 0]
DW$43 .dwtag DW_TAG_variable, DW_AT_name("previous_content"), DW_AT_symbol_name("_previous_content")
.dwattr DW$43, DW_AT_type(*DW$T$10)
.dwattr DW$43, DW_AT_location[DW_OP_breg13 4]
DW$44 .dwtag DW_TAG_variable, DW_AT_name("num"), DW_AT_symbol_name("_num")
.dwattr DW$44, DW_AT_type(*DW$T$10)
.dwattr DW$44, DW_AT_location[DW_OP_breg13 8]
DW$45 .dwtag DW_TAG_variable, DW_AT_name("outputadd"), DW_AT_symbol_name("_outputadd")
.dwattr DW$45, DW_AT_type(*DW$T$10)
.dwattr DW$45, DW_AT_location[DW_OP_breg13 12]
DW$46 .dwtag DW_TAG_variable, DW_AT_name("reverseadd"), DW_AT_symbol_name("_reverseadd")
.dwattr DW$46, DW_AT_type(*DW$T$10)
.dwattr DW$46, DW_AT_location[DW_OP_breg13 16]
DW$47 .dwtag DW_TAG_variable, DW_AT_name("directionadd"), DW_AT_symbol_name("_directionadd")
.dwattr DW$47, DW_AT_type(*DW$T$10)
.dwattr DW$47, DW_AT_location[DW_OP_breg13 20]
STR A1, [SP, #0] ; |102|
.dwpsn "i2c_gpio.c",105,2
LDR V9, [SP, #0] ; |105|
STR V9, [SP, #8] ; |105|
.dwpsn "i2c_gpio.c",106,2
MOV V9, #1 ; |106|
STR V9, [SP, #12] ; |106|
.dwpsn "i2c_gpio.c",107,2
MOV V9, #2 ; |107|
STR V9, [SP, #16] ; |107|
.dwpsn "i2c_gpio.c",108,2
MOV V9, #3 ; |108|
STR V9, [SP, #20] ; |108|
.dwpsn "i2c_gpio.c",112,4
MOV A1, #32 ; |112|
LDR A2, [SP, #12] ; |112|
BL _MSI2C_MasterPollingReceive ; |112|
; |112|
STR A1, [SP, #4] ; |112|
.dwpsn "i2c_gpio.c",113,4
MOV A2, #1 ; |113|
LDR V9, [SP, #8] ; |113|
LDR A1, [SP, #4] ; |113|
BIC A3, A1, A2, LSL V9 ; |113|
MOV A1, #32 ; |113|
LDR A2, [SP, #12] ; |113|
BL _MSI2C_MasterPollingSend ; |113|
; |113|
.dwpsn "i2c_gpio.c",116,4
MOV A1, #32 ; |116|
LDR A2, [SP, #16] ; |116|
BL _MSI2C_MasterPollingReceive ; |116|
; |116|
STR A1, [SP, #4] ; |116|
.dwpsn "i2c_gpio.c",117,4
MOV A2, #1 ; |117|
LDR A1, [SP, #4] ; |117|
LDR V9, [SP, #8] ; |117|
BIC A3, A1, A2, LSL V9 ; |117|
MOV A1, #32 ; |117|
LDR A2, [SP, #16] ; |117|
BL _MSI2C_MasterPollingSend ; |117|
; |117|
.dwpsn "i2c_gpio.c",119,5
MOV A1, #32 ; |119|
LDR A2, [SP, #20] ; |119|
BL _MSI2C_MasterPollingReceive ; |119|
; |119|
STR A1, [SP, #4] ; |119|
.dwpsn "i2c_gpio.c",120,4
MOV A2, #1 ; |120|
LDR A1, [SP, #4] ; |120|
LDR V9, [SP, #8] ; |120|
BIC A3, A1, A2, LSL V9 ; |120|
MOV A1, #32 ; |120|
LDR A2, [SP, #20] ; |120|
BL _MSI2C_MasterPollingSend ; |120|
; |120|
.dwpsn "i2c_gpio.c",122,1
ADD SP, SP, #24
.dwcfa 0x0e, 4
LDMFD SP!, {PC}
.dwattr DW$40, DW_AT_end_file("i2c_gpio.c")
.dwattr DW$40, DW_AT_end_line(0x7a)
.dwattr DW$40, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$40
;******************************************************************************
;* STRINGS *
;******************************************************************************
.sect ".text"
.align 4
SL1: .string "==================================================",13,10,0
.align 4
SL2: .string "= I2C to GPIO TEST =",13,10,0
.align 4
SL3: .string " 0: Back to upper menu",13,10,0
.align 4
SL4: .string " 1: GPIO_E_Tca6408 output high lever",10,13,0
.align 4
SL5: .string " 2: GPIO_E_Tca6408 output low lever",10,13,0
.align 4
SL6: .string " 3: GPIO_E output high lever",10,13,0
.align 4
SL7: .string " 4: GPIO_E output low lever",10,13,0
.align 4
SL8: .string " Your choice : ",10,13,0
.align 4
SL9: .string "Please input GPIO_E number",10,13,0
.sect ".text"
.align 4
.clink
.armfunc _GPIO_E_high
.state32
.global _GPIO_E_high
DW$48 .dwtag DW_TAG_subprogram, DW_AT_name("GPIO_E_high"), DW_AT_symbol_name("_GPIO_E_high")
.dwattr DW$48, DW_AT_low_pc(_GPIO_E_high)
.dwattr DW$48, DW_AT_high_pc(0x00)
.dwattr DW$48, DW_AT_begin_file("i2c_gpio.c")
.dwattr DW$48, DW_AT_begin_line(0x7c)
.dwattr DW$48, DW_AT_begin_column(0x06)
.dwpsn "i2c_gpio.c",125,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: GPIO_E_high *
;* *
;* 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 + 24 Auto + 4 Save = 28 byte *
;*****************************************************************************
_GPIO_E_high:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
SUB SP, SP, #24
.dwcfa 0x0e, 28
;* A1 assigned to _gpio_e_num
DW$49 .dwtag DW_TAG_formal_parameter, DW_AT_name("gpio_e_num"), DW_AT_symbol_name("_gpio_e_num")
.dwattr DW$49, DW_AT_type(*DW$T$10)
.dwattr DW$49, DW_AT_location[DW_OP_reg0]
DW$50 .dwtag DW_TAG_variable, DW_AT_name("gpio_e_num"), DW_AT_symbol_name("_gpio_e_num")
.dwattr DW$50, DW_AT_type(*DW$T$10)
.dwattr DW$50, DW_AT_location[DW_OP_breg13 0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -