ARM GAS /tmp/cc2L1WXV.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 6 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32f3xx_hal_exti.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c" 20 .section .text.HAL_EXTI_SetConfigLine,"ax",%progbits 21 .align 1 22 .global HAL_EXTI_SetConfigLine 23 .syntax unified 24 .thumb 25 .thumb_func 27 HAL_EXTI_SetConfigLine: 28 .LFB130: 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ****************************************************************************** 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @file stm32f3xx_hal_exti.c 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @author MCD Application Team 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief EXTI HAL module driver. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * functionalities of the Extended Interrupts and events controller (EXTI) peripheral: 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * + IO operation functions 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ****************************************************************************** 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @attention 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * Copyright (c) 2019 STMicroelectronics. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * All rights reserved. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This software is licensed under terms that can be found in the LICENSE file 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * in the root directory of this software component. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ****************************************************************************** 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ============================================================================== 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### EXTI Peripheral features ##### 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ============================================================================== 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** [..] 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Each Exti line can be configured within this driver. 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Exti line can be configured in 3 different modes 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Interrupt ARM GAS /tmp/cc2L1WXV.s page 2 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Event 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Both of them 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Configurable Exti lines can be configured with 3 different triggers 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Rising 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Falling 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Both of them 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) When set in interrupt mode, configurable Exti lines have two different 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** interrupts pending registers which allow to distinguish which transition 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** occurs: 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Rising edge pending interrupt 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Falling 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** be selected through multiplexer. 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### How to use this driver ##### 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ============================================================================== 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** [..] 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Configure the EXTI line using HAL_EXTI_SetConfigLine(). 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Choose the interrupt line number by setting "Line" member from 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Configure the interrupt and/or event mode using "Mode" member from 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) For configurable lines, configure rising and/or falling trigger 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** "Trigger" member from EXTI_ConfigTypeDef structure. 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel" 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** member from GPIO_InitTypeDef structure. 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Get current Exti configuration of a dedicated line using 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_EXTI_GetConfigLine(). 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as parameter. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Clear Exti configuration of a dedicated line using HAL_EXTI_GetConfigLine(). 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as parameter. 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback(). 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as first parameter. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide which callback will be registered using one value from 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_CallbackIDTypeDef. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide callback function pointer. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Get interrupt pending bit using HAL_EXTI_GetPending(). 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Clear interrupt pending bit using HAL_EXTI_GetPending(). 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Includes ------------------------------------------------------------------*/ 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #include "stm32f3xx_hal.h" 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ARM GAS /tmp/cc2L1WXV.s page 3 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup STM32F3xx_HAL_Driver 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** MISRA C:2012 deviation rule has been granted for following rule: 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * of bounds [0,3] in following API : 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_SetConfigLine 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_GetConfigLine 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_ClearConfigLine 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #ifdef HAL_EXTI_MODULE_ENABLED 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private typedef -----------------------------------------------------------*/ 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private defines -----------------------------------------------------------*/ 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @defgroup EXTI_Private_Constants EXTI Private Constants 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #define EXTI_MODE_OFFSET 0x08u /* 0x20: offset between CPU IMR/EMR registers * 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #define EXTI_CONFIG_OFFSET 0x08u /* 0x20: offset between CPU Rising/Falling conf 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @} 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private macros ------------------------------------------------------------*/ 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private variables ---------------------------------------------------------*/ 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private function prototypes -----------------------------------------------*/ 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Exported functions --------------------------------------------------------*/ 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group1 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Configuration functions 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### Configuration functions ##### 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Set configuration of a dedicated Exti line. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pExtiConfig Pointer on EXTI configuration to be set. 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { ARM GAS /tmp/cc2L1WXV.s page 4 29 .loc 1 144 1 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 32 32 @ frame_needed = 1, uses_anonymous_args = 0 33 @ link register save eliminated. 34 0000 80B4 push {r7} 35 .cfi_def_cfa_offset 4 36 .cfi_offset 7, -4 37 0002 89B0 sub sp, sp, #36 38 .cfi_def_cfa_offset 40 39 0004 00AF add r7, sp, #0 40 .cfi_def_cfa_register 7 41 0006 7860 str r0, [r7, #4] 42 0008 3960 str r1, [r7] 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 43 .loc 1 152 6 44 000a 7B68 ldr r3, [r7, #4] 45 000c 002B cmp r3, #0 46 000e 02D0 beq .L2 47 .loc 1 152 23 discriminator 1 48 0010 3B68 ldr r3, [r7] 49 0012 002B cmp r3, #0 50 0014 01D1 bne .L3 51 .L2: 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 52 .loc 1 154 12 53 0016 0123 movs r3, #1 54 0018 B3E0 b .L4 55 .L3: 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(pExtiConfig->Line)); 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Assign line number to handle */ 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->Line = pExtiConfig->Line; 56 .loc 1 162 28 57 001a 3B68 ldr r3, [r7] 58 001c 1A68 ldr r2, [r3] 59 .loc 1 162 15 60 001e 7B68 ldr r3, [r7, #4] 61 0020 1A60 str r2, [r3] 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Compute line register offset and line mask */ 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 62 .loc 1 165 25 63 0022 3B68 ldr r3, [r7] 64 0024 1B68 ldr r3, [r3] ARM GAS /tmp/cc2L1WXV.s page 5 65 .loc 1 165 49 66 0026 1B0C lsrs r3, r3, #16 67 .loc 1 165 10 68 0028 03F00103 and r3, r3, #1 69 002c BB61 str r3, [r7, #24] 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 70 .loc 1 166 25 71 002e 3B68 ldr r3, [r7] 72 0030 1B68 ldr r3, [r3] 73 .loc 1 166 11 74 0032 03F01F03 and r3, r3, #31 75 0036 7B61 str r3, [r7, #20] 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 76 .loc 1 167 12 77 0038 0122 movs r2, #1 78 003a 7B69 ldr r3, [r7, #20] 79 003c 02FA03F3 lsl r3, r2, r3 80 0040 3B61 str r3, [r7, #16] 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure triggers for configurable lines */ 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 81 .loc 1 170 19 82 0042 3B68 ldr r3, [r7] 83 0044 1B68 ldr r3, [r3] 84 .loc 1 170 26 85 0046 03F00073 and r3, r3, #33554432 86 .loc 1 170 6 87 004a 002B cmp r3, #0 88 004c 60D0 beq .L5 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger)); 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure rising trigger */ 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset)); 89 .loc 1 175 28 90 004e BB69 ldr r3, [r7, #24] 91 0050 5A01 lsls r2, r3, #5 92 .loc 1 175 13 93 0052 4F4B ldr r3, .L14 94 0054 1344 add r3, r3, r2 95 0056 FB60 str r3, [r7, #12] 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 96 .loc 1 176 12 97 0058 FB68 ldr r3, [r7, #12] 98 005a 1B68 ldr r3, [r3] 99 005c FB61 str r3, [r7, #28] 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) 100 .loc 1 179 21 101 005e 3B68 ldr r3, [r7] 102 0060 9B68 ldr r3, [r3, #8] 103 .loc 1 179 31 104 0062 03F00103 and r3, r3, #1 105 .loc 1 179 8 106 0066 002B cmp r3, #0 107 0068 04D0 beq .L6 ARM GAS /tmp/cc2L1WXV.s page 6 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; 108 .loc 1 181 14 109 006a FA69 ldr r2, [r7, #28] 110 006c 3B69 ldr r3, [r7, #16] 111 006e 1343 orrs r3, r3, r2 112 0070 FB61 str r3, [r7, #28] 113 0072 04E0 b .L7 114 .L6: 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 115 .loc 1 185 17 116 0074 3B69 ldr r3, [r7, #16] 117 0076 DB43 mvns r3, r3 118 .loc 1 185 14 119 0078 FA69 ldr r2, [r7, #28] 120 007a 1340 ands r3, r3, r2 121 007c FB61 str r3, [r7, #28] 122 .L7: 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store rising trigger mode */ 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 123 .loc 1 189 14 124 007e FB68 ldr r3, [r7, #12] 125 0080 FA69 ldr r2, [r7, #28] 126 0082 1A60 str r2, [r3] 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure falling trigger */ 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset)); 127 .loc 1 192 28 128 0084 BB69 ldr r3, [r7, #24] 129 0086 5A01 lsls r2, r3, #5 130 .loc 1 192 13 131 0088 424B ldr r3, .L14+4 132 008a 1344 add r3, r3, r2 133 008c FB60 str r3, [r7, #12] 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 134 .loc 1 193 12 135 008e FB68 ldr r3, [r7, #12] 136 0090 1B68 ldr r3, [r3] 137 0092 FB61 str r3, [r7, #28] 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) 138 .loc 1 196 21 139 0094 3B68 ldr r3, [r7] 140 0096 9B68 ldr r3, [r3, #8] 141 .loc 1 196 31 142 0098 03F00203 and r3, r3, #2 143 .loc 1 196 8 144 009c 002B cmp r3, #0 145 009e 04D0 beq .L8 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; ARM GAS /tmp/cc2L1WXV.s page 7 146 .loc 1 198 14 147 00a0 FA69 ldr r2, [r7, #28] 148 00a2 3B69 ldr r3, [r7, #16] 149 00a4 1343 orrs r3, r3, r2 150 00a6 FB61 str r3, [r7, #28] 151 00a8 04E0 b .L9 152 .L8: 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 153 .loc 1 202 17 154 00aa 3B69 ldr r3, [r7, #16] 155 00ac DB43 mvns r3, r3 156 .loc 1 202 14 157 00ae FA69 ldr r2, [r7, #28] 158 00b0 1340 ands r3, r3, r2 159 00b2 FB61 str r3, [r7, #28] 160 .L9: 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store falling trigger mode */ 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 161 .loc 1 206 14 162 00b4 FB68 ldr r3, [r7, #12] 163 00b6 FA69 ldr r2, [r7, #28] 164 00b8 1A60 str r2, [r3] 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure gpio port selection in case of gpio exti line */ 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 165 .loc 1 209 21 166 00ba 3B68 ldr r3, [r7] 167 00bc 1B68 ldr r3, [r3] 168 .loc 1 209 28 169 00be 03F0C063 and r3, r3, #100663296 170 .loc 1 209 8 171 00c2 B3F1C06F cmp r3, #100663296 172 00c6 23D1 bne .L5 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel)); 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 173 .loc 1 214 22 174 00c8 334A ldr r2, .L14+8 175 .loc 1 214 39 176 00ca 7B69 ldr r3, [r7, #20] 177 00cc 9B08 lsrs r3, r3, #2 178 .loc 1 214 14 179 00ce 0233 adds r3, r3, #2 180 00d0 52F82330 ldr r3, [r2, r3, lsl #2] 181 00d4 FB61 str r3, [r7, #28] 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 182 .loc 1 215 80 183 00d6 7B69 ldr r3, [r7, #20] 184 00d8 03F00303 and r3, r3, #3 185 .loc 1 215 69 ARM GAS /tmp/cc2L1WXV.s page 8 186 00dc 9B00 lsls r3, r3, #2 187 .loc 1 215 40 188 00de 0F22 movs r2, #15 189 00e0 02FA03F3 lsl r3, r2, r3 190 .loc 1 215 17 191 00e4 DB43 mvns r3, r3 192 .loc 1 215 14 193 00e6 FA69 ldr r2, [r7, #28] 194 00e8 1340 ands r3, r3, r2 195 00ea FB61 str r3, [r7, #28] 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 196 .loc 1 216 29 197 00ec 3B68 ldr r3, [r7] 198 00ee DA68 ldr r2, [r3, #12] 199 .loc 1 216 79 200 00f0 7B69 ldr r3, [r7, #20] 201 00f2 03F00303 and r3, r3, #3 202 .loc 1 216 68 203 00f6 9B00 lsls r3, r3, #2 204 .loc 1 216 39 205 00f8 02FA03F3 lsl r3, r2, r3 206 .loc 1 216 14 207 00fc FA69 ldr r2, [r7, #28] 208 00fe 1343 orrs r3, r3, r2 209 0100 FB61 str r3, [r7, #28] 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 210 .loc 1 217 13 211 0102 2549 ldr r1, .L14+8 212 .loc 1 217 30 213 0104 7B69 ldr r3, [r7, #20] 214 0106 9B08 lsrs r3, r3, #2 215 .loc 1 217 37 216 0108 0233 adds r3, r3, #2 217 010a FA69 ldr r2, [r7, #28] 218 010c 41F82320 str r2, [r1, r3, lsl #2] 219 .L5: 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure interrupt mode : read current mode */ 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset)); 220 .loc 1 222 25 221 0110 BB69 ldr r3, [r7, #24] 222 0112 5B01 lsls r3, r3, #5 223 .loc 1 222 11 224 0114 03F18043 add r3, r3, #1073741824 225 0118 03F58233 add r3, r3, #66560 226 011c FB60 str r3, [r7, #12] 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 227 .loc 1 223 10 228 011e FB68 ldr r3, [r7, #12] 229 0120 1B68 ldr r3, [r3] 230 0122 FB61 str r3, [r7, #28] 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) 231 .loc 1 226 19 ARM GAS /tmp/cc2L1WXV.s page 9 232 0124 3B68 ldr r3, [r7] 233 0126 5B68 ldr r3, [r3, #4] 234 .loc 1 226 26 235 0128 03F00103 and r3, r3, #1 236 .loc 1 226 6 237 012c 002B cmp r3, #0 238 012e 04D0 beq .L10 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; 239 .loc 1 228 12 240 0130 FA69 ldr r2, [r7, #28] 241 0132 3B69 ldr r3, [r7, #16] 242 0134 1343 orrs r3, r3, r2 243 0136 FB61 str r3, [r7, #28] 244 0138 04E0 b .L11 245 .L10: 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 246 .loc 1 232 15 247 013a 3B69 ldr r3, [r7, #16] 248 013c DB43 mvns r3, r3 249 .loc 1 232 12 250 013e FA69 ldr r2, [r7, #28] 251 0140 1340 ands r3, r3, r2 252 0142 FB61 str r3, [r7, #28] 253 .L11: 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store interrupt mode */ 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 254 .loc 1 236 12 255 0144 FB68 ldr r3, [r7, #12] 256 0146 FA69 ldr r2, [r7, #28] 257 0148 1A60 str r2, [r3] 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure event mode : read current mode */ 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset)); 258 .loc 1 239 25 259 014a BB69 ldr r3, [r7, #24] 260 014c 5A01 lsls r2, r3, #5 261 .loc 1 239 11 262 014e 134B ldr r3, .L14+12 263 0150 1344 add r3, r3, r2 264 0152 FB60 str r3, [r7, #12] 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 265 .loc 1 240 10 266 0154 FB68 ldr r3, [r7, #12] 267 0156 1B68 ldr r3, [r3] 268 0158 FB61 str r3, [r7, #28] 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) 269 .loc 1 243 19 270 015a 3B68 ldr r3, [r7] 271 015c 5B68 ldr r3, [r3, #4] ARM GAS /tmp/cc2L1WXV.s page 10 272 .loc 1 243 26 273 015e 03F00203 and r3, r3, #2 274 .loc 1 243 6 275 0162 002B cmp r3, #0 276 0164 04D0 beq .L12 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; 277 .loc 1 245 12 278 0166 FA69 ldr r2, [r7, #28] 279 0168 3B69 ldr r3, [r7, #16] 280 016a 1343 orrs r3, r3, r2 281 016c FB61 str r3, [r7, #28] 282 016e 04E0 b .L13 283 .L12: 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 284 .loc 1 249 15 285 0170 3B69 ldr r3, [r7, #16] 286 0172 DB43 mvns r3, r3 287 .loc 1 249 12 288 0174 FA69 ldr r2, [r7, #28] 289 0176 1340 ands r3, r3, r2 290 0178 FB61 str r3, [r7, #28] 291 .L13: 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store event mode */ 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 292 .loc 1 253 12 293 017a FB68 ldr r3, [r7, #12] 294 017c FA69 ldr r2, [r7, #28] 295 017e 1A60 str r2, [r3] 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 296 .loc 1 255 10 297 0180 0023 movs r3, #0 298 .L4: 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 299 .loc 1 256 1 300 0182 1846 mov r0, r3 301 0184 2437 adds r7, r7, #36 302 .cfi_def_cfa_offset 4 303 0186 BD46 mov sp, r7 304 .cfi_def_cfa_register 13 305 @ sp needed 306 0188 5DF8047B ldr r7, [sp], #4 307 .cfi_restore 7 308 .cfi_def_cfa_offset 0 309 018c 7047 bx lr 310 .L15: 311 018e 00BF .align 2 312 .L14: 313 0190 08040140 .word 1073808392 314 0194 0C040140 .word 1073808396 315 0198 00000140 .word 1073807360 ARM GAS /tmp/cc2L1WXV.s page 11 316 019c 04040140 .word 1073808388 317 .cfi_endproc 318 .LFE130: 320 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits 321 .align 1 322 .global HAL_EXTI_GetConfigLine 323 .syntax unified 324 .thumb 325 .thumb_func 327 HAL_EXTI_GetConfigLine: 328 .LFB131: 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Get configuration of a dedicated Exti line. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pExtiConfig Pointer on structure to store Exti configuration. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 329 .loc 1 265 1 330 .cfi_startproc 331 @ args = 0, pretend = 0, frame = 32 332 @ frame_needed = 1, uses_anonymous_args = 0 333 @ link register save eliminated. 334 0000 80B4 push {r7} 335 .cfi_def_cfa_offset 4 336 .cfi_offset 7, -4 337 0002 89B0 sub sp, sp, #36 338 .cfi_def_cfa_offset 40 339 0004 00AF add r7, sp, #0 340 .cfi_def_cfa_register 7 341 0006 7860 str r0, [r7, #4] 342 0008 3960 str r1, [r7] 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 343 .loc 1 273 6 344 000a 7B68 ldr r3, [r7, #4] 345 000c 002B cmp r3, #0 346 000e 02D0 beq .L17 347 .loc 1 273 23 discriminator 1 348 0010 3B68 ldr r3, [r7] 349 0012 002B cmp r3, #0 350 0014 01D1 bne .L18 351 .L17: 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 352 .loc 1 275 12 353 0016 0123 movs r3, #1 354 0018 85E0 b .L19 355 .L18: ARM GAS /tmp/cc2L1WXV.s page 12 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameter */ 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store handle line number to configuration structure */ 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Line = hexti->Line; 356 .loc 1 282 28 357 001a 7B68 ldr r3, [r7, #4] 358 001c 1A68 ldr r2, [r3] 359 .loc 1 282 21 360 001e 3B68 ldr r3, [r7] 361 0020 1A60 str r2, [r3] 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 362 .loc 1 285 25 363 0022 3B68 ldr r3, [r7] 364 0024 1B68 ldr r3, [r3] 365 .loc 1 285 49 366 0026 1B0C lsrs r3, r3, #16 367 .loc 1 285 10 368 0028 03F00103 and r3, r3, #1 369 002c FB61 str r3, [r7, #28] 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 370 .loc 1 286 25 371 002e 3B68 ldr r3, [r7] 372 0030 1B68 ldr r3, [r3] 373 .loc 1 286 11 374 0032 03F01F03 and r3, r3, #31 375 0036 BB61 str r3, [r7, #24] 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 376 .loc 1 287 12 377 0038 0122 movs r2, #1 378 003a BB69 ldr r3, [r7, #24] 379 003c 02FA03F3 lsl r3, r2, r3 380 0040 7B61 str r3, [r7, #20] 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 1] Get core mode : interrupt */ 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset)); 381 .loc 1 290 25 382 0042 FB69 ldr r3, [r7, #28] 383 0044 5B01 lsls r3, r3, #5 384 .loc 1 290 11 385 0046 03F18043 add r3, r3, #1073741824 386 004a 03F58233 add r3, r3, #66560 387 004e 3B61 str r3, [r7, #16] 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 388 .loc 1 291 10 389 0050 3B69 ldr r3, [r7, #16] 390 0052 1B68 ldr r3, [r3] 391 0054 FB60 str r3, [r7, #12] 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if selected line is enable */ 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 392 .loc 1 294 15 393 0056 FA68 ldr r2, [r7, #12] ARM GAS /tmp/cc2L1WXV.s page 13 394 0058 7B69 ldr r3, [r7, #20] 395 005a 1340 ands r3, r3, r2 396 .loc 1 294 6 397 005c 002B cmp r3, #0 398 005e 03D0 beq .L20 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_INTERRUPT; 399 .loc 1 296 23 400 0060 3B68 ldr r3, [r7] 401 0062 0122 movs r2, #1 402 0064 5A60 str r2, [r3, #4] 403 0066 02E0 b .L21 404 .L20: 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_NONE; 405 .loc 1 300 23 406 0068 3B68 ldr r3, [r7] 407 006a 0022 movs r2, #0 408 006c 5A60 str r2, [r3, #4] 409 .L21: 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get event mode */ 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset)); 410 .loc 1 304 25 411 006e FB69 ldr r3, [r7, #28] 412 0070 5A01 lsls r2, r3, #5 413 .loc 1 304 11 414 0072 304B ldr r3, .L26 415 0074 1344 add r3, r3, r2 416 0076 3B61 str r3, [r7, #16] 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 417 .loc 1 305 10 418 0078 3B69 ldr r3, [r7, #16] 419 007a 1B68 ldr r3, [r3] 420 007c FB60 str r3, [r7, #12] 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if selected line is enable */ 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 421 .loc 1 308 15 422 007e FA68 ldr r2, [r7, #12] 423 0080 7B69 ldr r3, [r7, #20] 424 0082 1340 ands r3, r3, r2 425 .loc 1 308 6 426 0084 002B cmp r3, #0 427 0086 05D0 beq .L22 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode |= EXTI_MODE_EVENT; 428 .loc 1 310 16 429 0088 3B68 ldr r3, [r7] 430 008a 5B68 ldr r3, [r3, #4] 431 .loc 1 310 23 432 008c 43F00202 orr r2, r3, #2 433 0090 3B68 ldr r3, [r7] 434 0092 5A60 str r2, [r3, #4] ARM GAS /tmp/cc2L1WXV.s page 14 435 .L22: 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get default Trigger and GPIOSel configuration */ 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; 436 .loc 1 314 24 437 0094 3B68 ldr r3, [r7] 438 0096 0022 movs r2, #0 439 0098 9A60 str r2, [r3, #8] 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 440 .loc 1 315 24 441 009a 3B68 ldr r3, [r7] 442 009c 0022 movs r2, #0 443 009e DA60 str r2, [r3, #12] 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 2] Get trigger for configurable lines : rising */ 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 444 .loc 1 318 19 445 00a0 3B68 ldr r3, [r7] 446 00a2 1B68 ldr r3, [r3] 447 .loc 1 318 26 448 00a4 03F00073 and r3, r3, #33554432 449 .loc 1 318 6 450 00a8 002B cmp r3, #0 451 00aa 3BD0 beq .L23 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset)); 452 .loc 1 320 28 453 00ac FB69 ldr r3, [r7, #28] 454 00ae 5A01 lsls r2, r3, #5 455 .loc 1 320 13 456 00b0 214B ldr r3, .L26+4 457 00b2 1344 add r3, r3, r2 458 00b4 3B61 str r3, [r7, #16] 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 459 .loc 1 321 12 460 00b6 3B69 ldr r3, [r7, #16] 461 00b8 1B68 ldr r3, [r3] 462 00ba FB60 str r3, [r7, #12] 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 463 .loc 1 324 17 464 00bc FA68 ldr r2, [r7, #12] 465 00be 7B69 ldr r3, [r7, #20] 466 00c0 1340 ands r3, r3, r2 467 .loc 1 324 8 468 00c2 002B cmp r3, #0 469 00c4 02D0 beq .L24 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING; 470 .loc 1 326 28 471 00c6 3B68 ldr r3, [r7] 472 00c8 0122 movs r2, #1 473 00ca 9A60 str r2, [r3, #8] 474 .L24: 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } ARM GAS /tmp/cc2L1WXV.s page 15 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get falling configuration */ 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset)); 475 .loc 1 330 28 476 00cc FB69 ldr r3, [r7, #28] 477 00ce 5A01 lsls r2, r3, #5 478 .loc 1 330 13 479 00d0 1A4B ldr r3, .L26+8 480 00d2 1344 add r3, r3, r2 481 00d4 3B61 str r3, [r7, #16] 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 482 .loc 1 331 12 483 00d6 3B69 ldr r3, [r7, #16] 484 00d8 1B68 ldr r3, [r3] 485 00da FB60 str r3, [r7, #12] 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 486 .loc 1 334 17 487 00dc FA68 ldr r2, [r7, #12] 488 00de 7B69 ldr r3, [r7, #20] 489 00e0 1340 ands r3, r3, r2 490 .loc 1 334 8 491 00e2 002B cmp r3, #0 492 00e4 05D0 beq .L25 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; 493 .loc 1 336 18 494 00e6 3B68 ldr r3, [r7] 495 00e8 9B68 ldr r3, [r3, #8] 496 .loc 1 336 28 497 00ea 43F00202 orr r2, r3, #2 498 00ee 3B68 ldr r3, [r7] 499 00f0 9A60 str r2, [r3, #8] 500 .L25: 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 501 .loc 1 340 21 502 00f2 3B68 ldr r3, [r7] 503 00f4 1B68 ldr r3, [r3] 504 .loc 1 340 28 505 00f6 03F0C063 and r3, r3, #100663296 506 .loc 1 340 8 507 00fa B3F1C06F cmp r3, #100663296 508 00fe 11D1 bne .L23 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 509 .loc 1 344 22 510 0100 0F4A ldr r2, .L26+12 511 .loc 1 344 39 512 0102 BB69 ldr r3, [r7, #24] 513 0104 9B08 lsrs r3, r3, #2 514 .loc 1 344 14 ARM GAS /tmp/cc2L1WXV.s page 16 515 0106 0233 adds r3, r3, #2 516 0108 52F82330 ldr r3, [r2, r3, lsl #2] 517 010c FB60 str r3, [r7, #12] 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EX 518 .loc 1 345 78 519 010e BB69 ldr r3, [r7, #24] 520 0110 03F00303 and r3, r3, #3 521 .loc 1 345 67 522 0114 9B00 lsls r3, r3, #2 523 .loc 1 345 38 524 0116 FA68 ldr r2, [r7, #12] 525 0118 22FA03F3 lsr r3, r2, r3 526 .loc 1 345 89 527 011c 03F00F02 and r2, r3, #15 528 .loc 1 345 28 529 0120 3B68 ldr r3, [r7] 530 0122 DA60 str r2, [r3, #12] 531 .L23: 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 532 .loc 1 349 10 533 0124 0023 movs r3, #0 534 .L19: 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 535 .loc 1 350 1 536 0126 1846 mov r0, r3 537 0128 2437 adds r7, r7, #36 538 .cfi_def_cfa_offset 4 539 012a BD46 mov sp, r7 540 .cfi_def_cfa_register 13 541 @ sp needed 542 012c 5DF8047B ldr r7, [sp], #4 543 .cfi_restore 7 544 .cfi_def_cfa_offset 0 545 0130 7047 bx lr 546 .L27: 547 0132 00BF .align 2 548 .L26: 549 0134 04040140 .word 1073808388 550 0138 08040140 .word 1073808392 551 013c 0C040140 .word 1073808396 552 0140 00000140 .word 1073807360 553 .cfi_endproc 554 .LFE131: 556 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits 557 .align 1 558 .global HAL_EXTI_ClearConfigLine 559 .syntax unified 560 .thumb 561 .thumb_func 563 HAL_EXTI_ClearConfigLine: 564 .LFB132: 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line. ARM GAS /tmp/cc2L1WXV.s page 17 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 565 .loc 1 358 1 566 .cfi_startproc 567 @ args = 0, pretend = 0, frame = 32 568 @ frame_needed = 1, uses_anonymous_args = 0 569 @ link register save eliminated. 570 0000 80B4 push {r7} 571 .cfi_def_cfa_offset 4 572 .cfi_offset 7, -4 573 0002 89B0 sub sp, sp, #36 574 .cfi_def_cfa_offset 40 575 0004 00AF add r7, sp, #0 576 .cfi_def_cfa_register 7 577 0006 7860 str r0, [r7, #4] 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti == NULL) 578 .loc 1 366 6 579 0008 7B68 ldr r3, [r7, #4] 580 000a 002B cmp r3, #0 581 000c 01D1 bne .L29 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 582 .loc 1 368 12 583 000e 0123 movs r3, #1 584 0010 70E0 b .L30 585 .L29: 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameter */ 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 586 .loc 1 375 19 587 0012 7B68 ldr r3, [r7, #4] 588 0014 1B68 ldr r3, [r3] 589 .loc 1 375 43 590 0016 1B0C lsrs r3, r3, #16 591 .loc 1 375 10 592 0018 03F00103 and r3, r3, #1 593 001c FB61 str r3, [r7, #28] 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 594 .loc 1 376 19 595 001e 7B68 ldr r3, [r7, #4] 596 0020 1B68 ldr r3, [r3] 597 .loc 1 376 11 598 0022 03F01F03 and r3, r3, #31 ARM GAS /tmp/cc2L1WXV.s page 18 599 0026 BB61 str r3, [r7, #24] 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 600 .loc 1 377 12 601 0028 0122 movs r2, #1 602 002a BB69 ldr r3, [r7, #24] 603 002c 02FA03F3 lsl r3, r2, r3 604 0030 7B61 str r3, [r7, #20] 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 1] Clear interrupt mode */ 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset)); 605 .loc 1 380 25 606 0032 FB69 ldr r3, [r7, #28] 607 0034 5B01 lsls r3, r3, #5 608 .loc 1 380 11 609 0036 03F18043 add r3, r3, #1073741824 610 003a 03F58233 add r3, r3, #66560 611 003e 3B61 str r3, [r7, #16] 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 612 .loc 1 381 13 613 0040 3B69 ldr r3, [r7, #16] 614 0042 1A68 ldr r2, [r3] 615 .loc 1 381 24 616 0044 7B69 ldr r3, [r7, #20] 617 0046 DB43 mvns r3, r3 618 .loc 1 381 10 619 0048 1340 ands r3, r3, r2 620 004a FB60 str r3, [r7, #12] 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 621 .loc 1 382 12 622 004c 3B69 ldr r3, [r7, #16] 623 004e FA68 ldr r2, [r7, #12] 624 0050 1A60 str r2, [r3] 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 2] Clear event mode */ 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset)); 625 .loc 1 385 25 626 0052 FB69 ldr r3, [r7, #28] 627 0054 5A01 lsls r2, r3, #5 628 .loc 1 385 11 629 0056 2A4B ldr r3, .L32 630 0058 1344 add r3, r3, r2 631 005a 3B61 str r3, [r7, #16] 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 632 .loc 1 386 13 633 005c 3B69 ldr r3, [r7, #16] 634 005e 1A68 ldr r2, [r3] 635 .loc 1 386 24 636 0060 7B69 ldr r3, [r7, #20] 637 0062 DB43 mvns r3, r3 638 .loc 1 386 10 639 0064 1340 ands r3, r3, r2 640 0066 FB60 str r3, [r7, #12] 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 641 .loc 1 387 12 642 0068 3B69 ldr r3, [r7, #16] 643 006a FA68 ldr r2, [r7, #12] 644 006c 1A60 str r2, [r3] ARM GAS /tmp/cc2L1WXV.s page 19 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */ 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u) 645 .loc 1 390 13 646 006e 7B68 ldr r3, [r7, #4] 647 0070 1B68 ldr r3, [r3] 648 .loc 1 390 20 649 0072 03F00073 and r3, r3, #33554432 650 .loc 1 390 6 651 0076 002B cmp r3, #0 652 0078 3BD0 beq .L31 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset)); 653 .loc 1 392 28 654 007a FB69 ldr r3, [r7, #28] 655 007c 5A01 lsls r2, r3, #5 656 .loc 1 392 13 657 007e 214B ldr r3, .L32+4 658 0080 1344 add r3, r3, r2 659 0082 3B61 str r3, [r7, #16] 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 660 .loc 1 393 15 661 0084 3B69 ldr r3, [r7, #16] 662 0086 1A68 ldr r2, [r3] 663 .loc 1 393 26 664 0088 7B69 ldr r3, [r7, #20] 665 008a DB43 mvns r3, r3 666 .loc 1 393 12 667 008c 1340 ands r3, r3, r2 668 008e FB60 str r3, [r7, #12] 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 669 .loc 1 394 14 670 0090 3B69 ldr r3, [r7, #16] 671 0092 FA68 ldr r2, [r7, #12] 672 0094 1A60 str r2, [r3] 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset)); 673 .loc 1 396 28 674 0096 FB69 ldr r3, [r7, #28] 675 0098 5A01 lsls r2, r3, #5 676 .loc 1 396 13 677 009a 1B4B ldr r3, .L32+8 678 009c 1344 add r3, r3, r2 679 009e 3B61 str r3, [r7, #16] 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 680 .loc 1 397 15 681 00a0 3B69 ldr r3, [r7, #16] 682 00a2 1A68 ldr r2, [r3] 683 .loc 1 397 26 684 00a4 7B69 ldr r3, [r7, #20] 685 00a6 DB43 mvns r3, r3 686 .loc 1 397 12 687 00a8 1340 ands r3, r3, r2 688 00aa FB60 str r3, [r7, #12] 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 689 .loc 1 398 14 690 00ac 3B69 ldr r3, [r7, #16] ARM GAS /tmp/cc2L1WXV.s page 20 691 00ae FA68 ldr r2, [r7, #12] 692 00b0 1A60 str r2, [r3] 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) 693 .loc 1 401 15 694 00b2 7B68 ldr r3, [r7, #4] 695 00b4 1B68 ldr r3, [r3] 696 .loc 1 401 22 697 00b6 03F0C063 and r3, r3, #100663296 698 .loc 1 401 8 699 00ba B3F1C06F cmp r3, #100663296 700 00be 18D1 bne .L31 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 701 .loc 1 405 22 702 00c0 124A ldr r2, .L32+12 703 .loc 1 405 39 704 00c2 BB69 ldr r3, [r7, #24] 705 00c4 9B08 lsrs r3, r3, #2 706 .loc 1 405 14 707 00c6 0233 adds r3, r3, #2 708 00c8 52F82330 ldr r3, [r2, r3, lsl #2] 709 00cc FB60 str r3, [r7, #12] 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 710 .loc 1 406 80 711 00ce BB69 ldr r3, [r7, #24] 712 00d0 03F00303 and r3, r3, #3 713 .loc 1 406 69 714 00d4 9B00 lsls r3, r3, #2 715 .loc 1 406 40 716 00d6 0F22 movs r2, #15 717 00d8 02FA03F3 lsl r3, r2, r3 718 .loc 1 406 17 719 00dc DB43 mvns r3, r3 720 .loc 1 406 14 721 00de FA68 ldr r2, [r7, #12] 722 00e0 1340 ands r3, r3, r2 723 00e2 FB60 str r3, [r7, #12] 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 724 .loc 1 407 13 725 00e4 0949 ldr r1, .L32+12 726 .loc 1 407 30 727 00e6 BB69 ldr r3, [r7, #24] 728 00e8 9B08 lsrs r3, r3, #2 729 .loc 1 407 37 730 00ea 0233 adds r3, r3, #2 731 00ec FA68 ldr r2, [r7, #12] 732 00ee 41F82320 str r2, [r1, r3, lsl #2] 733 .L31: 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 734 .loc 1 411 10 ARM GAS /tmp/cc2L1WXV.s page 21 735 00f2 0023 movs r3, #0 736 .L30: 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 737 .loc 1 412 1 738 00f4 1846 mov r0, r3 739 00f6 2437 adds r7, r7, #36 740 .cfi_def_cfa_offset 4 741 00f8 BD46 mov sp, r7 742 .cfi_def_cfa_register 13 743 @ sp needed 744 00fa 5DF8047B ldr r7, [sp], #4 745 .cfi_restore 7 746 .cfi_def_cfa_offset 0 747 00fe 7047 bx lr 748 .L33: 749 .align 2 750 .L32: 751 0100 04040140 .word 1073808388 752 0104 08040140 .word 1073808392 753 0108 0C040140 .word 1073808396 754 010c 00000140 .word 1073807360 755 .cfi_endproc 756 .LFE132: 758 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits 759 .align 1 760 .global HAL_EXTI_RegisterCallback 761 .syntax unified 762 .thumb 763 .thumb_func 765 HAL_EXTI_RegisterCallback: 766 .LFB133: 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line. 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param CallbackID User callback identifier. 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 767 .loc 1 423 1 768 .cfi_startproc 769 @ args = 0, pretend = 0, frame = 24 770 @ frame_needed = 1, uses_anonymous_args = 0 771 @ link register save eliminated. 772 0000 80B4 push {r7} 773 .cfi_def_cfa_offset 4 774 .cfi_offset 7, -4 775 0002 87B0 sub sp, sp, #28 776 .cfi_def_cfa_offset 32 777 0004 00AF add r7, sp, #0 778 .cfi_def_cfa_register 7 779 0006 F860 str r0, [r7, #12] 780 0008 0B46 mov r3, r1 781 000a 7A60 str r2, [r7, #4] ARM GAS /tmp/cc2L1WXV.s page 22 782 000c FB72 strb r3, [r7, #11] 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; 783 .loc 1 424 21 784 000e 0023 movs r3, #0 785 0010 FB75 strb r3, [r7, #23] 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** switch (CallbackID) 786 .loc 1 426 3 787 0012 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 788 0014 002B cmp r3, #0 789 0016 03D1 bne .L35 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID: 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn; 790 .loc 1 429 30 791 0018 FB68 ldr r3, [r7, #12] 792 001a 7A68 ldr r2, [r7, #4] 793 001c 5A60 str r2, [r3, #4] 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** break; 794 .loc 1 430 7 795 001e 02E0 b .L36 796 .L35: 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** default: 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** status = HAL_ERROR; 797 .loc 1 433 14 798 0020 0123 movs r3, #1 799 0022 FB75 strb r3, [r7, #23] 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** break; 800 .loc 1 434 7 801 0024 00BF nop 802 .L36: 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return status; 803 .loc 1 437 10 804 0026 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 805 .loc 1 438 1 806 0028 1846 mov r0, r3 807 002a 1C37 adds r7, r7, #28 808 .cfi_def_cfa_offset 4 809 002c BD46 mov sp, r7 810 .cfi_def_cfa_register 13 811 @ sp needed 812 002e 5DF8047B ldr r7, [sp], #4 813 .cfi_restore 7 814 .cfi_def_cfa_offset 0 815 0032 7047 bx lr 816 .cfi_endproc 817 .LFE133: 819 .section .text.HAL_EXTI_GetHandle,"ax",%progbits 820 .align 1 821 .global HAL_EXTI_GetHandle 822 .syntax unified 823 .thumb 824 .thumb_func ARM GAS /tmp/cc2L1WXV.s page 23 826 HAL_EXTI_GetHandle: 827 .LFB134: 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Store line number as handle private field. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param ExtiLine Exti line number. 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB. 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 828 .loc 1 448 1 829 .cfi_startproc 830 @ args = 0, pretend = 0, frame = 8 831 @ frame_needed = 1, uses_anonymous_args = 0 832 @ link register save eliminated. 833 0000 80B4 push {r7} 834 .cfi_def_cfa_offset 4 835 .cfi_offset 7, -4 836 0002 83B0 sub sp, sp, #12 837 .cfi_def_cfa_offset 16 838 0004 00AF add r7, sp, #0 839 .cfi_def_cfa_register 7 840 0006 7860 str r0, [r7, #4] 841 0008 3960 str r1, [r7] 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameters */ 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine)); 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti == NULL) 842 .loc 1 453 6 843 000a 7B68 ldr r3, [r7, #4] 844 000c 002B cmp r3, #0 845 000e 01D1 bne .L39 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 846 .loc 1 455 12 847 0010 0123 movs r3, #1 848 0012 03E0 b .L40 849 .L39: 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store line number as handle private field */ 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->Line = ExtiLine; 850 .loc 1 460 17 851 0014 7B68 ldr r3, [r7, #4] 852 0016 3A68 ldr r2, [r7] 853 0018 1A60 str r2, [r3] 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 854 .loc 1 462 12 855 001a 0023 movs r3, #0 856 .L40: 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } ARM GAS /tmp/cc2L1WXV.s page 24 857 .loc 1 464 1 858 001c 1846 mov r0, r3 859 001e 0C37 adds r7, r7, #12 860 .cfi_def_cfa_offset 4 861 0020 BD46 mov sp, r7 862 .cfi_def_cfa_register 13 863 @ sp needed 864 0022 5DF8047B ldr r7, [sp], #4 865 .cfi_restore 7 866 .cfi_def_cfa_offset 0 867 0026 7047 bx lr 868 .cfi_endproc 869 .LFE134: 871 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits 872 .align 1 873 .global HAL_EXTI_IRQHandler 874 .syntax unified 875 .thumb 876 .thumb_func 878 HAL_EXTI_IRQHandler: 879 .LFB135: 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @} 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief EXTI IO functions. 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### IO operation functions ##### 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Handle EXTI interrupt request. 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval none. 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 880 .loc 1 488 1 881 .cfi_startproc 882 @ args = 0, pretend = 0, frame = 24 883 @ frame_needed = 1, uses_anonymous_args = 0 884 0000 80B5 push {r7, lr} 885 .cfi_def_cfa_offset 8 886 .cfi_offset 7, -8 887 .cfi_offset 14, -4 888 0002 86B0 sub sp, sp, #24 889 .cfi_def_cfa_offset 32 890 0004 00AF add r7, sp, #0 891 .cfi_def_cfa_register 7 ARM GAS /tmp/cc2L1WXV.s page 25 892 0006 7860 str r0, [r7, #4] 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Compute line register offset and line mask */ 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 893 .loc 1 495 19 894 0008 7B68 ldr r3, [r7, #4] 895 000a 1B68 ldr r3, [r3] 896 .loc 1 495 43 897 000c 1B0C lsrs r3, r3, #16 898 .loc 1 495 10 899 000e 03F00103 and r3, r3, #1 900 0012 7B61 str r3, [r7, #20] 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 901 .loc 1 496 28 902 0014 7B68 ldr r3, [r7, #4] 903 0016 1B68 ldr r3, [r3] 904 .loc 1 496 35 905 0018 03F01F03 and r3, r3, #31 906 .loc 1 496 12 907 001c 0122 movs r2, #1 908 001e 02FA03F3 lsl r3, r2, r3 909 0022 3B61 str r3, [r7, #16] 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */ 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset)); 910 .loc 1 499 24 911 0024 7B69 ldr r3, [r7, #20] 912 0026 5A01 lsls r2, r3, #5 913 .loc 1 499 11 914 0028 0C4B ldr r3, .L44 915 002a 1344 add r3, r3, r2 916 002c FB60 str r3, [r7, #12] 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & maskline); 917 .loc 1 500 13 918 002e FB68 ldr r3, [r7, #12] 919 0030 1B68 ldr r3, [r3] 920 .loc 1 500 10 921 0032 3A69 ldr r2, [r7, #16] 922 0034 1340 ands r3, r3, r2 923 0036 BB60 str r3, [r7, #8] 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (regval != 0x00u) 924 .loc 1 502 6 925 0038 BB68 ldr r3, [r7, #8] 926 003a 002B cmp r3, #0 927 003c 09D0 beq .L43 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Clear pending bit */ 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI->PR = maskline; 928 .loc 1 505 9 929 003e 084A ldr r2, .L44+4 930 .loc 1 505 14 931 0040 3B69 ldr r3, [r7, #16] ARM GAS /tmp/cc2L1WXV.s page 26 932 0042 5361 str r3, [r2, #20] 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Call callback */ 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti->PendingCallback != NULL) 933 .loc 1 508 14 934 0044 7B68 ldr r3, [r7, #4] 935 0046 5B68 ldr r3, [r3, #4] 936 .loc 1 508 8 937 0048 002B cmp r3, #0 938 004a 02D0 beq .L43 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->PendingCallback(); 939 .loc 1 510 12 940 004c 7B68 ldr r3, [r7, #4] 941 004e 5B68 ldr r3, [r3, #4] 942 .loc 1 510 7 943 0050 9847 blx r3 944 .LVL0: 945 .L43: 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 946 .loc 1 513 1 947 0052 00BF nop 948 0054 1837 adds r7, r7, #24 949 .cfi_def_cfa_offset 8 950 0056 BD46 mov sp, r7 951 .cfi_def_cfa_register 13 952 @ sp needed 953 0058 80BD pop {r7, pc} 954 .L45: 955 005a 00BF .align 2 956 .L44: 957 005c 14040140 .word 1073808404 958 0060 00040140 .word 1073808384 959 .cfi_endproc 960 .LFE135: 962 .section .text.HAL_EXTI_GetPending,"ax",%progbits 963 .align 1 964 .global HAL_EXTI_GetPending 965 .syntax unified 966 .thumb 967 .thumb_func 969 HAL_EXTI_GetPending: 970 .LFB136: 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line. 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param Edge Specify which pending edge as to be checked. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of the following values: 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { ARM GAS /tmp/cc2L1WXV.s page 27 971 .loc 1 525 1 972 .cfi_startproc 973 @ args = 0, pretend = 0, frame = 32 974 @ frame_needed = 1, uses_anonymous_args = 0 975 @ link register save eliminated. 976 0000 80B4 push {r7} 977 .cfi_def_cfa_offset 4 978 .cfi_offset 7, -4 979 0002 89B0 sub sp, sp, #36 980 .cfi_def_cfa_offset 40 981 0004 00AF add r7, sp, #0 982 .cfi_def_cfa_register 7 983 0006 7860 str r0, [r7, #4] 984 0008 3960 str r1, [r7] 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 985 .loc 1 538 19 986 000a 7B68 ldr r3, [r7, #4] 987 000c 1B68 ldr r3, [r3] 988 .loc 1 538 43 989 000e 1B0C lsrs r3, r3, #16 990 .loc 1 538 10 991 0010 03F00103 and r3, r3, #1 992 0014 FB61 str r3, [r7, #28] 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 993 .loc 1 539 19 994 0016 7B68 ldr r3, [r7, #4] 995 0018 1B68 ldr r3, [r3] 996 .loc 1 539 11 997 001a 03F01F03 and r3, r3, #31 998 001e BB61 str r3, [r7, #24] 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 999 .loc 1 540 12 1000 0020 0122 movs r2, #1 1001 0022 BB69 ldr r3, [r7, #24] 1002 0024 02FA03F3 lsl r3, r2, r3 1003 0028 7B61 str r3, [r7, #20] 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */ 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset)); 1004 .loc 1 543 24 1005 002a FB69 ldr r3, [r7, #28] 1006 002c 5A01 lsls r2, r3, #5 1007 .loc 1 543 11 1008 002e 094B ldr r3, .L48 1009 0030 1344 add r3, r3, r2 ARM GAS /tmp/cc2L1WXV.s page 28 1010 0032 3B61 str r3, [r7, #16] 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* return 1 if bit is set else 0 */ 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = ((*regaddr & maskline) >> linepos); 1011 .loc 1 545 14 1012 0034 3B69 ldr r3, [r7, #16] 1013 0036 1A68 ldr r2, [r3] 1014 .loc 1 545 23 1015 0038 7B69 ldr r3, [r7, #20] 1016 003a 1A40 ands r2, r2, r3 1017 .loc 1 545 10 1018 003c BB69 ldr r3, [r7, #24] 1019 003e 22FA03F3 lsr r3, r2, r3 1020 0042 FB60 str r3, [r7, #12] 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return regval; 1021 .loc 1 546 10 1022 0044 FB68 ldr r3, [r7, #12] 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1023 .loc 1 547 1 1024 0046 1846 mov r0, r3 1025 0048 2437 adds r7, r7, #36 1026 .cfi_def_cfa_offset 4 1027 004a BD46 mov sp, r7 1028 .cfi_def_cfa_register 13 1029 @ sp needed 1030 004c 5DF8047B ldr r7, [sp], #4 1031 .cfi_restore 7 1032 .cfi_def_cfa_offset 0 1033 0050 7047 bx lr 1034 .L49: 1035 0052 00BF .align 2 1036 .L48: 1037 0054 14040140 .word 1073808404 1038 .cfi_endproc 1039 .LFE136: 1041 .section .text.HAL_EXTI_ClearPending,"ax",%progbits 1042 .align 1 1043 .global HAL_EXTI_ClearPending 1044 .syntax unified 1045 .thumb 1046 .thumb_func 1048 HAL_EXTI_ClearPending: 1049 .LFB137: 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line. 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param Edge Specify which pending edge as to be clear. 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of the following values: 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval None. 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 1050 .loc 1 559 1 1051 .cfi_startproc 1052 @ args = 0, pretend = 0, frame = 24 ARM GAS /tmp/cc2L1WXV.s page 29 1053 @ frame_needed = 1, uses_anonymous_args = 0 1054 @ link register save eliminated. 1055 0000 80B4 push {r7} 1056 .cfi_def_cfa_offset 4 1057 .cfi_offset 7, -4 1058 0002 87B0 sub sp, sp, #28 1059 .cfi_def_cfa_offset 32 1060 0004 00AF add r7, sp, #0 1061 .cfi_def_cfa_register 7 1062 0006 7860 str r0, [r7, #4] 1063 0008 3960 str r1, [r7] 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 1064 .loc 1 570 19 1065 000a 7B68 ldr r3, [r7, #4] 1066 000c 1B68 ldr r3, [r3] 1067 .loc 1 570 43 1068 000e 1B0C lsrs r3, r3, #16 1069 .loc 1 570 10 1070 0010 03F00103 and r3, r3, #1 1071 0014 7B61 str r3, [r7, #20] 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 1072 .loc 1 571 28 1073 0016 7B68 ldr r3, [r7, #4] 1074 0018 1B68 ldr r3, [r3] 1075 .loc 1 571 35 1076 001a 03F01F03 and r3, r3, #31 1077 .loc 1 571 12 1078 001e 0122 movs r2, #1 1079 0020 02FA03F3 lsl r3, r2, r3 1080 0024 3B61 str r3, [r7, #16] 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */ 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset)); 1081 .loc 1 574 24 1082 0026 7B69 ldr r3, [r7, #20] 1083 0028 5A01 lsls r2, r3, #5 1084 .loc 1 574 11 1085 002a 064B ldr r3, .L51 1086 002c 1344 add r3, r3, r2 1087 002e FB60 str r3, [r7, #12] 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Clear Pending bit */ 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = maskline; 1088 .loc 1 577 12 1089 0030 FB68 ldr r3, [r7, #12] 1090 0032 3A69 ldr r2, [r7, #16] 1091 0034 1A60 str r2, [r3] ARM GAS /tmp/cc2L1WXV.s page 30 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1092 .loc 1 578 1 1093 0036 00BF nop 1094 0038 1C37 adds r7, r7, #28 1095 .cfi_def_cfa_offset 4 1096 003a BD46 mov sp, r7 1097 .cfi_def_cfa_register 13 1098 @ sp needed 1099 003c 5DF8047B ldr r7, [sp], #4 1100 .cfi_restore 7 1101 .cfi_def_cfa_offset 0 1102 0040 7047 bx lr 1103 .L52: 1104 0042 00BF .align 2 1105 .L51: 1106 0044 14040140 .word 1073808404 1107 .cfi_endproc 1108 .LFE137: 1110 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits 1111 .align 1 1112 .global HAL_EXTI_GenerateSWI 1113 .syntax unified 1114 .thumb 1115 .thumb_func 1117 HAL_EXTI_GenerateSWI: 1118 .LFB138: 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line. 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval None. 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 1119 .loc 1 586 1 1120 .cfi_startproc 1121 @ args = 0, pretend = 0, frame = 24 1122 @ frame_needed = 1, uses_anonymous_args = 0 1123 @ link register save eliminated. 1124 0000 80B4 push {r7} 1125 .cfi_def_cfa_offset 4 1126 .cfi_offset 7, -4 1127 0002 87B0 sub sp, sp, #28 1128 .cfi_def_cfa_offset 32 1129 0004 00AF add r7, sp, #0 1130 .cfi_def_cfa_register 7 1131 0006 7860 str r0, [r7, #4] 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); ARM GAS /tmp/cc2L1WXV.s page 31 1132 .loc 1 596 19 1133 0008 7B68 ldr r3, [r7, #4] 1134 000a 1B68 ldr r3, [r3] 1135 .loc 1 596 43 1136 000c 1B0C lsrs r3, r3, #16 1137 .loc 1 596 10 1138 000e 03F00103 and r3, r3, #1 1139 0012 7B61 str r3, [r7, #20] 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 1140 .loc 1 597 28 1141 0014 7B68 ldr r3, [r7, #4] 1142 0016 1B68 ldr r3, [r3] 1143 .loc 1 597 35 1144 0018 03F01F03 and r3, r3, #31 1145 .loc 1 597 12 1146 001c 0122 movs r2, #1 1147 001e 02FA03F3 lsl r3, r2, r3 1148 0022 3B61 str r3, [r7, #16] 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->SWIER + (EXTI_CONFIG_OFFSET * offset)); 1149 .loc 1 599 27 1150 0024 7B69 ldr r3, [r7, #20] 1151 0026 5A01 lsls r2, r3, #5 1152 .loc 1 599 11 1153 0028 054B ldr r3, .L54 1154 002a 1344 add r3, r3, r2 1155 002c FB60 str r3, [r7, #12] 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = maskline; 1156 .loc 1 600 12 1157 002e FB68 ldr r3, [r7, #12] 1158 0030 3A69 ldr r2, [r7, #16] 1159 0032 1A60 str r2, [r3] 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1160 .loc 1 601 1 1161 0034 00BF nop 1162 0036 1C37 adds r7, r7, #28 1163 .cfi_def_cfa_offset 4 1164 0038 BD46 mov sp, r7 1165 .cfi_def_cfa_register 13 1166 @ sp needed 1167 003a 5DF8047B ldr r7, [sp], #4 1168 .cfi_restore 7 1169 .cfi_def_cfa_offset 0 1170 003e 7047 bx lr 1171 .L55: 1172 .align 2 1173 .L54: 1174 0040 10040140 .word 1073808400 1175 .cfi_endproc 1176 .LFE138: 1178 .text 1179 .Letext0: 1180 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl 1181 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl 1182 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 1183 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 1184 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h" ARM GAS /tmp/cc2L1WXV.s page 32 ARM GAS /tmp/cc2L1WXV.s page 33 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_exti.c /tmp/cc2L1WXV.s:21 .text.HAL_EXTI_SetConfigLine:00000000 $t /tmp/cc2L1WXV.s:27 .text.HAL_EXTI_SetConfigLine:00000000 HAL_EXTI_SetConfigLine /tmp/cc2L1WXV.s:313 .text.HAL_EXTI_SetConfigLine:00000190 $d /tmp/cc2L1WXV.s:321 .text.HAL_EXTI_GetConfigLine:00000000 $t /tmp/cc2L1WXV.s:327 .text.HAL_EXTI_GetConfigLine:00000000 HAL_EXTI_GetConfigLine /tmp/cc2L1WXV.s:549 .text.HAL_EXTI_GetConfigLine:00000134 $d /tmp/cc2L1WXV.s:557 .text.HAL_EXTI_ClearConfigLine:00000000 $t /tmp/cc2L1WXV.s:563 .text.HAL_EXTI_ClearConfigLine:00000000 HAL_EXTI_ClearConfigLine /tmp/cc2L1WXV.s:751 .text.HAL_EXTI_ClearConfigLine:00000100 $d /tmp/cc2L1WXV.s:759 .text.HAL_EXTI_RegisterCallback:00000000 $t /tmp/cc2L1WXV.s:765 .text.HAL_EXTI_RegisterCallback:00000000 HAL_EXTI_RegisterCallback /tmp/cc2L1WXV.s:820 .text.HAL_EXTI_GetHandle:00000000 $t /tmp/cc2L1WXV.s:826 .text.HAL_EXTI_GetHandle:00000000 HAL_EXTI_GetHandle /tmp/cc2L1WXV.s:872 .text.HAL_EXTI_IRQHandler:00000000 $t /tmp/cc2L1WXV.s:878 .text.HAL_EXTI_IRQHandler:00000000 HAL_EXTI_IRQHandler /tmp/cc2L1WXV.s:957 .text.HAL_EXTI_IRQHandler:0000005c $d /tmp/cc2L1WXV.s:963 .text.HAL_EXTI_GetPending:00000000 $t /tmp/cc2L1WXV.s:969 .text.HAL_EXTI_GetPending:00000000 HAL_EXTI_GetPending /tmp/cc2L1WXV.s:1037 .text.HAL_EXTI_GetPending:00000054 $d /tmp/cc2L1WXV.s:1042 .text.HAL_EXTI_ClearPending:00000000 $t /tmp/cc2L1WXV.s:1048 .text.HAL_EXTI_ClearPending:00000000 HAL_EXTI_ClearPending /tmp/cc2L1WXV.s:1106 .text.HAL_EXTI_ClearPending:00000044 $d /tmp/cc2L1WXV.s:1111 .text.HAL_EXTI_GenerateSWI:00000000 $t /tmp/cc2L1WXV.s:1117 .text.HAL_EXTI_GenerateSWI:00000000 HAL_EXTI_GenerateSWI /tmp/cc2L1WXV.s:1174 .text.HAL_EXTI_GenerateSWI:00000040 $d NO UNDEFINED SYMBOLS