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

📄 stm32f10x_can.s79

📁 STM32利用正交编码器实现电机的控制
💻 S79
📖 第 1 页 / 共 5 页
字号:
        B.N      ??CAN_TransmitStatus_10
??CAN_TransmitStatus_7:
        MOVS     R4,#+2
        B.N      ??CAN_TransmitStatus_11
??CAN_TransmitStatus_8:
        MOVS     R4,#+0
        B.N      ??CAN_TransmitStatus_11
??CAN_TransmitStatus_9:
        MOVS     R4,#+1
        B.N      ??CAN_TransmitStatus_11
??CAN_TransmitStatus_10:
        MOVS     R4,#+0
??CAN_TransmitStatus_11:
        MOVS     R0,R4
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        POP      {R4,R5,PC}       ;; return
        DATA
??CAN_TransmitStatus_1:
        DC32     0x1e3

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_CancelTransmit:
        PUSH     {R4,LR}
        MOVS     R4,R0
        CMP      R4,#+3
        BCC.N    ??CAN_CancelTransmit_0
        LDR.N    R1,??CAN_CancelTransmit_1  ;; 0x215
        LDR.N    R0,??DataTable106  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_CancelTransmit_0:
        CMP      R4,#+0
        BEQ.N    ??CAN_CancelTransmit_2
        CMP      R4,#+1
        BEQ.N    ??CAN_CancelTransmit_3
        CMP      R4,#+2
        BEQ.N    ??CAN_CancelTransmit_4
        B.N      ??CAN_CancelTransmit_5
