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

📄 stm32f10x_exti.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART     13/Mar/2009  16:01:09 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  thumb                                                #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x #
#                       _exti.c                                              #
#    Command line    =  E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x #
#                       _exti.c -lCN E:\UC_OS\Micrium\Software\EvalBoards\ST #
#                       \STM3210B-EVAL\IAR\OS-Probe\Flash\List\ -o           #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\Flash\Obj\ -z6 --no_unroll            #
#                       --no_inline --no_tbaa --no_scheduling --debug        #
#                       --cpu_mode thumb --endian little --cpu cortex-M3     #
#                       --stack_align 4 -e --fpu None --dlib_config          #
#                       "C:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\LIB\dl7mptnnl8n.h" -I              #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\ -I E:\UC_OS\Micrium\Software\EvalBoa #
#                       rds\ST\STM3210B-EVAL\IAR\OS-Probe\..\..\..\..\..\uco #
#                       s-ii\ports\arm-cortex-m3\generic\iar\ -I             #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\ucos-ii\source\ -I     #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uc-lib\ -I             #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uc-cpu\ -I             #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uc-cpu\ARM-Cortex-M3\I #
#                       AR\ -I E:\UC_OS\Micrium\Software\EvalBoards\ST\STM32 #
#                       10B-EVAL\IAR\OS-Probe\..\..\..\..\..\cpu\st\stm32\in #
#                       c\ -I E:\UC_OS\Micrium\Software\EvalBoards\ST\STM321 #
#                       0B-EVAL\IAR\OS-Probe\..\BSP\ -I                      #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
#                       ication\Generic\RS-232\Source\ -I                    #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
#                       ication\Generic\RS-232\Ports\ST\STM32\ -I            #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
#                       ication\Generic\Source\ -I                           #
#                       E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Plugin #
#                       s\uCOS-II\ -I "C:\Program Files\IAR                  #
#                       Systems\Embedded Workbench 4.0 Kickstart\arm\INC\"   #
#    List file       =  E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\Flash\List\stm32f10x_exti.lst         #
#    Object file     =  E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
#                       L\IAR\OS-Probe\Flash\Obj\stm32f10x_exti.r79          #
#                                                                            #
#                                                                            #
##############################################################################

E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x_exti.c
      1          /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
      2          * File Name          : stm32f10x_exti.c
      3          * Author             : MCD Application Team
      4          * Date First Issued  : 09/29/2006
      5          * Description        : This file provides all the EXTI firmware functions.
      6          ********************************************************************************
      7          * History:
      8          * 05/21/2007: V0.3
      9          * 04/02/2007: V0.2
     10          * 02/05/2007: V0.1
     11          * 09/29/2006: V0.01
     12          ********************************************************************************
     13          * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
     14          * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
     15          * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
     16          * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
     17          * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
     18          * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
     19          *******************************************************************************/
     20          
     21          /* Includes ------------------------------------------------------------------*/
     22          #include "stm32f10x_exti.h"
     23          
     24          /* Private typedef -----------------------------------------------------------*/
     25          /* Private define ------------------------------------------------------------*/
     26          #define EXTI_LineNone    ((u32)0x00000)  /* No interrupt selected */
     27          
     28          /* Private macro -------------------------------------------------------------*/
     29          /* Private variables ---------------------------------------------------------*/
     30          /* Private function prototypes -----------------------------------------------*/
     31          /* Private functions ---------------------------------------------------------*/
     32          
     33          /*******************************************************************************
     34          * Function Name  : EXTI_DeInit
     35          * Description    : Deinitializes the EXTI peripheral registers to their default 
     36          *                  reset values.
     37          * Input          : None
     38          * Output         : None
     39          * Return         : None
     40          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     41          void EXTI_DeInit(void)
     42          {
     43            EXTI->IMR = 0x00000000;
   \                     EXTI_DeInit:
   \   00000000   0020               MOVS     R0,#+0
   \   00000002   ....               LDR.N    R1,??DataTable5  ;; 0x40010400
   \   00000004   0860               STR      R0,[R1, #+0]
     44            EXTI->EMR = 0x00000000;
   \   00000006   091D               ADDS     R1,R1,#+4
   \   00000008   0860               STR      R0,[R1, #+0]
     45            EXTI->RTSR = 0x00000000; 
   \   0000000A   091D               ADDS     R1,R1,#+4
   \   0000000C   0860               STR      R0,[R1, #+0]
     46            EXTI->FTSR = 0x00000000; 
   \   0000000E   091D               ADDS     R1,R1,#+4
   \   00000010   0860               STR      R0,[R1, #+0]
     47            EXTI->PR = 0x0007FFFF;
   \   00000012   ....               LDR.N    R0,??DataTable7  ;; 0x40010414
   \   00000014   0149               LDR.N    R1,??EXTI_DeInit_0  ;; 0x7ffff
   \   00000016   0160               STR      R1,[R0, #+0]
     48          }
   \   00000018   7047               BX       LR               ;; return
   \   0000001A   00BF               Nop      
   \                     ??EXTI_DeInit_0:
   \   0000001C   FFFF0700           DC32     0x7ffff
     49          
     50          /*******************************************************************************
     51          * Function Name  : EXTI_Init
     52          * Description    : Initializes the EXTI peripheral according to the specified
     53          *                  parameters in the EXTI_InitStruct.
     54          * Input          : - EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
     55          *                    that contains the configuration information for the EXTI
     56          *                    peripheral.
     57          * Output         : None
     58          * Return         : None
     59          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     60          void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
     61          {
   \                     EXTI_Init:
   \   00000000   30B5               PUSH     {R4,R5,LR}
     62            /* Check the parameters */
     63            assert(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode));
     64            assert(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger));
     65            assert(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line));  
     66            assert(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd));
     67               
     68            if (EXTI_InitStruct->EXTI_LineCmd != DISABLE)
   \   00000002   ....               LDR.N    R1,??DataTable5  ;; 0x40010400
   \   00000004   8279               LDRB     R2,[R0, #+6]
   \   00000006   002A               CMP      R2,#+0
   \   00000008   0279               LDRB     R2,[R0, #+4]
   \   0000000A   1346               MOV      R3,R2
   \   0000000C   5B58               LDR      R3,[R3, R1]
   \   0000000E   1FD0               BEQ.N    ??EXTI_Init_0
     69            {
     70              *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)|= EXTI_InitStruct->EXTI_Line;
   \   00000010   0468               LDR      R4,[R0, #+0]
   \   00000012   1C43               ORRS     R4,R4,R3
   \   00000014   5450               STR      R4,[R2, R1]
     71          
     72              /* Clear Rising Falling edge configuration */
     73              EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
   \   00000016   104A               LDR.N    R2,??EXTI_Init_1  ;; 0x40010408
   \   00000018   1368               LDR      R3,[R2, #+0]
   \   0000001A   0468               LDR      R4,[R0, #+0]
   \   0000001C   A343               BICS     R3,R3,R4
   \   0000001E   1360               STR      R3,[R2, #+0]
     74              EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;
   \   00000020   0E4B               LDR.N    R3,??EXTI_Init_1+0x4  ;; 0x4001040c
   \   00000022   1C68               LDR      R4,[R3, #+0]
   \   00000024   0568               LDR      R5,[R0, #+0]
   \   00000026   AC43               BICS     R4,R4,R5
   \   00000028   1C60               STR      R4,[R3, #+0]
     75              
     76              /* Select the trigger for the selected external interrupts */
     77              if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
   \   0000002A   4479               LDRB     R4,[R0, #+5]
   \   0000002C   102C               CMP      R4,#+16
   \   0000002E   08D1               BNE.N    ??EXTI_Init_2
     78              {
     79                /* Rising Falling edge */
     80                EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
   \   00000030   1168               LDR      R1,[R2, #+0]
   \   00000032   0468               LDR      R4,[R0, #+0]
   \   00000034   0C43               ORRS     R4,R4,R1
   \   00000036   1460               STR      R4,[R2, #+0]
     81                EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
   \   00000038   1968               LDR      R1,[R3, #+0]
   \   0000003A   0068               LDR      R0,[R0, #+0]
   \   0000003C   0843               ORRS     R0,R0,R1
   \   0000003E   1860               STR      R0,[R3, #+0]
   \   00000040   30BD               POP      {R4,R5,PC}
     82              }
     83              else
     84              {
     85                *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Trigger)|= EXTI_InitStruct->EXTI_Line;
   \                     ??EXTI_Init_2:
   \   00000042   2246               MOV      R2,R4
   \   00000044   1346               MOV      R3,R2
   \   00000046   5B58               LDR      R3,[R3, R1]
   \   00000048   0068               LDR      R0,[R0, #+0]
   \   0000004A   1843               ORRS     R0,R0,R3
   \   0000004C   5050               STR      R0,[R2, R1]
   \   0000004E   30BD               POP      {R4,R5,PC}
     86              }
     87            }
     88            else
     89            {
     90              /* Disable the selected external lines */
     91              *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)&= ~EXTI_InitStruct->EXTI_Line;
   \                     ??EXTI_Init_0:
   \   00000050   0068               LDR      R0,[R0, #+0]
   \   00000052   8343               BICS     R3,R3,R0
   \   00000054   5350               STR      R3,[R2, R1]
     92            }
     93          }
   \   00000056   30BD               POP      {R4,R5,PC}       ;; return
   \                     ??EXTI_Init_1:
   \   00000058   08040140           DC32     0x40010408
   \   0000005C   0C040140           DC32     0x4001040c
     94          
     95          /*******************************************************************************
     96          * Function Name  : EXTI_StructInit
     97          * Description    : Fills each EXTI_InitStruct member with its reset value.
     98          * Input          : - EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
     99          *                    which will be initialized.
    100          * Output         : None

⌨️ 快捷键说明

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