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

📄 i2c_gpio.asm

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	.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 + -