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

📄 stm32f10x_exti.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00000078   0C040140           DC32     0x4001040c
     95          
     96          /*******************************************************************************
     97          * Function Name  : EXTI_StructInit
     98          * Description    : Fills each EXTI_InitStruct member with its reset value.
     99          * Input          : - EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
    100          *                    which will be initialized.
    101          * Output         : None
    102          * Return         : None
    103          *******************************************************************************/

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

   \                                 In segment CODE, align 4, keep-with-next
    122          void EXTI_GenerateSWInterrupt(u32 EXTI_Line)
    123          {
    124            /* Check the parameters */
    125            assert_param(IS_EXTI_LINE(EXTI_Line));
    126            
    127            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]
    128          }
   \   00000008   7047               BX       LR               ;; return
   \   0000000A   00BF               Nop      
   \                     ??EXTI_GenerateSWInterrupt_0:
   \   0000000C   10040140           DC32     0x40010410
    129          
    130          /*******************************************************************************
    131          * Function Name  : EXTI_GetFlagStatus
    132          * Description    : Checks whether the specified EXTI line flag is set or not.
    133          * Input          : - EXTI_Line: specifies the EXTI line flag to check.
    134          *                    This parameter can be:
    135          *                       - EXTI_Linex: External interrupt line x where x(0..18)
    136          * Output         : None
    137          * Return         : The new state of EXTI_Line (SET or RESET).
    138          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    139          FlagStatus EXTI_GetFlagStatus(u32 EXTI_Line)
    140          {
    141            FlagStatus bitstatus = RESET;
    142          
    143            /* Check the parameters */
    144            assert_param(IS_GET_EXTI_LINE(EXTI_Line));
    145            
    146            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
    147            {
    148              bitstatus = SET;
   \   00000008   0120               MOVS     R0,#+1
   \   0000000A   7047               BX       LR
    149            }
    150            else
    151            {
    152              bitstatus = RESET;
   \                     ??EXTI_GetFlagStatus_0:
   \   0000000C   0020               MOVS     R0,#+0
    153            }
    154            return bitstatus;
   \   0000000E   7047               BX       LR               ;; return
    155          }
    156          
    157          /*******************************************************************************
    158          * Function Name  : EXTI_ClearFlag
    159          * Description    : Clears the EXTI抯 line pending flags.
    160          * Input          : - EXTI_Line: specifies the EXTI lines flags to clear.
    161          *                    This parameter can be any combination of EXTI_Linex where 
    162          *                    x can be (0..18).
    163          * Output         : None
    164          * Return         : None
    165          *******************************************************************************/

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

   \                                 In segment CODE, align 4, keep-with-next
    183          ITStatus EXTI_GetITStatus(u32 EXTI_Line)
    184          {
    185            ITStatus bitstatus = RESET;
    186            u32 enablestatus = 0;
    187          
    188            /* Check the parameters */
    189            assert_param(IS_GET_EXTI_LINE(EXTI_Line));
    190            
    191            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
    192          
    193            if (((EXTI->PR & EXTI_Line) != (u32)RESET) && (enablestatus != (u32)RESET))
   \   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
    194            {
    195              bitstatus = SET;
   \   00000012   0120               MOVS     R0,#+1
   \   00000014   7047               BX       LR
    196            }
    197            else
    198            {
    199              bitstatus = RESET;
   \                     ??EXTI_GetITStatus_0:
   \   00000016   0020               MOVS     R0,#+0
    200            }
    201            return bitstatus;
   \   00000018   7047               BX       LR               ;; return
    202          }
    203          
    204          /*******************************************************************************
    205          * Function Name  : EXTI_ClearITPendingBit
    206          * Description    : Clears the EXTI抯 line pending bits.
    207          * Input          : - EXTI_Line: specifies the EXTI lines to clear.
    208          *                    This parameter can be any combination of EXTI_Linex where 
    209          *                    x can be (0..18).
    210          * Output         : None
    211          * Return         : None
    212          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    213          void EXTI_ClearITPendingBit(u32 EXTI_Line)
    214          {
    215            /* Check the parameters */
    216            assert_param(IS_EXTI_LINE(EXTI_Line));
    217            
    218            EXTI->PR = EXTI_Line;
   \                     EXTI_ClearITPendingBit:
   \   00000000   ....               LDR.N    R1,??DataTable7  ;; 0x40010414
   \   00000002   0860               STR      R0,[R1, #+0]
    219          }
   \   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
    220          
    221          /******************* (C) COPYRIGHT 2008 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                 124
     EXTI_StructInit            16
     EXTI_GenerateSWInterrupt   16
     EXTI_GetFlagStatus         16
     EXTI_ClearFlag              6
     EXTI_GetITStatus           26
     EXTI_ClearITPendingBit      6
     ??DataTable5                4
     ??DataTable7                4

 
 250 bytes in segment CODE
 
 250 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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