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

📄 stm32f10x_rtc.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00000006   0800               MOVS     R0,R1
    136            return (((uint32_t)RTC->CNTH << 16 ) | tmp) ;
   \   00000008   ....               LDR.N    R1,??DataTable13_3  ;; 0x40002818
   \   0000000A   0988               LDRH     R1,[R1, #+0]
   \   0000000C   89B2               UXTH     R1,R1            ;; ZeroExt  R1,R1,#+16,#+16
   \   0000000E   80B2               UXTH     R0,R0            ;; ZeroExt  R0,R0,#+16,#+16
   \   00000010   50EA0140           ORRS     R0,R0,R1, LSL #+16
   \   00000014   7047               BX       LR               ;; return
    137          }
    138          
    139          /**
    140            * @brief  Sets the RTC counter value.
    141            * @param  CounterValue: RTC counter new value.
    142            * @retval None
    143            */

   \                                 In section .text, align 2, keep-with-next
    144          void RTC_SetCounter(uint32_t CounterValue)
    145          { 
   \                     RTC_SetCounter:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    146            RTC_EnterConfigMode();
   \   00000004   ........           BL       RTC_EnterConfigMode
    147            /* Set RTC COUNTER MSB word */
    148            RTC->CNTH = CounterValue >> 16;
   \   00000008   200C               LSRS     R0,R4,#+16
   \   0000000A   ....               LDR.N    R1,??DataTable13_3  ;; 0x40002818
   \   0000000C   0880               STRH     R0,[R1, #+0]
    149            /* Set RTC COUNTER LSB word */
    150            RTC->CNTL = (CounterValue & RTC_LSB_MASK);
   \   0000000E   ....               LDR.N    R0,??DataTable13_2  ;; 0x4000281c
   \   00000010   0480               STRH     R4,[R0, #+0]
    151            RTC_ExitConfigMode();
   \   00000012   ........           BL       RTC_ExitConfigMode
    152          }
   \   00000016   10BD               POP      {R4,PC}          ;; return
    153          
    154          /**
    155            * @brief  Sets the RTC prescaler value.
    156            * @param  PrescalerValue: RTC prescaler new value.
    157            * @retval None
    158            */

   \                                 In section .text, align 2, keep-with-next
    159          void RTC_SetPrescaler(uint32_t PrescalerValue)
    160          {
   \                     RTC_SetPrescaler:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    161            /* Check the parameters */
    162            assert_param(IS_RTC_PRESCALER(PrescalerValue));
    163            
    164            RTC_EnterConfigMode();
   \   00000004   ........           BL       RTC_EnterConfigMode
    165            /* Set RTC PRESCALER MSB word */
    166            RTC->PRLH = (PrescalerValue & PRLH_MSB_MASK) >> 16;
   \   00000008   200C               LSRS     R0,R4,#+16
   \   0000000A   10F00F00           ANDS     R0,R0,#0xF
   \   0000000E   ....               LDR.N    R1,??DataTable13_4  ;; 0x40002808
   \   00000010   0880               STRH     R0,[R1, #+0]
    167            /* Set RTC PRESCALER LSB word */
    168            RTC->PRLL = (PrescalerValue & RTC_LSB_MASK);
   \   00000012   ....               LDR.N    R0,??DataTable13_5  ;; 0x4000280c
   \   00000014   0480               STRH     R4,[R0, #+0]
    169            RTC_ExitConfigMode();
   \   00000016   ........           BL       RTC_ExitConfigMode
    170          }
   \   0000001A   10BD               POP      {R4,PC}          ;; return
    171          
    172          /**
    173            * @brief  Sets the RTC alarm value.
    174            * @param  AlarmValue: RTC alarm new value.
    175            * @retval None
    176            */

   \                                 In section .text, align 2, keep-with-next
    177          void RTC_SetAlarm(uint32_t AlarmValue)
    178          {  
   \                     RTC_SetAlarm:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    179            RTC_EnterConfigMode();
   \   00000004   ........           BL       RTC_EnterConfigMode
    180            /* Set the ALARM MSB word */
    181            RTC->ALRH = AlarmValue >> 16;
   \   00000008   200C               LSRS     R0,R4,#+16
   \   0000000A   ....               LDR.N    R1,??DataTable13_6  ;; 0x40002820
   \   0000000C   0880               STRH     R0,[R1, #+0]
    182            /* Set the ALARM LSB word */
    183            RTC->ALRL = (AlarmValue & RTC_LSB_MASK);
   \   0000000E   ....               LDR.N    R0,??DataTable13_7  ;; 0x40002824
   \   00000010   0480               STRH     R4,[R0, #+0]
    184            RTC_ExitConfigMode();
   \   00000012   ........           BL       RTC_ExitConfigMode
    185          }
   \   00000016   10BD               POP      {R4,PC}          ;; return
    186          
    187          /**
    188            * @brief  Gets the RTC divider value.
    189            * @param  None
    190            * @retval RTC Divider value.
    191            */

   \                                 In section .text, align 2, keep-with-next
    192          uint32_t RTC_GetDivider(void)
    193          {
    194            uint32_t tmp = 0x00;
   \                     RTC_GetDivider:
   \   00000000   0020               MOVS     R0,#+0
    195            tmp = ((uint32_t)RTC->DIVH & (uint32_t)0x000F) << 16;
   \   00000002   ....               LDR.N    R1,??DataTable13_8  ;; 0x40002810
   \   00000004   0988               LDRH     R1,[R1, #+0]
   \   00000006   89B2               UXTH     R1,R1            ;; ZeroExt  R1,R1,#+16,#+16
   \   00000008   11F00F01           ANDS     R1,R1,#0xF
   \   0000000C   0904               LSLS     R1,R1,#+16
   \   0000000E   0800               MOVS     R0,R1
    196            tmp |= RTC->DIVL;
   \   00000010   ....               LDR.N    R1,??DataTable13_9  ;; 0x40002814
   \   00000012   0988               LDRH     R1,[R1, #+0]
   \   00000014   89B2               UXTH     R1,R1            ;; ZeroExt  R1,R1,#+16,#+16
   \   00000016   0843               ORRS     R0,R1,R0
    197            return tmp;
   \   00000018   7047               BX       LR               ;; return
    198          }
    199          
    200          /**
    201            * @brief  Waits until last write operation on RTC registers has finished.
    202            * @note   This function must be called before any write to RTC registers.
    203            * @param  None
    204            * @retval None
    205            */

   \                                 In section .text, align 2, keep-with-next
    206          void RTC_WaitForLastTask(void)
    207          {
    208            /* Loop until RTOFF flag is set */
    209            while ((RTC->CRL & RTC_FLAG_RTOFF) == (uint16_t)RESET)
   \                     RTC_WaitForLastTask:
   \                     ??RTC_WaitForLastTask_0:
   \   00000000   ....               LDR.N    R0,??DataTable13_1  ;; 0x40002804
   \   00000002   0088               LDRH     R0,[R0, #+0]
   \   00000004   8006               LSLS     R0,R0,#+26
   \   00000006   FBD5               BPL.N    ??RTC_WaitForLastTask_0
    210            {
    211            }
    212          }
   \   00000008   7047               BX       LR               ;; return
    213          
    214          /**
    215            * @brief  Waits until the RTC registers (RTC_CNT, RTC_ALR and RTC_PRL)
    216            *   are synchronized with RTC APB clock.
    217            * @note   This function must be called before any read operation after an APB reset
    218            *   or an APB clock stop.
    219            * @param  None
    220            * @retval None
    221            */

   \                                 In section .text, align 2, keep-with-next
    222          void RTC_WaitForSynchro(void)
    223          {
    224            /* Clear RSF flag */
    225            RTC->CRL &= (uint16_t)~RTC_FLAG_RSF;
   \                     RTC_WaitForSynchro:
   \   00000000   ....               LDR.N    R0,??DataTable13_1  ;; 0x40002804
   \   00000002   0088               LDRH     R0,[R0, #+0]
   \   00000004   4FF6F771           MOVW     R1,#+65527
   \   00000008   0840               ANDS     R0,R1,R0
   \   0000000A   ....               LDR.N    R1,??DataTable13_1  ;; 0x40002804
   \   0000000C   0880               STRH     R0,[R1, #+0]
    226            /* Loop until RSF flag is set */
    227            while ((RTC->CRL & RTC_FLAG_RSF) == (uint16_t)RESET)
   \                     ??RTC_WaitForSynchro_0:
   \   0000000E   ....               LDR.N    R0,??DataTable13_1  ;; 0x40002804
   \   00000010   0088               LDRH     R0,[R0, #+0]
   \   00000012   0007               LSLS     R0,R0,#+28
   \   00000014   FBD5               BPL.N    ??RTC_WaitForSynchro_0
    228            {
    229            }
    230          }
   \   00000016   7047               BX       LR               ;; return
    231          
    232          /**
    233            * @brief  Checks whether the specified RTC flag is set or not.
    234            * @param  RTC_FLAG: specifies the flag to check.
    235            *   This parameter can be one the following values:
    236            *     @arg RTC_FLAG_RTOFF: RTC Operation OFF flag
    237            *     @arg RTC_FLAG_RSF: Registers Synchronized flag
    238            *     @arg RTC_FLAG_OW: Overflow flag
    239            *     @arg RTC_FLAG_ALR: Alarm flag
    240            *     @arg RTC_FLAG_SEC: Second flag
    241            * @retval The new state of RTC_FLAG (SET or RESET).
    242            */

   \                                 In section .text, align 2, keep-with-next
    243          FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG)
    244          {
   \                     RTC_GetFlagStatus:
   \   00000000   0100               MOVS     R1,R0
    245            FlagStatus bitstatus = RESET;
   \   00000002   0020               MOVS     R0,#+0
    246            
    247            /* Check the parameters */
    248            assert_param(IS_RTC_GET_FLAG(RTC_FLAG)); 
    249            
    250            if ((RTC->CRL & RTC_FLAG) != (uint16_t)RESET)
   \   00000004   ....               LDR.N    R2,??DataTable13_1  ;; 0x40002804
   \   00000006   1288               LDRH     R2,[R2, #+0]
   \   00000008   92B2               UXTH     R2,R2            ;; ZeroExt  R2,R2,#+16,#+16
   \   0000000A   0A42               TST      R2,R1
   \   0000000C   02D0               BEQ.N    ??RTC_GetFlagStatus_0
    251            {
    252              bitstatus = SET;
   \   0000000E   0122               MOVS     R2,#+1
   \   00000010   1000               MOVS     R0,R2
   \   00000012   01E0               B.N      ??RTC_GetFlagStatus_1
    253            }
    254            else
    255            {
    256              bitstatus = RESET;
   \                     ??RTC_GetFlagStatus_0:
   \   00000014   0022               MOVS     R2,#+0
   \   00000016   1000               MOVS     R0,R2
    257            }
    258            return bitstatus;
   \                     ??RTC_GetFlagStatus_1:

⌨️ 快捷键说明

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