ARM GAS /tmp/ccqezB4L.s page 1 1 .cpu cortex-m0 2 .eabi_attribute 20, 1 3 .eabi_attribute 21, 1 4 .eabi_attribute 23, 3 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 1 9 .eabi_attribute 34, 0 10 .eabi_attribute 18, 4 11 .file "stm32f0xx_hal_exti.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.HAL_EXTI_SetConfigLine,"ax",%progbits 16 .align 1 17 .global HAL_EXTI_SetConfigLine 18 .arch armv6s-m 19 .syntax unified 20 .code 16 21 .thumb_func 22 .fpu softvfp 24 HAL_EXTI_SetConfigLine: 25 .LVL0: 26 .LFB40: 27 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c" 1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ****************************************************************************** 3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @file stm32f0xx_hal_exti.c 4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @author MCD Application Team 5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief EXTI HAL module driver. 6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * functionalities of the Extended Interrupts and events controller (EXTI) peripheral: 8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * + IO operation functions 10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * 11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @verbatim 12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ============================================================================== 13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ##### EXTI Peripheral features ##### 14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ============================================================================== 15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** [..] 16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (+) Each Exti line can be configured within this driver. 17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (+) Exti line can be configured in 3 different modes 19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Interrupt 20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Event 21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Both of them 22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (+) Configurable Exti lines can be configured with 3 different triggers 24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Rising 25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Falling 26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Both of them 27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (+) When set in interrupt mode, configurable Exti lines have two different 29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** interrupts pending registers which allow to distinguish which transition 30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** occurs: 31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Rising edge pending interrupt ARM GAS /tmp/ccqezB4L.s page 2 32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Falling 33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can 35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** be selected through multiplexer. 36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ##### How to use this driver ##### 38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ============================================================================== 39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** [..] 40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (#) Configure the EXTI line using HAL_EXTI_SetConfigLine(). 42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Choose the interrupt line number by setting "Line" member from 43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Configure the interrupt and/or event mode using "Mode" member from 45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) For configurable lines, configure rising and/or falling trigger 47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** "Trigger" member from EXTI_ConfigTypeDef structure. 48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel" 49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** member from GPIO_InitTypeDef structure. 50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (#) Get current Exti configuration of a dedicated line using 52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_EXTI_GetConfigLine(). 53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Provide exiting handle as parameter. 54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter. 55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (#) Clear Exti configuration of a dedicated line using HAL_EXTI_GetConfigLine(). 57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Provide exiting handle as parameter. 58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback(). 60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Provide exiting handle as first parameter. 61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Provide which callback will be registered using one value from 62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI_CallbackIDTypeDef. 63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Provide callback function pointer. 64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (#) Get interrupt pending bit using HAL_EXTI_GetPending(). 66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (#) Clear interrupt pending bit using HAL_EXTI_GetPending(). 68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). 70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @endverbatim 72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ****************************************************************************** 73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @attention 74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * 75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** *

© Copyright (c) 2019 STMicroelectronics. 76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * All rights reserved.

