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

📄 stm32f10x_exti.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 2 页
字号:
    101          * Return         : None
    102          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    103          void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
    104          {
    105            EXTI_InitStruct->EXTI_Line = EXTI_LineNone;
   \                     EXTI_StructInit:
   \   00000000   0021               MOVS     R1,#+0
   \   00000002   0160               STR      R1,[R0, #+0]
    106            EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt;
   \   00000004   0A00               MOVS     R2,R1
   \   00000006   0271               STRB     R2,[R0, #+4]
    107            EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling;
   \   00000008   0C22               MOVS     R2,#+12
   \   0000000A   4271               STRB     R2,[R0, #+5]
    108            EXTI_InitStruct->EXTI_LineCmd = DISABLE;
   \   0000000C   8171               STRB     R1,[R0, #+6]
    109          }
   \   0000000E   7047               BX       LR               ;; return
    110          
    111          /*******************************************************************************
    112          * Function Name  : EXTI_GenerateSWInterrupt
    113          * Description    : Generates a Software interrupt.
    114          * Input          : - EXTI_Line: specifies the EXTI lines to be enabled or
    115          *                    disabled.
    116          *                    This parameter can be:
    117          *                       - EXTI_Linex: External interrupt line x where x(0..18)
    118          * Output         : None
    119          * Return         : None
    120          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    121          void EXTI_GenerateSWInterrupt(u32 EXTI_Line)
    122          {
    123            /* Check the parameters */
    124            assert(IS_EXTI_LINE(EXTI_Line));
    125            
    126            EXTI->SWIER |= EXTI_Line;
   \                     EXTI_GenerateSWInterrupt:
   \   00000000   0249               LDR.N    R1,??EXTI_GenerateSWInterrupt_0  ;; 0x40010410
   \   00000002   0A68               LDR      R2,[R1, #+0]
   \   00000004   1043               ORRS     R0,R0,R2
   \   00000006   0860               STR      R0,[R1, #+0]
    127          }
   \   00000008   7047               BX       LR               ;; return
   \   0000000A   00BF               Nop      
   \                     ??EXTI_GenerateSWInterrupt_0:
   \   0000000C   10040140           DC32     0x40010410
    128          
    129          /*******************************************************************************
    130          * Function Name  : EXTI_GetFlagStatus
    131          * Description    : Checks whether the specified EXTI line flag is set or not.
    132          * Input          : - EXTI_Line: specifies the EXTI lines flag to check.
    133          *                    This parameter can be:
    134          *                       - EXTI_Linex: External interrupt line x where x(0..18)
    135          * Output         : None
    136          * Return         : The new state of EXTI_Line (SET or RESET).
    137          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    138          FlagStatus EXTI_GetFlagStatus(u32 EXTI_Line)
    139          {
    140            FlagStatus bitstatus = RESET;
    141          
    142            /* Check the parameters */
    143            assert(IS_GET_EXTI_LINE(EXTI_Line));
    144            
    145            if ((EXTI->PR & EXTI_Line) != (u32)RESET)
   \                     EXTI_GetFlagStatus:
   \   00000000   ....               LDR.N    R1,??DataTable7  ;; 0x40010414
   \   00000002   0968               LDR      R1,[R1, #+0]
   \   00000004   0840               ANDS     R0,R0,R1
   \   00000006   01D0               BEQ.N    ??EXTI_GetFlagStatus_0
    146            {
    147              bitstatus = SET;
   \   00000008   0120               MOVS     R0,#+1
   \   0000000A   7047               BX       LR
    148            }
    149            else
    150            {
    151              bitstatus = RESET;
   \                     ??EXTI_GetFlagStatus_0:
   \   0000000C   0020               MOVS     R0,#+0
    152            }
    153            return bitstatus;
   \   0000000E   7047               BX       LR               ;; return
    154          }
    155          
    156          /*******************************************************************************
    157          * Function Name  : EXTI_ClearFlag
    158          * Description    : Clears the EXTI抯 line pending flags.
    159          * Input          : - EXTI_Line: specifies the EXTI lines flags to clear.
    160          *                    This parameter can be:
    161          *                       - EXTI_Linex: External interrupt line x where x(0..18)
    162          * Output         : None
    163          * Return         : None
    164          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    165          void EXTI_ClearFlag(u32 EXTI_Line)
    166          {
    167            /* Check the parameters */
    168            assert(IS_EXTI_LINE(EXTI_Line));
    169            
    170            EXTI->PR = EXTI_Line;
   \                     EXTI_ClearFlag:
   \   00000000   ....               LDR.N    R1,??DataTable7  ;; 0x40010414
   \   00000002   0860               STR      R0,[R1, #+0]
    171          }
   \   00000004   7047               BX       LR               ;; return
    172          
    173          /*******************************************************************************
    174          * Function Name  : EXTI_GetITStatus
    175          * Description    : Checks whether the specified EXTI line is asserted or not.
    176          * Input          : - EXTI_Line: specifies the EXTI lines to check.
    177          *                    This parameter can be:
    178          *                       - EXTI_Linex: External interrupt line x where x(0..18)
    179          * Output         : None
    180          * Return         : The new state of EXTI_Line (SET or RESET).
    181          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    182          ITStatus EXTI_GetITStatus(u32 EXTI_Line)
    183          {
    184            ITStatus bitstatus = RESET;
    185            u32 enablestatus = 0;
    186          
    187            /* Check the parameters */
    188            assert(IS_GET_EXTI_LINE(EXTI_Line));
    189            
    190            enablestatus =  EXTI->IMR & EXTI_Line;
   \                     EXTI_GetITStatus:
   \   00000000   ....               LDR.N    R1,??DataTable5  ;; 0x40010400
   \   00000002   0968               LDR      R1,[R1, #+0]
   \   00000004   0140               ANDS     R1,R1,R0
    191          
    192            if (((EXTI->PR & EXTI_Line) != (u32)RESET) && enablestatus)
   \   00000006   ....               LDR.N    R2,??DataTable7  ;; 0x40010414
   \   00000008   1268               LDR      R2,[R2, #+0]
   \   0000000A   1040               ANDS     R0,R0,R2
   \   0000000C   03D0               BEQ.N    ??EXTI_GetITStatus_0
   \   0000000E   0029               CMP      R1,#+0
   \   00000010   01D0               BEQ.N    ??EXTI_GetITStatus_0
    193            {
    194              bitstatus = SET;
   \   00000012   0120               MOVS     R0,#+1
   \   00000014   7047               BX       LR
    195            }
    196            else
    197            {
    198              bitstatus = RESET;
   \                     ??EXTI_GetITStatus_0:
   \   00000016   0020               MOVS     R0,#+0
    199            }
    200            return bitstatus;
   \   00000018   7047               BX       LR               ;; return
    201          }
    202          
    203          /*******************************************************************************
    204          * Function Name  : EXTI_ClearITPendingBit
    205          * Description    : Clears the EXTI抯 line pending bits.
    206          * Input          : - EXTI_Line: specifies the EXTI lines to clear.
    207          *                    This parameter can be:
    208          *                       - EXTI_Linex: External interrupt line x where x(0..18)
    209          * Output         : None
    210          * Return         : None
    211          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    212          void EXTI_ClearITPendingBit(u32 EXTI_Line)
    213          {
    214            /* Check the parameters */
    215            assert(IS_EXTI_LINE(EXTI_Line));
    216            
    217            EXTI->PR = EXTI_Line;
   \                     EXTI_ClearITPendingBit:
   \   00000000   ....               LDR.N    R1,??DataTable7  ;; 0x40010414
   \   00000002   0860               STR      R0,[R1, #+0]
    218          }
   \   00000004   7047               BX       LR               ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable5:
   \   00000000   00040140           DC32     0x40010400

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable7:
   \   00000000   14040140           DC32     0x40010414
    219          
    220          /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/

   Maximum stack usage in bytes:

     Function                 CSTACK
     --------                 ------
     EXTI_ClearFlag               0
     EXTI_ClearITPendingBit       0
     EXTI_DeInit                  0
     EXTI_GenerateSWInterrupt     0
     EXTI_GetFlagStatus           0
     EXTI_GetITStatus             0
     EXTI_Init                   12
     EXTI_StructInit              0


   Segment part sizes:

     Function/Label           Bytes
     --------------           -----
     EXTI_DeInit                32
     EXTI_Init                  96
     EXTI_StructInit            16
     EXTI_GenerateSWInterrupt   16
     EXTI_GetFlagStatus         16
     EXTI_ClearFlag              6
     EXTI_GetITStatus           26
     EXTI_ClearITPendingBit      6
     ??DataTable5                4
     ??DataTable7                4

 
 222 bytes in segment CODE
 
 222 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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