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

📄 stm32f10x_exti.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 2 页
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION   10/Nov/2008  11:44:02 /
// Copyright 1999-2005 IAR Systems. All rights reserved.                     /
//                                                                           /
//    Cpu mode        =  thumb                                               /
//    Endian          =  little                                              /
//    Stack alignment =  4                                                   /
//    Source file     =  D:\资料\ST\ST\usb\FWLib\library\src\stm32f10x_exti. /
//                       c                                                   /
//    Command line    =  D:\资料\ST\ST\usb\FWLib\library\src\stm32f10x_exti. /
//                       c -D VECT_TAB_FLASH -D USE_STM3210E_EVAL -lA        /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\STM3210E-EVAL\List\ -o                 /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\STM3210E-EVAL\Obj\ -z9 --debug         /
//                       --cpu_mode thumb --endian little --cpu cortex-M3    /
//                       --stack_align 4 --require_prototypes --fpu None     /
//                       --dlib_config "C:\Program Files\IAR                 /
//                       Systems\Embedded Workbench 4.0                      /
//                       Evaluation\arm\LIB\dl7mptnnl8f.h" -I                /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\..\..\include\ -I                      /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\..\..\..\..\library\inc\ -I            /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\..\..\..\..\..\FWLib\library\inc\ -I   /
//                       "C:\Program Files\IAR Systems\Embedded Workbench    /
//                       4.0 Evaluation\arm\INC\" --inline_threshold=2       /
//    List file       =  D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\STM3210E-EVAL\List\stm32f10x_exti.s79  /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME stm32f10x_exti

        RTMODEL "StackAlign4", "USED"
        RTMODEL "__cpu_mode", "__pcs__thumb"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "6"

        RSEG CSTACK:DATA:NOROOT(2)

??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable2 EQU 0
??DataTable3 EQU 0
??DataTable5 EQU 0
        PUBLIC EXTI_ClearFlag
        FUNCTION EXTI_ClearFlag,0203H
        PUBLIC EXTI_ClearITPendingBit
        FUNCTION EXTI_ClearITPendingBit,0203H
        PUBLIC EXTI_DeInit
        FUNCTION EXTI_DeInit,0203H
        PUBLIC EXTI_GenerateSWInterrupt
        FUNCTION EXTI_GenerateSWInterrupt,0203H
        PUBLIC EXTI_GetFlagStatus
        FUNCTION EXTI_GetFlagStatus,0203H
        PUBLIC EXTI_GetITStatus
        FUNCTION EXTI_GetITStatus,0203H
        PUBLIC EXTI_Init
        FUNCTION EXTI_Init,0203H
        LOCFRAME CSTACK, 12, STACK
        PUBLIC EXTI_StructInit
        FUNCTION EXTI_StructInit,0203H
        
        CFI Names cfiNames0
        CFI StackFrame CFA R13 HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, R13:32, R14:32
        CFI VirtualResource ?RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 2
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI R14 Undefined
        CFI ?RET R14
        CFI EndCommon cfiCommon0
        
// D:\资料\ST\ST\usb\FWLib\library\src\stm32f10x_exti.c
//    1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
//    2 * File Name          : stm32f10x_exti.c
//    3 * Author             : MCD Application Team
//    4 * Version            : V2.0.1
//    5 * Date               : 06/13/2008
//    6 * Description        : This file provides all the EXTI firmware functions.
//    7 ********************************************************************************
//    8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
//    9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
//   10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
//   11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
//   12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
//   13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
//   14 *******************************************************************************/
//   15 
//   16 /* Includes ------------------------------------------------------------------*/
//   17 #include "stm32f10x_exti.h"
//   18 
//   19 /* Private typedef -----------------------------------------------------------*/
//   20 /* Private define ------------------------------------------------------------*/
//   21 #define EXTI_LineNone    ((u32)0x00000)  /* No interrupt selected */
//   22 
//   23 /* Private macro -------------------------------------------------------------*/
//   24 /* Private variables ---------------------------------------------------------*/
//   25 /* Private function prototypes -----------------------------------------------*/
//   26 /* Private functions ---------------------------------------------------------*/
//   27 
//   28 /*******************************************************************************
//   29 * Function Name  : EXTI_DeInit
//   30 * Description    : Deinitializes the EXTI peripheral registers to their default 
//   31 *                  reset values.
//   32 * Input          : None
//   33 * Output         : None
//   34 * Return         : None
//   35 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function EXTI_DeInit
        THUMB
//   36 void EXTI_DeInit(void)
//   37 {
//   38   EXTI->IMR = 0x00000000;
EXTI_DeInit:
        LDR.N    R1,??DataTable4  ;; 0x40010400
        MOVS     R0,#+0
        STR      R0,[R1], #+4
//   39   EXTI->EMR = 0x00000000;
        STR      R0,[R1], #+4
//   40   EXTI->RTSR = 0x00000000; 
        STR      R0,[R1], #+4
//   41   EXTI->FTSR = 0x00000000; 
        STR      R0,[R1, #+0]
//   42   EXTI->PR = 0x0007FFFF;
        LDR.N    R0,??DataTable6  ;; 0x40010414
        LDR.N    R1,??EXTI_DeInit_0  ;; 0x7ffff
        STR      R1,[R0, #+0]
//   43 }
        BX       LR               ;; return
        Nop      
        DATA
??EXTI_DeInit_0:
        DC32     0x7ffff
        CFI EndBlock cfiBlock0
//   44 
//   45 /*******************************************************************************
//   46 * Function Name  : EXTI_Init
//   47 * Description    : Initializes the EXTI peripheral according to the specified
//   48 *                  parameters in the EXTI_InitStruct.
//   49 * Input          : - EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
//   50 *                    that contains the configuration information for the EXTI
//   51 *                    peripheral.
//   52 * Output         : None
//   53 * Return         : None
//   54 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function EXTI_Init
        THUMB
//   55 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
//   56 {
EXTI_Init:
        PUSH     {R4,R5,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
//   57   /* Check the parameters */
//   58   assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode));
//   59   assert_param(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger));
//   60   assert_param(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line));  
//   61   assert_param(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd));
//   62      
//   63   if (EXTI_InitStruct->EXTI_LineCmd != DISABLE)
        LDR      R1,[R0, #+0]
        LDRB     R3,[R0, #+6]
        MVNS     R2,R1
        LDR.N    R1,??DataTable4  ;; 0x40010400
        CBZ      R3,??EXTI_Init_0
//   64   {
//   65     /* Clear EXTI line configuration */
//   66     EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line;
        LDR      R4,[R1, #+0]
        ANDS     R2,R2,R4
        STR      R2,[R1, #+0]
//   67     EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line;
        LDR.N    R2,??EXTI_Init_1  ;; 0x40010404
        LDR      R3,[R2, #+0]
        LDR      R4,[R0, #+0]
        BICS     R3,R3,R4
        STR      R3,[R2, #+0]
//   68     
//   69     *(vu32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)|= EXTI_InitStruct->EXTI_Line;
        LDRB     R2,[R0, #+4]
        LDR      R3,[R2, R1]
        LDR      R4,[R0, #+0]
        ORRS     R4,R4,R3
        STR      R4,[R2, R1]
//   70 
//   71     /* Clear Rising Falling edge configuration */
//   72     EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
        LDR.N    R2,??EXTI_Init_1+0x4  ;; 0x40010408
        LDR      R3,[R2, #+0]
        LDR      R4,[R0, #+0]
        BICS     R3,R3,R4
        STR      R3,[R2, #+0]
//   73     EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;
        LDR.N    R3,??EXTI_Init_1+0x8  ;; 0x4001040c
        LDR      R4,[R3, #+0]
        LDR      R5,[R0, #+0]
        BICS     R4,R4,R5
        STR      R4,[R3, #+0]
//   74     
//   75     /* Select the trigger for the selected external interrupts */
//   76     if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
        LDRB     R4,[R0, #+5]
        CMP      R4,#+16
        BNE.N    ??EXTI_Init_2
//   77     {
//   78       /* Rising Falling edge */
//   79       EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
        LDR      R1,[R2, #+0]
        LDR      R4,[R0, #+0]
        ORRS     R4,R4,R1
        STR      R4,[R2, #+0]
//   80       EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
        LDR      R1,[R3, #+0]
        LDR      R0,[R0, #+0]
        ORRS     R0,R0,R1
        STR      R0,[R3, #+0]
        POP      {R4,R5,PC}
//   81     }
//   82     else
//   83     {
//   84       *(vu32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Trigger)|= EXTI_InitStruct->EXTI_Line;
??EXTI_Init_2:
        ADDS     R1,R4,R1
        LDR      R2,[R1, #+0]
        LDR      R0,[R0, #+0]
        ORRS     R0,R0,R2
        STR      R0,[R1, #+0]

⌨️ 快捷键说明

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