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

📄 stm32f10x_rtc.s

📁 完成数据的采集
💻 S
字号:
///////////////////////////////////////////////////////////////////////////////
//                                                                            /
//                                                      30/Jul/2008  14:37:40 /
// 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_rtc.c                          /
//    Command line =  E:\library\src\stm32f10x_rtc.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_rtc.s              /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME stm32f10x_rtc

        PUBLIC RTC_ClearFlag
        PUBLIC RTC_ClearITPendingBit
        PUBLIC RTC_EnterConfigMode
        PUBLIC RTC_ExitConfigMode
        PUBLIC RTC_GetCounter
        PUBLIC RTC_GetDivider
        PUBLIC RTC_GetFlagStatus
        PUBLIC RTC_GetITStatus
        PUBLIC RTC_ITConfig
        PUBLIC RTC_SetAlarm
        PUBLIC RTC_SetCounter
        PUBLIC RTC_SetPrescaler
        PUBLIC RTC_WaitForLastTask
        PUBLIC RTC_WaitForSynchro


        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_ITConfig:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??RTC_ITConfig_0
        LDR.N    R2,??DataTable20  ;; 0x40002800
        LDRH     R2,[R2, #+0]
        ORRS     R2,R2,R0
        LDR.N    R3,??DataTable20  ;; 0x40002800
        STRH     R2,[R3, #+0]
        B.N      ??RTC_ITConfig_1
??RTC_ITConfig_0:
        LDR.N    R2,??DataTable20  ;; 0x40002800
        LDRH     R2,[R2, #+0]
        BICS     R2,R2,R0
        LDR.N    R3,??DataTable20  ;; 0x40002800
        STRH     R2,[R3, #+0]
??RTC_ITConfig_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_EnterConfigMode:
        LDR.N    R0,??DataTable22  ;; 0x40002804
        LDRH     R0,[R0, #+0]
        ORRS     R0,R0,#0x10
        LDR.N    R1,??DataTable22  ;; 0x40002804
        STRH     R0,[R1, #+0]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_ExitConfigMode:
        LDR.N    R0,??DataTable22  ;; 0x40002804
        LDRH     R0,[R0, #+0]
        LDR.N    R1,??RTC_ExitConfigMode_0  ;; 0xffef
        ANDS     R1,R1,R0
        LDR.N    R0,??DataTable22  ;; 0x40002804
        STRH     R1,[R0, #+0]
        BX       LR               ;; return
        Nop      
        DATA
??RTC_ExitConfigMode_0:
        DC32     0xffef

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_GetCounter:
        MOVS     R1,#+0
        MOVS     R0,R1
        LDR.N    R1,??DataTable11  ;; 0x4000281c
        LDRH     R1,[R1, #+0]
        MOVS     R0,R1
        LDR.N    R1,??DataTable10  ;; 0x40002818
        LDRH     R1,[R1, #+0]
        LSLS     R1,R1,#+16
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        ORRS     R0,R0,R1
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_SetCounter:
        PUSH     {R4,LR}
        MOVS     R4,R0
        BL       RTC_EnterConfigMode
        LSRS     R0,R4,#+16
        LDR.N    R1,??DataTable10  ;; 0x40002818
        STRH     R0,[R1, #+0]
        LDR.N    R0,??DataTable11  ;; 0x4000281c
        MOVS     R1,R4
        STRH     R1,[R0, #+0]
        BL       RTC_ExitConfigMode
        POP      {R4,PC}          ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable10:
        DC32     0x40002818

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable11:
        DC32     0x4000281c

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_SetPrescaler:
        PUSH     {R4,LR}
        MOVS     R4,R0
        BL       RTC_EnterConfigMode
        ANDS     R0,R4,#0xF0000
        LSRS     R0,R0,#+16
        LDR.N    R1,??RTC_SetPrescaler_0  ;; 0x40002808
        STRH     R0,[R1, #+0]
        LDR.N    R0,??RTC_SetPrescaler_0+0x4  ;; 0x4000280c
        MOVS     R1,R4
        STRH     R1,[R0, #+0]
        BL       RTC_ExitConfigMode
        POP      {R4,PC}          ;; return
        Nop      
        DATA
??RTC_SetPrescaler_0:
        DC32     0x40002808
        DC32     0x4000280c

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_SetAlarm:
        PUSH     {R4,LR}
        MOVS     R4,R0
        BL       RTC_EnterConfigMode
        LSRS     R0,R4,#+16
        LDR.N    R1,??RTC_SetAlarm_0  ;; 0x40002820
        STRH     R0,[R1, #+0]
        LDR.N    R0,??RTC_SetAlarm_0+0x4  ;; 0x40002824
        MOVS     R1,R4
        STRH     R1,[R0, #+0]
        BL       RTC_ExitConfigMode
        POP      {R4,PC}          ;; return
        Nop      
        DATA
??RTC_SetAlarm_0:
        DC32     0x40002820
        DC32     0x40002824

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_GetDivider:
        MOVS     R1,#+0
        MOVS     R0,R1
        LDR.N    R1,??RTC_GetDivider_0  ;; 0x40002810
        LDRH     R1,[R1, #+0]
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSLS     R1,R1,#+28       ;; ZeroExtS R1,R1,#+28,#+28
        LSRS     R1,R1,#+28
        LSLS     R0,R1,#+16
        MOVS     R1,R0
        LDR.N    R0,??RTC_GetDivider_0+0x4  ;; 0x40002814
        LDRH     R0,[R0, #+0]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        ORRS     R0,R0,R1
        BX       LR               ;; return
        DATA
??RTC_GetDivider_0:
        DC32     0x40002810
        DC32     0x40002814

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_WaitForLastTask:
??RTC_WaitForLastTask_0:
        LDR.N    R0,??DataTable22  ;; 0x40002804
        LDRH     R0,[R0, #+0]
        LSLS     R0,R0,#+26
        BPL.N    ??RTC_WaitForLastTask_0
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_WaitForSynchro:
        LDR.N    R0,??DataTable22  ;; 0x40002804
        LDRH     R0,[R0, #+0]
        LDR.N    R1,??RTC_WaitForSynchro_0  ;; 0xfff7
        ANDS     R1,R1,R0
        LDR.N    R0,??DataTable22  ;; 0x40002804
        STRH     R1,[R0, #+0]
??RTC_WaitForSynchro_1:
        LDR.N    R0,??DataTable22  ;; 0x40002804
        LDRH     R0,[R0, #+0]
        LSLS     R0,R0,#+28
        BPL.N    ??RTC_WaitForSynchro_1
        BX       LR               ;; return
        Nop      
        DATA
??RTC_WaitForSynchro_0:
        DC32     0xfff7

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_GetFlagStatus:
        MOVS     R1,R0
        MOVS     R2,#+0
        MOVS     R0,R2
        LDR.N    R2,??DataTable22  ;; 0x40002804
        LDRH     R2,[R2, #+0]
        ANDS     R2,R2,R1
        MOVS     R3,R2
        UXTH     R3,R3            ;; ZeroExtS R3,R3,#+16,#+16
        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

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_ClearFlag:
        LDR.N    R1,??DataTable22  ;; 0x40002804
        LDRH     R1,[R1, #+0]
        BICS     R1,R1,R0
        LDR.N    R2,??DataTable22  ;; 0x40002804
        STRH     R1,[R2, #+0]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_GetITStatus:
        PUSH     {R0,LR}
        MOVS     R2,R0
        MOVS     R1,#+0
        MOVS     R0,R1
        LDR.N    R1,??DataTable22  ;; 0x40002804
        LDRH     R3,[R1, #+0]
        ANDS     R3,R3,R2
        MOVS     R1,R3
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        SUBS     R1,R1,#+1
        SBCS     R1,R1,R1
        MVNS     R1,R1
        LSRS     R1,R1,#+31
        MOVS     R0,R1
        LDR.N    R1,??DataTable20  ;; 0x40002800
        LDRH     R1,[R1, #+0]
        TST      R1,R2
        BEQ.N    ??RTC_GetITStatus_0
        MOVS     R1,R0
        MOVS     R0,R1
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        SUBS     R0,R0,#+1
        SBCS     R0,R0,R0
        MVNS     R0,R0
        LSRS     R0,R0,#+31
        B.N      ??RTC_GetITStatus_1
??RTC_GetITStatus_0:
        MOVS     R1,#+0
        MOVS     R0,R1
??RTC_GetITStatus_1:
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        ADD      SP,SP,#+4
        POP      {PC}             ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable20:
        DC32     0x40002800

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
RTC_ClearITPendingBit:
        LDR.N    R1,??DataTable22  ;; 0x40002804
        LDRH     R1,[R1, #+0]
        BICS     R1,R1,R0
        LDR.N    R2,??DataTable22  ;; 0x40002804
        STRH     R1,[R2, #+0]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable22:
        DC32     0x40002804

        END
// 
// 394 bytes in section .XML
// 
// 394 bytes of CODE memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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