77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * 78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This software component is licensed by ST under BSD 3-Clause license, 79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * the "License"; You may not use this file except in compliance with the 80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * License. You may obtain a copy of the License at: 81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * opensource.org/licenses/BSD-3-Clause 82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * 83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ****************************************************************************** 84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Includes ------------------------------------------------------------------*/ 87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** #include "stm32f0xx_hal.h" 88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ARM GAS /tmp/ccqezB4L.s page 3 89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @addtogroup STM32F0xx_HAL_Driver 90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ 91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @addtogroup EXTI 94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ 95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** MISRA C:2012 deviation rule has been granted for following rule: 97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out 98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * of bounds [0,3] in following API : 99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * HAL_EXTI_SetConfigLine 100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * HAL_EXTI_GetConfigLine 101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * HAL_EXTI_ClearConfigLine 102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** #ifdef HAL_EXTI_MODULE_ENABLED 105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Private typedef -----------------------------------------------------------*/ 107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Private defines -----------------------------------------------------------*/ 108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @defgroup EXTI_Private_Constants EXTI Private Constants 109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ 110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @} 114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Private macros ------------------------------------------------------------*/ 117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Private variables ---------------------------------------------------------*/ 118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Private function prototypes -----------------------------------------------*/ 119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Exported functions --------------------------------------------------------*/ 120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions 122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ 123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group1 126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Configuration functions 127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * 128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @verbatim 129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** =============================================================================== 130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ##### Configuration functions ##### 131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** =============================================================================== 132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @endverbatim 134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ 135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Set configuration of a dedicated Exti line. 139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param pExtiConfig Pointer on EXTI configuration to be set. 141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 28 .loc 1 144 1 view -0 ARM GAS /tmp/ccqezB4L.s page 4 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 .loc 1 144 1 is_stmt 0 view .LVU1 33 0000 70B5 push {r4, r5, r6, lr} 34 .LCFI0: 35 .cfi_def_cfa_offset 16 36 .cfi_offset 4, -16 37 .cfi_offset 5, -12 38 .cfi_offset 6, -8 39 .cfi_offset 14, -4 145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 40 .loc 1 145 3 is_stmt 1 view .LVU2 146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 41 .loc 1 146 3 view .LVU3 147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 42 .loc 1 147 3 view .LVU4 148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check null pointer */ 150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 43 .loc 1 150 3 view .LVU5 44 .loc 1 150 6 is_stmt 0 view .LVU6 45 0002 0028 cmp r0, #0 46 0004 52D0 beq .L11 47 .loc 1 150 23 discriminator 1 view .LVU7 48 0006 0029 cmp r1, #0 49 0008 52D0 beq .L12 151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_ERROR; 153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check parameters */ 156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(pExtiConfig->Line)); 50 .loc 1 156 3 is_stmt 1 view .LVU8 157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); 51 .loc 1 157 3 view .LVU9 158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Assign line number to handle */ 160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** hexti->Line = pExtiConfig->Line; 52 .loc 1 160 3 view .LVU10 53 .loc 1 160 28 is_stmt 0 view .LVU11 54 000a 0C68 ldr r4, [r1] 55 .loc 1 160 15 view .LVU12 56 000c 0460 str r4, [r0] 161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 57 .loc 1 163 3 is_stmt 1 view .LVU13 58 .loc 1 163 11 is_stmt 0 view .LVU14 59 000e 1F22 movs r2, #31 60 0010 2240 ands r2, r4 61 .LVL1: 164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 62 .loc 1 164 3 is_stmt 1 view .LVU15 63 .loc 1 164 12 is_stmt 0 view .LVU16 64 0012 0123 movs r3, #1 65 0014 9340 lsls r3, r3, r2 ARM GAS /tmp/ccqezB4L.s page 5 66 .LVL2: 165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Configure triggers for configurable lines */ 167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 67 .loc 1 167 3 is_stmt 1 view .LVU17 68 .loc 1 167 6 is_stmt 0 view .LVU18 69 0016 A001 lsls r0, r4, #6 70 0018 13D5 bpl .L3 71 .LVL3: 168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger)); 72 .loc 1 169 5 is_stmt 1 view .LVU19 170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Configure rising trigger */ 172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Mask or set line */ 173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) 73 .loc 1 173 5 view .LVU20 74 .loc 1 173 8 is_stmt 0 view .LVU21 75 001a 8868 ldr r0, [r1, #8] 76 001c C007 lsls r0, r0, #31 77 001e 20D5 bpl .L4 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->RTSR |= maskline; 78 .loc 1 175 7 is_stmt 1 view .LVU22 79 .loc 1 175 18 is_stmt 0 view .LVU23 80 0020 244D ldr r5, .L14 81 0022 A868 ldr r0, [r5, #8] 82 0024 1843 orrs r0, r3 83 0026 A860 str r0, [r5, #8] 84 .L5: 176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->RTSR &= ~maskline; 180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Configure falling trigger */ 183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Mask or set line */ 184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) 85 .loc 1 184 5 is_stmt 1 view .LVU24 86 .loc 1 184 8 is_stmt 0 view .LVU25 87 0028 8868 ldr r0, [r1, #8] 88 002a 8007 lsls r0, r0, #30 89 002c 1ED5 bpl .L6 185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->FTSR |= maskline; 90 .loc 1 186 7 is_stmt 1 view .LVU26 91 .loc 1 186 18 is_stmt 0 view .LVU27 92 002e 214D ldr r5, .L14 93 0030 E868 ldr r0, [r5, #12] 94 0032 1843 orrs r0, r3 95 0034 E860 str r0, [r5, #12] 96 .L7: 187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->FTSR &= ~maskline; ARM GAS /tmp/ccqezB4L.s page 6 191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Configure gpio port selection in case of gpio exti line */ 195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 97 .loc 1 195 5 is_stmt 1 view .LVU28 98 .loc 1 195 28 is_stmt 0 view .LVU29 99 0036 C025 movs r5, #192 100 0038 ED04 lsls r5, r5, #19 101 003a 0868 ldr r0, [r1] 102 003c 2840 ands r0, r5 103 .loc 1 195 8 view .LVU30 104 003e A842 cmp r0, r5 105 0040 19D0 beq .L13 106 .LVL4: 107 .L3: 196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel)); 198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Configure interrupt mode : read current mode */ 208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Mask or set line */ 209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) 108 .loc 1 209 3 is_stmt 1 view .LVU31 109 .loc 1 209 6 is_stmt 0 view .LVU32 110 0042 4A68 ldr r2, [r1, #4] 111 0044 D207 lsls r2, r2, #31 112 0046 26D5 bpl .L8 210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->IMR |= maskline; 113 .loc 1 211 5 is_stmt 1 view .LVU33 114 .loc 1 211 15 is_stmt 0 view .LVU34 115 0048 1A48 ldr r0, .L14 116 004a 0268 ldr r2, [r0] 117 004c 1A43 orrs r2, r3 118 004e 0260 str r2, [r0] 119 .L9: 212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->IMR &= ~maskline; 216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Configure event mode : read current mode */ 219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Mask or set line */ 220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) 120 .loc 1 220 3 is_stmt 1 view .LVU35 121 .loc 1 220 19 is_stmt 0 view .LVU36 122 0050 4A68 ldr r2, [r1, #4] 123 .loc 1 220 6 view .LVU37 ARM GAS /tmp/ccqezB4L.s page 7 124 0052 9207 lsls r2, r2, #30 125 0054 24D5 bpl .L10 221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->EMR |= maskline; 126 .loc 1 222 5 is_stmt 1 view .LVU38 127 .loc 1 222 15 is_stmt 0 view .LVU39 128 0056 1749 ldr r1, .L14 129 .LVL5: 130 .loc 1 222 15 view .LVU40 131 0058 4A68 ldr r2, [r1, #4] 132 005a 1343 orrs r3, r2 133 .LVL6: 134 .loc 1 222 15 view .LVU41 135 005c 4B60 str r3, [r1, #4] 223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->EMR &= ~maskline; 227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_OK; 136 .loc 1 229 10 view .LVU42 137 005e 0020 movs r0, #0 138 .L2: 230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 139 .loc 1 230 1 view .LVU43 140 @ sp needed 141 0060 70BD pop {r4, r5, r6, pc} 142 .LVL7: 143 .L4: 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 144 .loc 1 179 7 is_stmt 1 view .LVU44 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 145 .loc 1 179 18 is_stmt 0 view .LVU45 146 0062 144D ldr r5, .L14 147 0064 A868 ldr r0, [r5, #8] 148 0066 9843 bics r0, r3 149 0068 A860 str r0, [r5, #8] 150 006a DDE7 b .L5 151 .L6: 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 152 .loc 1 190 7 is_stmt 1 view .LVU46 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 153 .loc 1 190 18 is_stmt 0 view .LVU47 154 006c 114D ldr r5, .L14 155 006e E868 ldr r0, [r5, #12] 156 0070 9843 bics r0, r3 157 0072 E860 str r0, [r5, #12] 158 0074 DFE7 b .L7 159 .L13: 197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 160 .loc 1 197 7 is_stmt 1 view .LVU48 198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 161 .loc 1 198 7 view .LVU49 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 162 .loc 1 200 7 view .LVU50 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); ARM GAS /tmp/ccqezB4L.s page 8 163 .loc 1 200 39 is_stmt 0 view .LVU51 164 0076 9208 lsrs r2, r2, #2 165 .LVL8: 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 166 .loc 1 200 14 view .LVU52 167 0078 0F4E ldr r6, .L14+4 168 007a 0232 adds r2, r2, #2 169 007c 9200 lsls r2, r2, #2 170 007e 9559 ldr r5, [r2, r6] 171 .LVL9: 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 172 .loc 1 201 7 is_stmt 1 view .LVU53 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 173 .loc 1 201 80 is_stmt 0 view .LVU54 174 0080 0320 movs r0, #3 175 0082 0440 ands r4, r0 176 .LVL10: 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 177 .loc 1 201 69 view .LVU55 178 0084 A400 lsls r4, r4, #2 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 179 .loc 1 201 40 view .LVU56 180 0086 0C30 adds r0, r0, #12 181 0088 A040 lsls r0, r0, r4 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 182 .loc 1 201 14 view .LVU57 183 008a 8543 bics r5, r0 184 .LVL11: 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 185 .loc 1 202 7 is_stmt 1 view .LVU58 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 186 .loc 1 202 39 is_stmt 0 view .LVU59 187 008c C868 ldr r0, [r1, #12] 188 008e A040 lsls r0, r0, r4 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 189 .loc 1 202 14 view .LVU60 190 0090 2843 orrs r0, r5 191 .LVL12: 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 192 .loc 1 203 7 is_stmt 1 view .LVU61 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 193 .loc 1 203 37 is_stmt 0 view .LVU62 194 0092 9051 str r0, [r2, r6] 195 0094 D5E7 b .L3 196 .LVL13: 197 .L8: 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 198 .loc 1 215 5 is_stmt 1 view .LVU63 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 199 .loc 1 215 15 is_stmt 0 view .LVU64 200 0096 0748 ldr r0, .L14 201 0098 0268 ldr r2, [r0] 202 009a 9A43 bics r2, r3 203 009c 0260 str r2, [r0] 204 009e D7E7 b .L9 205 .L10: 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } ARM GAS /tmp/ccqezB4L.s page 9 206 .loc 1 226 5 is_stmt 1 view .LVU65 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 207 .loc 1 226 15 is_stmt 0 view .LVU66 208 00a0 0449 ldr r1, .L14 209 .LVL14: 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 210 .loc 1 226 15 view .LVU67 211 00a2 4A68 ldr r2, [r1, #4] 212 00a4 9A43 bics r2, r3 213 00a6 4A60 str r2, [r1, #4] 229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 214 .loc 1 229 10 view .LVU68 215 00a8 0020 movs r0, #0 216 00aa D9E7 b .L2 217 .LVL15: 218 .L11: 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 219 .loc 1 152 12 view .LVU69 220 00ac 0120 movs r0, #1 221 .LVL16: 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 222 .loc 1 152 12 view .LVU70 223 00ae D7E7 b .L2 224 .LVL17: 225 .L12: 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 226 .loc 1 152 12 view .LVU71 227 00b0 0120 movs r0, #1 228 .LVL18: 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 229 .loc 1 152 12 view .LVU72 230 00b2 D5E7 b .L2 231 .L15: 232 .align 2 233 .L14: 234 00b4 00040140 .word 1073808384 235 00b8 00000140 .word 1073807360 236 .cfi_endproc 237 .LFE40: 239 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits 240 .align 1 241 .global HAL_EXTI_GetConfigLine 242 .syntax unified 243 .code 16 244 .thumb_func 245 .fpu softvfp 247 HAL_EXTI_GetConfigLine: 248 .LVL19: 249 .LFB41: 231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Get configuration of a dedicated Exti line. 234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param pExtiConfig Pointer on structure to store Exti configuration. 236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig ARM GAS /tmp/ccqezB4L.s page 10 239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 250 .loc 1 239 1 is_stmt 1 view -0 251 .cfi_startproc 252 @ args = 0, pretend = 0, frame = 0 253 @ frame_needed = 0, uses_anonymous_args = 0 254 .loc 1 239 1 is_stmt 0 view .LVU74 255 0000 30B5 push {r4, r5, lr} 256 .LCFI1: 257 .cfi_def_cfa_offset 12 258 .cfi_offset 4, -12 259 .cfi_offset 5, -8 260 .cfi_offset 14, -4 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 261 .loc 1 240 3 is_stmt 1 view .LVU75 241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 262 .loc 1 241 3 view .LVU76 242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 263 .loc 1 242 3 view .LVU77 243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check null pointer */ 245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 264 .loc 1 245 3 view .LVU78 265 .loc 1 245 6 is_stmt 0 view .LVU79 266 0002 0028 cmp r0, #0 267 0004 3FD0 beq .L23 268 .loc 1 245 23 discriminator 1 view .LVU80 269 0006 0029 cmp r1, #0 270 0008 3FD0 beq .L24 246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_ERROR; 248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check the parameter */ 251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 271 .loc 1 251 3 is_stmt 1 view .LVU81 252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Store handle line number to configuration structure */ 254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Line = hexti->Line; 272 .loc 1 254 3 view .LVU82 273 .loc 1 254 28 is_stmt 0 view .LVU83 274 000a 0068 ldr r0, [r0] 275 .LVL20: 276 .loc 1 254 21 view .LVU84 277 000c 0860 str r0, [r1] 255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 278 .loc 1 257 3 is_stmt 1 view .LVU85 279 .loc 1 257 11 is_stmt 0 view .LVU86 280 000e 1F24 movs r4, #31 281 0010 0440 ands r4, r0 282 .LVL21: 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 283 .loc 1 258 3 is_stmt 1 view .LVU87 284 .loc 1 258 12 is_stmt 0 view .LVU88 285 0012 0123 movs r3, #1 286 0014 A340 lsls r3, r3, r4 ARM GAS /tmp/ccqezB4L.s page 11 287 .LVL22: 259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 1] Get core mode : interrupt */ 261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check if selected line is enable */ 263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((EXTI->IMR & maskline) != 0x00u) 288 .loc 1 263 3 is_stmt 1 view .LVU89 289 .loc 1 263 12 is_stmt 0 view .LVU90 290 0016 1F4A ldr r2, .L28 291 0018 1268 ldr r2, [r2] 292 .loc 1 263 6 view .LVU91 293 001a 1342 tst r3, r2 294 001c 23D0 beq .L18 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_INTERRUPT; 295 .loc 1 265 5 is_stmt 1 view .LVU92 296 .loc 1 265 23 is_stmt 0 view .LVU93 297 001e 0122 movs r2, #1 298 0020 4A60 str r2, [r1, #4] 299 .L19: 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_NONE; 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get event mode */ 273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check if selected line is enable */ 274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((EXTI->EMR & maskline) != 0x00u) 300 .loc 1 274 3 is_stmt 1 view .LVU94 301 .loc 1 274 12 is_stmt 0 view .LVU95 302 0022 1C4A ldr r2, .L28 303 0024 5268 ldr r2, [r2, #4] 304 .loc 1 274 6 view .LVU96 305 0026 1342 tst r3, r2 306 0028 03D0 beq .L20 275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Mode |= EXTI_MODE_EVENT; 307 .loc 1 276 5 is_stmt 1 view .LVU97 308 .loc 1 276 23 is_stmt 0 view .LVU98 309 002a 0222 movs r2, #2 310 002c 4D68 ldr r5, [r1, #4] 311 002e 2A43 orrs r2, r5 312 0030 4A60 str r2, [r1, #4] 313 .L20: 277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get default Trigger and GPIOSel configuration */ 280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; 314 .loc 1 280 3 is_stmt 1 view .LVU99 315 .loc 1 280 24 is_stmt 0 view .LVU100 316 0032 0022 movs r2, #0 317 0034 8A60 str r2, [r1, #8] 281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 318 .loc 1 281 3 is_stmt 1 view .LVU101 319 .loc 1 281 24 is_stmt 0 view .LVU102 320 0036 CA60 str r2, [r1, #12] ARM GAS /tmp/ccqezB4L.s page 12 282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 2] Get trigger for configurable lines : rising */ 284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 321 .loc 1 284 3 is_stmt 1 view .LVU103 322 .loc 1 284 6 is_stmt 0 view .LVU104 323 0038 8201 lsls r2, r0, #6 324 003a 28D5 bpl .L25 285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((EXTI->RTSR & maskline) != 0x00u) 325 .loc 1 287 5 is_stmt 1 view .LVU105 326 .loc 1 287 14 is_stmt 0 view .LVU106 327 003c 154A ldr r2, .L28 328 003e 9268 ldr r2, [r2, #8] 329 .loc 1 287 8 view .LVU107 330 0040 1342 tst r3, r2 331 0042 01D0 beq .L21 288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING; 332 .loc 1 289 7 is_stmt 1 view .LVU108 333 .loc 1 289 28 is_stmt 0 view .LVU109 334 0044 0122 movs r2, #1 335 0046 8A60 str r2, [r1, #8] 336 .L21: 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get falling configuration */ 293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((EXTI->FTSR & maskline) != 0x00u) 337 .loc 1 294 5 is_stmt 1 view .LVU110 338 .loc 1 294 14 is_stmt 0 view .LVU111 339 0048 124A ldr r2, .L28 340 004a D268 ldr r2, [r2, #12] 341 .loc 1 294 8 view .LVU112 342 004c 1342 tst r3, r2 343 004e 03D0 beq .L22 295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; 344 .loc 1 296 7 is_stmt 1 view .LVU113 345 .loc 1 296 28 is_stmt 0 view .LVU114 346 0050 0223 movs r3, #2 347 .LVL23: 348 .loc 1 296 28 view .LVU115 349 0052 8A68 ldr r2, [r1, #8] 350 0054 1343 orrs r3, r2 351 0056 8B60 str r3, [r1, #8] 352 .L22: 297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 353 .loc 1 300 5 is_stmt 1 view .LVU116 354 .loc 1 300 28 is_stmt 0 view .LVU117 355 0058 C022 movs r2, #192 356 005a D204 lsls r2, r2, #19 357 005c 1040 ands r0, r2 358 .loc 1 300 8 view .LVU118 ARM GAS /tmp/ccqezB4L.s page 13 359 005e 9042 cmp r0, r2 360 0060 04D0 beq .L27 301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_OK; 361 .loc 1 309 10 view .LVU119 362 0062 0020 movs r0, #0 363 0064 14E0 b .L17 364 .LVL24: 365 .L18: 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 366 .loc 1 269 5 is_stmt 1 view .LVU120 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 367 .loc 1 269 23 is_stmt 0 view .LVU121 368 0066 0022 movs r2, #0 369 0068 4A60 str r2, [r1, #4] 370 006a DAE7 b .L19 371 .LVL25: 372 .L27: 302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 373 .loc 1 302 7 is_stmt 1 view .LVU122 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 374 .loc 1 304 7 view .LVU123 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 375 .loc 1 304 39 is_stmt 0 view .LVU124 376 006c A308 lsrs r3, r4, #2 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 377 .loc 1 304 14 view .LVU125 378 006e 0233 adds r3, r3, #2 379 0070 9B00 lsls r3, r3, #2 380 0072 094A ldr r2, .L28+4 381 0074 9B58 ldr r3, [r3, r2] 382 .LVL26: 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 383 .loc 1 305 7 is_stmt 1 view .LVU126 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 384 .loc 1 305 75 is_stmt 0 view .LVU127 385 0076 0322 movs r2, #3 386 0078 A243 bics r2, r4 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 387 .loc 1 305 68 view .LVU128 388 007a 9200 lsls r2, r2, #2 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 389 .loc 1 305 39 view .LVU129 390 007c 9340 lsls r3, r3, r2 391 .LVL27: 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 392 .loc 1 305 98 view .LVU130 393 007e 1B0E lsrs r3, r3, #24 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 394 .loc 1 305 28 view .LVU131 ARM GAS /tmp/ccqezB4L.s page 14 395 0080 CB60 str r3, [r1, #12] 396 .loc 1 309 10 view .LVU132 397 0082 0020 movs r0, #0 398 0084 04E0 b .L17 399 .LVL28: 400 .L23: 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 401 .loc 1 247 12 view .LVU133 402 0086 0120 movs r0, #1 403 .LVL29: 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 404 .loc 1 247 12 view .LVU134 405 0088 02E0 b .L17 406 .LVL30: 407 .L24: 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 408 .loc 1 247 12 view .LVU135 409 008a 0120 movs r0, #1 410 .LVL31: 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 411 .loc 1 247 12 view .LVU136 412 008c 00E0 b .L17 413 .LVL32: 414 .L25: 415 .loc 1 309 10 view .LVU137 416 008e 0020 movs r0, #0 417 .LVL33: 418 .L17: 310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 419 .loc 1 310 1 view .LVU138 420 @ sp needed 421 0090 30BD pop {r4, r5, pc} 422 .L29: 423 0092 C046 .align 2 424 .L28: 425 0094 00040140 .word 1073808384 426 0098 00000140 .word 1073807360 427 .cfi_endproc 428 .LFE41: 430 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits 431 .align 1 432 .global HAL_EXTI_ClearConfigLine 433 .syntax unified 434 .code 16 435 .thumb_func 436 .fpu softvfp 438 HAL_EXTI_ClearConfigLine: 439 .LVL34: 440 .LFB42: 311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line. 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) 318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { ARM GAS /tmp/ccqezB4L.s page 15 441 .loc 1 318 1 is_stmt 1 view -0 442 .cfi_startproc 443 @ args = 0, pretend = 0, frame = 0 444 @ frame_needed = 0, uses_anonymous_args = 0 445 .loc 1 318 1 is_stmt 0 view .LVU140 446 0000 30B5 push {r4, r5, lr} 447 .LCFI2: 448 .cfi_def_cfa_offset 12 449 .cfi_offset 4, -12 450 .cfi_offset 5, -8 451 .cfi_offset 14, -4 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 452 .loc 1 319 3 is_stmt 1 view .LVU141 320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 453 .loc 1 320 3 view .LVU142 321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 454 .loc 1 321 3 view .LVU143 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check null pointer */ 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (hexti == NULL) 455 .loc 1 324 3 view .LVU144 456 .loc 1 324 6 is_stmt 0 view .LVU145 457 0002 0028 cmp r0, #0 458 0004 2CD0 beq .L32 325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_ERROR; 327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check the parameter */ 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 459 .loc 1 330 3 is_stmt 1 view .LVU146 331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* compute line mask */ 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 460 .loc 1 333 3 view .LVU147 461 .loc 1 333 19 is_stmt 0 view .LVU148 462 0006 0568 ldr r5, [r0] 463 .loc 1 333 11 view .LVU149 464 0008 1F22 movs r2, #31 465 000a 2A40 ands r2, r5 466 .LVL35: 334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 467 .loc 1 334 3 is_stmt 1 view .LVU150 468 .loc 1 334 12 is_stmt 0 view .LVU151 469 000c 0123 movs r3, #1 470 000e 9340 lsls r3, r3, r2 471 .LVL36: 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 1] Clear interrupt mode */ 337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->IMR = (EXTI->IMR & ~maskline); 472 .loc 1 337 3 is_stmt 1 view .LVU152 473 .loc 1 337 20 is_stmt 0 view .LVU153 474 0010 1549 ldr r1, .L36 475 0012 0C68 ldr r4, [r1] 476 .loc 1 337 28 view .LVU154 477 0014 DB43 mvns r3, r3 478 .LVL37: ARM GAS /tmp/ccqezB4L.s page 16 479 .loc 1 337 26 view .LVU155 480 0016 1C40 ands r4, r3 481 .loc 1 337 13 view .LVU156 482 0018 0C60 str r4, [r1] 338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 2] Clear event mode */ 340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->EMR = (EXTI->EMR & ~maskline); 483 .loc 1 340 3 is_stmt 1 view .LVU157 484 .loc 1 340 20 is_stmt 0 view .LVU158 485 001a 4C68 ldr r4, [r1, #4] 486 .loc 1 340 26 view .LVU159 487 001c 1C40 ands r4, r3 488 .loc 1 340 13 view .LVU160 489 001e 4C60 str r4, [r1, #4] 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */ 343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u) 490 .loc 1 343 3 is_stmt 1 view .LVU161 491 .loc 1 343 6 is_stmt 0 view .LVU162 492 0020 0168 ldr r1, [r0] 493 0022 8901 lsls r1, r1, #6 494 0024 1ED5 bpl .L33 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->RTSR = (EXTI->RTSR & ~maskline); 495 .loc 1 345 5 is_stmt 1 view .LVU163 496 .loc 1 345 23 is_stmt 0 view .LVU164 497 0026 1049 ldr r1, .L36 498 0028 8C68 ldr r4, [r1, #8] 499 .loc 1 345 30 view .LVU165 500 002a 1C40 ands r4, r3 501 .loc 1 345 16 view .LVU166 502 002c 8C60 str r4, [r1, #8] 346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->FTSR = (EXTI->FTSR & ~maskline); 503 .loc 1 346 5 is_stmt 1 view .LVU167 504 .loc 1 346 23 is_stmt 0 view .LVU168 505 002e CC68 ldr r4, [r1, #12] 506 .loc 1 346 30 view .LVU169 507 0030 2340 ands r3, r4 508 .LVL38: 509 .loc 1 346 16 view .LVU170 510 0032 CB60 str r3, [r1, #12] 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) 511 .loc 1 349 5 is_stmt 1 view .LVU171 512 .loc 1 349 15 is_stmt 0 view .LVU172 513 0034 0368 ldr r3, [r0] 514 .loc 1 349 22 view .LVU173 515 0036 C021 movs r1, #192 516 0038 C904 lsls r1, r1, #19 517 003a 0B40 ands r3, r1 518 .loc 1 349 8 view .LVU174 519 003c 8B42 cmp r3, r1 520 003e 01D0 beq .L35 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ARM GAS /tmp/ccqezB4L.s page 17 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_OK; 521 .loc 1 359 10 view .LVU175 522 0040 0020 movs r0, #0 523 .LVL39: 524 .loc 1 359 10 view .LVU176 525 0042 10E0 b .L31 526 .LVL40: 527 .L35: 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 528 .loc 1 351 7 is_stmt 1 view .LVU177 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 529 .loc 1 353 7 view .LVU178 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 530 .loc 1 353 39 is_stmt 0 view .LVU179 531 0044 9208 lsrs r2, r2, #2 532 .LVL41: 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 533 .loc 1 353 14 view .LVU180 534 0046 0948 ldr r0, .L36+4 535 .LVL42: 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 536 .loc 1 353 14 view .LVU181 537 0048 0232 adds r2, r2, #2 538 004a 9200 lsls r2, r2, #2 539 004c 1158 ldr r1, [r2, r0] 540 .LVL43: 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 541 .loc 1 354 7 is_stmt 1 view .LVU182 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 542 .loc 1 354 80 is_stmt 0 view .LVU183 543 004e 0323 movs r3, #3 544 0050 1D40 ands r5, r3 545 .LVL44: 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 546 .loc 1 354 69 view .LVU184 547 0052 AD00 lsls r5, r5, #2 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 548 .loc 1 354 40 view .LVU185 549 0054 0C33 adds r3, r3, #12 550 0056 AB40 lsls r3, r3, r5 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 551 .loc 1 354 14 view .LVU186 552 0058 9943 bics r1, r3 553 .LVL45: 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 554 .loc 1 355 7 is_stmt 1 view .LVU187 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 555 .loc 1 355 37 is_stmt 0 view .LVU188 556 005a 1150 str r1, [r2, r0] 557 .loc 1 359 10 view .LVU189 558 005c 0020 movs r0, #0 ARM GAS /tmp/ccqezB4L.s page 18 559 005e 02E0 b .L31 560 .LVL46: 561 .L32: 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 562 .loc 1 326 12 view .LVU190 563 0060 0120 movs r0, #1 564 .LVL47: 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 565 .loc 1 326 12 view .LVU191 566 0062 00E0 b .L31 567 .LVL48: 568 .L33: 569 .loc 1 359 10 view .LVU192 570 0064 0020 movs r0, #0 571 .LVL49: 572 .L31: 360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 573 .loc 1 360 1 view .LVU193 574 @ sp needed 575 0066 30BD pop {r4, r5, pc} 576 .L37: 577 .align 2 578 .L36: 579 0068 00040140 .word 1073808384 580 006c 00000140 .word 1073807360 581 .cfi_endproc 582 .LFE42: 584 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits 585 .align 1 586 .global HAL_EXTI_RegisterCallback 587 .syntax unified 588 .code 16 589 .thumb_func 590 .fpu softvfp 592 HAL_EXTI_RegisterCallback: 593 .LVL50: 594 .LFB43: 361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line. 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param CallbackID User callback identifier. 366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. 367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback. 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb 371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 595 .loc 1 371 1 is_stmt 1 view -0 596 .cfi_startproc 597 @ args = 0, pretend = 0, frame = 0 598 @ frame_needed = 0, uses_anonymous_args = 0 599 @ link register save eliminated. 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; 600 .loc 1 372 3 view .LVU195 373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** switch (CallbackID) ARM GAS /tmp/ccqezB4L.s page 19 601 .loc 1 374 3 view .LVU196 602 0000 0029 cmp r1, #0 603 0002 02D1 bne .L40 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID: 377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn; 604 .loc 1 377 7 view .LVU197 605 .loc 1 377 30 is_stmt 0 view .LVU198 606 0004 4260 str r2, [r0, #4] 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** break; 607 .loc 1 378 7 is_stmt 1 view .LVU199 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 608 .loc 1 372 21 is_stmt 0 view .LVU200 609 0006 0800 movs r0, r1 610 .LVL51: 611 .loc 1 378 7 view .LVU201 612 0008 00E0 b .L39 613 .LVL52: 614 .L40: 379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** default: 381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** status = HAL_ERROR; 615 .loc 1 381 14 view .LVU202 616 000a 0120 movs r0, #1 617 .LVL53: 618 .L39: 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** break; 383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return status; 619 .loc 1 385 3 is_stmt 1 view .LVU203 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 620 .loc 1 386 1 is_stmt 0 view .LVU204 621 @ sp needed 622 000c 7047 bx lr 623 .cfi_endproc 624 .LFE43: 626 .section .text.HAL_EXTI_GetHandle,"ax",%progbits 627 .align 1 628 .global HAL_EXTI_GetHandle 629 .syntax unified 630 .code 16 631 .thumb_func 632 .fpu softvfp 634 HAL_EXTI_GetHandle: 635 .LVL54: 636 .LFB44: 387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Store line number as handle private field. 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param ExtiLine Exti line number. 392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB. 393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) 396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { ARM GAS /tmp/ccqezB4L.s page 20 637 .loc 1 396 1 is_stmt 1 view -0 638 .cfi_startproc 639 @ args = 0, pretend = 0, frame = 0 640 @ frame_needed = 0, uses_anonymous_args = 0 641 @ link register save eliminated. 397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check the parameters */ 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine)); 642 .loc 1 398 3 view .LVU206 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check null pointer */ 401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (hexti == NULL) 643 .loc 1 401 3 view .LVU207 644 .loc 1 401 6 is_stmt 0 view .LVU208 645 0000 0028 cmp r0, #0 646 0002 02D0 beq .L43 402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_ERROR; 404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Store line number as handle private field */ 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** hexti->Line = ExtiLine; 647 .loc 1 408 5 is_stmt 1 view .LVU209 648 .loc 1 408 17 is_stmt 0 view .LVU210 649 0004 0160 str r1, [r0] 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_OK; 650 .loc 1 410 5 is_stmt 1 view .LVU211 651 .loc 1 410 12 is_stmt 0 view .LVU212 652 0006 0020 movs r0, #0 653 .LVL55: 654 .L42: 411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 655 .loc 1 412 1 view .LVU213 656 @ sp needed 657 0008 7047 bx lr 658 .LVL56: 659 .L43: 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 660 .loc 1 403 12 view .LVU214 661 000a 0120 movs r0, #1 662 .LVL57: 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 663 .loc 1 403 12 view .LVU215 664 000c FCE7 b .L42 665 .cfi_endproc 666 .LFE44: 668 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits 669 .align 1 670 .global HAL_EXTI_IRQHandler 671 .syntax unified 672 .code 16 673 .thumb_func 674 .fpu softvfp 676 HAL_EXTI_IRQHandler: 677 .LVL58: ARM GAS /tmp/ccqezB4L.s page 21 678 .LFB45: 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @} 416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2 419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief EXTI IO functions. 420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * 421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @verbatim 422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** =============================================================================== 423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ##### IO operation functions ##### 424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** =============================================================================== 425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @endverbatim 427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ 428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Handle EXTI interrupt request. 432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval none. 434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 679 .loc 1 436 1 is_stmt 1 view -0 680 .cfi_startproc 681 @ args = 0, pretend = 0, frame = 0 682 @ frame_needed = 0, uses_anonymous_args = 0 683 .loc 1 436 1 is_stmt 0 view .LVU217 684 0000 10B5 push {r4, lr} 685 .LCFI3: 686 .cfi_def_cfa_offset 8 687 .cfi_offset 4, -8 688 .cfi_offset 14, -4 437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 689 .loc 1 437 3 is_stmt 1 view .LVU218 438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 690 .loc 1 438 3 view .LVU219 439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 691 .loc 1 441 3 view .LVU220 692 .loc 1 441 35 is_stmt 0 view .LVU221 693 0002 1F22 movs r2, #31 694 0004 0368 ldr r3, [r0] 695 0006 1A40 ands r2, r3 696 .loc 1 441 12 view .LVU222 697 0008 0123 movs r3, #1 698 000a 9340 lsls r3, r3, r2 699 .LVL59: 442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get pending bit */ 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = (EXTI->PR & maskline); 700 .loc 1 444 3 is_stmt 1 view .LVU223 701 .loc 1 444 17 is_stmt 0 view .LVU224 702 000c 054A ldr r2, .L46 ARM GAS /tmp/ccqezB4L.s page 22 703 000e 5269 ldr r2, [r2, #20] 704 .LVL60: 445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (regval != 0x00u) 705 .loc 1 445 3 is_stmt 1 view .LVU225 706 .loc 1 445 6 is_stmt 0 view .LVU226 707 0010 1342 tst r3, r2 708 0012 05D0 beq .L44 446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Clear pending bit */ 448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->PR = maskline; 709 .loc 1 448 5 is_stmt 1 view .LVU227 710 .loc 1 448 14 is_stmt 0 view .LVU228 711 0014 034A ldr r2, .L46 712 .LVL61: 713 .loc 1 448 14 view .LVU229 714 0016 5361 str r3, [r2, #20] 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Call callback */ 451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (hexti->PendingCallback != NULL) 715 .loc 1 451 5 is_stmt 1 view .LVU230 716 .loc 1 451 14 is_stmt 0 view .LVU231 717 0018 4368 ldr r3, [r0, #4] 718 .LVL62: 719 .loc 1 451 8 view .LVU232 720 001a 002B cmp r3, #0 721 001c 00D0 beq .L44 452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** hexti->PendingCallback(); 722 .loc 1 453 7 is_stmt 1 view .LVU233 723 001e 9847 blx r3 724 .LVL63: 725 .L44: 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 726 .loc 1 456 1 is_stmt 0 view .LVU234 727 @ sp needed 728 0020 10BD pop {r4, pc} 729 .L47: 730 0022 C046 .align 2 731 .L46: 732 0024 00040140 .word 1073808384 733 .cfi_endproc 734 .LFE45: 736 .section .text.HAL_EXTI_GetPending,"ax",%progbits 737 .align 1 738 .global HAL_EXTI_GetPending 739 .syntax unified 740 .code 16 741 .thumb_func 742 .fpu softvfp 744 HAL_EXTI_GetPending: 745 .LVL64: 746 .LFB46: 457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line. ARM GAS /tmp/ccqezB4L.s page 23 460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param Edge Specify which pending edge as to be checked. 462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be one of the following values: 463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0. 466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 747 .loc 1 468 1 is_stmt 1 view -0 748 .cfi_startproc 749 @ args = 0, pretend = 0, frame = 0 750 @ frame_needed = 0, uses_anonymous_args = 0 751 @ link register save eliminated. 469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 752 .loc 1 469 3 view .LVU236 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 753 .loc 1 470 3 view .LVU237 471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 754 .loc 1 471 3 view .LVU238 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check parameters */ 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 755 .loc 1 474 3 view .LVU239 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 756 .loc 1 475 3 view .LVU240 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 757 .loc 1 476 3 view .LVU241 477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 758 .loc 1 479 3 view .LVU242 759 .loc 1 479 19 is_stmt 0 view .LVU243 760 0000 0268 ldr r2, [r0] 761 .loc 1 479 11 view .LVU244 762 0002 1F23 movs r3, #31 763 0004 1340 ands r3, r2 764 .LVL65: 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 765 .loc 1 480 3 is_stmt 1 view .LVU245 766 .loc 1 480 12 is_stmt 0 view .LVU246 767 0006 0120 movs r0, #1 768 .LVL66: 769 .loc 1 480 12 view .LVU247 770 0008 9840 lsls r0, r0, r3 771 .LVL67: 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* return 1 if bit is set else 0 */ 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = ((EXTI->PR & maskline) >> linepos); 772 .loc 1 483 3 is_stmt 1 view .LVU248 773 .loc 1 483 18 is_stmt 0 view .LVU249 774 000a 024A ldr r2, .L49 775 000c 5269 ldr r2, [r2, #20] 776 .loc 1 483 23 view .LVU250 777 000e 1040 ands r0, r2 778 .LVL68: 779 .loc 1 483 10 view .LVU251 ARM GAS /tmp/ccqezB4L.s page 24 780 0010 D840 lsrs r0, r0, r3 781 .LVL69: 484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return regval; 782 .loc 1 484 3 is_stmt 1 view .LVU252 485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 783 .loc 1 485 1 is_stmt 0 view .LVU253 784 @ sp needed 785 0012 7047 bx lr 786 .L50: 787 .align 2 788 .L49: 789 0014 00040140 .word 1073808384 790 .cfi_endproc 791 .LFE46: 793 .section .text.HAL_EXTI_ClearPending,"ax",%progbits 794 .align 1 795 .global HAL_EXTI_ClearPending 796 .syntax unified 797 .code 16 798 .thumb_func 799 .fpu softvfp 801 HAL_EXTI_ClearPending: 802 .LVL70: 803 .LFB47: 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line. 489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param Edge Specify which pending edge as to be clear. 491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be one of the following values: 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval None. 495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 804 .loc 1 497 1 is_stmt 1 view -0 805 .cfi_startproc 806 @ args = 0, pretend = 0, frame = 0 807 @ frame_needed = 0, uses_anonymous_args = 0 808 @ link register save eliminated. 498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 809 .loc 1 498 3 view .LVU255 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check parameters */ 501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 810 .loc 1 501 3 view .LVU256 502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 811 .loc 1 502 3 view .LVU257 503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 812 .loc 1 503 3 view .LVU258 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 813 .loc 1 506 3 view .LVU259 814 .loc 1 506 28 is_stmt 0 view .LVU260 815 0000 0368 ldr r3, [r0] ARM GAS /tmp/ccqezB4L.s page 25 816 .loc 1 506 35 view .LVU261 817 0002 1F22 movs r2, #31 818 0004 1A40 ands r2, r3 819 .loc 1 506 12 view .LVU262 820 0006 0123 movs r3, #1 821 0008 9340 lsls r3, r3, r2 822 .LVL71: 507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Clear Pending bit */ 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->PR = maskline; 823 .loc 1 509 3 is_stmt 1 view .LVU263 824 .loc 1 509 12 is_stmt 0 view .LVU264 825 000a 014A ldr r2, .L52 826 000c 5361 str r3, [r2, #20] 510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 827 .loc 1 510 1 view .LVU265 828 @ sp needed 829 000e 7047 bx lr 830 .L53: 831 .align 2 832 .L52: 833 0010 00040140 .word 1073808384 834 .cfi_endproc 835 .LFE47: 837 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits 838 .align 1 839 .global HAL_EXTI_GenerateSWI 840 .syntax unified 841 .code 16 842 .thumb_func 843 .fpu softvfp 845 HAL_EXTI_GenerateSWI: 846 .LVL72: 847 .LFB48: 511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line. 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval None. 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 848 .loc 1 518 1 is_stmt 1 view -0 849 .cfi_startproc 850 @ args = 0, pretend = 0, frame = 0 851 @ frame_needed = 0, uses_anonymous_args = 0 852 @ link register save eliminated. 519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 853 .loc 1 519 3 view .LVU267 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check parameters */ 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 854 .loc 1 522 3 view .LVU268 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 855 .loc 1 523 3 view .LVU269 524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ ARM GAS /tmp/ccqezB4L.s page 26 526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 856 .loc 1 526 3 view .LVU270 857 .loc 1 526 28 is_stmt 0 view .LVU271 858 0000 0368 ldr r3, [r0] 859 .loc 1 526 35 view .LVU272 860 0002 1F22 movs r2, #31 861 0004 1A40 ands r2, r3 862 .loc 1 526 12 view .LVU273 863 0006 0123 movs r3, #1 864 0008 9340 lsls r3, r3, r2 865 .LVL73: 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Generate Software interrupt */ 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->SWIER = maskline; 866 .loc 1 529 3 is_stmt 1 view .LVU274 867 .loc 1 529 15 is_stmt 0 view .LVU275 868 000a 014A ldr r2, .L55 869 000c 1361 str r3, [r2, #16] 530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 870 .loc 1 530 1 view .LVU276 871 @ sp needed 872 000e 7047 bx lr 873 .L56: 874 .align 2 875 .L55: 876 0010 00040140 .word 1073808384 877 .cfi_endproc 878 .LFE48: 880 .text 881 .Letext0: 882 .file 2 "/usr/lib/gcc/arm-none-eabi/8.3.1/include/stdint.h" 883 .file 3 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" 884 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h" 885 .file 5 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h" 886 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_exti.h" 887 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" ARM GAS /tmp/ccqezB4L.s page 27 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f0xx_hal_exti.c /tmp/ccqezB4L.s:16 .text.HAL_EXTI_SetConfigLine:0000000000000000 $t /tmp/ccqezB4L.s:24 .text.HAL_EXTI_SetConfigLine:0000000000000000 HAL_EXTI_SetConfigLine /tmp/ccqezB4L.s:234 .text.HAL_EXTI_SetConfigLine:00000000000000b4 $d /tmp/ccqezB4L.s:240 .text.HAL_EXTI_GetConfigLine:0000000000000000 $t /tmp/ccqezB4L.s:247 .text.HAL_EXTI_GetConfigLine:0000000000000000 HAL_EXTI_GetConfigLine /tmp/ccqezB4L.s:425 .text.HAL_EXTI_GetConfigLine:0000000000000094 $d /tmp/ccqezB4L.s:431 .text.HAL_EXTI_ClearConfigLine:0000000000000000 $t /tmp/ccqezB4L.s:438 .text.HAL_EXTI_ClearConfigLine:0000000000000000 HAL_EXTI_ClearConfigLine /tmp/ccqezB4L.s:579 .text.HAL_EXTI_ClearConfigLine:0000000000000068 $d /tmp/ccqezB4L.s:585 .text.HAL_EXTI_RegisterCallback:0000000000000000 $t /tmp/ccqezB4L.s:592 .text.HAL_EXTI_RegisterCallback:0000000000000000 HAL_EXTI_RegisterCallback /tmp/ccqezB4L.s:627 .text.HAL_EXTI_GetHandle:0000000000000000 $t /tmp/ccqezB4L.s:634 .text.HAL_EXTI_GetHandle:0000000000000000 HAL_EXTI_GetHandle /tmp/ccqezB4L.s:669 .text.HAL_EXTI_IRQHandler:0000000000000000 $t /tmp/ccqezB4L.s:676 .text.HAL_EXTI_IRQHandler:0000000000000000 HAL_EXTI_IRQHandler /tmp/ccqezB4L.s:732 .text.HAL_EXTI_IRQHandler:0000000000000024 $d /tmp/ccqezB4L.s:737 .text.HAL_EXTI_GetPending:0000000000000000 $t /tmp/ccqezB4L.s:744 .text.HAL_EXTI_GetPending:0000000000000000 HAL_EXTI_GetPending /tmp/ccqezB4L.s:789 .text.HAL_EXTI_GetPending:0000000000000014 $d /tmp/ccqezB4L.s:794 .text.HAL_EXTI_ClearPending:0000000000000000 $t /tmp/ccqezB4L.s:801 .text.HAL_EXTI_ClearPending:0000000000000000 HAL_EXTI_ClearPending /tmp/ccqezB4L.s:833 .text.HAL_EXTI_ClearPending:0000000000000010 $d /tmp/ccqezB4L.s:838 .text.HAL_EXTI_GenerateSWI:0000000000000000 $t /tmp/ccqezB4L.s:845 .text.HAL_EXTI_GenerateSWI:0000000000000000 HAL_EXTI_GenerateSWI /tmp/ccqezB4L.s:876 .text.HAL_EXTI_GenerateSWI:0000000000000010 $d NO UNDEFINED SYMBOLS