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

📄 stm32f10x_rtc.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00000014   ........           BL       RTC_ExitConfigMode
    120          }
   \   00000018   10BD               POP      {R4,PC}          ;; return
    121          
    122          /*******************************************************************************
    123          * Function Name  : RTC_SetPrescaler
    124          * Description    : Sets the RTC prescaler value.
    125          * Input          : - PrescalerValue: RTC prescaler new value.
    126          * Output         : None
    127          * Return         : None
    128          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    129          void RTC_SetPrescaler(u32 PrescalerValue)
    130          {
   \                     RTC_SetPrescaler:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    131            /* Check the parameters */
    132            assert_param(IS_RTC_PRESCALER(PrescalerValue));
    133            
    134            RTC_EnterConfigMode();
   \   00000004   ........           BL       RTC_EnterConfigMode
    135          
    136            /* Set RTC PRESCALER MSB word */
    137            RTC->PRLH = (PrescalerValue & PRLH_MSB_Mask) >> 0x10;
   \   00000008   14F47020           ANDS     R0,R4,#0xF0000
   \   0000000C   000C               LSRS     R0,R0,#+16
   \   0000000E   0449               LDR.N    R1,??RTC_SetPrescaler_0  ;; 0x40002808
   \   00000010   0880               STRH     R0,[R1, #+0]
    138            /* Set RTC PRESCALER LSB word */
    139            RTC->PRLL = (PrescalerValue & RTC_LSB_Mask);
   \   00000012   0448               LDR.N    R0,??RTC_SetPrescaler_0+0x4  ;; 0x4000280c
   \   00000014   2100               MOVS     R1,R4
   \   00000016   0180               STRH     R1,[R0, #+0]
    140          
    141            RTC_ExitConfigMode();
   \   00000018   ........           BL       RTC_ExitConfigMode
    142          }
   \   0000001C   10BD               POP      {R4,PC}          ;; return
   \   0000001E   00BF               Nop      
   \                     ??RTC_SetPrescaler_0:
   \   00000020   08280040           DC32     0x40002808
   \   00000024   0C280040           DC32     0x4000280c
    143          
    144          /*******************************************************************************
    145          * Function Name  : RTC_SetAlarm
    146          * Description    : Sets the RTC alarm value.
    147          * Input          : - AlarmValue: RTC alarm new value.
    148          * Output         : None
    149          * Return         : None
    150          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    151          void RTC_SetAlarm(u32 AlarmValue)
    152          {  
   \                     RTC_SetAlarm:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    153            RTC_EnterConfigMode();
   \   00000004   ........           BL       RTC_EnterConfigMode
    154          
    155            /* Set the ALARM MSB word */
    156            RTC->ALRH = (AlarmValue & RTC_MSB_Mask) >> 16;
   \   00000008   200C               LSRS     R0,R4,#+16
   \   0000000A   0449               LDR.N    R1,??RTC_SetAlarm_0  ;; 0x40002820
   \   0000000C   0880               STRH     R0,[R1, #+0]
    157            /* Set the ALARM LSB word */
    158            RTC->ALRL = (AlarmValue & RTC_LSB_Mask);
   \   0000000E   0448               LDR.N    R0,??RTC_SetAlarm_0+0x4  ;; 0x40002824
   \   00000010   2100               MOVS     R1,R4
   \   00000012   0180               STRH     R1,[R0, #+0]
    159          
    160            RTC_ExitConfigMode();
   \   00000014   ........           BL       RTC_ExitConfigMode
    161          }
   \   00000018   10BD               POP      {R4,PC}          ;; return
   \   0000001A   00BF               Nop      
   \                     ??RTC_SetAlarm_0:
   \   0000001C   20280040           DC32     0x40002820
   \   00000020   24280040           DC32     0x40002824
    162          
    163          /*******************************************************************************
    164          * Function Name  : RTC_GetDivider
    165          * Description    : Gets the RTC divider value.
    166          * Input          : None
    167          * Output         : None
    168          * Return         : RTC Divider value.
    169          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    170          u32 RTC_GetDivider(void)
    171          {
    172            u32 tmp = 0x00;
   \                     RTC_GetDivider:
   \   00000000   0021               MOVS     R1,#+0
   \   00000002   0800               MOVS     R0,R1
    173          
    174            tmp = ((u32)RTC->DIVH & (u32)0x000F) << 0x10;
   \   00000004   0549               LDR.N    R1,??RTC_GetDivider_0  ;; 0x40002810
   \   00000006   0988               LDRH     R1,[R1, #+0]
   \   00000008   89B2               UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
   \   0000000A   0907               LSLS     R1,R1,#+28       ;; ZeroExtS R1,R1,#+28,#+28
   \   0000000C   090F               LSRS     R1,R1,#+28
   \   0000000E   0804               LSLS     R0,R1,#+16
    175            tmp |= RTC->DIVL;
   \   00000010   0100               MOVS     R1,R0
   \   00000012   0348               LDR.N    R0,??RTC_GetDivider_0+0x4  ;; 0x40002814
   \   00000014   0088               LDRH     R0,[R0, #+0]
   \   00000016   80B2               UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
   \   00000018   0843               ORRS     R0,R0,R1
    176          
    177            return tmp;
   \   0000001A   7047               BX       LR               ;; return
   \                     ??RTC_GetDivider_0:
   \   0000001C   10280040           DC32     0x40002810
   \   00000020   14280040           DC32     0x40002814
    178          }
    179          
    180          /*******************************************************************************
    181          * Function Name  : RTC_WaitForLastTask
    182          * Description    : Waits until last write operation on RTC registers has finished.
    183          *                  This function must be called before any write to RTC registers.
    184          * Input          : None
    185          * Output         : None
    186          * Return         : None
    187          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    188          void RTC_WaitForLastTask(void)
    189          {
    190            /* Loop until RTOFF flag is set */
    191            while ((RTC->CRL & RTC_FLAG_RTOFF) == (u16)RESET)
   \                     RTC_WaitForLastTask:
   \                     ??RTC_WaitForLastTask_0:
   \   00000000   ....               LDR.N    R0,??DataTable22  ;; 0x40002804
   \   00000002   0088               LDRH     R0,[R0, #+0]
   \   00000004   8006               LSLS     R0,R0,#+26
   \   00000006   FBD5               BPL.N    ??RTC_WaitForLastTask_0
    192            {
    193            }
    194          }
   \   00000008   7047               BX       LR               ;; return
    195          
    196          /*******************************************************************************
    197          * Function Name  : RTC_WaitForSynchro
    198          * Description    : Waits until the RTC registers (RTC_CNT, RTC_ALR and RTC_PRL)
    199          *                  are synchronized with RTC APB clock.
    200          *                  This function must be called before any read operation after
    201          *                  an APB reset or an APB clock stop.
    202          * Input          : None
    203          * Output         : None
    204          * Return         : None
    205          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    206          void RTC_WaitForSynchro(void)
    207          {
    208            /* Clear RSF flag */
    209            RTC->CRL &= (u16)~RTC_FLAG_RSF;
   \                     RTC_WaitForSynchro:
   \   00000000   ....               LDR.N    R0,??DataTable22  ;; 0x40002804
   \   00000002   0088               LDRH     R0,[R0, #+0]
   \   00000004   0449               LDR.N    R1,??RTC_WaitForSynchro_0  ;; 0xfff7
   \   00000006   0140               ANDS     R1,R1,R0
   \   00000008   ....               LDR.N    R0,??DataTable22  ;; 0x40002804
   \   0000000A   0180               STRH     R1,[R0, #+0]
    210          
    211            /* Loop until RSF flag is set */
    212            while ((RTC->CRL & RTC_FLAG_RSF) == (u16)RESET)
   \                     ??RTC_WaitForSynchro_1:
   \   0000000C   ....               LDR.N    R0,??DataTable22  ;; 0x40002804
   \   0000000E   0088               LDRH     R0,[R0, #+0]
   \   00000010   0007               LSLS     R0,R0,#+28
   \   00000012   FBD5               BPL.N    ??RTC_WaitForSynchro_1
    213            {
    214            }
    215          }
   \   00000014   7047               BX       LR               ;; return
   \   00000016   00BF               Nop      
   \                     ??RTC_WaitForSynchro_0:
   \   00000018   F7FF0000           DC32     0xfff7
    216          
    217          /*******************************************************************************
    218          * Function Name  : RTC_GetFlagStatus
    219          * Description    : Checks whether the specified RTC flag is set or not.
    220          * Input          : - RTC_FLAG: specifies the flag to check.
    221          *                    This parameter can be one the following values:
    222          *                       - RTC_FLAG_RTOFF: RTC Operation OFF flag
    223          *                       - RTC_FLAG_RSF: Registers Synchronized flag
    224          *                       - RTC_FLAG_OW: Overflow flag
    225          *                       - RTC_FLAG_ALR: Alarm flag
    226          *                       - RTC_FLAG_SEC: Second flag
    227          * Output         : None
    228          * Return         : The new state of RTC_FLAG (SET or RESET).
    229          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    230          FlagStatus RTC_GetFlagStatus(u16 RTC_FLAG)
    231          {
   \                     RTC_GetFlagStatus:
   \   00000000   0100               MOVS     R1,R0
    232            FlagStatus bitstatus = RESET;
   \   00000002   0022               MOVS     R2,#+0
   \   00000004   1000               MOVS     R0,R2
    233            
    234            /* Check the parameters */
    235            assert_param(IS_RTC_GET_FLAG(RTC_FLAG)); 
    236            
    237            if ((RTC->CRL & RTC_FLAG) != (u16)RESET)
   \   00000006   ....               LDR.N    R2,??DataTable22  ;; 0x40002804
   \   00000008   1288               LDRH     R2,[R2, #+0]
   \   0000000A   0A40               ANDS     R2,R2,R1
   \   0000000C   1300               MOVS     R3,R2
   \   0000000E   9BB2               UXTH     R3,R3            ;; ZeroExtS R3,R3,#+16,#+16

⌨️ 快捷键说明

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