📄 uart.s
字号:
ADD SP,SP,#+4
POP {R4-R7,PC} ;; return
Nop
DATA
??UsartRXD_6:
DC32 _YT
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable36:
DC32 0x40013800
SECTION `.XML`:CODE:NOROOT(2)
THUMB
UsartTXD:
PUSH {R0,R4-R7,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R7,R2
LDRB R0,[R5, #+5]
CMP R0,#+0
BEQ.N ??UsartTXD_0
LDRB R0,[R5, #+6]
LDRH R1,[R7, #+0]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
CMP R0,R1
BEQ.N ??UsartTXD_1
??UsartTXD_0:
MOVS R0,#+0
STRH R0,[R5, #+0]
STRB R0,[R5, #+4]
MOVS R0,#+0
B.N ??UsartTXD_2
??UsartTXD_1:
LDRB R0,[R5, #+11]
MOVS R6,R0
LDRH R0,[R7, #+0]
STRB R0,[R4, #+6]
LDRB R0,[R5, #+7]
STRB R0,[R4, #+7]
LDRB R0,[R5, #+9]
LDRB R1,[R5, #+11]
ADDS R0,R0,R1
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
CMP R0,#+99
BCC.N ??UsartTXD_3
MOVS R0,#+131
STRB R0,[R4, #+7]
??UsartTXD_3:
MOVS R0,#+2
STRH R0,[R4, #+0]
LDRB R0,[R5, #+9]
STRH R0,[SP, #+0]
LDRB R0,[R4, #+7]
CMP R0,#+3
BNE.N ??UsartTXD_4
LDRH R0,[SP, #+0]
MOVS R1,#+2
MLA R7,R0,R1,R7
MOVS R0,#+2
STRH R0,[SP, #+0]
??UsartTXD_5:
UXTH R6,R6 ;; ZeroExtS R6,R6,#+16,#+16
CMP R6,#+1
BCC.N ??UsartTXD_4
LDRH R0,[R4, #+0]
ADDS R0,R4,R0
LDRH R1,[R7, #+0]
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LSRS R1,R1,#+8
STRB R1,[R0, #+6]
LDRH R0,[R4, #+0]
ADDS R0,R0,#+1
STRH R0,[R4, #+0]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
ADDS R0,R4,R0
LDRH R1,[R7, #+0]
STRB R1,[R0, #+6]
ADDS R7,R7,#+2
LDRH R0,[R4, #+0]
ADDS R0,R0,#+1
STRH R0,[R4, #+0]
SUBS R6,R6,#+1
B.N ??UsartTXD_5
??UsartTXD_4:
LDRH R1,[R4, #+0]
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
MOVS R0,R4
ADDS R0,R0,#+6
BL cal_crc
MOVS R6,R0
LDRH R0,[R4, #+0]
ADDS R0,R4,R0
UXTH R6,R6 ;; ZeroExtS R6,R6,#+16,#+16
LSRS R1,R6,#+8
STRB R1,[R0, #+6]
LDRH R0,[R4, #+0]
ADDS R0,R0,#+1
STRH R0,[R4, #+0]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
ADDS R0,R4,R0
MOVS R1,R6
STRB R1,[R0, #+6]
MOVS R0,#+0
STRH R0,[R4, #+2]
MOVS R2,#+1
MOVS R1,#+40
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??DataTable38 ;; 0x626
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??DataTable40 ;; 0x525
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??DataTable42 ;; 0x424
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??DataTable44 ;; 0x846
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??DataTable46 ;; 0x96a
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
MOVS R1,#+96
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
LDR.N R1,??DataTable54 ;; 0x40013800
LDR.N R0,??DataTable50 ;; pUart1TxFifo
LDR R0,[R0, #+0]
BL FifoPop
LDR.N R0,??DataTable52 ;; 0x4001080c
LDR R0,[R0, #+0]
MOVS R1,#+8
BICS R0,R0,R1
LDR.N R1,??DataTable52 ;; 0x4001080c
STR R0,[R1, #+0]
MOVS R2,#+1
LDR.N R1,??DataTable53 ;; 0x727
LDR.N R0,??DataTable54 ;; 0x40013800
BL USART_ITConfig
MOVS R0,#+0
??UsartTXD_2:
ADD SP,SP,#+4
POP {R4-R7,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable38:
DC32 0x626
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable40:
DC32 0x525
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable42:
DC32 0x424
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable44:
DC32 0x846
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable46:
DC32 0x96a
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable50:
DC32 pUart1TxFifo
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable52:
DC32 0x4001080c
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable53:
DC32 0x727
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable54:
DC32 0x40013800
SECTION `.XML`:CODE:NOROOT(2)
THUMB
Uart1Init:
PUSH {LR}
SUB SP,SP,#+36
MOVS R1,#+0
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_Cmd
LDR.N R0,??Uart1Init_0+0x4 ;; pUart1TxFifo
LDR.N R1,??Uart1Init_0+0x8 ;; Uart1TxFifo
STR R1,[R0, #+0]
LDR.N R0,??Uart1Init_0+0xC ;; pUart1RxFifo
LDR.N R1,??Uart1Init_0+0x10 ;; Uart1RxFifo
STR R1,[R0, #+0]
LDR.N R0,??Uart1Init_0+0x14 ;; _YT + 2
LDRH R0,[R0, #+0]
LSLS R0,R0,#+29 ;; ZeroExtS R0,R0,#+29,#+29
LSRS R0,R0,#+29
MOVS R1,#+2
MULS R0,R1,R0
LDR.N R1,??Uart1Init_0+0x18 ;; BAUD_TAB
LDRH R0,[R1, R0]
STR R0,[SP, #+8]
MOVS R0,#+0
STRH R0,[SP, #+12]
MOVS R0,#+0
STRH R0,[SP, #+14]
MOVS R0,#+0
STRH R0,[SP, #+16]
MOVS R0,#+0
STRH R0,[SP, #+18]
MOVS R0,#+12
STRH R0,[SP, #+20]
MOVS R0,#+0
STRH R0,[SP, #+22]
MOVS R0,#+0
STRH R0,[SP, #+24]
MOVS R0,#+0
STRH R0,[SP, #+26]
MOVS R0,#+0
STRH R0,[SP, #+28]
MOVS R0,#+0
STRH R0,[SP, #+16]
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_DeInit
MOVS R1,#+1
MOVS R0,#+16384
BL RCC_APB2PeriphClockCmd
MOVS R1,#+1
MOVS R0,#+4
BL RCC_APB2PeriphClockCmd
MOVS R1,#+0
MOVS R0,#+4
BL RCC_APB2PeriphResetCmd
MOVS R1,#+0
MOVS R0,#+4
BL GPIO_PinRemapConfig
MOVS R0,#+3
STRB R0,[SP, #+2]
MOVS R0,#+24
STRB R0,[SP, #+3]
MOVS R0,#+512
STRH R0,[SP, #+0]
MOV R1,SP
LDR.N R0,??Uart1Init_0+0x1C ;; 0x40010800
BL GPIO_Init
MOVS R0,#+4
STRB R0,[SP, #+3]
MOVS R0,#+1024
STRH R0,[SP, #+0]
MOV R1,SP
LDR.N R0,??Uart1Init_0+0x1C ;; 0x40010800
BL GPIO_Init
ADD R1,SP,#+8
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_Init
MOVS R0,#+37
STRB R0,[SP, #+4]
MOVS R0,#+10
STRB R0,[SP, #+5]
MOVS R0,#+0
STRB R0,[SP, #+6]
MOVS R0,#+1
STRB R0,[SP, #+7]
ADD R0,SP,#+4
BL NVIC_Init
LDR.N R1,??Uart1Init_0+0x20 ;; 0x3ff
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ClearFlag
MOVS R2,#+1
MOVS R1,#+40
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??Uart1Init_0+0x24 ;; 0x727
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??Uart1Init_0+0x28 ;; 0x626
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+1
LDR.N R1,??Uart1Init_0+0x2C ;; 0x525
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??Uart1Init_0+0x30 ;; 0x424
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??Uart1Init_0+0x34 ;; 0x846
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
LDR.N R1,??Uart1Init_0+0x38 ;; 0x96a
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
MOVS R2,#+0
MOVS R1,#+96
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_ITConfig
LDR.N R0,??Uart1Init_0+0x3C ;; 0x4001080c
LDR R0,[R0, #+0]
ORRS R0,R0,#0x8
LDR.N R1,??Uart1Init_0+0x3C ;; 0x4001080c
STR R0,[R1, #+0]
LDR.N R0,??Uart1Init_0+0x40 ;; Uart1RxFifo + 5
MOVS R1,#+0
STRB R1,[R0, #+0]
MOVS R1,#+1
LDR.N R0,??Uart1Init_0 ;; 0x40013800
BL USART_Cmd
ADD SP,SP,#+36
POP {PC} ;; return
DATA
??Uart1Init_0:
DC32 0x40013800
DC32 pUart1TxFifo
DC32 Uart1TxFifo
DC32 pUart1RxFifo
DC32 Uart1RxFifo
DC32 _YT + 2
DC32 BAUD_TAB
DC32 0x40010800
DC32 0x3ff
DC32 0x727
DC32 0x626
DC32 0x525
DC32 0x424
DC32 0x846
DC32 0x96a
DC32 0x4001080c
DC32 Uart1RxFifo + 5
END
//
// 1 334 bytes in section .XML
// 8 bytes in section .rodata
//
// 1 334 bytes of CODE memory
// 8 bytes of CONST memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -