📄 stm32f10x_usart.s
字号:
USART_WakeUpConfig:
LDRH R2,[R0, #+12]
LDR.N R3,??USART_WakeUpConfig_0 ;; 0xf7ff
ANDS R3,R3,R2
STRH R3,[R0, #+12]
LDRH R2,[R0, #+12]
ORRS R2,R2,R1
STRH R2,[R0, #+12]
BX LR ;; return
DATA
??USART_WakeUpConfig_0:
DC32 0xf7ff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_ReceiverWakeUpCmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??USART_ReceiverWakeUpCmd_0
LDRH R2,[R0, #+12]
ORRS R2,R2,#0x2
STRH R2,[R0, #+12]
B.N ??USART_ReceiverWakeUpCmd_1
??USART_ReceiverWakeUpCmd_0:
LDRH R2,[R0, #+12]
LDR.N R3,??DataTable3 ;; 0xfffd
ANDS R3,R3,R2
STRH R3,[R0, #+12]
??USART_ReceiverWakeUpCmd_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_LINBreakDetectLengthConfig:
LDRH R2,[R0, #+16]
LDR.N R3,??DataTable2 ;; 0xffdf
ANDS R3,R3,R2
STRH R3,[R0, #+16]
LDRH R2,[R0, #+16]
ORRS R2,R2,R1
STRH R2,[R0, #+16]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_LINCmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??USART_LINCmd_0
LDRH R2,[R0, #+16]
ORRS R2,R2,#0x4000
STRH R2,[R0, #+16]
B.N ??USART_LINCmd_1
??USART_LINCmd_0:
LDRH R2,[R0, #+16]
LDR.N R3,??USART_LINCmd_2 ;; 0xbfff
ANDS R3,R3,R2
STRH R3,[R0, #+16]
??USART_LINCmd_1:
BX LR ;; return
Nop
DATA
??USART_LINCmd_2:
DC32 0xbfff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_SendData:
LSLS R2,R1,#+23 ;; ZeroExtS R2,R1,#+23,#+23
LSRS R2,R2,#+23
STRH R2,[R0, #+4]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_ReceiveData:
LDRH R0,[R0, #+4]
LSLS R0,R0,#+23 ;; ZeroExtS R0,R0,#+23,#+23
LSRS R0,R0,#+23
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_SendBreak:
LDRH R1,[R0, #+12]
ORRS R1,R1,#0x1
STRH R1,[R0, #+12]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_SetGuardTime:
LDRH R2,[R0, #+24]
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
STRH R2,[R0, #+24]
LDRH R2,[R0, #+24]
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
ORRS R2,R2,R1, LSL #+8
STRH R2,[R0, #+24]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_SetPrescaler:
LDRH R2,[R0, #+24]
ANDS R2,R2,#0xFF00
STRH R2,[R0, #+24]
LDRH R2,[R0, #+24]
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
ORRS R2,R2,R1
STRH R2,[R0, #+24]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_SmartCardCmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??USART_SmartCardCmd_0
LDRH R2,[R0, #+20]
ORRS R2,R2,#0x20
STRH R2,[R0, #+20]
B.N ??USART_SmartCardCmd_1
??USART_SmartCardCmd_0:
LDRH R2,[R0, #+20]
LDR.N R3,??DataTable2 ;; 0xffdf
ANDS R3,R3,R2
STRH R3,[R0, #+20]
??USART_SmartCardCmd_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable2:
DC32 0xffdf
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_SmartCardNACKCmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??USART_SmartCardNACKCmd_0
LDRH R2,[R0, #+20]
ORRS R2,R2,#0x10
STRH R2,[R0, #+20]
B.N ??USART_SmartCardNACKCmd_1
??USART_SmartCardNACKCmd_0:
LDRH R2,[R0, #+20]
LDR.N R3,??USART_SmartCardNACKCmd_2 ;; 0xffef
ANDS R3,R3,R2
STRH R3,[R0, #+20]
??USART_SmartCardNACKCmd_1:
BX LR ;; return
Nop
DATA
??USART_SmartCardNACKCmd_2:
DC32 0xffef
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_HalfDuplexCmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??USART_HalfDuplexCmd_0
LDRH R2,[R0, #+20]
ORRS R2,R2,#0x8
STRH R2,[R0, #+20]
B.N ??USART_HalfDuplexCmd_1
??USART_HalfDuplexCmd_0:
LDRH R2,[R0, #+20]
LDR.N R3,??USART_HalfDuplexCmd_2 ;; 0xfff7
ANDS R3,R3,R2
STRH R3,[R0, #+20]
??USART_HalfDuplexCmd_1:
BX LR ;; return
Nop
DATA
??USART_HalfDuplexCmd_2:
DC32 0xfff7
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_IrDAConfig:
LDRH R2,[R0, #+20]
LDR.N R3,??USART_IrDAConfig_0 ;; 0xfffb
ANDS R3,R3,R2
STRH R3,[R0, #+20]
LDRH R2,[R0, #+20]
ORRS R2,R2,R1
STRH R2,[R0, #+20]
BX LR ;; return
DATA
??USART_IrDAConfig_0:
DC32 0xfffb
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_IrDACmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??USART_IrDACmd_0
LDRH R2,[R0, #+20]
ORRS R2,R2,#0x2
STRH R2,[R0, #+20]
B.N ??USART_IrDACmd_1
??USART_IrDACmd_0:
LDRH R2,[R0, #+20]
LDR.N R3,??DataTable3 ;; 0xfffd
ANDS R3,R3,R2
STRH R3,[R0, #+20]
??USART_IrDACmd_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable3:
DC32 0xfffd
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_GetFlagStatus:
PUSH {R0,R4}
MOVS R2,R0
MOVS R3,#+0
MOVS R0,R3
LDRH R3,[R2, #+0]
ANDS R3,R3,R1
MOVS R4,R3
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
SUBS R4,R4,#+1
SBCS R4,R4,R4
MVNS R4,R4
LSRS R4,R4,#+31
MOVS R0,R4
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_ClearFlag:
LDRH R2,[R0, #+0]
BICS R2,R2,R1
STRH R2,[R0, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_GetITStatus:
PUSH {R4-R7}
MOVS R3,R0
MOVS R2,#+0
MOVS R4,R2
MOVS R2,#+0
MOVS R5,R2
MOVS R2,#+0
MOVS R6,R2
MOVS R2,#+0
MOVS R0,R2
MOVS R2,R1
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
LSRS R2,R2,#+5
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
MOVS R6,R2
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LSLS R2,R1,#+27 ;; ZeroExtS R2,R1,#+27,#+27
LSRS R2,R2,#+27
MOVS R5,R2
MOVS R7,#+1
MOVS R2,R5
MOVS R5,R7
LSLS R5,R5,R2
CMP R6,#+1
BNE.N ??USART_GetITStatus_0
MOVS R2,R5
LDRH R5,[R3, #+12]
ANDS R5,R5,R2
B.N ??USART_GetITStatus_1
??USART_GetITStatus_0:
CMP R6,#+2
BNE.N ??USART_GetITStatus_2
MOVS R2,R5
LDRH R5,[R3, #+16]
ANDS R5,R5,R2
B.N ??USART_GetITStatus_1
??USART_GetITStatus_2:
MOVS R2,R5
LDRH R5,[R3, #+20]
ANDS R5,R5,R2
??USART_GetITStatus_1:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LSRS R2,R1,#+8
UXTH R2,R2 ;; ZeroExtS R2,R2,#+16,#+16
MOVS R4,R2
MOVS R7,#+1
MOVS R2,R4
MOVS R4,R7
LSLS R4,R4,R2
MOVS R2,R4
LDRH R4,[R3, #+0]
ANDS R4,R4,R2
CMP R5,#+0
BEQ.N ??USART_GetITStatus_3
MOVS R0,R4
SUBS R0,R0,#+1
SBCS R0,R0,R0
MVNS R0,R0
LSRS R0,R0,#+31
B.N ??USART_GetITStatus_4
??USART_GetITStatus_3:
MOVS R2,#+0
MOVS R0,R2
??USART_GetITStatus_4:
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
POP {R4-R7}
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
USART_ClearITPendingBit:
PUSH {R4,R5}
MOVS R4,#+0
MOVS R2,R4
MOVS R4,#+0
MOVS R3,R4
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LSRS R4,R1,#+8
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
MOVS R2,R4
MOVS R4,#+1
LSLS R4,R4,R2
MOVS R3,R4
LDRH R4,[R0, #+0]
MOVS R5,R3
BICS R4,R4,R5
STRH R4,[R0, #+0]
POP {R4,R5}
BX LR ;; return
END
//
// 1 036 bytes in section .XML
//
// 1 036 bytes of CODE memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -