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

📄 uart.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
        ADD      SP,SP,#+4
        POP      {R4-R7,PC}       ;; return
        Nop      
        DATA
??UsartRXD_6:
        DC32     _YT

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable36:
        DC32     0x40013800

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
UsartTXD:
        PUSH     {R0,R4-R7,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R7,R2
        LDRB     R0,[R5, #+5]
        CMP      R0,#+0
        BEQ.N    ??UsartTXD_0
        LDRB     R0,[R5, #+6]
        LDRH     R1,[R7, #+0]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        CMP      R0,R1
        BEQ.N    ??UsartTXD_1
??UsartTXD_0:
        MOVS     R0,#+0
        STRH     R0,[R5, #+0]
        STRB     R0,[R5, #+4]
        MOVS     R0,#+0
        B.N      ??UsartTXD_2
??UsartTXD_1:
        LDRB     R0,[R5, #+11]
        MOVS     R6,R0
        LDRH     R0,[R7, #+0]
        STRB     R0,[R4, #+6]
        LDRB     R0,[R5, #+7]
        STRB     R0,[R4, #+7]
        LDRB     R0,[R5, #+9]
        LDRB     R1,[R5, #+11]
        ADDS     R0,R0,R1
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        CMP      R0,#+99
        BCC.N    ??UsartTXD_3
        MOVS     R0,#+131
        STRB     R0,[R4, #+7]
??UsartTXD_3:
        MOVS     R0,#+2
        STRH     R0,[R4, #+0]
        LDRB     R0,[R5, #+9]
        STRH     R0,[SP, #+0]
        LDRB     R0,[R4, #+7]
        CMP      R0,#+3
        BNE.N    ??UsartTXD_4
        LDRH     R0,[SP, #+0]
        MOVS     R1,#+2
        MLA      R7,R0,R1,R7
        MOVS     R0,#+2
        STRH     R0,[SP, #+0]
??UsartTXD_5:
        UXTH     R6,R6            ;; ZeroExtS R6,R6,#+16,#+16
        CMP      R6,#+1
        BCC.N    ??UsartTXD_4
        LDRH     R0,[R4, #+0]
        ADDS     R0,R4,R0
        LDRH     R1,[R7, #+0]
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSRS     R1,R1,#+8
        STRB     R1,[R0, #+6]
        LDRH     R0,[R4, #+0]
        ADDS     R0,R0,#+1
        STRH     R0,[R4, #+0]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        ADDS     R0,R4,R0
        LDRH     R1,[R7, #+0]
        STRB     R1,[R0, #+6]
        ADDS     R7,R7,#+2
        LDRH     R0,[R4, #+0]
        ADDS     R0,R0,#+1
        STRH     R0,[R4, #+0]
        SUBS     R6,R6,#+1
        B.N      ??UsartTXD_5
??UsartTXD_4:
        LDRH     R1,[R4, #+0]
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        MOVS     R0,R4
        ADDS     R0,R0,#+6
        BL       cal_crc
        MOVS     R6,R0
        LDRH     R0,[R4, #+0]
        ADDS     R0,R4,R0
        UXTH     R6,R6            ;; ZeroExtS R6,R6,#+16,#+16
        LSRS     R1,R6,#+8
        STRB     R1,[R0, #+6]
        LDRH     R0,[R4, #+0]
        ADDS     R0,R0,#+1
        STRH     R0,[R4, #+0]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        ADDS     R0,R4,R0
        MOVS     R1,R6
        STRB     R1,[R0, #+6]
        MOVS     R0,#+0
        STRH     R0,[R4, #+2]
        MOVS     R2,#+1
        MOVS     R1,#+40
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??DataTable38  ;; 0x626
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??DataTable40  ;; 0x525
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??DataTable42  ;; 0x424
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??DataTable44  ;; 0x846
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??DataTable46  ;; 0x96a
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        MOVS     R1,#+96
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        LDR.N    R1,??DataTable54  ;; 0x40013800
        LDR.N    R0,??DataTable50  ;; pUart1TxFifo
        LDR      R0,[R0, #+0]
        BL       FifoPop
        LDR.N    R0,??DataTable52  ;; 0x4001080c
        LDR      R0,[R0, #+0]
        MOVS     R1,#+8
        BICS     R0,R0,R1
        LDR.N    R1,??DataTable52  ;; 0x4001080c
        STR      R0,[R1, #+0]
        MOVS     R2,#+1
        LDR.N    R1,??DataTable53  ;; 0x727
        LDR.N    R0,??DataTable54  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R0,#+0
??UsartTXD_2:
        ADD      SP,SP,#+4
        POP      {R4-R7,PC}       ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable38:
        DC32     0x626

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable40:
        DC32     0x525

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable42:
        DC32     0x424

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable44:
        DC32     0x846

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable46:
        DC32     0x96a

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable50:
        DC32     pUart1TxFifo

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable52:
        DC32     0x4001080c

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable53:
        DC32     0x727

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable54:
        DC32     0x40013800

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
Uart1Init:
        PUSH     {LR}
        SUB      SP,SP,#+36
        MOVS     R1,#+0
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_Cmd
        LDR.N    R0,??Uart1Init_0+0x4  ;; pUart1TxFifo
        LDR.N    R1,??Uart1Init_0+0x8  ;; Uart1TxFifo
        STR      R1,[R0, #+0]
        LDR.N    R0,??Uart1Init_0+0xC  ;; pUart1RxFifo
        LDR.N    R1,??Uart1Init_0+0x10  ;; Uart1RxFifo
        STR      R1,[R0, #+0]
        LDR.N    R0,??Uart1Init_0+0x14  ;; _YT + 2
        LDRH     R0,[R0, #+0]
        LSLS     R0,R0,#+29       ;; ZeroExtS R0,R0,#+29,#+29
        LSRS     R0,R0,#+29
        MOVS     R1,#+2
        MULS     R0,R1,R0
        LDR.N    R1,??Uart1Init_0+0x18  ;; BAUD_TAB
        LDRH     R0,[R1, R0]
        STR      R0,[SP, #+8]
        MOVS     R0,#+0
        STRH     R0,[SP, #+12]
        MOVS     R0,#+0
        STRH     R0,[SP, #+14]
        MOVS     R0,#+0
        STRH     R0,[SP, #+16]
        MOVS     R0,#+0
        STRH     R0,[SP, #+18]
        MOVS     R0,#+12
        STRH     R0,[SP, #+20]
        MOVS     R0,#+0
        STRH     R0,[SP, #+22]
        MOVS     R0,#+0
        STRH     R0,[SP, #+24]
        MOVS     R0,#+0
        STRH     R0,[SP, #+26]
        MOVS     R0,#+0
        STRH     R0,[SP, #+28]
        MOVS     R0,#+0
        STRH     R0,[SP, #+16]
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_DeInit
        MOVS     R1,#+1
        MOVS     R0,#+16384
        BL       RCC_APB2PeriphClockCmd
        MOVS     R1,#+1
        MOVS     R0,#+4
        BL       RCC_APB2PeriphClockCmd
        MOVS     R1,#+0
        MOVS     R0,#+4
        BL       RCC_APB2PeriphResetCmd
        MOVS     R1,#+0
        MOVS     R0,#+4
        BL       GPIO_PinRemapConfig
        MOVS     R0,#+3
        STRB     R0,[SP, #+2]
        MOVS     R0,#+24
        STRB     R0,[SP, #+3]
        MOVS     R0,#+512
        STRH     R0,[SP, #+0]
        MOV      R1,SP
        LDR.N    R0,??Uart1Init_0+0x1C  ;; 0x40010800
        BL       GPIO_Init
        MOVS     R0,#+4
        STRB     R0,[SP, #+3]
        MOVS     R0,#+1024
        STRH     R0,[SP, #+0]
        MOV      R1,SP
        LDR.N    R0,??Uart1Init_0+0x1C  ;; 0x40010800
        BL       GPIO_Init
        ADD      R1,SP,#+8
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_Init
        MOVS     R0,#+37
        STRB     R0,[SP, #+4]
        MOVS     R0,#+10
        STRB     R0,[SP, #+5]
        MOVS     R0,#+0
        STRB     R0,[SP, #+6]
        MOVS     R0,#+1
        STRB     R0,[SP, #+7]
        ADD      R0,SP,#+4
        BL       NVIC_Init
        LDR.N    R1,??Uart1Init_0+0x20  ;; 0x3ff
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ClearFlag
        MOVS     R2,#+1
        MOVS     R1,#+40
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??Uart1Init_0+0x24  ;; 0x727
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??Uart1Init_0+0x28  ;; 0x626
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+1
        LDR.N    R1,??Uart1Init_0+0x2C  ;; 0x525
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??Uart1Init_0+0x30  ;; 0x424
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??Uart1Init_0+0x34  ;; 0x846
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        LDR.N    R1,??Uart1Init_0+0x38  ;; 0x96a
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        MOVS     R2,#+0
        MOVS     R1,#+96
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_ITConfig
        LDR.N    R0,??Uart1Init_0+0x3C  ;; 0x4001080c
        LDR      R0,[R0, #+0]
        ORRS     R0,R0,#0x8
        LDR.N    R1,??Uart1Init_0+0x3C  ;; 0x4001080c
        STR      R0,[R1, #+0]
        LDR.N    R0,??Uart1Init_0+0x40  ;; Uart1RxFifo + 5
        MOVS     R1,#+0
        STRB     R1,[R0, #+0]
        MOVS     R1,#+1
        LDR.N    R0,??Uart1Init_0  ;; 0x40013800
        BL       USART_Cmd
        ADD      SP,SP,#+36
        POP      {PC}             ;; return
        DATA
??Uart1Init_0:
        DC32     0x40013800
        DC32     pUart1TxFifo
        DC32     Uart1TxFifo
        DC32     pUart1RxFifo
        DC32     Uart1RxFifo
        DC32     _YT + 2
        DC32     BAUD_TAB
        DC32     0x40010800
        DC32     0x3ff
        DC32     0x727
        DC32     0x626
        DC32     0x525
        DC32     0x424
        DC32     0x846
        DC32     0x96a
        DC32     0x4001080c
        DC32     Uart1RxFifo + 5

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

⌨️ 快捷键说明

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