📄 stm32f10x_spi.s
字号:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??SPI_SSOutputCmd_0
LDRH R2,[R0, #+4]
ORRS R2,R2,#0x4
STRH R2,[R0, #+4]
B.N ??SPI_SSOutputCmd_1
??SPI_SSOutputCmd_0:
LDRH R2,[R0, #+4]
LDR.N R3,??SPI_SSOutputCmd_2 ;; 0xfffb
ANDS R3,R3,R2
STRH R3,[R0, #+4]
??SPI_SSOutputCmd_1:
BX LR ;; return
Nop
DATA
??SPI_SSOutputCmd_2:
DC32 0xfffb
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_DataSizeConfig:
LDRH R2,[R0, #+0]
LDR.N R3,??SPI_DataSizeConfig_0 ;; 0xf7ff
ANDS R3,R3,R2
STRH R3,[R0, #+0]
LDRH R2,[R0, #+0]
ORRS R2,R2,R1
STRH R2,[R0, #+0]
BX LR ;; return
DATA
??SPI_DataSizeConfig_0:
DC32 0xf7ff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_TransmitCRC:
LDRH R1,[R0, #+0]
ORRS R1,R1,#0x1000
STRH R1,[R0, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_CalculateCRC:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??SPI_CalculateCRC_0
LDRH R2,[R0, #+0]
ORRS R2,R2,#0x2000
STRH R2,[R0, #+0]
B.N ??SPI_CalculateCRC_1
??SPI_CalculateCRC_0:
LDRH R2,[R0, #+0]
LDR.N R3,??SPI_CalculateCRC_2 ;; 0xdfff
ANDS R3,R3,R2
STRH R3,[R0, #+0]
??SPI_CalculateCRC_1:
BX LR ;; return
Nop
DATA
??SPI_CalculateCRC_2:
DC32 0xdfff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_GetCRC:
MOVS R2,R0
MOVS R3,#+0
MOVS R0,R3
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+1
BEQ.N ??SPI_GetCRC_0
LDRH R3,[R2, #+24]
MOVS R0,R3
B.N ??SPI_GetCRC_1
??SPI_GetCRC_0:
LDRH R3,[R2, #+20]
MOVS R0,R3
??SPI_GetCRC_1:
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_GetCRCPolynomial:
LDRH R0,[R0, #+16]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_BiDirectionalLineConfig:
MOVS R2,#+16384
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
CMP R1,R2
BNE.N ??SPI_BiDirectionalLineConfig_0
LDRH R2,[R0, #+0]
ORRS R2,R2,#0x4000
STRH R2,[R0, #+0]
B.N ??SPI_BiDirectionalLineConfig_1
??SPI_BiDirectionalLineConfig_0:
LDRH R2,[R0, #+0]
LDR.N R3,??SPI_BiDirectionalLineConfig_2 ;; 0xbfff
ANDS R3,R3,R2
STRH R3,[R0, #+0]
??SPI_BiDirectionalLineConfig_1:
BX LR ;; return
Nop
DATA
??SPI_BiDirectionalLineConfig_2:
DC32 0xbfff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_GetFlagStatus:
PUSH {R0,R4}
MOVS R2,R0
MOVS R3,#+0
MOVS R0,R3
LDRH R3,[R2, #+8]
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
SPI_ClearFlag:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
CMP R1,#+32
BNE.N ??SPI_ClearFlag_0
LDRH R2,[R0, #+8]
LDRH R3,[R0, #+0]
ORRS R3,R3,#0x40
STRH R3,[R0, #+0]
B.N ??SPI_ClearFlag_1
??SPI_ClearFlag_0:
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
CMP R1,#+64
BNE.N ??SPI_ClearFlag_2
LDRH R2,[R0, #+8]
B.N ??SPI_ClearFlag_1
??SPI_ClearFlag_2:
LDRH R2,[R0, #+8]
BICS R2,R2,R1
STRH R2,[R0, #+8]
??SPI_ClearFlag_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_GetITStatus:
PUSH {R0,R4-R7,LR}
MOVS R3,R0
MOVS R2,#+0
MOVS R0,R2
MOVS R2,#+0
MOVS R4,R2
MOVS R2,#+0
MOVS R5,R2
MOVS R2,#+0
MOVS R6,R2
MOVS R2,#+1
LSLS R7,R1,#+28 ;; ZeroExtS R7,R1,#+28,#+28
LSRS R7,R7,#+28
LSLS R2,R2,R7
MOVS R4,R2
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
LSRS R2,R1,#+4
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
MOVS R5,R2
MOVS R7,#+1
MOVS R2,R5
MOVS R5,R7
LSLS R5,R5,R2
LDRH R2,[R3, #+4]
ANDS R2,R2,R5
MOVS R6,R2
LDRH R2,[R3, #+8]
TST R2,R4
BEQ.N ??SPI_GetITStatus_0
MOVS R0,R6
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
SUBS R0,R0,#+1
SBCS R0,R0,R0
MVNS R0,R0
LSRS R0,R0,#+31
B.N ??SPI_GetITStatus_1
??SPI_GetITStatus_0:
MOVS R2,#+0
MOVS R0,R2
??SPI_GetITStatus_1:
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {R4-R7,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
SPI_ClearITPendingBit:
PUSH {R0,R4}
MOVS R3,#+0
MOVS R2,R3
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+85
BNE.N ??SPI_ClearITPendingBit_0
LDRH R3,[R0, #+8]
LDRH R4,[R0, #+0]
ORRS R4,R4,#0x40
STRH R4,[R0, #+0]
B.N ??SPI_ClearITPendingBit_1
??SPI_ClearITPendingBit_0:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+86
BNE.N ??SPI_ClearITPendingBit_2
LDRH R3,[R0, #+8]
B.N ??SPI_ClearITPendingBit_1
??SPI_ClearITPendingBit_2:
MOVS R3,#+1
LSLS R4,R1,#+28 ;; ZeroExtS R4,R1,#+28,#+28
LSRS R4,R4,#+28
LSLS R3,R3,R4
MOVS R2,R3
LDRH R3,[R0, #+8]
BICS R3,R3,R2
STRH R3,[R0, #+8]
??SPI_ClearITPendingBit_1:
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
END
//
// 674 bytes in section .XML
//
// 674 bytes of CODE memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -