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

📄 stm32f10x_rcc.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
        SUBS     R1,R1,#+1
        BEQ.N    ??RCC_LSEConfig_0
        SUBS     R1,R1,#+3
        BEQ.N    ??RCC_LSEConfig_1
        B.N      ??RCC_LSEConfig_2
??RCC_LSEConfig_0:
        LDR.N    R1,??DataTable44  ;; 0x40021020
        MOVS     R2,#+1
        STRB     R2,[R1, #+0]
        B.N      ??RCC_LSEConfig_2
??RCC_LSEConfig_1:
        LDR.N    R1,??DataTable44  ;; 0x40021020
        MOVS     R2,#+5
        STRB     R2,[R1, #+0]
??RCC_LSEConfig_2:
        ADD      SP,SP,#+4
        POP      {PC}             ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_LSICmd:
        LDR.N    R1,??RCC_LSICmd_0  ;; 0x42420480
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        STR      R0,[R1, #+0]
        BX       LR               ;; return
        DATA
??RCC_LSICmd_0:
        DC32     0x42420480

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_RTCCLKConfig:
        LDR.N    R1,??DataTable44  ;; 0x40021020
        LDR      R1,[R1, #+0]
        ORRS     R1,R1,R0
        LDR.N    R2,??DataTable44  ;; 0x40021020
        STR      R1,[R2, #+0]
        BX       LR               ;; return

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

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_RTCCLKCmd:
        LDR.N    R1,??RCC_RTCCLKCmd_0  ;; 0x4242043c
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        STR      R0,[R1, #+0]
        BX       LR               ;; return
        DATA
??RCC_RTCCLKCmd_0:
        DC32     0x4242043c

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_GetClocksFreq:
        PUSH     {R4-R6,LR}
        MOVS     R5,#+0
        MOVS     R1,R5
        MOVS     R5,#+0
        MOVS     R2,R5
        MOVS     R5,#+0
        MOVS     R3,R5
        MOVS     R5,#+0
        MOVS     R4,R5
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        ANDS     R1,R5,#0xC
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??RCC_GetClocksFreq_1
        SUBS     R5,R5,#+4
        BEQ.N    ??RCC_GetClocksFreq_2
        SUBS     R5,R5,#+4
        BEQ.N    ??RCC_GetClocksFreq_3
        B.N      ??RCC_GetClocksFreq_4
??RCC_GetClocksFreq_1:
        LDR.N    R5,??RCC_GetClocksFreq_0+0x4  ;; 0x7a1200
        STR      R5,[R0, #+0]
        B.N      ??RCC_GetClocksFreq_5
??RCC_GetClocksFreq_2:
        LDR.N    R5,??RCC_GetClocksFreq_0+0x4  ;; 0x7a1200
        STR      R5,[R0, #+0]
        B.N      ??RCC_GetClocksFreq_5
??RCC_GetClocksFreq_3:
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        ANDS     R2,R5,#0x3C0000
        LSRS     R2,R2,#+18
        ADDS     R2,R2,#+2
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        MOVS     R6,#+65536
        ANDS     R6,R6,R5
        MOVS     R3,R6
        CMP      R3,#+0
        BNE.N    ??RCC_GetClocksFreq_6
        LDR.N    R5,??RCC_GetClocksFreq_0+0x8  ;; 0x3d0900
        MULS     R5,R2,R5
        STR      R5,[R0, #+0]
        B.N      ??RCC_GetClocksFreq_5
??RCC_GetClocksFreq_6:
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        LSLS     R5,R5,#+14
        BPL.N    ??RCC_GetClocksFreq_7
        LDR.N    R5,??RCC_GetClocksFreq_0+0x8  ;; 0x3d0900
        MULS     R5,R2,R5
        STR      R5,[R0, #+0]
        B.N      ??RCC_GetClocksFreq_5
??RCC_GetClocksFreq_7:
        LDR.N    R5,??RCC_GetClocksFreq_0+0x4  ;; 0x7a1200
        MULS     R5,R2,R5
        STR      R5,[R0, #+0]
        B.N      ??RCC_GetClocksFreq_5
??RCC_GetClocksFreq_4:
        LDR.N    R5,??RCC_GetClocksFreq_0+0x4  ;; 0x7a1200
        STR      R5,[R0, #+0]
??RCC_GetClocksFreq_5:
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        ANDS     R1,R5,#0xF0
        LSRS     R1,R1,#+4
        LDR.N    R5,??RCC_GetClocksFreq_0+0xC  ;; APBAHBPrescTable
        LDRB     R5,[R5, R1]
        MOVS     R4,R5
        LDR      R5,[R0, #+0]
        LSRS     R5,R5,R4
        STR      R5,[R0, #+4]
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        ANDS     R1,R5,#0x700
        LSRS     R1,R1,#+8
        LDR.N    R5,??RCC_GetClocksFreq_0+0xC  ;; APBAHBPrescTable
        LDRB     R5,[R5, R1]
        MOVS     R4,R5
        LDR      R5,[R0, #+4]
        LSRS     R5,R5,R4
        STR      R5,[R0, #+8]
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        ANDS     R1,R5,#0x3800
        LSRS     R1,R1,#+11
        LDR.N    R5,??RCC_GetClocksFreq_0+0xC  ;; APBAHBPrescTable
        LDRB     R5,[R5, R1]
        MOVS     R4,R5
        LDR      R5,[R0, #+4]
        LSRS     R5,R5,R4
        STR      R5,[R0, #+12]
        LDR.N    R5,??RCC_GetClocksFreq_0  ;; 0x40021004
        LDR      R5,[R5, #+0]
        ANDS     R1,R5,#0xC000
        LSRS     R1,R1,#+14
        LDR.N    R5,??RCC_GetClocksFreq_0+0x10  ;; ADCPrescTable
        LDRB     R5,[R5, R1]
        MOVS     R4,R5
        LDR      R5,[R0, #+12]
        UDIV     R5,R5,R4
        STR      R5,[R0, #+16]
        POP      {R4-R6,PC}       ;; return
        Nop      
        DATA
??RCC_GetClocksFreq_0:
        DC32     0x40021004
        DC32     0x7a1200
        DC32     0x3d0900
        DC32     APBAHBPrescTable
        DC32     ADCPrescTable

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_AHBPeriphClockCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??RCC_AHBPeriphClockCmd_0
        LDR.N    R2,??RCC_AHBPeriphClockCmd_1  ;; 0x40021014
        LDR      R2,[R2, #+0]
        ORRS     R2,R2,R0
        LDR.N    R3,??RCC_AHBPeriphClockCmd_1  ;; 0x40021014
        STR      R2,[R3, #+0]
        B.N      ??RCC_AHBPeriphClockCmd_2
??RCC_AHBPeriphClockCmd_0:
        LDR.N    R2,??RCC_AHBPeriphClockCmd_1  ;; 0x40021014
        LDR      R2,[R2, #+0]
        BICS     R2,R2,R0
        LDR.N    R3,??RCC_AHBPeriphClockCmd_1  ;; 0x40021014
        STR      R2,[R3, #+0]
??RCC_AHBPeriphClockCmd_2:
        BX       LR               ;; return
        Nop      
        DATA
??RCC_AHBPeriphClockCmd_1:
        DC32     0x40021014

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_APB2PeriphClockCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??RCC_APB2PeriphClockCmd_0
        LDR.N    R2,??RCC_APB2PeriphClockCmd_1  ;; 0x40021018
        LDR      R2,[R2, #+0]
        ORRS     R2,R2,R0
        LDR.N    R3,??RCC_APB2PeriphClockCmd_1  ;; 0x40021018
        STR      R2,[R3, #+0]
        B.N      ??RCC_APB2PeriphClockCmd_2
??RCC_APB2PeriphClockCmd_0:
        LDR.N    R2,??RCC_APB2PeriphClockCmd_1  ;; 0x40021018
        LDR      R2,[R2, #+0]
        BICS     R2,R2,R0
        LDR.N    R3,??RCC_APB2PeriphClockCmd_1  ;; 0x40021018
        STR      R2,[R3, #+0]
??RCC_APB2PeriphClockCmd_2:
        BX       LR               ;; return
        Nop      
        DATA
??RCC_APB2PeriphClockCmd_1:
        DC32     0x40021018

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_APB1PeriphClockCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??RCC_APB1PeriphClockCmd_0
        LDR.N    R2,??RCC_APB1PeriphClockCmd_1  ;; 0x4002101c
        LDR      R2,[R2, #+0]
        ORRS     R2,R2,R0
        LDR.N    R3,??RCC_APB1PeriphClockCmd_1  ;; 0x4002101c
        STR      R2,[R3, #+0]
        B.N      ??RCC_APB1PeriphClockCmd_2
??RCC_APB1PeriphClockCmd_0:
        LDR.N    R2,??RCC_APB1PeriphClockCmd_1  ;; 0x4002101c
        LDR      R2,[R2, #+0]
        BICS     R2,R2,R0
        LDR.N    R3,??RCC_APB1PeriphClockCmd_1  ;; 0x4002101c
        STR      R2,[R3, #+0]
??RCC_APB1PeriphClockCmd_2:
        BX       LR               ;; return
        Nop      
        DATA
??RCC_APB1PeriphClockCmd_1:
        DC32     0x4002101c

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_APB2PeriphResetCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??RCC_APB2PeriphResetCmd_0
        LDR.N    R2,??RCC_APB2PeriphResetCmd_1  ;; 0x4002100c
        LDR      R2,[R2, #+0]
        ORRS     R2,R2,R0
        LDR.N    R3,??RCC_APB2PeriphResetCmd_1  ;; 0x4002100c
        STR      R2,[R3, #+0]
        B.N      ??RCC_APB2PeriphResetCmd_2
??RCC_APB2PeriphResetCmd_0:
        LDR.N    R2,??RCC_APB2PeriphResetCmd_1  ;; 0x4002100c
        LDR      R2,[R2, #+0]
        BICS     R2,R2,R0
        LDR.N    R3,??RCC_APB2PeriphResetCmd_1  ;; 0x4002100c
        STR      R2,[R3, #+0]
??RCC_APB2PeriphResetCmd_2:
        BX       LR               ;; return
        Nop      
        DATA
??RCC_APB2PeriphResetCmd_1:
        DC32     0x4002100c

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_APB1PeriphResetCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??RCC_APB1PeriphResetCmd_0
        LDR.N    R2,??RCC_APB1PeriphResetCmd_1  ;; 0x40021010
        LDR      R2,[R2, #+0]
        ORRS     R2,R2,R0
        LDR.N    R3,??RCC_APB1PeriphResetCmd_1  ;; 0x40021010
        STR      R2,[R3, #+0]
        B.N      ??RCC_APB1PeriphResetCmd_2
??RCC_APB1PeriphResetCmd_0:
        LDR.N    R2,??RCC_APB1PeriphResetCmd_1  ;; 0x40021010
        LDR      R2,[R2, #+0]
        BICS     R2,R2,R0
        LDR.N    R3,??RCC_APB1PeriphResetCmd_1  ;; 0x40021010
        STR      R2,[R3, #+0]
??RCC_APB1PeriphResetCmd_2:
        BX       LR               ;; return
        Nop      
        DATA
??RCC_APB1PeriphResetCmd_1:
        DC32     0x40021010

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_BackupResetCmd:
        LDR.N    R1,??RCC_BackupResetCmd_0  ;; 0x42420440
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        STR      R0,[R1, #+0]
        BX       LR               ;; return
        DATA
??RCC_BackupResetCmd_0:
        DC32     0x42420440

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_ClockSecuritySystemCmd:
        LDR.N    R1,??RCC_ClockSecuritySystemCmd_0  ;; 0x4242004c
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        STR      R0,[R1, #+0]
        BX       LR               ;; return
        DATA
??RCC_ClockSecuritySystemCmd_0:
        DC32     0x4242004c

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_MCOConfig:
        LDR.N    R1,??RCC_MCOConfig_0  ;; 0x40021007
        STRB     R0,[R1, #+0]
        BX       LR               ;; return
        Nop      
        DATA
??RCC_MCOConfig_0:
        DC32     0x40021007

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_GetFlagStatus:
        PUSH     {R0,R4}
        MOVS     R1,R0
        MOVS     R4,#+0
        MOVS     R2,R4
        MOVS     R4,#+0
        MOVS     R3,R4
        MOVS     R4,#+0
        MOVS     R0,R4
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        LSRS     R4,R1,#+5
        UXTB     R4,R4            ;; ZeroExtS R4,R4,#+24,#+24
        MOVS     R2,R4
        CMP      R2,#+1
        BNE.N    ??RCC_GetFlagStatus_0
        LDR.N    R4,??RCC_GetFlagStatus_1  ;; 0x40021000
        LDR      R4,[R4, #+0]
        MOVS     R3,R4
        B.N      ??RCC_GetFlagStatus_2
??RCC_GetFlagStatus_0:
        CMP      R2,#+2
        BNE.N    ??RCC_GetFlagStatus_3
        LDR.N    R4,??RCC_GetFlagStatus_1+0x4  ;; 0x40021020
        LDR      R4,[R4, #+0]
        MOVS     R3,R4
        B.N      ??RCC_GetFlagStatus_2
??RCC_GetFlagStatus_3:
        LDR.N    R4,??RCC_GetFlagStatus_1+0x8  ;; 0x40021024
        LDR      R4,[R4, #+0]
        MOVS     R3,R4
??RCC_GetFlagStatus_2:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        LSLS     R4,R1,#+27       ;; ZeroExtS R4,R1,#+27,#+27
        LSRS     R4,R4,#+27
        MOVS     R2,R4
        MOVS     R4,#+1
        LSLS     R4,R4,R2
        ANDS     R4,R4,R3
        SUBS     R4,R4,#+1
        SBCS     R4,R4,R4
        MVNS     R4,R4
        LSRS     R4,R4,#+31
        MOVS     R0,R4
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        ADD      SP,SP,#+4
        POP      {R4}
        BX       LR               ;; return
        Nop      
        DATA
??RCC_GetFlagStatus_1:
        DC32     0x40021000
        DC32     0x40021020
        DC32     0x40021024

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_ClearFlag:
        LDR.N    R0,??RCC_ClearFlag_0  ;; 0x40021024
        LDR      R0,[R0, #+0]
        ORRS     R0,R0,#0x1000000
        LDR.N    R1,??RCC_ClearFlag_0  ;; 0x40021024
        STR      R0,[R1, #+0]
        BX       LR               ;; return
        Nop      
        DATA
??RCC_ClearFlag_0:
        DC32     0x40021024

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_GetITStatus:
        MOVS     R1,R0
        MOVS     R2,#+0
        MOVS     R0,R2
        LDR.N    R2,??RCC_GetITStatus_0  ;; 0x40021008
        LDR      R2,[R2, #+0]
        ANDS     R2,R2,R1
        MOVS     R3,R2
        UXTB     R3,R3            ;; ZeroExtS R3,R3,#+24,#+24
        SUBS     R3,R3,#+1
        SBCS     R3,R3,R3
        MVNS     R3,R3
        LSRS     R3,R3,#+31
        MOVS     R0,R3
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BX       LR               ;; return
        Nop      
        DATA
??RCC_GetITStatus_0:
        DC32     0x40021008

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RCC_ClearITPendingBit:
        LDR.N    R1,??RCC_ClearITPendingBit_0  ;; 0x4002100a
        STRB     R0,[R1, #+0]
        BX       LR               ;; return
        Nop      
        DATA
??RCC_ClearITPendingBit_0:
        DC32     0x4002100a

        END
// 
// 1 256 bytes in section .XML
//     5 bytes in section .bss
//    20 bytes in section .rodata
// 
// 1 256 bytes of CODE  memory
//    20 bytes of CONST memory
//     5 bytes of DATA  memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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