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

📄 stm32f10x_can.s79

📁 STM32利用正交编码器实现电机的控制
💻 S79
📖 第 1 页 / 共 5 页
字号:
        MOVS     R1,#+3
        STRB     R1,[R0, #+8]
        MOVS     R1,#+2
        STRB     R1,[R0, #+9]
        MOVS     R1,#+1
        STRH     R1,[R0, #+10]
        BX       LR               ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_ITConfig:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R4,#+1
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+2
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+4
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+8
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+16
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+32
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+64
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+256
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+512
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+1024
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+2048
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+32768
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+65536
        BEQ.N    ??CAN_ITConfig_0
        CMP      R4,#+131072
        BEQ.N    ??CAN_ITConfig_0
        LDR.N    R1,??CAN_ITConfig_1  ;; 0x17d
        LDR.N    R0,??DataTable71  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_ITConfig_0:
        CMP      R5,#+0
        BEQ.N    ??CAN_ITConfig_2
        CMP      R5,#+1
        BEQ.N    ??CAN_ITConfig_2
        MOVS     R1,#+382
        LDR.N    R0,??DataTable71  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_ITConfig_2:
        CMP      R5,#+0
        BEQ.N    ??CAN_ITConfig_3
        LDR.N    R0,??DataTable75  ;; CAN
        LDR      R0,[R0, #+0]
        LDR.N    R1,??DataTable75  ;; CAN
        LDR      R1,[R1, #+0]
        LDR      R1,[R1, #+20]
        ORRS     R4,R4,R1
        STR      R4,[R0, #+20]
        B.N      ??CAN_ITConfig_4
??CAN_ITConfig_3:
        LDR.N    R0,??DataTable75  ;; CAN
        LDR      R0,[R0, #+0]
        LDR.N    R1,??DataTable75  ;; CAN
        LDR      R1,[R1, #+0]
        LDR      R1,[R1, #+20]
        BICS     R1,R1,R4
        STR      R1,[R0, #+20]
??CAN_ITConfig_4:
        POP      {R4,R5,PC}       ;; return
        Nop      
        DATA
??CAN_ITConfig_1:
        DC32     0x17d

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

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

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_Transmit:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R0,#+0
        LDR      R1,[R4, #+0]
        CMP      R1,#+2048
        BCC.N    ??CAN_Transmit_0
        MOVS     R1,#+410
        LDR.N    R0,??DataTable106  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_Transmit_0:
        LDR      R0,[R4, #+4]
        CMP      R0,#+262144
        BCC.N    ??CAN_Transmit_1
        LDR.N    R1,??CAN_Transmit_2  ;; 0x19b
        LDR.N    R0,??DataTable106  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_Transmit_1:
        LDRB     R0,[R4, #+8]
        CMP      R0,#+0
        BEQ.N    ??CAN_Transmit_3
        LDRB     R0,[R4, #+8]
        CMP      R0,#+4
        BEQ.N    ??CAN_Transmit_3
        MOVS     R1,#+412
        LDR.N    R0,??DataTable106  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_Transmit_3:
        LDRB     R0,[R4, #+9]
        CMP      R0,#+0
        BEQ.N    ??CAN_Transmit_4
        LDRB     R0,[R4, #+9]
        CMP      R0,#+2
        BEQ.N    ??CAN_Transmit_4
        LDR.N    R1,??CAN_Transmit_2+0x4  ;; 0x19d
        LDR.N    R0,??DataTable106  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_Transmit_4:
        LDRB     R0,[R4, #+10]
        CMP      R0,#+9
        BCC.N    ??CAN_Transmit_5
        MOVS     R1,#+414
        LDR.N    R0,??DataTable106  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_Transmit_5:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        LSLS     R0,R0,#+5
        BPL.N    ??CAN_Transmit_6
        MOVS     R0,#+0
        B.N      ??CAN_Transmit_7
??CAN_Transmit_6:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        LSLS     R0,R0,#+4
        BPL.N    ??CAN_Transmit_8
        MOVS     R0,#+1
        B.N      ??CAN_Transmit_7
??CAN_Transmit_8:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        LSLS     R0,R0,#+3
        BPL.N    ??CAN_Transmit_9
        MOVS     R0,#+2
        B.N      ??CAN_Transmit_7
??CAN_Transmit_9:
        MOVS     R0,#+4
??CAN_Transmit_7:
        CMP      R0,#+4
        BEQ.W    ??CAN_Transmit_10
        LDR      R1,[R4, #+0]
        LSLS     R1,R1,#+21       ;; ZeroExtS R1,R1,#+21,#+21
        LSRS     R1,R1,#+21
        STR      R1,[R4, #+0]
        LDR      R1,[R4, #+0]
        LSLS     R1,R1,#+21
        STR      R1,[R4, #+0]
        LDR      R1,[R4, #+4]
        LSLS     R1,R1,#+14       ;; ZeroExtS R1,R1,#+14,#+14
        LSRS     R1,R1,#+14
        STR      R1,[R4, #+4]
        LDR      R1,[R4, #+4]
        LSLS     R1,R1,#+3
        STR      R1,[R4, #+4]
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R1,#+16
        LDR.N    R2,??DataTable115  ;; CAN
        LDR      R2,[R2, #+0]
        MLA      R1,R0,R1,R2
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R2,#+16
        LDR.N    R3,??DataTable115  ;; CAN
        LDR      R3,[R3, #+0]
        MLA      R2,R0,R2,R3
        LDR      R2,[R2, #+384]
        MOVS     R3,#+1
        ANDS     R3,R3,R2
        STR      R3,[R1, #+384]
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R1,#+16
        LDR.N    R2,??DataTable115  ;; CAN
        LDR      R2,[R2, #+0]
        MLA      R1,R0,R1,R2
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R2,#+16
        LDR.N    R3,??DataTable115  ;; CAN
        LDR      R3,[R3, #+0]
        MLA      R2,R0,R2,R3
        LDR      R2,[R2, #+384]
        LDR      R3,[R4, #+0]
        LDR      R5,[R4, #+4]
        ORRS     R5,R5,R3
        LDRB     R3,[R4, #+8]
        ORRS     R3,R3,R5
        LDRB     R5,[R4, #+9]
        ORRS     R5,R5,R3
        ORRS     R5,R5,R2
        STR      R5,[R1, #+384]
        LDRB     R1,[R4, #+10]
        LSLS     R1,R1,#+28       ;; ZeroExtS R1,R1,#+28,#+28
        LSRS     R1,R1,#+28
        STRB     R1,[R4, #+10]
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R1,#+16
        LDR.N    R2,??DataTable115  ;; CAN
        LDR      R2,[R2, #+0]
        MLA      R1,R0,R1,R2
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R2,#+16
        LDR.N    R3,??DataTable115  ;; CAN
        LDR      R3,[R3, #+0]
        MLA      R2,R0,R2,R3
        LDR      R2,[R2, #+388]
        MOVS     R3,#+15
        BICS     R2,R2,R3
        STR      R2,[R1, #+388]
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R1,#+16
        LDR.N    R2,??DataTable115  ;; CAN
        LDR      R2,[R2, #+0]
        MLA      R1,R0,R1,R2
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R2,#+16
        LDR.N    R3,??DataTable115  ;; CAN
        LDR      R3,[R3, #+0]
        MLA      R2,R0,R2,R3
        LDR      R2,[R2, #+388]
        LDRB     R3,[R4, #+10]
        ORRS     R3,R3,R2
        STR      R3,[R1, #+388]
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R1,#+16
        LDR.N    R2,??DataTable115  ;; CAN
        LDR      R2,[R2, #+0]
        MLA      R1,R0,R1,R2
        LDRB     R2,[R4, #+14]
        LDRB     R3,[R4, #+13]
        LSLS     R3,R3,#+16
        ORRS     R2,R3,R2, LSL #+24
        LDRB     R3,[R4, #+12]
        ORRS     R2,R2,R3, LSL #+8
        LDRB     R3,[R4, #+11]
        ORRS     R3,R3,R2
        STR      R3,[R1, #+392]
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R1,#+16
        LDR.N    R2,??DataTable115  ;; CAN
        LDR      R2,[R2, #+0]
        MLA      R1,R0,R1,R2
        LDRB     R2,[R4, #+18]
        LDRB     R3,[R4, #+17]
        LSLS     R3,R3,#+16
        ORRS     R2,R3,R2, LSL #+24
        LDRB     R3,[R4, #+16]
        ORRS     R2,R2,R3, LSL #+8
        LDRB     R3,[R4, #+15]
        ORRS     R3,R3,R2
        STR      R3,[R1, #+396]
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R1,#+16
        LDR.N    R2,??DataTable115  ;; CAN
        LDR      R2,[R2, #+0]
        MLA      R1,R0,R1,R2
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        MOVS     R2,#+16
        LDR.N    R3,??DataTable115  ;; CAN
        LDR      R3,[R3, #+0]
        MLA      R2,R0,R2,R3
        LDR      R2,[R2, #+384]
        ORRS     R2,R2,#0x1
        STR      R2,[R1, #+384]
??CAN_Transmit_10:
        POP      {R4,R5,PC}       ;; return
        Nop      
        DATA
??CAN_Transmit_2:
        DC32     0x19b
        DC32     0x19d

        RSEG CODE:CODE:NOROOT(2)
        THUMB
CAN_TransmitStatus:
        PUSH     {R4,R5,LR}
        MOVS     R5,R0
        MOVS     R4,#+0
        CMP      R5,#+3
        BCC.N    ??CAN_TransmitStatus_0
        LDR.N    R1,??CAN_TransmitStatus_1  ;; 0x1e3
        LDR.N    R0,??DataTable106  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??CAN_TransmitStatus_0:
        CMP      R5,#+0
        BEQ.N    ??CAN_TransmitStatus_2
        CMP      R5,#+1
        BEQ.N    ??CAN_TransmitStatus_3
        CMP      R5,#+2
        BEQ.N    ??CAN_TransmitStatus_4
        B.N      ??CAN_TransmitStatus_5
??CAN_TransmitStatus_2:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+1
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSL #+2
        MOVS     R1,R4
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R4,#+2
        ANDS     R4,R4,R0
        ORRS     R4,R4,R1
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+67108864
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSR #+26
        B.N      ??CAN_TransmitStatus_6
??CAN_TransmitStatus_3:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+256
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSR #+6
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+512
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSR #+8
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+134217728
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSR #+27
        B.N      ??CAN_TransmitStatus_6
??CAN_TransmitStatus_4:
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+65536
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSR #+14
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+131072
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSR #+16
        LDR.N    R0,??DataTable115  ;; CAN
        LDR      R0,[R0, #+0]
        LDR      R0,[R0, #+8]
        MOVS     R1,#+268435456
        ANDS     R1,R1,R0
        ORRS     R4,R4,R1, LSR #+28
        B.N      ??CAN_TransmitStatus_6
??CAN_TransmitStatus_5:
        MOVS     R4,#+0
??CAN_TransmitStatus_6:
        CMP      R4,#+0
        BEQ.N    ??CAN_TransmitStatus_7
        CMP      R4,#+5
        BEQ.N    ??CAN_TransmitStatus_8
        CMP      R4,#+7
        BEQ.N    ??CAN_TransmitStatus_9

⌨️ 快捷键说明

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