⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_spi.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
        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 + -