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

📄 gpio.asm

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