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

📄 ican-mcp2515.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
        LDRB     R0,[R4, #+4]
        LSLS     R0,R0,#+28       ;; ZeroExtS R0,R0,#+28,#+28
        LSRS     R0,R0,#+28
        STRB     R0,[SP, #+0]
        MOVS     R0,#+0
        MOVS     R5,R0
??WriteCAN_0:
        LDRB     R0,[SP, #+0]
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        CMP      R5,R0
        BCS.N    ??WriteCAN_1
        ADDS     R7,R7,#+1
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        ADDS     R0,R4,R5
        LDRB     R1,[R0, #+5]
        MOVS     R0,R7
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteWrite
        ADDS     R5,R5,#+1
        B.N      ??WriteCAN_0
??WriteCAN_1:
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+49
        BNE.N    ??WriteCAN_2
        MOVS     R1,#+8
        MOVS     R0,#+48
        BL       SPIByteWrite
        B.N      ??WriteCAN_3
??WriteCAN_2:
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+65
        BNE.N    ??WriteCAN_4
        MOVS     R1,#+8
        MOVS     R0,#+64
        BL       SPIByteWrite
        B.N      ??WriteCAN_3
??WriteCAN_4:
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+81
        BNE.N    ??WriteCAN_3
        MOVS     R1,#+8
        MOVS     R0,#+80
        BL       SPIByteWrite
??WriteCAN_3:
        ADD      SP,SP,#+4
        POP      {R4-R7,PC}       ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
Init2515:
        PUSH     {R0,R4,R5,LR}
        MOVS     R5,R0
        BL       SPIReset
        MOVS     R0,#+100
        BL       delay_nop
        MOVS     R1,#+0
        MOVS     R0,#+96
        BL       SPIByteWrite
        MOVS     R1,#+0
        MOVS     R0,#+32
        BL       SPIByteWrite
        MOVS     R1,#+0
        MOVS     R0,#+33
        BL       SPIByteWrite
        MOVS     R1,#+0
        MOVS     R0,#+0
        BL       SPIByteWrite
        MOVS     R1,#+8
        MOVS     R0,#+1
        BL       SPIByteWrite
        MOVS     R1,#+63
        MOVS     R0,#+2
        BL       SPIByteWrite
        MOVS     R1,#+0
        MOVS     R0,#+3
        BL       SPIByteWrite
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        LDR.N    R0,??Init2515_0  ;; CAN_RATE_TAB
        LDRB     R5,[R0, R5]
        MOVS     R1,R5
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        MOVS     R0,#+42
        BL       SPIByteWrite
        MOVS     R1,#+144
        MOVS     R0,#+41
        BL       SPIByteWrite
        MOVS     R1,#+2
        MOVS     R0,#+40
        BL       SPIByteWrite
        MOVS     R1,#+160
        MOVS     R0,#+49
        BL       SPIByteWrite
        MOVS     R1,#+232
        MOVS     R0,#+50
        BL       SPIByteWrite
        MOVS     R1,#+255
        MOVS     R0,#+51
        BL       SPIByteWrite
        MOVS     R1,#+168
        MOVS     R0,#+52
        BL       SPIByteWrite
        MOVS     R1,#+3
        MOVS     R0,#+53
        BL       SPIByteWrite
        MOVS     R1,#+6
        MOVS     R0,#+54
        BL       SPIByteWrite
        MOVS     R1,#+255
        MOVS     R0,#+55
        BL       SPIByteWrite
        MOVS     R1,#+255
        MOVS     R0,#+56
        BL       SPIByteWrite
        MOVS     R1,#+80
        MOVS     R0,#+65
        BL       SPIByteWrite
        MOVS     R1,#+0
        MOVS     R0,#+66
        BL       SPIByteWrite
        MOVS     R1,#+72
        MOVS     R0,#+69
        BL       SPIByteWrite
        MOVS     R1,#+1
        MOVS     R0,#+43
        BL       SPIByteWrite
        MOVS     R0,#+100
        BL       delay_nop
        MOVS     R0,#+2
        BL       SPIByteRead
        MOVS     R4,R0
        MOVS     R1,#+8
        MOVS     R0,#+15
        BL       SPIByteWrite
        MOVS     R0,#+14
        BL       SPIByteRead
        MOVS     R4,R0
        MOVS     R1,#+0
        MOVS     R0,#+48
        BL       SPIByteWrite
        MOVS     R0,#+0
        MOVS     R4,R0
??Init2515_1:
        MOVS     R0,#+160
        BL       SPIByteRead
        TST      R0,#0x54
        BEQ.N    ??Init2515_2
        LDR.N    R0,??Init2515_0+0x4  ;; 0x61a8
        UXTH     R4,R4            ;; ZeroExtS R4,R4,#+16,#+16
        CMP      R4,R0
        BCS.N    ??Init2515_2
        BL       WWDG_ClearFlag
        ADDS     R4,R4,#+1
        B.N      ??Init2515_1
??Init2515_2:
        MOVS     R1,#+0
        MOVS     R0,#+44
        BL       SPIByteWrite
        ADD      SP,SP,#+4
        POP      {R4,R5,PC}       ;; return
        DATA
??Init2515_0:
        DC32     CAN_RATE_TAB
        DC32     0x61a8

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
Read2551:
        PUSH     {R0,R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+0]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+1]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+2]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+3]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+4]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+5]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+6]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+7]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+8]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+9]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+10]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+11]
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BL       SPIByteRead
        STRB     R0,[R4, #+12]
        ADD      SP,SP,#+4
        POP      {R4,R5,PC}       ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTS:
        PUSH     {R0,R4-R7,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R6,R2
        MOVS     R0,#+160
        BL       SPIFastRead
        MOVS     R7,R0
        MOVS     R0,#+0
        STRB     R0,[R4, #+1]
        LDRB     R0,[R4, #+1]
        TST      R0,#0xE0
        BNE.N    ??RTS_0
        UXTB     R7,R7            ;; ZeroExtS R7,R7,#+24,#+24
        LSLS     R0,R7,#+29
        BPL.N    ??RTS_1
        MOVS     R0,#+255
        B.N      ??RTS_2
??RTS_1:
        MOVS     R2,R6
        MOVS     R1,R5
        MOVS     R0,R4
        BL       ConfCAN
        LSLS     R0,R7,#+29
        BMI.N    ??RTS_3
        MOVS     R1,#+49
        MOVS     R0,R5
        BL       WriteCAN
        B.N      ??RTS_4
??RTS_3:
        LSLS     R0,R7,#+27
        BMI.N    ??RTS_5
        MOVS     R1,#+65
        MOVS     R0,R5
        BL       WriteCAN
        B.N      ??RTS_4
??RTS_5:
        LSLS     R0,R7,#+25
        BMI.N    ??RTS_4
        MOVS     R1,#+81
        MOVS     R0,R5
        BL       WriteCAN
??RTS_4:
        LDRB     R0,[R4, #+5]
        STRB     R0,[SP, #+0]
        LDRB     R1,[SP, #+0]
        SUBS     R0,R1,#+1
        SBCS     R0,R0,R0
        MVNS     R0,R0
        LSRS     R0,R0,#+31
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        B.N      ??RTS_2
??RTS_0:
        LDRB     R0,[R4, #+1]
        ANDS     R0,R0,#0xE0
        CMP      R0,#+224
        BNE.N    ??RTS_6
        LSLS     R0,R7,#+29
        BMI.N    ??RTS_6
        LDRH     R0,[R6, #+0]
        STRB     R0,[R5, #+0]
        MOVS     R0,#+224
        STRB     R0,[R5, #+1]
        LDRB     R0,[R5, #+1]
        ORRS     R0,R0,#0x8
        STRB     R0,[R5, #+1]
        LDRB     R0,[R5, #+1]
        ORRS     R0,R0,#0x1
        STRB     R0,[R5, #+1]
        LDRB     R0,[R4, #+2]
        MOVS     R1,#+128
        ANDS     R1,R1,R0
        STRB     R1,[R5, #+2]
        LDRB     R0,[R5, #+2]
        LDRB     R1,[R4, #+0]
        LSLS     R1,R1,#+25       ;; ZeroExtS R1,R1,#+25,#+25
        LSRS     R1,R1,#+25
        ORRS     R1,R1,R0
        STRB     R1,[R5, #+2]
        LDRB     R0,[R4, #+3]
        STRB     R0,[R5, #+3]
        MOVS     R0,#+0
        STRB     R0,[R5, #+4]
        LSLS     R0,R7,#+29
        BMI.N    ??RTS_7
        MOVS     R1,#+49
        MOVS     R0,R5
        BL       WriteCAN
        B.N      ??RTS_8
??RTS_7:
        LSLS     R0,R7,#+27
        BMI.N    ??RTS_9
        MOVS     R1,#+65
        MOVS     R0,R5
        BL       WriteCAN
        B.N      ??RTS_8
??RTS_9:
        LSLS     R0,R7,#+25
        BMI.N    ??RTS_8
        MOVS     R1,#+81
        MOVS     R0,R5
        BL       WriteCAN
??RTS_8:
        MOVS     R0,#+0
        B.N      ??RTS_2
??RTS_6:
        MOVS     R0,#+0
??RTS_2:
        ADD      SP,SP,#+4
        POP      {R4-R7,PC}       ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ReadCAN:
        PUSH     {R4-R8,LR}
        MOV      R8,R2
        MOVS     R4,R0
        MOVS     R5,R1
        LDR.N    R0,??ReadCAN_0   ;; 0x40010c08
        LDR      R1,[R0, #+0]
        MOVS     R0,#+2048
        ANDS     R0,R0,R1
        LDR.N    R1,??ReadCAN_0   ;; 0x40010c08
        STR      R0,[R1, #+0]
        CMP      R0,#+0
        BEQ.N    ??ReadCAN_1
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        B.N      ??ReadCAN_2
??ReadCAN_1:
        MOVS     R0,#+160
        BL       SPIFastRead
        MOVS     R7,R0
        MOVS     R1,#+0
        MOVS     R0,#+44
        BL       SPIByteWrite
        MOVS     R0,R7
        LSLS     R0,R0,#+31
        BMI.N    ??ReadCAN_3
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        B.N      ??ReadCAN_2
??ReadCAN_3:
        MOVS     R0,#+99
        BL       SPIByteRead
        MOVS     R6,R0
        LSLS     R6,R6,#+25       ;; ZeroExtS R6,R6,#+25,#+25
        LSRS     R6,R6,#+25
        MOV      R0,R8
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        CMP      R6,R0
        BEQ.N    ??ReadCAN_4
        MOVS     R0,R5
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        B.N      ??ReadCAN_2
??ReadCAN_4:
        MOVS     R1,#+97
        MOVS     R0,R4
        BL       Read2551
        LDRB     R0,[R4, #+1]
        ANDS     R6,R0,#0xE0
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        LSRS     R6,R6,#+5
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+1
        BEQ.N    ??ReadCAN_5
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+0
        BNE.N    ??ReadCAN_6
??ReadCAN_5:
        LDRB     R0,[R4, #+3]
        LDRB     R1,[R4, #+5]
        ADDS     R0,R0,R1
        MOVS     R7,R0
        CMP      R7,#+155
        BCC.N    ??ReadCAN_6
        LDRB     R0,[R4, #+1]
        ORRS     R0,R0,#0xE0
        STRB     R0,[R4, #+1]
        MOVS     R0,#+254
        STRB     R0,[R4, #+3]
??ReadCAN_6:
        LDRB     R0,[R4, #+4]
        LSLS     R0,R0,#+29
        BNE.N    ??ReadCAN_7
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+2
        BCS.N    ??ReadCAN_7
        LDRB     R0,[R4, #+1]
        ORRS     R0,R0,#0xE0
        STRB     R0,[R4, #+1]
        MOVS     R0,#+254
        STRB     R0,[R4, #+3]
??ReadCAN_7:
        MOVS     R0,#+1
??ReadCAN_2:
        POP      {R4-R8,PC}       ;; return
        Nop      
        DATA
??ReadCAN_0:
        DC32     0x40010c08

        END
// 
// 1 702 bytes in section .XML
//     8 bytes in section .rodata
// 
// 1 702 bytes of CODE  memory
//     8 bytes of CONST memory
//
//Errors: none
//Warnings: 2

⌨️ 快捷键说明

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