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

📄 uart.asm

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;* FUNCTION NAME: UART_Open                                                  *
;*                                                                           *
;*   Regs Modified     : A1,V9,SP,SR                                         *
;*   Regs Used         : A1,V9,SP,SR                                         *
;*   Local Frame Size  : 0 Args + 8 Auto + 0 Save = 8 byte                   *
;*****************************************************************************
_UART_Open:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        SUB       SP, SP, #8
	.dwcfa	0x0e, 8
;* A1    assigned to _dev_num
DW$20	.dwtag  DW_TAG_formal_parameter, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
	.dwattr DW$20, DW_AT_type(*DW$T$10)
	.dwattr DW$20, DW_AT_location[DW_OP_reg0]
DW$21	.dwtag  DW_TAG_variable, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
	.dwattr DW$21, DW_AT_type(*DW$T$10)
	.dwattr DW$21, DW_AT_location[DW_OP_breg13 0]
DW$22	.dwtag  DW_TAG_variable, DW_AT_name("reg_temp"), DW_AT_symbol_name("_reg_temp")
	.dwattr DW$22, DW_AT_type(*DW$T$6)
	.dwattr DW$22, DW_AT_location[DW_OP_breg13 4]
        STR       A1, [SP, #0]          ; |64| 
	.dwpsn	"UART.c",67,1
        LDR       V9, CON4              ; |67| 
        LDR       V9, [V9, #0]          ; |67| 
        LDR       V9, [V9, #8]          ; |67| 
        STRB      V9, [SP, #4]          ; |67| 
	.dwpsn	"UART.c",68,1
        LDRB      V9, [SP, #4]          ; |68| 
        TST       V9, #4                ; |68| 
        BNE       L5                    ; |68| 
        ; |68| 
;* --------------------------------------------------------------------------*
	.dwpsn	"UART.c",69,3
        LDR       V9, CON4              ; |69| 
        LDR       V9, [V9, #0]          ; |69| 
        ADD       V9, V9, #8            ; |69| 
        LDR       A1, [V9, #0]          ; |69| 
        ORR       A1, A1, #4            ; |69| 
        STR       A1, [V9, #0]          ; |69| 
;* --------------------------------------------------------------------------*
L5:    
	.dwpsn	"UART.c",71,1
        LDR       V9, CON4              ; |71| 
        LDR       V9, [V9, #0]          ; |71| 
        LDR       V9, [V9, #20]         ; |71| 
        STRB      V9, [SP, #4]          ; |71| 
	.dwpsn	"UART.c",72,1
        LDRB      V9, [SP, #4]          ; |72| 
        MOVS      V9, V9, LSL #31       ; |72| 
        BNE       L9                    ; |72| 
        ; |72| 
;* --------------------------------------------------------------------------*
	.dwpsn	"UART.c",73,3
        LDR       V9, CON4              ; |73| 
        LDR       V9, [V9, #0]          ; |73| 
        ADD       V9, V9, #20           ; |73| 
        LDR       A1, [V9, #0]          ; |73| 
        ORR       A1, A1, #1            ; |73| 
        STR       A1, [V9, #0]          ; |73| 
	.dwpsn	"UART.c",76,1
        B         L9                    ; |76| 
        ; |76| 
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L6:    
	.dwpsn	"UART.c",79,5
        LDR       V9, CON5              ; |79| 
        LDR       V9, [V9, #0]          ; |79| 
        ADD       V9, V9, #26           ; |79| 
        LDRH      A1, [V9, #0]          ; |79| 
        ORR       A1, A1, #32           ; |79| 
        STRH      A1, [V9, #0]          ; |79| 
	.dwpsn	"UART.c",80,2
        LDR       V9, CON6              ; |80| 
        LDR       V9, [V9, #0]          ; |80| 
        LDRH      A1, [V9, #0]          ; |80| 
        ORR       A1, A1, #1            ; |80| 
        STRH      A1, [V9, #0]          ; |80| 
	.dwpsn	"UART.c",81,7
        B         L10                   ; |81| 
        ; |81| 
;* --------------------------------------------------------------------------*
L7:    
	.dwpsn	"UART.c",83,5
        LDR       V9, CON5              ; |83| 
        LDR       V9, [V9, #0]          ; |83| 
        ADD       V9, V9, #26           ; |83| 
        LDRH      A1, [V9, #0]          ; |83| 
        ORR       A1, A1, #64           ; |83| 
        STRH      A1, [V9, #0]          ; |83| 
	.dwpsn	"UART.c",84,2
        LDR       V9, CON6              ; |84| 
        LDR       V9, [V9, #0]          ; |84| 
        ADD       V9, V9, #32           ; |84| 
        LDRH      A1, [V9, #0]          ; |84| 
        ORR       A1, A1, #1            ; |84| 
        STRH      A1, [V9, #0]          ; |84| 
	.dwpsn	"UART.c",85,7
        B         L10                   ; |85| 
        ; |85| 
;* --------------------------------------------------------------------------*
L8:    
	.dwpsn	"UART.c",87,5
        LDR       V9, CON5              ; |87| 
        LDR       V9, [V9, #0]          ; |87| 
        ADD       V9, V9, #26           ; |87| 
        LDRH      A1, [V9, #0]          ; |87| 
        ORR       A1, A1, #128          ; |87| 
        STRH      A1, [V9, #0]          ; |87| 
	.dwpsn	"UART.c",88,2
        LDR       V9, CON6              ; |88| 
        LDR       V9, [V9, #0]          ; |88| 
        ADD       V9, V9, #64           ; |88| 
        LDRH      A1, [V9, #0]          ; |88| 
        ORR       A1, A1, #1            ; |88| 
        STRH      A1, [V9, #0]          ; |88| 
	.dwpsn	"UART.c",89,7
        B         L10                   ; |89| 
        ; |89| 
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L9:    
	.dwpsn	"UART.c",76,1
        LDR       V9, [SP, #0]          ; |76| 
        CMP       V9, #0                ; |76| 
        BEQ       L6                    ; |76| 
        ; |76| 
;* --------------------------------------------------------------------------*
        SUBS      V9, V9, #1            ; |76| 
        BEQ       L7                    ; |76| 
        ; |76| 
;* --------------------------------------------------------------------------*
        SUBS      V9, V9, #1            ; |76| 
        BEQ       L8                    ; |76| 
        ; |76| 
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L10:    
	.dwpsn	"UART.c",93,1
        ADD       SP, SP, #8
	.dwcfa	0x0e, 0
        BX        LR
	.dwattr DW$19, DW_AT_end_file("UART.c")
	.dwattr DW$19, DW_AT_end_line(0x5d)
	.dwattr DW$19, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$19

	.sect	".text"
	.align	4
	.clink
	.armfunc _UART_Close
	.state32
	.global	_UART_Close

DW$23	.dwtag  DW_TAG_subprogram, DW_AT_name("UART_Close"), DW_AT_symbol_name("_UART_Close")
	.dwattr DW$23, DW_AT_low_pc(_UART_Close)
	.dwattr DW$23, DW_AT_high_pc(0x00)
	.dwattr DW$23, DW_AT_begin_file("UART.c")
	.dwattr DW$23, DW_AT_begin_line(0x62)
	.dwattr DW$23, DW_AT_begin_column(0x06)
	.dwpsn	"UART.c",99,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: UART_Close                                                 *
;*                                                                           *
;*   Regs Modified     : A1,V9,SP,SR                                         *
;*   Regs Used         : A1,V9,SP,SR                                         *
;*   Local Frame Size  : 0 Args + 4 Auto + 0 Save = 4 byte                   *
;*****************************************************************************
_UART_Close:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        SUB       SP, SP, #4
	.dwcfa	0x0e, 4
;* A1    assigned to _dev_num
DW$24	.dwtag  DW_TAG_formal_parameter, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
	.dwattr DW$24, DW_AT_type(*DW$T$10)
	.dwattr DW$24, DW_AT_location[DW_OP_reg0]
DW$25	.dwtag  DW_TAG_variable, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
	.dwattr DW$25, DW_AT_type(*DW$T$10)
	.dwattr DW$25, DW_AT_location[DW_OP_breg13 0]
        STR       A1, [SP, #0]          ; |99| 
	.dwpsn	"UART.c",101,1
        B         L14                   ; |101| 
        ; |101| 
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L11:    
	.dwpsn	"UART.c",104,5
        LDR       V9, CON5              ; |104| 
        LDR       V9, [V9, #0]          ; |104| 
        ADD       V9, V9, #26           ; |104| 
        LDRH      A1, [V9, #0]          ; |104| 
        BIC       A1, A1, #32           ; |104| 
        STRH      A1, [V9, #0]          ; |104| 
	.dwpsn	"UART.c",105,7
        B         L15                   ; |105| 
        ; |105| 
;* --------------------------------------------------------------------------*
L12:    
	.dwpsn	"UART.c",107,5
        LDR       V9, CON5              ; |107| 
        LDR       V9, [V9, #0]          ; |107| 
        ADD       V9, V9, #26           ; |107| 
        LDRH      A1, [V9, #0]          ; |107| 
        BIC       A1, A1, #64           ; |107| 
        STRH      A1, [V9, #0]          ; |107| 
	.dwpsn	"UART.c",108,7
        B         L15                   ; |108| 
        ; |108| 
;* --------------------------------------------------------------------------*
L13:    
	.dwpsn	"UART.c",110,5
        LDR       V9, CON5              ; |110| 
        LDR       V9, [V9, #0]          ; |110| 
        ADD       V9, V9, #26           ; |110| 
        LDRH      A1, [V9, #0]          ; |110| 
        BIC       A1, A1, #128          ; |110| 
        STRH      A1, [V9, #0]          ; |110| 
	.dwpsn	"UART.c",111,7
        B         L15                   ; |111| 
        ; |111| 
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L14:    
	.dwpsn	"UART.c",101,1
        LDR       V9, [SP, #0]          ; |101| 
        CMP       V9, #0                ; |101| 
        BEQ       L11                   ; |101| 
        ; |101| 
;* --------------------------------------------------------------------------*
        SUBS      V9, V9, #1            ; |101| 
        BEQ       L12                   ; |101| 
        ; |101| 
;* --------------------------------------------------------------------------*
        SUBS      V9, V9, #1            ; |101| 
        BEQ       L13                   ; |101| 
        ; |101| 
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L15:    
	.dwpsn	"UART.c",115,1
        ADD       SP, SP, #4
	.dwcfa	0x0e, 0
        BX        LR
	.dwattr DW$23, DW_AT_end_file("UART.c")
	.dwattr DW$23, DW_AT_end_line(0x73)
	.dwattr DW$23, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$23

	.sect	".text"
	.align	4
	.clink
	.armfunc _UART_Configure
	.state32
	.global	_UART_Configure

DW$26	.dwtag  DW_TAG_subprogram, DW_AT_name("UART_Configure"), DW_AT_symbol_name("_UART_Configure")
	.dwattr DW$26, DW_AT_low_pc(_UART_Configure)
	.dwattr DW$26, DW_AT_high_pc(0x00)
	.dwattr DW$26, DW_AT_begin_file("UART.c")
	.dwattr DW$26, DW_AT_begin_line(0x78)
	.dwattr DW$26, DW_AT_begin_column(0x06)
	.dwpsn	"UART.c",121,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: UART_Configure                                             *
;*                                                                           *
;*   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                   *
;*****************************************************************************
_UART_Configure:
;* --------------------------------------------------------------------------*
	.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 _dev_num
DW$27	.dwtag  DW_TAG_formal_parameter, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
	.dwattr DW$27, DW_AT_type(*DW$T$10)
	.dwattr DW$27, DW_AT_location[DW_OP_reg0]
DW$28	.dwtag  DW_TAG_variable, DW_AT_name("dev_num"), DW_AT_symbol_name("_dev_num")
	.dwattr DW$28, DW_AT_type(*DW$T$10)
	.dwattr DW$28, DW_AT_location[DW_OP_breg13 0]
        STR       A1, [SP, #0]          ; |121| 
	.dwpsn	"UART.c",122,1
        LDR       A1, CON7              ; |122| 
        LDR       V9, [SP, #0]          ; |122| 
        LDR       V9, [A1, +V9, LSL #2] ; |122| 
        MOV       A1, #191              ; |122| 
        STRB      A1, [V9, #12]         ; |122| 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -