ARM GAS /tmp/ccSWpjAw.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 1 11 .eabi_attribute 34, 1 12 .eabi_attribute 18, 4 13 .file "stm32f4xx_hal_exti.c" 14 .text 15 .Ltext0: 16 .cfi_sections .debug_frame 17 .section .text.HAL_EXTI_SetConfigLine,"ax",%progbits 18 .align 1 19 .global HAL_EXTI_SetConfigLine 20 .arch armv7e-m 21 .syntax unified 22 .thumb 23 .thumb_func 24 .fpu fpv4-sp-d16 26 HAL_EXTI_SetConfigLine: 27 .LVL0: 28 .LFB134: 29 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c" 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ****************************************************************************** 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @file stm32f4xx_hal_exti.c 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @author MCD Application Team 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief EXTI HAL module driver. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * functionalities of the Extended Interrupts and events controller (EXTI) peripheral: 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * + IO operation functions 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ****************************************************************************** 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @attention 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * Copyright (c) 2018 STMicroelectronics. 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * All rights reserved. 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This software is licensed under terms that can be found in the LICENSE file 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * in the root directory of this software component. 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ****************************************************************************** 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** @verbatim 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ============================================================================== 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ##### EXTI Peripheral features ##### 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ============================================================================== 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** [..] 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (+) Each Exti line can be configured within this driver. 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (+) Exti line can be configured in 3 different modes ARM GAS /tmp/ccSWpjAw.s page 2 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Interrupt 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Event 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Both of them 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (+) Configurable Exti lines can be configured with 3 different triggers 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Rising 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Falling 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Both of them 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (+) When set in interrupt mode, configurable Exti lines have two different 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** interrupts pending registers which allow to distinguish which transition 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** occurs: 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Rising edge pending interrupt 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Falling 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** be selected through multiplexer. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ##### How to use this driver ##### 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ============================================================================== 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** [..] 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (#) Configure the EXTI line using HAL_EXTI_SetConfigLine(). 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Choose the interrupt line number by setting "Line" member from 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Configure the interrupt and/or event mode using "Mode" member from 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) For configurable lines, configure rising and/or falling trigger 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** "Trigger" member from EXTI_ConfigTypeDef structure. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel" 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** member from GPIO_InitTypeDef structure. 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (#) Get current Exti configuration of a dedicated line using 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** HAL_EXTI_GetConfigLine(). 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Provide exiting handle as parameter. 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter. 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (#) Clear Exti configuration of a dedicated line using HAL_EXTI_ClearConfigLine(). 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Provide exiting handle as parameter. 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback(). 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Provide exiting handle as first parameter. 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Provide which callback will be registered using one value from 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI_CallbackIDTypeDef. 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (++) Provide callback function pointer. 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (#) Get interrupt pending bit using HAL_EXTI_GetPending(). 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (#) Clear interrupt pending bit using HAL_EXTI_ClearPending(). 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** @endverbatim 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Includes ------------------------------------------------------------------*/ 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** #include "stm32f4xx_hal.h" ARM GAS /tmp/ccSWpjAw.s page 3 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** @addtogroup STM32F4xx_HAL_Driver 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @{ 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** @addtogroup EXTI 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @{ 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** MISRA C:2012 deviation rule has been granted for following rule: 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * of bounds [0,3] in following API : 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * HAL_EXTI_SetConfigLine 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * HAL_EXTI_GetConfigLine 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * HAL_EXTI_ClearConfigLine 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** #ifdef HAL_EXTI_MODULE_ENABLED 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Private typedef -----------------------------------------------------------*/ 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Private defines -----------------------------------------------------------*/ 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** @defgroup EXTI_Private_Constants EXTI Private Constants 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @{ 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @} 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Private macros ------------------------------------------------------------*/ 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Private variables ---------------------------------------------------------*/ 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Private function prototypes -----------------------------------------------*/ 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Exported functions --------------------------------------------------------*/ 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @{ 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group1 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Configuration functions 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** @verbatim 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** =============================================================================== 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ##### Configuration functions ##### 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** =============================================================================== 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** @endverbatim 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @{ 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Set configuration of a dedicated Exti line. 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param pExtiConfig Pointer on EXTI configuration to be set. 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval HAL Status. 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { ARM GAS /tmp/ccSWpjAw.s page 4 30 .loc 1 143 1 view -0 31 .cfi_startproc 32 @ args = 0, pretend = 0, frame = 0 33 @ frame_needed = 0, uses_anonymous_args = 0 34 @ link register save eliminated. 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 35 .loc 1 144 3 view .LVU1 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t linepos; 36 .loc 1 145 3 view .LVU2 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t maskline; 37 .loc 1 146 3 view .LVU3 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check null pointer */ 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 38 .loc 1 149 3 view .LVU4 39 .loc 1 149 6 is_stmt 0 view .LVU5 40 0000 0028 cmp r0, #0 41 0002 60D0 beq .L11 42 .loc 1 149 23 discriminator 1 view .LVU6 43 0004 0029 cmp r1, #0 44 0006 60D0 beq .L12 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 45 .loc 1 143 1 view .LVU7 46 0008 70B4 push {r4, r5, r6} 47 .LCFI0: 48 .cfi_def_cfa_offset 12 49 .cfi_offset 4, -12 50 .cfi_offset 5, -8 51 .cfi_offset 6, -4 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_ERROR; 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check parameters */ 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(pExtiConfig->Line)); 52 .loc 1 155 3 is_stmt 1 view .LVU8 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); 53 .loc 1 156 3 view .LVU9 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Assign line number to handle */ 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** hexti->Line = pExtiConfig->Line; 54 .loc 1 159 3 view .LVU10 55 .loc 1 159 28 is_stmt 0 view .LVU11 56 000a 0B68 ldr r3, [r1] 57 .loc 1 159 15 view .LVU12 58 000c 0360 str r3, [r0] 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Compute line mask */ 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 59 .loc 1 162 3 is_stmt 1 view .LVU13 60 .loc 1 162 11 is_stmt 0 view .LVU14 61 000e 03F01F02 and r2, r3, #31 62 .LVL1: 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** maskline = (1uL << linepos); 63 .loc 1 163 3 is_stmt 1 view .LVU15 64 .loc 1 163 12 is_stmt 0 view .LVU16 65 0012 0120 movs r0, #1 ARM GAS /tmp/ccSWpjAw.s page 5 66 .LVL2: 67 .loc 1 163 12 view .LVU17 68 0014 9040 lsls r0, r0, r2 69 .LVL3: 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Configure triggers for configurable lines */ 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 70 .loc 1 166 3 is_stmt 1 view .LVU18 71 .loc 1 166 6 is_stmt 0 view .LVU19 72 0016 13F0007F tst r3, #33554432 73 001a 15D0 beq .L3 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger)); 74 .loc 1 168 5 is_stmt 1 view .LVU20 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Configure rising trigger */ 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Mask or set line */ 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) 75 .loc 1 172 5 view .LVU21 76 .loc 1 172 8 is_stmt 0 view .LVU22 77 001c 8C68 ldr r4, [r1, #8] 78 001e 14F0010F tst r4, #1 79 0022 24D0 beq .L4 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->RTSR |= maskline; 80 .loc 1 174 7 is_stmt 1 view .LVU23 81 .loc 1 174 18 is_stmt 0 view .LVU24 82 0024 2A4D ldr r5, .L18 83 0026 AC68 ldr r4, [r5, #8] 84 0028 0443 orrs r4, r4, r0 85 002a AC60 str r4, [r5, #8] 86 .L5: 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** else 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->RTSR &= ~maskline; 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Configure falling trigger */ 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Mask or set line */ 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) 87 .loc 1 183 5 is_stmt 1 view .LVU25 88 .loc 1 183 8 is_stmt 0 view .LVU26 89 002c 8C68 ldr r4, [r1, #8] 90 002e 14F0020F tst r4, #2 91 0032 22D0 beq .L6 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->FTSR |= maskline; 92 .loc 1 185 7 is_stmt 1 view .LVU27 93 .loc 1 185 18 is_stmt 0 view .LVU28 94 0034 264D ldr r5, .L18 95 0036 EC68 ldr r4, [r5, #12] 96 0038 0443 orrs r4, r4, r0 97 003a EC60 str r4, [r5, #12] 98 .L7: 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** else ARM GAS /tmp/ccSWpjAw.s page 6 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->FTSR &= ~maskline; 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Configure gpio port selection in case of gpio exti line */ 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 99 .loc 1 194 5 is_stmt 1 view .LVU29 100 .loc 1 194 28 is_stmt 0 view .LVU30 101 003c 0C68 ldr r4, [r1] 102 003e 04F0C06C and ip, r4, #100663296 103 .loc 1 194 8 view .LVU31 104 0042 BCF1C06F cmp ip, #100663296 105 0046 1ED0 beq .L17 106 .LVL4: 107 .L3: 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel)); 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Configure interrupt mode : read current mode */ 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Mask or set line */ 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) 108 .loc 1 208 3 is_stmt 1 view .LVU32 109 .loc 1 208 19 is_stmt 0 view .LVU33 110 0048 4B68 ldr r3, [r1, #4] 111 .loc 1 208 6 view .LVU34 112 004a 13F0010F tst r3, #1 113 004e 2DD0 beq .L8 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->IMR |= maskline; 114 .loc 1 210 5 is_stmt 1 view .LVU35 115 .loc 1 210 15 is_stmt 0 view .LVU36 116 0050 1F4A ldr r2, .L18 117 0052 1368 ldr r3, [r2] 118 0054 0343 orrs r3, r3, r0 119 0056 1360 str r3, [r2] 120 .L9: 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** else 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->IMR &= ~maskline; 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Configure event mode : read current mode */ 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Mask or set line */ 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) 121 .loc 1 219 3 is_stmt 1 view .LVU37 122 .loc 1 219 19 is_stmt 0 view .LVU38 123 0058 4B68 ldr r3, [r1, #4] ARM GAS /tmp/ccSWpjAw.s page 7 124 .loc 1 219 6 view .LVU39 125 005a 13F0020F tst r3, #2 126 005e 2BD0 beq .L10 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->EMR |= maskline; 127 .loc 1 221 5 is_stmt 1 view .LVU40 128 .loc 1 221 15 is_stmt 0 view .LVU41 129 0060 1B4A ldr r2, .L18 130 0062 5368 ldr r3, [r2, #4] 131 0064 1843 orrs r0, r0, r3 132 .LVL5: 133 .loc 1 221 15 view .LVU42 134 0066 5060 str r0, [r2, #4] 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** else 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->EMR &= ~maskline; 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_OK; 135 .loc 1 228 10 view .LVU43 136 0068 0020 movs r0, #0 137 .L2: 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 138 .loc 1 229 1 view .LVU44 139 006a 70BC pop {r4, r5, r6} 140 .LCFI1: 141 .cfi_remember_state 142 .cfi_restore 6 143 .cfi_restore 5 144 .cfi_restore 4 145 .cfi_def_cfa_offset 0 146 006c 7047 bx lr 147 .LVL6: 148 .L4: 149 .LCFI2: 150 .cfi_restore_state 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 151 .loc 1 178 7 is_stmt 1 view .LVU45 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 152 .loc 1 178 18 is_stmt 0 view .LVU46 153 006e 184D ldr r5, .L18 154 0070 AC68 ldr r4, [r5, #8] 155 0072 24EA0004 bic r4, r4, r0 156 0076 AC60 str r4, [r5, #8] 157 0078 D8E7 b .L5 158 .L6: 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 159 .loc 1 189 7 is_stmt 1 view .LVU47 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 160 .loc 1 189 18 is_stmt 0 view .LVU48 161 007a 154D ldr r5, .L18 162 007c EC68 ldr r4, [r5, #12] 163 007e 24EA0004 bic r4, r4, r0 164 0082 EC60 str r4, [r5, #12] 165 0084 DAE7 b .L7 166 .L17: ARM GAS /tmp/ccSWpjAw.s page 8 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 167 .loc 1 196 7 is_stmt 1 view .LVU49 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 168 .loc 1 197 7 view .LVU50 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 169 .loc 1 199 7 view .LVU51 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 170 .loc 1 199 39 is_stmt 0 view .LVU52 171 0086 9208 lsrs r2, r2, #2 172 .LVL7: 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 173 .loc 1 199 14 view .LVU53 174 0088 124E ldr r6, .L18+4 175 008a 0232 adds r2, r2, #2 176 008c 56F82240 ldr r4, [r6, r2, lsl #2] 177 .LVL8: 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 178 .loc 1 200 7 is_stmt 1 view .LVU54 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 179 .loc 1 200 80 is_stmt 0 view .LVU55 180 0090 03F00303 and r3, r3, #3 181 .LVL9: 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 182 .loc 1 200 69 view .LVU56 183 0094 9B00 lsls r3, r3, #2 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 184 .loc 1 200 40 view .LVU57 185 0096 0F25 movs r5, #15 186 0098 9D40 lsls r5, r5, r3 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 187 .loc 1 200 14 view .LVU58 188 009a 24EA0504 bic r4, r4, r5 189 .LVL10: 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 190 .loc 1 201 7 is_stmt 1 view .LVU59 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 191 .loc 1 201 39 is_stmt 0 view .LVU60 192 009e CD68 ldr r5, [r1, #12] 193 00a0 05FA03F3 lsl r3, r5, r3 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 194 .loc 1 201 14 view .LVU61 195 00a4 2343 orrs r3, r3, r4 196 .LVL11: 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 197 .loc 1 202 7 is_stmt 1 view .LVU62 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 198 .loc 1 202 37 is_stmt 0 view .LVU63 199 00a6 46F82230 str r3, [r6, r2, lsl #2] 200 00aa CDE7 b .L3 201 .LVL12: 202 .L8: 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 203 .loc 1 214 5 is_stmt 1 view .LVU64 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 204 .loc 1 214 15 is_stmt 0 view .LVU65 205 00ac 084A ldr r2, .L18 206 00ae 1368 ldr r3, [r2] ARM GAS /tmp/ccSWpjAw.s page 9 207 00b0 23EA0003 bic r3, r3, r0 208 00b4 1360 str r3, [r2] 209 00b6 CFE7 b .L9 210 .L10: 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 211 .loc 1 225 5 is_stmt 1 view .LVU66 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 212 .loc 1 225 15 is_stmt 0 view .LVU67 213 00b8 054A ldr r2, .L18 214 00ba 5368 ldr r3, [r2, #4] 215 00bc 23EA0000 bic r0, r3, r0 216 .LVL13: 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 217 .loc 1 225 15 view .LVU68 218 00c0 5060 str r0, [r2, #4] 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 219 .loc 1 228 10 view .LVU69 220 00c2 0020 movs r0, #0 221 00c4 D1E7 b .L2 222 .LVL14: 223 .L11: 224 .LCFI3: 225 .cfi_def_cfa_offset 0 226 .cfi_restore 4 227 .cfi_restore 5 228 .cfi_restore 6 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 229 .loc 1 151 12 view .LVU70 230 00c6 0120 movs r0, #1 231 .LVL15: 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 232 .loc 1 151 12 view .LVU71 233 00c8 7047 bx lr 234 .LVL16: 235 .L12: 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 236 .loc 1 151 12 view .LVU72 237 00ca 0120 movs r0, #1 238 .LVL17: 239 .loc 1 229 1 view .LVU73 240 00cc 7047 bx lr 241 .L19: 242 00ce 00BF .align 2 243 .L18: 244 00d0 003C0140 .word 1073822720 245 00d4 00380140 .word 1073821696 246 .cfi_endproc 247 .LFE134: 249 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits 250 .align 1 251 .global HAL_EXTI_GetConfigLine 252 .syntax unified 253 .thumb 254 .thumb_func 255 .fpu fpv4-sp-d16 257 HAL_EXTI_GetConfigLine: 258 .LVL18: ARM GAS /tmp/ccSWpjAw.s page 10 259 .LFB135: 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Get configuration of a dedicated Exti line. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param pExtiConfig Pointer on structure to store Exti configuration. 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval HAL Status. 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 260 .loc 1 238 1 is_stmt 1 view -0 261 .cfi_startproc 262 @ args = 0, pretend = 0, frame = 0 263 @ frame_needed = 0, uses_anonymous_args = 0 264 @ link register save eliminated. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 265 .loc 1 239 3 view .LVU75 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t linepos; 266 .loc 1 240 3 view .LVU76 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t maskline; 267 .loc 1 241 3 view .LVU77 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check null pointer */ 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 268 .loc 1 244 3 view .LVU78 269 .loc 1 244 6 is_stmt 0 view .LVU79 270 0000 0028 cmp r0, #0 271 0002 45D0 beq .L27 272 .loc 1 244 23 discriminator 1 view .LVU80 273 0004 0029 cmp r1, #0 274 0006 45D0 beq .L28 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 275 .loc 1 238 1 view .LVU81 276 0008 10B4 push {r4} 277 .LCFI4: 278 .cfi_def_cfa_offset 4 279 .cfi_offset 4, -4 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_ERROR; 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check the parameter */ 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 280 .loc 1 250 3 is_stmt 1 view .LVU82 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Store handle line number to configuration structure */ 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->Line = hexti->Line; 281 .loc 1 253 3 view .LVU83 282 .loc 1 253 28 is_stmt 0 view .LVU84 283 000a 0468 ldr r4, [r0] 284 .loc 1 253 21 view .LVU85 285 000c 0C60 str r4, [r1] 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Compute line mask */ 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 286 .loc 1 256 3 is_stmt 1 view .LVU86 287 .loc 1 256 11 is_stmt 0 view .LVU87 ARM GAS /tmp/ccSWpjAw.s page 11 288 000e 04F01F0C and ip, r4, #31 289 .LVL19: 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** maskline = (1uL << linepos); 290 .loc 1 257 3 is_stmt 1 view .LVU88 291 .loc 1 257 12 is_stmt 0 view .LVU89 292 0012 0123 movs r3, #1 293 0014 03FA0CF3 lsl r3, r3, ip 294 .LVL20: 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* 1] Get core mode : interrupt */ 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check if selected line is enable */ 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((EXTI->IMR & maskline) != 0x00u) 295 .loc 1 262 3 is_stmt 1 view .LVU90 296 .loc 1 262 12 is_stmt 0 view .LVU91 297 0018 2148 ldr r0, .L36 298 .LVL21: 299 .loc 1 262 12 view .LVU92 300 001a 0068 ldr r0, [r0] 301 .loc 1 262 6 view .LVU93 302 001c 1842 tst r0, r3 303 001e 24D0 beq .L22 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_INTERRUPT; 304 .loc 1 264 5 is_stmt 1 view .LVU94 305 .loc 1 264 23 is_stmt 0 view .LVU95 306 0020 0122 movs r2, #1 307 0022 4A60 str r2, [r1, #4] 308 .L23: 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** else 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_NONE; 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Get event mode */ 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check if selected line is enable */ 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((EXTI->EMR & maskline) != 0x00u) 309 .loc 1 273 3 is_stmt 1 view .LVU96 310 .loc 1 273 12 is_stmt 0 view .LVU97 311 0024 1E48 ldr r0, .L36 312 0026 4068 ldr r0, [r0, #4] 313 .loc 1 273 6 view .LVU98 314 0028 1842 tst r0, r3 315 002a 03D0 beq .L24 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->Mode |= EXTI_MODE_EVENT; 316 .loc 1 275 5 is_stmt 1 view .LVU99 317 .loc 1 275 23 is_stmt 0 view .LVU100 318 002c 4868 ldr r0, [r1, #4] 319 002e 40F00200 orr r0, r0, #2 320 0032 4860 str r0, [r1, #4] 321 .L24: 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Get default Trigger and GPIOSel configuration */ 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; ARM GAS /tmp/ccSWpjAw.s page 12 322 .loc 1 279 3 is_stmt 1 view .LVU101 323 .loc 1 279 24 is_stmt 0 view .LVU102 324 0034 0022 movs r2, #0 325 0036 8A60 str r2, [r1, #8] 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 326 .loc 1 280 3 is_stmt 1 view .LVU103 327 .loc 1 280 24 is_stmt 0 view .LVU104 328 0038 CA60 str r2, [r1, #12] 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* 2] Get trigger for configurable lines : rising */ 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 329 .loc 1 283 3 is_stmt 1 view .LVU105 330 .loc 1 283 6 is_stmt 0 view .LVU106 331 003a 14F0007F tst r4, #33554432 332 003e 2BD0 beq .L29 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((EXTI->RTSR & maskline) != 0x00u) 333 .loc 1 286 5 is_stmt 1 view .LVU107 334 .loc 1 286 14 is_stmt 0 view .LVU108 335 0040 174A ldr r2, .L36 336 0042 9268 ldr r2, [r2, #8] 337 .loc 1 286 8 view .LVU109 338 0044 1A42 tst r2, r3 339 0046 01D0 beq .L25 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING; 340 .loc 1 288 7 is_stmt 1 view .LVU110 341 .loc 1 288 28 is_stmt 0 view .LVU111 342 0048 0122 movs r2, #1 343 004a 8A60 str r2, [r1, #8] 344 .L25: 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Get falling configuration */ 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((EXTI->FTSR & maskline) != 0x00u) 345 .loc 1 293 5 is_stmt 1 view .LVU112 346 .loc 1 293 14 is_stmt 0 view .LVU113 347 004c 144A ldr r2, .L36 348 004e D268 ldr r2, [r2, #12] 349 .loc 1 293 8 view .LVU114 350 0050 1A42 tst r2, r3 351 0052 03D0 beq .L26 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; 352 .loc 1 295 7 is_stmt 1 view .LVU115 353 .loc 1 295 28 is_stmt 0 view .LVU116 354 0054 8B68 ldr r3, [r1, #8] 355 .LVL22: 356 .loc 1 295 28 view .LVU117 357 0056 43F00203 orr r3, r3, #2 358 005a 8B60 str r3, [r1, #8] 359 .L26: 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ ARM GAS /tmp/ccSWpjAw.s page 13 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 360 .loc 1 299 5 is_stmt 1 view .LVU118 361 .loc 1 299 28 is_stmt 0 view .LVU119 362 005c 04F0C063 and r3, r4, #100663296 363 .loc 1 299 8 view .LVU120 364 0060 B3F1C06F cmp r3, #100663296 365 0064 04D0 beq .L35 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EX 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_OK; 366 .loc 1 308 10 view .LVU121 367 0066 0020 movs r0, #0 368 0068 17E0 b .L21 369 .LVL23: 370 .L22: 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 371 .loc 1 268 5 is_stmt 1 view .LVU122 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 372 .loc 1 268 23 is_stmt 0 view .LVU123 373 006a 0022 movs r2, #0 374 006c 4A60 str r2, [r1, #4] 375 006e D9E7 b .L23 376 .LVL24: 377 .L35: 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 378 .loc 1 301 7 is_stmt 1 view .LVU124 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EX 379 .loc 1 303 7 view .LVU125 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EX 380 .loc 1 303 39 is_stmt 0 view .LVU126 381 0070 4FEA9C02 lsr r2, ip, #2 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EX 382 .loc 1 303 14 view .LVU127 383 0074 0232 adds r2, r2, #2 384 0076 0B4B ldr r3, .L36+4 385 0078 53F82220 ldr r2, [r3, r2, lsl #2] 386 .LVL25: 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 387 .loc 1 304 7 is_stmt 1 view .LVU128 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 388 .loc 1 304 78 is_stmt 0 view .LVU129 389 007c 04F00303 and r3, r4, #3 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 390 .loc 1 304 67 view .LVU130 391 0080 9B00 lsls r3, r3, #2 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 392 .loc 1 304 38 view .LVU131 393 0082 22FA03F3 lsr r3, r2, r3 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 394 .loc 1 304 89 view .LVU132 395 0086 03F00F03 and r3, r3, #15 ARM GAS /tmp/ccSWpjAw.s page 14 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 396 .loc 1 304 28 view .LVU133 397 008a CB60 str r3, [r1, #12] 398 .loc 1 308 10 view .LVU134 399 008c 0020 movs r0, #0 400 008e 04E0 b .L21 401 .LVL26: 402 .L27: 403 .LCFI5: 404 .cfi_def_cfa_offset 0 405 .cfi_restore 4 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 406 .loc 1 246 12 view .LVU135 407 0090 0120 movs r0, #1 408 .LVL27: 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 409 .loc 1 246 12 view .LVU136 410 0092 7047 bx lr 411 .LVL28: 412 .L28: 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 413 .loc 1 246 12 view .LVU137 414 0094 0120 movs r0, #1 415 .LVL29: 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 416 .loc 1 309 1 view .LVU138 417 0096 7047 bx lr 418 .LVL30: 419 .L29: 420 .LCFI6: 421 .cfi_def_cfa_offset 4 422 .cfi_offset 4, -4 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 423 .loc 1 308 10 view .LVU139 424 0098 0020 movs r0, #0 425 .LVL31: 426 .L21: 427 .loc 1 309 1 view .LVU140 428 009a 5DF8044B ldr r4, [sp], #4 429 .LCFI7: 430 .cfi_restore 4 431 .cfi_def_cfa_offset 0 432 009e 7047 bx lr 433 .L37: 434 .align 2 435 .L36: 436 00a0 003C0140 .word 1073822720 437 00a4 00380140 .word 1073821696 438 .cfi_endproc 439 .LFE135: 441 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits 442 .align 1 443 .global HAL_EXTI_ClearConfigLine 444 .syntax unified 445 .thumb 446 .thumb_func 447 .fpu fpv4-sp-d16 ARM GAS /tmp/ccSWpjAw.s page 15 449 HAL_EXTI_ClearConfigLine: 450 .LVL32: 451 .LFB136: 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval HAL Status. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 452 .loc 1 317 1 is_stmt 1 view -0 453 .cfi_startproc 454 @ args = 0, pretend = 0, frame = 0 455 @ frame_needed = 0, uses_anonymous_args = 0 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 456 .loc 1 318 3 view .LVU142 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t linepos; 457 .loc 1 319 3 view .LVU143 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t maskline; 458 .loc 1 320 3 view .LVU144 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check null pointer */ 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if (hexti == NULL) 459 .loc 1 323 3 view .LVU145 460 .loc 1 323 6 is_stmt 0 view .LVU146 461 0000 0028 cmp r0, #0 462 0002 38D0 beq .L40 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 463 .loc 1 317 1 view .LVU147 464 0004 10B5 push {r4, lr} 465 .LCFI8: 466 .cfi_def_cfa_offset 8 467 .cfi_offset 4, -8 468 .cfi_offset 14, -4 469 0006 8446 mov ip, r0 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_ERROR; 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check the parameter */ 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 470 .loc 1 329 3 is_stmt 1 view .LVU148 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* compute line mask */ 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 471 .loc 1 332 3 view .LVU149 472 .loc 1 332 19 is_stmt 0 view .LVU150 473 0008 0468 ldr r4, [r0] 474 .loc 1 332 11 view .LVU151 475 000a 04F01F00 and r0, r4, #31 476 .LVL33: 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** maskline = (1uL << linepos); 477 .loc 1 333 3 is_stmt 1 view .LVU152 478 .loc 1 333 12 is_stmt 0 view .LVU153 479 000e 0123 movs r3, #1 480 0010 8340 lsls r3, r3, r0 ARM GAS /tmp/ccSWpjAw.s page 16 481 .LVL34: 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* 1] Clear interrupt mode */ 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->IMR = (EXTI->IMR & ~maskline); 482 .loc 1 336 3 is_stmt 1 view .LVU154 483 .loc 1 336 20 is_stmt 0 view .LVU155 484 0012 1B4A ldr r2, .L48 485 0014 1168 ldr r1, [r2] 486 .loc 1 336 28 view .LVU156 487 0016 6FEA030E mvn lr, r3 488 .loc 1 336 26 view .LVU157 489 001a 21EA0301 bic r1, r1, r3 490 .loc 1 336 13 view .LVU158 491 001e 1160 str r1, [r2] 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* 2] Clear event mode */ 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->EMR = (EXTI->EMR & ~maskline); 492 .loc 1 339 3 is_stmt 1 view .LVU159 493 .loc 1 339 20 is_stmt 0 view .LVU160 494 0020 5168 ldr r1, [r2, #4] 495 .loc 1 339 26 view .LVU161 496 0022 21EA0303 bic r3, r1, r3 497 .LVL35: 498 .loc 1 339 13 view .LVU162 499 0026 5360 str r3, [r2, #4] 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */ 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u) 500 .loc 1 342 3 is_stmt 1 view .LVU163 501 .loc 1 342 13 is_stmt 0 view .LVU164 502 0028 DCF80030 ldr r3, [ip] 503 .loc 1 342 6 view .LVU165 504 002c 13F0007F tst r3, #33554432 505 0030 23D0 beq .L41 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->RTSR = (EXTI->RTSR & ~maskline); 506 .loc 1 344 5 is_stmt 1 view .LVU166 507 .loc 1 344 23 is_stmt 0 view .LVU167 508 0032 9368 ldr r3, [r2, #8] 509 .loc 1 344 30 view .LVU168 510 0034 0EEA0303 and r3, lr, r3 511 .loc 1 344 16 view .LVU169 512 0038 9360 str r3, [r2, #8] 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->FTSR = (EXTI->FTSR & ~maskline); 513 .loc 1 345 5 is_stmt 1 view .LVU170 514 .loc 1 345 23 is_stmt 0 view .LVU171 515 003a D368 ldr r3, [r2, #12] 516 .loc 1 345 30 view .LVU172 517 003c 0EEA0303 and r3, lr, r3 518 .loc 1 345 16 view .LVU173 519 0040 D360 str r3, [r2, #12] 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) 520 .loc 1 348 5 is_stmt 1 view .LVU174 521 .loc 1 348 15 is_stmt 0 view .LVU175 522 0042 DCF80030 ldr r3, [ip] ARM GAS /tmp/ccSWpjAw.s page 17 523 .loc 1 348 22 view .LVU176 524 0046 03F0C063 and r3, r3, #100663296 525 .loc 1 348 8 view .LVU177 526 004a B3F1C06F cmp r3, #100663296 527 004e 01D0 beq .L47 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_OK; 528 .loc 1 358 10 view .LVU178 529 0050 0020 movs r0, #0 530 .LVL36: 531 .loc 1 358 10 view .LVU179 532 0052 13E0 b .L39 533 .LVL37: 534 .L47: 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 535 .loc 1 350 7 is_stmt 1 view .LVU180 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 536 .loc 1 352 7 view .LVU181 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 537 .loc 1 352 39 is_stmt 0 view .LVU182 538 0054 8008 lsrs r0, r0, #2 539 .LVL38: 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 540 .loc 1 352 14 view .LVU183 541 0056 0B49 ldr r1, .L48+4 542 0058 0230 adds r0, r0, #2 543 005a 51F82030 ldr r3, [r1, r0, lsl #2] 544 .LVL39: 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 545 .loc 1 353 7 is_stmt 1 view .LVU184 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 546 .loc 1 353 80 is_stmt 0 view .LVU185 547 005e 04F00304 and r4, r4, #3 548 .LVL40: 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 549 .loc 1 353 69 view .LVU186 550 0062 A400 lsls r4, r4, #2 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 551 .loc 1 353 40 view .LVU187 552 0064 0F22 movs r2, #15 553 0066 02FA04F4 lsl r4, r2, r4 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 554 .loc 1 353 14 view .LVU188 555 006a 23EA0404 bic r4, r3, r4 556 .LVL41: 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 557 .loc 1 354 7 is_stmt 1 view .LVU189 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 558 .loc 1 354 37 is_stmt 0 view .LVU190 ARM GAS /tmp/ccSWpjAw.s page 18 559 006e 41F82040 str r4, [r1, r0, lsl #2] 560 .loc 1 358 10 view .LVU191 561 0072 0020 movs r0, #0 562 0074 02E0 b .L39 563 .LVL42: 564 .L40: 565 .LCFI9: 566 .cfi_def_cfa_offset 0 567 .cfi_restore 4 568 .cfi_restore 14 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 569 .loc 1 325 12 view .LVU192 570 0076 0120 movs r0, #1 571 .LVL43: 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 572 .loc 1 359 1 view .LVU193 573 0078 7047 bx lr 574 .LVL44: 575 .L41: 576 .LCFI10: 577 .cfi_def_cfa_offset 8 578 .cfi_offset 4, -8 579 .cfi_offset 14, -4 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 580 .loc 1 358 10 view .LVU194 581 007a 0020 movs r0, #0 582 .LVL45: 583 .L39: 584 .loc 1 359 1 view .LVU195 585 007c 10BD pop {r4, pc} 586 .L49: 587 007e 00BF .align 2 588 .L48: 589 0080 003C0140 .word 1073822720 590 0084 00380140 .word 1073821696 591 .cfi_endproc 592 .LFE136: 594 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits 595 .align 1 596 .global HAL_EXTI_RegisterCallback 597 .syntax unified 598 .thumb 599 .thumb_func 600 .fpu fpv4-sp-d16 602 HAL_EXTI_RegisterCallback: 603 .LVL46: 604 .LFB137: 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line. 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param CallbackID User callback identifier. 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback. 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval HAL Status. 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb ARM GAS /tmp/ccSWpjAw.s page 19 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 605 .loc 1 370 1 is_stmt 1 view -0 606 .cfi_startproc 607 @ args = 0, pretend = 0, frame = 0 608 @ frame_needed = 0, uses_anonymous_args = 0 609 @ link register save eliminated. 610 .loc 1 370 1 is_stmt 0 view .LVU197 611 0000 0346 mov r3, r0 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; 612 .loc 1 371 3 is_stmt 1 view .LVU198 613 .LVL47: 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** switch (CallbackID) 614 .loc 1 373 3 view .LVU199 615 0002 0846 mov r0, r1 616 .LVL48: 617 .loc 1 373 3 is_stmt 0 view .LVU200 618 0004 09B9 cbnz r1, .L52 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID: 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn; 619 .loc 1 376 7 is_stmt 1 view .LVU201 620 .loc 1 376 30 is_stmt 0 view .LVU202 621 0006 5A60 str r2, [r3, #4] 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** break; 622 .loc 1 377 7 is_stmt 1 view .LVU203 623 0008 7047 bx lr 624 .L52: 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** default: 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** status = HAL_ERROR; 625 .loc 1 380 14 is_stmt 0 view .LVU204 626 000a 0120 movs r0, #1 627 .LVL49: 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** break; 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return status; 628 .loc 1 384 3 is_stmt 1 view .LVU205 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 629 .loc 1 385 1 is_stmt 0 view .LVU206 630 000c 7047 bx lr 631 .cfi_endproc 632 .LFE137: 634 .section .text.HAL_EXTI_GetHandle,"ax",%progbits 635 .align 1 636 .global HAL_EXTI_GetHandle 637 .syntax unified 638 .thumb 639 .thumb_func 640 .fpu fpv4-sp-d16 642 HAL_EXTI_GetHandle: 643 .LVL50: 644 .LFB138: 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Store line number as handle private field. ARM GAS /tmp/ccSWpjAw.s page 20 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param ExtiLine Exti line number. 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB. 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval HAL Status. 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 645 .loc 1 395 1 is_stmt 1 view -0 646 .cfi_startproc 647 @ args = 0, pretend = 0, frame = 0 648 @ frame_needed = 0, uses_anonymous_args = 0 649 @ link register save eliminated. 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check the parameters */ 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine)); 650 .loc 1 397 3 view .LVU208 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check null pointer */ 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if (hexti == NULL) 651 .loc 1 400 3 view .LVU209 652 .loc 1 400 6 is_stmt 0 view .LVU210 653 0000 10B1 cbz r0, .L55 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_ERROR; 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** else 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Store line number as handle private field */ 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** hexti->Line = ExtiLine; 654 .loc 1 407 5 is_stmt 1 view .LVU211 655 .loc 1 407 17 is_stmt 0 view .LVU212 656 0002 0160 str r1, [r0] 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return HAL_OK; 657 .loc 1 409 5 is_stmt 1 view .LVU213 658 .loc 1 409 12 is_stmt 0 view .LVU214 659 0004 0020 movs r0, #0 660 .LVL51: 661 .loc 1 409 12 view .LVU215 662 0006 7047 bx lr 663 .LVL52: 664 .L55: 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 665 .loc 1 402 12 view .LVU216 666 0008 0120 movs r0, #1 667 .LVL53: 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 668 .loc 1 411 1 view .LVU217 669 000a 7047 bx lr 670 .cfi_endproc 671 .LFE138: 673 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits 674 .align 1 675 .global HAL_EXTI_IRQHandler 676 .syntax unified 677 .thumb 678 .thumb_func ARM GAS /tmp/ccSWpjAw.s page 21 679 .fpu fpv4-sp-d16 681 HAL_EXTI_IRQHandler: 682 .LVL54: 683 .LFB139: 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @} 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief EXTI IO functions. 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** @verbatim 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** =============================================================================== 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ##### IO operation functions ##### 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** =============================================================================== 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** @endverbatim 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @{ 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Handle EXTI interrupt request. 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval none. 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 684 .loc 1 435 1 is_stmt 1 view -0 685 .cfi_startproc 686 @ args = 0, pretend = 0, frame = 0 687 @ frame_needed = 0, uses_anonymous_args = 0 688 .loc 1 435 1 is_stmt 0 view .LVU219 689 0000 08B5 push {r3, lr} 690 .LCFI11: 691 .cfi_def_cfa_offset 8 692 .cfi_offset 3, -8 693 .cfi_offset 14, -4 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 694 .loc 1 436 3 is_stmt 1 view .LVU220 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t maskline; 695 .loc 1 437 3 view .LVU221 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Compute line mask */ 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 696 .loc 1 440 3 view .LVU222 697 .loc 1 440 28 is_stmt 0 view .LVU223 698 0002 0368 ldr r3, [r0] 699 .loc 1 440 35 view .LVU224 700 0004 03F01F02 and r2, r3, #31 701 .loc 1 440 12 view .LVU225 702 0008 0123 movs r3, #1 703 000a 9340 lsls r3, r3, r2 704 .LVL55: 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Get pending bit */ 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval = (EXTI->PR & maskline); ARM GAS /tmp/ccSWpjAw.s page 22 705 .loc 1 443 3 is_stmt 1 view .LVU226 706 .loc 1 443 17 is_stmt 0 view .LVU227 707 000c 044A ldr r2, .L59 708 000e 5269 ldr r2, [r2, #20] 709 .LVL56: 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if (regval != 0x00u) 710 .loc 1 444 3 is_stmt 1 view .LVU228 711 .loc 1 444 6 is_stmt 0 view .LVU229 712 0010 1A42 tst r2, r3 713 0012 04D0 beq .L56 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Clear pending bit */ 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->PR = maskline; 714 .loc 1 447 5 is_stmt 1 view .LVU230 715 .loc 1 447 14 is_stmt 0 view .LVU231 716 0014 024A ldr r2, .L59 717 .LVL57: 718 .loc 1 447 14 view .LVU232 719 0016 5361 str r3, [r2, #20] 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Call callback */ 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** if (hexti->PendingCallback != NULL) 720 .loc 1 450 5 is_stmt 1 view .LVU233 721 .loc 1 450 14 is_stmt 0 view .LVU234 722 0018 4368 ldr r3, [r0, #4] 723 .LVL58: 724 .loc 1 450 8 view .LVU235 725 001a 03B1 cbz r3, .L56 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** hexti->PendingCallback(); 726 .loc 1 452 7 is_stmt 1 view .LVU236 727 001c 9847 blx r3 728 .LVL59: 729 .L56: 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 730 .loc 1 455 1 is_stmt 0 view .LVU237 731 001e 08BD pop {r3, pc} 732 .L60: 733 .align 2 734 .L59: 735 0020 003C0140 .word 1073822720 736 .cfi_endproc 737 .LFE139: 739 .section .text.HAL_EXTI_GetPending,"ax",%progbits 740 .align 1 741 .global HAL_EXTI_GetPending 742 .syntax unified 743 .thumb 744 .thumb_func 745 .fpu fpv4-sp-d16 747 HAL_EXTI_GetPending: 748 .LVL60: 749 .LFB140: 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** ARM GAS /tmp/ccSWpjAw.s page 23 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line. 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param Edge Specify which pending edge as to be checked. 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This parameter can be one of the following values: 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0. 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 750 .loc 1 467 1 is_stmt 1 view -0 751 .cfi_startproc 752 @ args = 0, pretend = 0, frame = 0 753 @ frame_needed = 0, uses_anonymous_args = 0 754 @ link register save eliminated. 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t regval; 755 .loc 1 468 3 view .LVU239 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t linepos; 756 .loc 1 469 3 view .LVU240 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t maskline; 757 .loc 1 470 3 view .LVU241 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Prevent unused argument(s) compilation warning */ 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** UNUSED(Edge); 758 .loc 1 473 3 view .LVU242 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check parameters */ 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 759 .loc 1 476 3 view .LVU243 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 760 .loc 1 477 3 view .LVU244 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 761 .loc 1 478 3 view .LVU245 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Compute line mask */ 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 762 .loc 1 481 3 view .LVU246 763 .loc 1 481 19 is_stmt 0 view .LVU247 764 0000 0368 ldr r3, [r0] 765 .loc 1 481 11 view .LVU248 766 0002 03F01F03 and r3, r3, #31 767 .LVL61: 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** maskline = (1uL << linepos); 768 .loc 1 482 3 is_stmt 1 view .LVU249 769 .loc 1 482 12 is_stmt 0 view .LVU250 770 0006 0120 movs r0, #1 771 .LVL62: 772 .loc 1 482 12 view .LVU251 773 0008 00FA03F2 lsl r2, r0, r3 774 .LVL63: 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* return 1 if bit is set else 0 */ 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** regval = ((EXTI->PR & maskline) >> linepos); 775 .loc 1 485 3 is_stmt 1 view .LVU252 776 .loc 1 485 18 is_stmt 0 view .LVU253 777 000c 0249 ldr r1, .L62 778 .LVL64: ARM GAS /tmp/ccSWpjAw.s page 24 779 .loc 1 485 18 view .LVU254 780 000e 4869 ldr r0, [r1, #20] 781 .loc 1 485 23 view .LVU255 782 0010 1040 ands r0, r0, r2 783 .LVL65: 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** return regval; 784 .loc 1 486 3 is_stmt 1 view .LVU256 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 785 .loc 1 487 1 is_stmt 0 view .LVU257 786 0012 D840 lsrs r0, r0, r3 787 .LVL66: 788 .loc 1 487 1 view .LVU258 789 0014 7047 bx lr 790 .L63: 791 0016 00BF .align 2 792 .L62: 793 0018 003C0140 .word 1073822720 794 .cfi_endproc 795 .LFE140: 797 .section .text.HAL_EXTI_ClearPending,"ax",%progbits 798 .align 1 799 .global HAL_EXTI_ClearPending 800 .syntax unified 801 .thumb 802 .thumb_func 803 .fpu fpv4-sp-d16 805 HAL_EXTI_ClearPending: 806 .LVL67: 807 .LFB141: 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line. 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param Edge Specify which pending edge as to be clear. 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This parameter can be one of the following values: 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval None. 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 808 .loc 1 499 1 is_stmt 1 view -0 809 .cfi_startproc 810 @ args = 0, pretend = 0, frame = 0 811 @ frame_needed = 0, uses_anonymous_args = 0 812 @ link register save eliminated. 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t maskline; 813 .loc 1 500 3 view .LVU260 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Prevent unused argument(s) compilation warning */ 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** UNUSED(Edge); 814 .loc 1 503 3 view .LVU261 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check parameters */ 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 815 .loc 1 506 3 view .LVU262 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); ARM GAS /tmp/ccSWpjAw.s page 25 816 .loc 1 507 3 view .LVU263 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 817 .loc 1 508 3 view .LVU264 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Compute line mask */ 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 818 .loc 1 511 3 view .LVU265 819 .loc 1 511 28 is_stmt 0 view .LVU266 820 0000 0268 ldr r2, [r0] 821 .loc 1 511 35 view .LVU267 822 0002 02F01F02 and r2, r2, #31 823 .loc 1 511 12 view .LVU268 824 0006 0123 movs r3, #1 825 0008 9340 lsls r3, r3, r2 826 .LVL68: 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Clear Pending bit */ 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->PR = maskline; 827 .loc 1 514 3 is_stmt 1 view .LVU269 828 .loc 1 514 12 is_stmt 0 view .LVU270 829 000a 014A ldr r2, .L65 830 000c 5361 str r3, [r2, #20] 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 831 .loc 1 515 1 view .LVU271 832 000e 7047 bx lr 833 .L66: 834 .align 2 835 .L65: 836 0010 003C0140 .word 1073822720 837 .cfi_endproc 838 .LFE141: 840 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits 841 .align 1 842 .global HAL_EXTI_GenerateSWI 843 .syntax unified 844 .thumb 845 .thumb_func 846 .fpu fpv4-sp-d16 848 HAL_EXTI_GenerateSWI: 849 .LVL69: 850 .LFB142: 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /** 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line. 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @param hexti Exti handle. 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** * @retval None. 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** */ 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** { 851 .loc 1 523 1 is_stmt 1 view -0 852 .cfi_startproc 853 @ args = 0, pretend = 0, frame = 0 854 @ frame_needed = 0, uses_anonymous_args = 0 855 @ link register save eliminated. 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** uint32_t maskline; 856 .loc 1 524 3 view .LVU273 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** ARM GAS /tmp/ccSWpjAw.s page 26 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Check parameters */ 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 857 .loc 1 527 3 view .LVU274 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 858 .loc 1 528 3 view .LVU275 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Compute line mask */ 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 859 .loc 1 531 3 view .LVU276 860 .loc 1 531 28 is_stmt 0 view .LVU277 861 0000 0268 ldr r2, [r0] 862 .loc 1 531 35 view .LVU278 863 0002 02F01F02 and r2, r2, #31 864 .loc 1 531 12 view .LVU279 865 0006 0123 movs r3, #1 866 0008 9340 lsls r3, r3, r2 867 .LVL70: 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** /* Generate Software interrupt */ 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** EXTI->SWIER = maskline; 868 .loc 1 534 3 is_stmt 1 view .LVU280 869 .loc 1 534 15 is_stmt 0 view .LVU281 870 000a 014A ldr r2, .L68 871 000c 1361 str r3, [r2, #16] 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c **** } 872 .loc 1 535 1 view .LVU282 873 000e 7047 bx lr 874 .L69: 875 .align 2 876 .L68: 877 0010 003C0140 .word 1073822720 878 .cfi_endproc 879 .LFE142: 881 .text 882 .Letext0: 883 .file 2 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h" 884 .file 3 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h" 885 .file 4 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 886 .file 5 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h" ARM GAS /tmp/ccSWpjAw.s page 27 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f4xx_hal_exti.c /tmp/ccSWpjAw.s:18 .text.HAL_EXTI_SetConfigLine:0000000000000000 $t /tmp/ccSWpjAw.s:26 .text.HAL_EXTI_SetConfigLine:0000000000000000 HAL_EXTI_SetConfigLine /tmp/ccSWpjAw.s:244 .text.HAL_EXTI_SetConfigLine:00000000000000d0 $d /tmp/ccSWpjAw.s:250 .text.HAL_EXTI_GetConfigLine:0000000000000000 $t /tmp/ccSWpjAw.s:257 .text.HAL_EXTI_GetConfigLine:0000000000000000 HAL_EXTI_GetConfigLine /tmp/ccSWpjAw.s:436 .text.HAL_EXTI_GetConfigLine:00000000000000a0 $d /tmp/ccSWpjAw.s:442 .text.HAL_EXTI_ClearConfigLine:0000000000000000 $t /tmp/ccSWpjAw.s:449 .text.HAL_EXTI_ClearConfigLine:0000000000000000 HAL_EXTI_ClearConfigLine /tmp/ccSWpjAw.s:589 .text.HAL_EXTI_ClearConfigLine:0000000000000080 $d /tmp/ccSWpjAw.s:595 .text.HAL_EXTI_RegisterCallback:0000000000000000 $t /tmp/ccSWpjAw.s:602 .text.HAL_EXTI_RegisterCallback:0000000000000000 HAL_EXTI_RegisterCallback /tmp/ccSWpjAw.s:635 .text.HAL_EXTI_GetHandle:0000000000000000 $t /tmp/ccSWpjAw.s:642 .text.HAL_EXTI_GetHandle:0000000000000000 HAL_EXTI_GetHandle /tmp/ccSWpjAw.s:674 .text.HAL_EXTI_IRQHandler:0000000000000000 $t /tmp/ccSWpjAw.s:681 .text.HAL_EXTI_IRQHandler:0000000000000000 HAL_EXTI_IRQHandler /tmp/ccSWpjAw.s:735 .text.HAL_EXTI_IRQHandler:0000000000000020 $d /tmp/ccSWpjAw.s:740 .text.HAL_EXTI_GetPending:0000000000000000 $t /tmp/ccSWpjAw.s:747 .text.HAL_EXTI_GetPending:0000000000000000 HAL_EXTI_GetPending /tmp/ccSWpjAw.s:793 .text.HAL_EXTI_GetPending:0000000000000018 $d /tmp/ccSWpjAw.s:798 .text.HAL_EXTI_ClearPending:0000000000000000 $t /tmp/ccSWpjAw.s:805 .text.HAL_EXTI_ClearPending:0000000000000000 HAL_EXTI_ClearPending /tmp/ccSWpjAw.s:836 .text.HAL_EXTI_ClearPending:0000000000000010 $d /tmp/ccSWpjAw.s:841 .text.HAL_EXTI_GenerateSWI:0000000000000000 $t /tmp/ccSWpjAw.s:848 .text.HAL_EXTI_GenerateSWI:0000000000000000 HAL_EXTI_GenerateSWI /tmp/ccSWpjAw.s:877 .text.HAL_EXTI_GenerateSWI:0000000000000010 $d NO UNDEFINED SYMBOLS