??CAN_CancelTransmit_2:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR.N    R1,??DataTable115  ;; CAN
        LDR      R1,[R1, #+0]
        LDR      R1,[R1, #+8]
        ORRS     R1,R1,#0x80
        STR      R1,[R0, #+8]
        B.N      ??CAN_CancelTransmit_5
??CAN_CancelTransmit_3:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR.N    R1,??DataTable115  ;; CAN
        LDR      R1,[R1, #+0]
        LDR      R1,[R1, #+8]
        ORRS     R1,R1,#0x8000
        STR      R1,[R0, #+8]
        B.N      ??CAN_CancelTransmit_5
??CAN_CancelTransmit_4:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR.N    R1,??DataTable115  ;; CAN
        LDR      R1,[R1, #+0]
        LDR      R1,[R1, #+8]
        ORRS     R1,R1,#0x800000
        STR      R1,[R0, #+8]
??CAN_CancelTransmit_5:
        POP      {R4,PC}          ;; return
        DATA
??CAN_CancelTransmit_1:
        DC32     0x215

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable106:
        DC32     `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_FIFORelease:
        PUSH     {R4,LR}
        MOVS     R4,R0
        CMP      R4,#+0
        BEQ.N    ??CAN_FIFORelease_0
        CMP      R4,#+1
        BEQ.N    ??CAN_FIFORelease_0
        LDR.N    R1,??CAN_FIFORelease_1  ;; 0x22f
        LDR.N    R0,??DataTable142  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_FIFORelease_0:
        CMP      R4,#+0
        BNE.N    ??CAN_FIFORelease_2
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        MOVS     R1,#+32
        STR      R1,[R0, #+12]
        B.N      ??CAN_FIFORelease_3
??CAN_FIFORelease_2:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        MOVS     R1,#+32
        STR      R1,[R0, #+16]
??CAN_FIFORelease_3:
        POP      {R4,PC}          ;; return
        DATA
??CAN_FIFORelease_1:
        DC32     0x22f

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable115:
        DC32     CAN

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_MessagePending:
        PUSH     {R4,LR}
        MOVS     R4,R0
        MOVS     R0,#+0
        CMP      R4,#+0
        BEQ.N    ??CAN_MessagePending_0
        CMP      R4,#+1
        BEQ.N    ??CAN_MessagePending_0
        LDR.N    R1,??CAN_MessagePending_1  ;; 0x249
        LDR.N    R0,??DataTable142  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_MessagePending_0:
        CMP      R4,#+0
        BNE.N    ??CAN_MessagePending_2
        LDR.N    R0,??DataTable144  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+12]
        LSLS     R0,R0,#+30       ;; ZeroExtS R0,R0,#+30,#+30
        LSRS     R0,R0,#+30
        B.N      ??CAN_MessagePending_3
??CAN_MessagePending_2:
        CMP      R4,#+1
        BNE.N    ??CAN_MessagePending_4
        LDR.N    R0,??DataTable144  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+16]
        LSLS     R0,R0,#+30       ;; ZeroExtS R0,R0,#+30,#+30
        LSRS     R0,R0,#+30
        B.N      ??CAN_MessagePending_3
??CAN_MessagePending_4:
        MOVS     R0,#+0
??CAN_MessagePending_3:
        POP      {R4,PC}          ;; return
        Nop      
        DATA
??CAN_MessagePending_1:
        DC32     0x249

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_Receive:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R4,#+0
        BEQ.N    ??CAN_Receive_0
        CMP      R4,#+1
        BEQ.N    ??CAN_Receive_0
        LDR.N    R1,??CAN_Receive_1  ;; 0x265
        LDR.N    R0,??DataTable142  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_Receive_0:
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+432]
        LSRS     R0,R0,#+21
        STR      R0,[R5, #+0]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+432]
        LSRS     R0,R0,#+3
        LSLS     R0,R0,#+14       ;; ZeroExtS R0,R0,#+14,#+14
        LSRS     R0,R0,#+14
        STR      R0,[R5, #+4]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+432]
        MOVS     R1,#+4
        ANDS     R1,R1,R0
        STRB     R1,[R5, #+8]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+432]
        MOVS     R1,#+2
        ANDS     R1,R1,R0
        STRB     R1,[R5, #+9]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+436]
        LSLS     R0,R0,#+28       ;; ZeroExtS R0,R0,#+28,#+28
        LSRS     R0,R0,#+28
        STRB     R0,[R5, #+10]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+436]
        LSRS     R0,R0,#+8
        STRB     R0,[R5, #+19]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+440]
        STRB     R0,[R5, #+11]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+440]
        LSRS     R0,R0,#+8
        STRB     R0,[R5, #+12]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+440]
        LSRS     R0,R0,#+16
        STRB     R0,[R5, #+13]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+440]
        LSRS     R0,R0,#+24
        STRB     R0,[R5, #+14]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+444]
        STRB     R0,[R5, #+15]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+444]
        LSRS     R0,R0,#+8
        STRB     R0,[R5, #+16]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+444]
        LSRS     R0,R0,#+16
        STRB     R0,[R5, #+17]
        LSLS     R4,R4,#+24       ;; ZeroExtS R4,R4,#+24,#+24
        LSRS     R4,R4,#+24
        MOVS     R0,#+16
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        MLA      R0,R4,R0,R1
        LDR      R0,[R0, #+444]
        LSRS     R0,R0,#+24
        STRB     R0,[R5, #+18]
        MOVS     R0,R4
        BL       CAN_FIFORelease
        POP      {R4,R5,PC}       ;; return
        DATA
??CAN_Receive_1:
        DC32     0x265

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_Sleep:
        MOVS     R0,#+0
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        LDR.N    R2,??DataTable144  ;; CAN
        LDR      R2,[R2, #+0]
        LDR      R2,[R2, #+0]
        ORRS     R2,R2,#0x2
        STR      R2,[R1, #+0]
        MOVS     R1,#+1
        MOVS     R0,R1
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        LDR      R1,[R1, #+4]
        LSLS     R1,R1,#+30
        BMI.N    ??CAN_Sleep_0
        MOVS     R0,#+0
??CAN_Sleep_0:
        BX       LR               ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_WakeUp:
        MOVS     R0,#+0
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        LDR.N    R2,??DataTable144  ;; CAN
        LDR      R2,[R2, #+0]
        LDR      R2,[R2, #+0]
        MOVS     R3,#+2
        BICS     R2,R2,R3
        STR      R2,[R1, #+0]
        MOVS     R1,#+0
        MOVS     R0,R1
        LDR.N    R1,??DataTable144  ;; CAN
        LDR      R1,[R1, #+0]
        LDR      R1,[R1, #+4]
        LSLS     R1,R1,#+30
        BMI.N    ??CAN_WakeUp_0
        MOVS     R0,#+1
??CAN_WakeUp_0:
        BX       LR               ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_GetFlagStatus:
        PUSH     {R4,LR}
        MOVS     R4,R0
        MOVS     R0,#+0
        CMP      R4,#+1
        BEQ.N    ??CAN_GetFlagStatus_0
        CMP      R4,#+2
        BEQ.N    ??CAN_GetFlagStatus_0
        CMP      R4,#+4
        BEQ.N    ??CAN_GetFlagStatus_0
        LDR.N    R1,??CAN_GetFlagStatus_1  ;; 0x2c6
        LDR.N    R0,??DataTable142  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_GetFlagStatus_0:
        LDR.N    R0,??DataTable144  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+24]
        ANDS     R4,R4,R0
        CMP      R4,#+0
        BEQ.N    ??CAN_GetFlagStatus_2
        MOVS     R0,#+1
        B.N      ??CAN_GetFlagStatus_3
??CAN_GetFlagStatus_2:
        MOVS     R0,#+0
??CAN_GetFlagStatus_3:
        POP      {R4,PC}          ;; return
        Nop      
        DATA
??CAN_GetFlagStatus_1:
        DC32     0x2c6

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_ClearFlag:
        PUSH     {R4,LR}
        MOVS     R4,R0
        CMP      R4,#+1
        BEQ.N    ??CAN_ClearFlag_0
        CMP      R4,#+2
        BEQ.N    ??CAN_ClearFlag_0
        CMP      R4,#+4
        BEQ.N    ??CAN_ClearFlag_0
        LDR.N    R1,??CAN_ClearFlag_1  ;; 0x2e1
        LDR.N    R0,??DataTable142  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -