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

📄 stm32f10x_usart.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////////////////
//                                                                            /
//                                                      30/Jul/2008  14:37:36 /
// IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                   /
// Copyright 1999-2007 IAR Systems. All rights reserved.                      /
//                                                                            /
//    Cpu mode     =  thumb                                                   /
//    Endian       =  little                                                  /
//    Source file  =  E:\library\src\stm32f10x_usart.c                        /
//    Command line =  E:\library\src\stm32f10x_usart.c -D EMB_FLASH -lCN      /
//                    E:\ELE\yten\pro\Debug\List\ -lb                         /
//                    E:\ELE\yten\pro\Debug\List\ -o                          /
//                    E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll         /
//                    --no_inline --no_code_motion --no_tbaa --no_clustering  /
//                    --no_scheduling --debug --endian little --cpu           /
//                    Cortex-M3 -e --fpu None --dlib_config "C:\Program       /
//                    Files\IAR Systems\Embedded Workbench 5.0                /
//                    Evaluation\ARM\INC\DLib_Config_Normal.h" -I             /
//                    E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I  /
//                    "C:\Program Files\IAR Systems\Embedded Workbench 5.0    /
//                    Evaluation\ARM\INC\" --section .text=.XML -On           /
//    List file    =  E:\ELE\yten\pro\Debug\List\stm32f10x_usart.s            /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME stm32f10x_usart

        EXTERN RCC_APB1PeriphResetCmd
        EXTERN RCC_APB2PeriphResetCmd
        EXTERN RCC_GetClocksFreq

        PUBLIC USART_ClearFlag
        PUBLIC USART_ClearITPendingBit
        PUBLIC USART_Cmd
        PUBLIC USART_DMACmd
        PUBLIC USART_DeInit
        PUBLIC USART_GetFlagStatus
        PUBLIC USART_GetITStatus
        PUBLIC USART_HalfDuplexCmd
        PUBLIC USART_ITConfig
        PUBLIC USART_Init
        PUBLIC USART_IrDACmd
        PUBLIC USART_IrDAConfig
        PUBLIC USART_LINBreakDetectLengthConfig
        PUBLIC USART_LINCmd
        PUBLIC USART_ReceiveData
        PUBLIC USART_ReceiverWakeUpCmd
        PUBLIC USART_SendBreak
        PUBLIC USART_SendData
        PUBLIC USART_SetAddress
        PUBLIC USART_SetGuardTime
        PUBLIC USART_SetPrescaler
        PUBLIC USART_SmartCardCmd
        PUBLIC USART_SmartCardNACKCmd
        PUBLIC USART_StructInit
        PUBLIC USART_WakeUpConfig


        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_DeInit:
        PUSH     {R4,LR}
        MOVS     R4,R0
        MOVS     R0,R4
        LDR.N    R1,??USART_DeInit_0  ;; 0x40004400
        SUBS     R0,R0,R1
        BEQ.N    ??USART_DeInit_1
        MOVS     R1,#+1024
        SUBS     R0,R0,R1
        BEQ.N    ??USART_DeInit_2
        MOVS     R1,#+61440
        SUBS     R0,R0,R1
        BNE.N    ??USART_DeInit_3
??USART_DeInit_4:
        MOVS     R1,#+1
        MOVS     R0,#+16384
        BL       RCC_APB2PeriphResetCmd
        MOVS     R1,#+0
        MOVS     R0,#+16384
        BL       RCC_APB2PeriphResetCmd
        B.N      ??USART_DeInit_3
??USART_DeInit_1:
        MOVS     R1,#+1
        MOVS     R0,#+131072
        BL       RCC_APB1PeriphResetCmd
        MOVS     R1,#+0
        MOVS     R0,#+131072
        BL       RCC_APB1PeriphResetCmd
        B.N      ??USART_DeInit_3
??USART_DeInit_2:
        MOVS     R1,#+1
        MOVS     R0,#+262144
        BL       RCC_APB1PeriphResetCmd
        MOVS     R1,#+0
        MOVS     R0,#+262144
        BL       RCC_APB1PeriphResetCmd
??USART_DeInit_3:
        POP      {R4,PC}          ;; return
        Nop      
        DATA
??USART_DeInit_0:
        DC32     0x40004400

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_Init:
        PUSH     {R4-R7,LR}
        SUB      SP,SP,#+28
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R0,#+0
        MOVS     R7,R0
        MOVS     R0,#+0
        STR      R0,[SP, #+0]
        MOVS     R0,#+0
        MOVS     R6,R0
        MOVS     R0,#+0
        STR      R0,[SP, #+4]
        LDRH     R0,[R4, #+16]
        MOVS     R7,R0
        MOVS     R0,R7
        LDR.N    R7,??USART_Init_0  ;; 0xc0ff
        ANDS     R7,R7,R0
        LDRH     R0,[R5, #+6]
        LDRH     R1,[R5, #+14]
        ORRS     R1,R1,R0
        LDRH     R0,[R5, #+16]
        ORRS     R0,R0,R1
        LDRH     R1,[R5, #+18]
        ORRS     R1,R1,R0
        LDRH     R0,[R5, #+20]
        ORRS     R0,R0,R1
        ORRS     R0,R0,R7
        MOVS     R7,R0
        MOVS     R0,R7
        STRH     R0,[R4, #+16]
        MOVS     R0,#+0
        MOVS     R7,R0
        LDRH     R0,[R4, #+12]
        MOVS     R7,R0
        MOVS     R0,R7
        LDR.N    R7,??USART_Init_0+0x4  ;; 0xe9f3
        ANDS     R7,R7,R0
        LDRH     R0,[R5, #+4]
        LDRH     R1,[R5, #+8]
        ORRS     R1,R1,R0
        LDRH     R0,[R5, #+12]
        ORRS     R0,R0,R1
        ORRS     R0,R0,R7
        MOVS     R7,R0
        MOVS     R0,R7
        STRH     R0,[R4, #+12]
        MOVS     R0,#+0
        MOVS     R7,R0
        LDRH     R0,[R4, #+20]
        MOVS     R7,R0
        MOVS     R0,R7
        LDR.N    R7,??USART_Init_0+0x8  ;; 0xfcff
        ANDS     R7,R7,R0
        MOVS     R0,R7
        LDRH     R7,[R5, #+10]
        ORRS     R7,R7,R0
        MOVS     R0,R7
        STRH     R0,[R4, #+20]
        MOVS     R0,#+0
        MOVS     R7,R0
        ADD      R0,SP,#+8
        BL       RCC_GetClocksFreq
        LDR.N    R0,??USART_Init_0+0xC  ;; 0x40013800
        CMP      R4,R0
        BNE.N    ??USART_Init_1
        LDR      R0,[SP, #+20]
        STR      R0,[SP, #+0]
        B.N      ??USART_Init_2
??USART_Init_1:
        LDR      R0,[SP, #+16]
        STR      R0,[SP, #+0]
??USART_Init_2:
        LDR      R0,[SP, #+0]
        MOVS     R1,#+25
        MULS     R0,R1,R0
        LDR      R1,[R5, #+0]
        MOVS     R2,#+4
        MULS     R1,R2,R1
        UDIV     R6,R0,R1
        MOVS     R0,#+100
        UDIV     R0,R6,R0
        LSLS     R7,R0,#+4
        LSRS     R0,R7,#+4
        MOVS     R1,#+100
        MLS      R0,R0,R1,R6
        STR      R0,[SP, #+4]
        LDR      R0,[SP, #+4]
        MOVS     R1,#+16
        MULS     R0,R1,R0
        ADDS     R0,R0,#+50
        MOVS     R1,#+100
        UDIV     R0,R0,R1
        LSLS     R0,R0,#+28       ;; ZeroExtS R0,R0,#+28,#+28
        LSRS     R0,R0,#+28
        ORRS     R0,R0,R7
        MOVS     R7,R0
        MOVS     R0,R7
        STRH     R0,[R4, #+8]
        ADD      SP,SP,#+28
        POP      {R4-R7,PC}       ;; return
        Nop      
        DATA
??USART_Init_0:
        DC32     0xc0ff
        DC32     0xe9f3
        DC32     0xfcff
        DC32     0x40013800

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_StructInit:
        MOVS     R1,#+9600
        STR      R1,[R0, #+0]
        MOVS     R1,#+0
        STRH     R1,[R0, #+4]
        MOVS     R1,#+0
        STRH     R1,[R0, #+6]
        MOVS     R1,#+0
        STRH     R1,[R0, #+8]
        MOVS     R1,#+0
        STRH     R1,[R0, #+10]
        MOVS     R1,#+12
        STRH     R1,[R0, #+12]
        MOVS     R1,#+0
        STRH     R1,[R0, #+14]
        MOVS     R1,#+0
        STRH     R1,[R0, #+16]
        MOVS     R1,#+0
        STRH     R1,[R0, #+18]
        MOVS     R1,#+0
        STRH     R1,[R0, #+20]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_Cmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??USART_Cmd_0
        LDRH     R2,[R0, #+12]
        ORRS     R2,R2,#0x2000
        STRH     R2,[R0, #+12]
        B.N      ??USART_Cmd_1
??USART_Cmd_0:
        LDRH     R2,[R0, #+12]
        LDR.N    R3,??USART_Cmd_2  ;; 0xdfff
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+12]
??USART_Cmd_1:
        BX       LR               ;; return
        Nop      
        DATA
??USART_Cmd_2:
        DC32     0xdfff

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_ITConfig:
        PUSH     {R4-R7}
        MOVS     R7,#+0
        MOVS     R3,R7
        MOVS     R7,#+0
        MOVS     R4,R7
        MOVS     R7,#+0
        MOVS     R5,R7
        MOVS     R7,#+0
        MOVS     R6,R7
        MOVS     R7,R1
        UXTB     R7,R7            ;; ZeroExtS R7,R7,#+24,#+24
        LSRS     R7,R7,#+5
        UXTB     R7,R7            ;; ZeroExtS R7,R7,#+24,#+24
        MOVS     R3,R7
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSLS     R7,R1,#+27       ;; ZeroExtS R7,R1,#+27,#+27
        LSRS     R7,R7,#+27
        MOVS     R4,R7
        MOVS     R7,#+1
        LSLS     R7,R7,R4
        MOVS     R5,R7
        MOVS     R6,R0
        CMP      R3,#+1
        BNE.N    ??USART_ITConfig_0
        ADDS     R6,R6,#+12
        B.N      ??USART_ITConfig_1
??USART_ITConfig_0:
        CMP      R3,#+2
        BNE.N    ??USART_ITConfig_2
        ADDS     R6,R6,#+16
        B.N      ??USART_ITConfig_1
??USART_ITConfig_2:
        ADDS     R6,R6,#+20
??USART_ITConfig_1:
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        CMP      R2,#+0
        BEQ.N    ??USART_ITConfig_3
        LDR      R7,[R6, #+0]
        ORRS     R7,R7,R5
        STR      R7,[R6, #+0]
        B.N      ??USART_ITConfig_4
??USART_ITConfig_3:
        LDR      R7,[R6, #+0]
        BICS     R7,R7,R5
        STR      R7,[R6, #+0]
??USART_ITConfig_4:
        POP      {R4-R7}
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_DMACmd:
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        CMP      R2,#+0
        BEQ.N    ??USART_DMACmd_0
        LDRH     R3,[R0, #+20]
        ORRS     R3,R3,R1
        STRH     R3,[R0, #+20]
        B.N      ??USART_DMACmd_1
??USART_DMACmd_0:
        LDRH     R3,[R0, #+20]
        BICS     R3,R3,R1
        STRH     R3,[R0, #+20]
??USART_DMACmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_SetAddress:
        LDRH     R2,[R0, #+16]
        LDR.N    R3,??USART_SetAddress_0  ;; 0xfff0
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+16]
        LDRH     R2,[R0, #+16]
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        ORRS     R2,R2,R1
        STRH     R2,[R0, #+16]
        BX       LR               ;; return
        Nop      
        DATA
??USART_SetAddress_0:
        DC32     0xfff0

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB

⌨️ 快捷键说明

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