📄 uart.asm
字号:
;* 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 + -