📄 stm32f10x_spi.s79
字号:
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_NSSInternalSoftwareConfig:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R0,#+256
CMP R5,R0
BEQ.N ??SPI_NSSInternalSoftwareConfig_0
LDR.N R0,??SPI_NSSInternalSoftwareConfig_1 ;; 0xfeff
CMP R5,R0
BEQ.N ??SPI_NSSInternalSoftwareConfig_0
LDR.N R1,??SPI_NSSInternalSoftwareConfig_1+0x4 ;; 0x137
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_NSSInternalSoftwareConfig_0:
LDR.N R0,??SPI_NSSInternalSoftwareConfig_1 ;; 0xfeff
CMP R5,R0
BEQ.N ??SPI_NSSInternalSoftwareConfig_2
LDRH R0,[R4, #+0]
ORRS R0,R0,#0x100
STRH R0,[R4, #+0]
B.N ??SPI_NSSInternalSoftwareConfig_3
??SPI_NSSInternalSoftwareConfig_2:
LDRH R0,[R4, #+0]
LDR.N R1,??SPI_NSSInternalSoftwareConfig_1 ;; 0xfeff
ANDS R1,R1,R0
STRH R1,[R4, #+0]
??SPI_NSSInternalSoftwareConfig_3:
POP {R4,R5,PC} ;; return
Nop
DATA
??SPI_NSSInternalSoftwareConfig_1:
DC32 0xfeff
DC32 0x137
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_SSOutputCmd:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
CMP R5,#+0
BEQ.N ??SPI_SSOutputCmd_0
CMP R5,#+1
BEQ.N ??SPI_SSOutputCmd_0
LDR.N R1,??SPI_SSOutputCmd_1 ;; 0x151
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_SSOutputCmd_0:
CMP R5,#+0
BEQ.N ??SPI_SSOutputCmd_2
LDRH R0,[R4, #+4]
ORRS R0,R0,#0x4
STRH R0,[R4, #+4]
B.N ??SPI_SSOutputCmd_3
??SPI_SSOutputCmd_2:
LDRH R0,[R4, #+4]
LDR.N R1,??SPI_SSOutputCmd_1+0x4 ;; 0xfffb
ANDS R1,R1,R0
STRH R1,[R4, #+4]
??SPI_SSOutputCmd_3:
POP {R4,R5,PC} ;; return
Nop
DATA
??SPI_SSOutputCmd_1:
DC32 0x151
DC32 0xfffb
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_DataSizeConfig:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R0,#+2048
CMP R5,R0
BEQ.N ??SPI_DataSizeConfig_0
CMP R5,#+0
BEQ.N ??SPI_DataSizeConfig_0
LDR.N R1,??SPI_DataSizeConfig_1 ;; 0x16d
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_DataSizeConfig_0:
LDRH R0,[R4, #+0]
LDR.N R1,??SPI_DataSizeConfig_1+0x4 ;; 0xf7ff
ANDS R1,R1,R0
STRH R1,[R4, #+0]
LDRH R0,[R4, #+0]
ORRS R5,R5,R0
STRH R5,[R4, #+0]
POP {R4,R5,PC} ;; return
Nop
DATA
??SPI_DataSizeConfig_1:
DC32 0x16d
DC32 0xf7ff
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_TransmitCRC:
LDRH R1,[R0, #+0]
ORRS R1,R1,#0x1000
STRH R1,[R0, #+0]
BX LR ;; return
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_CalculateCRC:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
CMP R5,#+0
BEQ.N ??SPI_CalculateCRC_0
CMP R5,#+1
BEQ.N ??SPI_CalculateCRC_0
LDR.N R1,??SPI_CalculateCRC_1 ;; 0x18f
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_CalculateCRC_0:
CMP R5,#+0
BEQ.N ??SPI_CalculateCRC_2
LDRH R0,[R4, #+0]
ORRS R0,R0,#0x2000
STRH R0,[R4, #+0]
B.N ??SPI_CalculateCRC_3
??SPI_CalculateCRC_2:
LDRH R0,[R4, #+0]
LDR.N R1,??SPI_CalculateCRC_1+0x4 ;; 0xdfff
ANDS R1,R1,R0
STRH R1,[R4, #+0]
??SPI_CalculateCRC_3:
POP {R4,R5,PC} ;; return
Nop
DATA
??SPI_CalculateCRC_1:
DC32 0x18f
DC32 0xdfff
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_GetCRC:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R0,#+0
CMP R5,#+0
BEQ.N ??SPI_GetCRC_0
CMP R5,#+1
BEQ.N ??SPI_GetCRC_0
MOVS R1,#+430
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_GetCRC_0:
CMP R5,#+1
BEQ.N ??SPI_GetCRC_1
LDRH R0,[R4, #+24]
B.N ??SPI_GetCRC_2
??SPI_GetCRC_1:
LDRH R0,[R4, #+20]
??SPI_GetCRC_2:
POP {R4,R5,PC} ;; return
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable18:
DC32 `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_GetCRCPolynomial:
LDRH R0,[R0, #+16]
BX LR ;; return
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_BiDirectionalLineConfig:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
LDR.N R0,??SPI_BiDirectionalLineConfig_0 ;; 0xbfff
CMP R5,R0
BEQ.N ??SPI_BiDirectionalLineConfig_1
MOVS R0,#+16384
CMP R5,R0
BEQ.N ??SPI_BiDirectionalLineConfig_1
MOVS R1,#+476
LDR.N R0,??DataTable23 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_BiDirectionalLineConfig_1:
MOVS R0,#+16384
CMP R5,R0
BNE.N ??SPI_BiDirectionalLineConfig_2
LDRH R0,[R4, #+0]
ORRS R0,R0,#0x4000
STRH R0,[R4, #+0]
B.N ??SPI_BiDirectionalLineConfig_3
??SPI_BiDirectionalLineConfig_2:
LDRH R0,[R4, #+0]
LDR.N R1,??SPI_BiDirectionalLineConfig_0 ;; 0xbfff
ANDS R1,R1,R0
STRH R1,[R4, #+0]
??SPI_BiDirectionalLineConfig_3:
POP {R4,R5,PC} ;; return
Nop
DATA
??SPI_BiDirectionalLineConfig_0:
DC32 0xbfff
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_GetFlagStatus:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R0,#+0
CMP R5,#+128
BEQ.N ??SPI_GetFlagStatus_0
CMP R5,#+64
BEQ.N ??SPI_GetFlagStatus_0
CMP R5,#+32
BEQ.N ??SPI_GetFlagStatus_0
CMP R5,#+16
BEQ.N ??SPI_GetFlagStatus_0
CMP R5,#+2
BEQ.N ??SPI_GetFlagStatus_0
CMP R5,#+1
BEQ.N ??SPI_GetFlagStatus_0
MOVS R1,#+510
LDR.N R0,??DataTable23 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_GetFlagStatus_0:
LDRH R0,[R4, #+8]
TST R0,R5
BEQ.N ??SPI_GetFlagStatus_1
MOVS R0,#+1
B.N ??SPI_GetFlagStatus_2
??SPI_GetFlagStatus_1:
MOVS R0,#+0
??SPI_GetFlagStatus_2:
POP {R4,R5,PC} ;; return
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_ClearFlag:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
LDR.N R0,??SPI_ClearFlag_0 ;; 0xff8f
TST R5,R0
BNE.N ??SPI_ClearFlag_1
CMP R5,#+0
BNE.N ??SPI_ClearFlag_2
??SPI_ClearFlag_1:
LDR.N R1,??SPI_ClearFlag_0+0x4 ;; 0x21e
LDR.N R0,??DataTable23 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_ClearFlag_2:
CMP R5,#+32
BNE.N ??SPI_ClearFlag_3
LDRH R0,[R4, #+8]
LDRH R1,[R4, #+0]
ORRS R1,R1,#0x40
STRH R1,[R4, #+0]
B.N ??SPI_ClearFlag_4
??SPI_ClearFlag_3:
CMP R5,#+64
BNE.N ??SPI_ClearFlag_5
LDRH R0,[R4, #+8]
B.N ??SPI_ClearFlag_4
??SPI_ClearFlag_5:
LDRH R0,[R4, #+8]
BICS R0,R0,R5
STRH R0,[R4, #+8]
??SPI_ClearFlag_4:
POP {R4,R5,PC} ;; return
DATA
??SPI_ClearFlag_0:
DC32 0xff8f
DC32 0x21e
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_GetITStatus:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R0,#+0
MOVS R1,#+0
MOVS R2,#+0
MOVS R3,#+0
CMP R5,#+113
BEQ.N ??SPI_GetITStatus_0
CMP R5,#+96
BEQ.N ??SPI_GetITStatus_0
CMP R5,#+86
BEQ.N ??SPI_GetITStatus_0
CMP R5,#+85
BEQ.N ??SPI_GetITStatus_0
CMP R5,#+84
BEQ.N ??SPI_GetITStatus_0
LDR.N R1,??SPI_GetITStatus_1 ;; 0x249
LDR.N R0,??DataTable23 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_GetITStatus_0:
MOVS R1,#+1
LSLS R0,R5,#+28 ;; ZeroExtS R0,R5,#+28,#+28
LSRS R0,R0,#+28
LSLS R1,R1,R0
MOVS R2,R5
LSLS R2,R2,#+24 ;; ZeroExtS R2,R2,#+24,#+24
LSRS R2,R2,#+24
LSRS R2,R2,#+4
LSLS R2,R2,#+24 ;; ZeroExtS R2,R2,#+24,#+24
LSRS R2,R2,#+24
MOVS R3,#+1
MOVS R0,R2
MOVS R2,R3
LSLS R2,R2,R0
LDRH R0,[R4, #+4]
ANDS R2,R2,R0
MOVS R3,R2
LDRH R0,[R4, #+8]
TST R0,R1
BEQ.N ??SPI_GetITStatus_2
LSLS R3,R3,#+16 ;; ZeroExtS R3,R3,#+16,#+16
LSRS R3,R3,#+16
CMP R3,#+0
BEQ.N ??SPI_GetITStatus_2
MOVS R0,#+1
B.N ??SPI_GetITStatus_3
??SPI_GetITStatus_2:
MOVS R0,#+0
??SPI_GetITStatus_3:
POP {R4,R5,PC} ;; return
Nop
DATA
??SPI_GetITStatus_1:
DC32 0x249
RSEG CODE:CODE:NOROOT(2)
THUMB
SPI_ClearITPendingBit:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
MOVS R0,#+0
CMP R5,#+86
BEQ.N ??SPI_ClearITPendingBit_0
CMP R5,#+85
BEQ.N ??SPI_ClearITPendingBit_0
CMP R5,#+84
BEQ.N ??SPI_ClearITPendingBit_0
LDR.N R1,??SPI_ClearITPendingBit_1 ;; 0x275
LDR.N R0,??DataTable23 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??SPI_ClearITPendingBit_0:
CMP R5,#+85
BNE.N ??SPI_ClearITPendingBit_2
LDRH R0,[R4, #+8]
LDRH R1,[R4, #+0]
ORRS R1,R1,#0x40
STRH R1,[R4, #+0]
B.N ??SPI_ClearITPendingBit_3
??SPI_ClearITPendingBit_2:
CMP R5,#+86
BNE.N ??SPI_ClearITPendingBit_4
LDRH R0,[R4, #+8]
B.N ??SPI_ClearITPendingBit_3
??SPI_ClearITPendingBit_4:
MOVS R0,#+1
LSLS R1,R5,#+28 ;; ZeroExtS R1,R5,#+28,#+28
LSRS R1,R1,#+28
LSLS R0,R0,R1
LDRH R1,[R4, #+8]
BICS R1,R1,R0
STRH R1,[R4, #+8]
??SPI_ClearITPendingBit_3:
POP {R4,R5,PC} ;; return
DATA
??SPI_ClearITPendingBit_1:
DC32 0x275
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable23:
DC32 `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
RSEG CODE:CODE:NOROOT(2)
THUMB
??RCC_APB2PeriphResetCmd??rT:
LDR.N R3,??Subroutine0_0 ;; RCC_APB2PeriphResetCmd
BX R3
DATA
??Subroutine0_0:
DC32 RCC_APB2PeriphResetCmd
RSEG CODE:CODE:NOROOT(2)
THUMB
??RCC_APB1PeriphResetCmd??rT:
LDR.N R3,??Subroutine1_0 ;; RCC_APB1PeriphResetCmd
BX R3
DATA
??Subroutine1_0:
DC32 RCC_APB1PeriphResetCmd
RSEG CODE:CODE:NOROOT(2)
THUMB
??assert_failed??rT:
LDR.N R3,??Subroutine2_0 ;; assert_failed
BX R3
DATA
??Subroutine2_0:
DC32 assert_failed
RSEG DATA_C:CONST:SORT:NOROOT(2)
`?<Constant "C:\\\\David JIANG\\\\ST MCU...">`:
DATA
DC8 43H, 3AH, 5CH, 44H, 61H, 76H, 69H, 64H
DC8 20H, 4AH, 49H, 41H, 4EH, 47H, 5CH, 53H
DC8 54H, 20H, 4DH, 43H, 55H, 5CH, 44H, 6FH
DC8 63H, 73H, 5CH, 53H, 54H, 4DH, 33H, 32H
DC8 5CH, 41H, 4EH, 5FH, 4AH, 49H, 41H, 4EH
DC8 47H, 5CH, 54H, 49H, 4DH, 20H, 45H, 6EH
DC8 63H, 6FH, 64H, 65H, 72H, 5CH, 65H, 78H
DC8 61H, 6DH, 70H, 6CH, 65H, 5CH, 46H, 57H
DC8 4CH, 69H, 62H, 5CH, 73H, 72H, 63H, 5CH
DC8 73H, 74H, 6DH, 33H, 32H, 66H, 31H, 30H
DC8 78H, 5FH, 73H, 70H, 69H, 2EH, 63H, 0
END
//
// 1 292 bytes in segment CODE
// 88 bytes in segment DATA_C
//
// 1 268 bytes of CODE memory (+ 24 bytes shared)
// 88 bytes of CONST memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -