ARM GAS /tmp/ccoU2NQy.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 .syntax unified 19 .code 16 20 .thumb_func 21 .fpu softvfp 23 HAL_EXTI_SetConfigLine: 24 .LFB40: 25 .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 32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** (++) Falling 33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ARM GAS /tmp/ccoU2NQy.s page 2 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 **** 89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @addtogroup STM32F0xx_HAL_Driver 90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ ARM GAS /tmp/ccoU2NQy.s page 3 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 **** { 26 .loc 1 144 0 27 .cfi_startproc 28 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccoU2NQy.s page 4 29 @ frame_needed = 0, uses_anonymous_args = 0 30 .LVL0: 31 0000 70B5 push {r4, r5, r6, lr} 32 .LCFI0: 33 .cfi_def_cfa_offset 16 34 .cfi_offset 4, -16 35 .cfi_offset 5, -12 36 .cfi_offset 6, -8 37 .cfi_offset 14, -4 145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 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)) 38 .loc 1 150 0 39 0002 0028 cmp r0, #0 40 0004 53D0 beq .L11 41 .loc 1 150 0 is_stmt 0 discriminator 1 42 0006 0029 cmp r1, #0 43 0008 53D0 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)); 157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); 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; 44 .loc 1 160 0 is_stmt 1 45 000a 0B68 ldr r3, [r1] 46 000c 0360 str r3, [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); 47 .loc 1 163 0 48 000e 0C68 ldr r4, [r1] 49 0010 1F22 movs r2, #31 50 0012 2240 ands r2, r4 51 .LVL1: 164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 52 .loc 1 164 0 53 0014 0123 movs r3, #1 54 0016 9340 lsls r3, r3, r2 55 .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) 56 .loc 1 167 0 57 0018 A001 lsls r0, r4, #6 58 001a 13D5 bpl .L3 59 .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)); 170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ARM GAS /tmp/ccoU2NQy.s page 5 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) 60 .loc 1 173 0 61 001c 8868 ldr r0, [r1, #8] 62 001e C007 lsls r0, r0, #31 63 0020 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; 64 .loc 1 175 0 65 0022 254D ldr r5, .L15 66 0024 A868 ldr r0, [r5, #8] 67 0026 1843 orrs r0, r3 68 0028 A860 str r0, [r5, #8] 69 .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) 70 .loc 1 184 0 71 002a 8868 ldr r0, [r1, #8] 72 002c 8007 lsls r0, r0, #30 73 002e 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; 74 .loc 1 186 0 75 0030 214D ldr r5, .L15 76 0032 E868 ldr r0, [r5, #12] 77 0034 1843 orrs r0, r3 78 0036 E860 str r0, [r5, #12] 79 .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; 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) 80 .loc 1 195 0 81 0038 C025 movs r5, #192 82 003a ED04 lsls r5, r5, #19 83 003c 0868 ldr r0, [r1] 84 003e 2840 ands r0, r5 85 0040 A842 cmp r0, r5 86 0042 19D0 beq .L13 87 .LVL4: 88 .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)); ARM GAS /tmp/ccoU2NQy.s page 6 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) 89 .loc 1 209 0 90 0044 4A68 ldr r2, [r1, #4] 91 0046 D207 lsls r2, r2, #31 92 0048 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; 93 .loc 1 211 0 94 004a 1B48 ldr r0, .L15 95 004c 0268 ldr r2, [r0] 96 004e 1A43 orrs r2, r3 97 0050 0260 str r2, [r0] 98 .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) 99 .loc 1 220 0 100 0052 4A68 ldr r2, [r1, #4] 101 0054 9207 lsls r2, r2, #30 102 0056 24D4 bmi .L14 221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->EMR |= maskline; 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; 103 .loc 1 226 0 104 0058 1749 ldr r1, .L15 105 .LVL5: 106 005a 4A68 ldr r2, [r1, #4] 107 005c 9A43 bics r2, r3 108 005e 4A60 str r2, [r1, #4] 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; 109 .loc 1 229 0 110 0060 0020 movs r0, #0 111 .LVL6: 112 .L2: 230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 113 .loc 1 230 0 ARM GAS /tmp/ccoU2NQy.s page 7 114 @ sp needed 115 0062 70BD pop {r4, r5, r6, pc} 116 .LVL7: 117 .L4: 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 118 .loc 1 179 0 119 0064 144D ldr r5, .L15 120 0066 A868 ldr r0, [r5, #8] 121 0068 9843 bics r0, r3 122 006a A860 str r0, [r5, #8] 123 006c DDE7 b .L5 124 .L6: 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 125 .loc 1 190 0 126 006e 124D ldr r5, .L15 127 0070 E868 ldr r0, [r5, #12] 128 0072 9843 bics r0, r3 129 0074 E860 str r0, [r5, #12] 130 0076 DFE7 b .L7 131 .L13: 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 132 .loc 1 200 0 133 0078 9208 lsrs r2, r2, #2 134 .LVL8: 135 007a 104E ldr r6, .L15+4 136 007c 0232 adds r2, r2, #2 137 007e 9200 lsls r2, r2, #2 138 0080 9559 ldr r5, [r2, r6] 139 .LVL9: 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 140 .loc 1 201 0 141 0082 0320 movs r0, #3 142 0084 0440 ands r4, r0 143 .LVL10: 144 0086 A400 lsls r4, r4, #2 145 0088 0C30 adds r0, r0, #12 146 008a A040 lsls r0, r0, r4 147 008c 8543 bics r5, r0 148 .LVL11: 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 149 .loc 1 202 0 150 008e C868 ldr r0, [r1, #12] 151 0090 A040 lsls r0, r0, r4 152 0092 2843 orrs r0, r5 153 .LVL12: 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 154 .loc 1 203 0 155 0094 9051 str r0, [r2, r6] 156 0096 D5E7 b .L3 157 .LVL13: 158 .L8: 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 159 .loc 1 215 0 160 0098 0748 ldr r0, .L15 161 009a 0268 ldr r2, [r0] 162 009c 9A43 bics r2, r3 163 009e 0260 str r2, [r0] ARM GAS /tmp/ccoU2NQy.s page 8 164 00a0 D7E7 b .L9 165 .L14: 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 166 .loc 1 222 0 167 00a2 0549 ldr r1, .L15 168 .LVL14: 169 00a4 4A68 ldr r2, [r1, #4] 170 00a6 1343 orrs r3, r2 171 .LVL15: 172 00a8 4B60 str r3, [r1, #4] 229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 173 .loc 1 229 0 174 00aa 0020 movs r0, #0 175 00ac D9E7 b .L2 176 .LVL16: 177 .L11: 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 178 .loc 1 152 0 179 00ae 0120 movs r0, #1 180 .LVL17: 181 00b0 D7E7 b .L2 182 .LVL18: 183 .L12: 184 00b2 0120 movs r0, #1 185 .LVL19: 186 00b4 D5E7 b .L2 187 .L16: 188 00b6 C046 .align 2 189 .L15: 190 00b8 00040140 .word 1073808384 191 00bc 00000140 .word 1073807360 192 .cfi_endproc 193 .LFE40: 195 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits 196 .align 1 197 .global HAL_EXTI_GetConfigLine 198 .syntax unified 199 .code 16 200 .thumb_func 201 .fpu softvfp 203 HAL_EXTI_GetConfigLine: 204 .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 239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 205 .loc 1 239 0 206 .cfi_startproc 207 @ args = 0, pretend = 0, frame = 0 208 @ frame_needed = 0, uses_anonymous_args = 0 209 .LVL20: 210 0000 30B5 push {r4, r5, lr} ARM GAS /tmp/ccoU2NQy.s page 9 211 .LCFI1: 212 .cfi_def_cfa_offset 12 213 .cfi_offset 4, -12 214 .cfi_offset 5, -8 215 .cfi_offset 14, -4 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 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)) 216 .loc 1 245 0 217 0002 0028 cmp r0, #0 218 0004 46D0 beq .L27 219 .loc 1 245 0 is_stmt 0 discriminator 1 220 0006 0029 cmp r1, #0 221 0008 46D0 beq .L28 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)); 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; 222 .loc 1 254 0 is_stmt 1 223 000a 0068 ldr r0, [r0] 224 .LVL21: 225 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); 226 .loc 1 257 0 227 000e 1F24 movs r4, #31 228 0010 0440 ands r4, r0 229 .LVL22: 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 230 .loc 1 258 0 231 0012 0123 movs r3, #1 232 0014 A340 lsls r3, r3, r4 233 .LVL23: 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) 234 .loc 1 263 0 235 0016 214A ldr r2, .L30 236 0018 1268 ldr r2, [r2] 237 001a 1342 tst r3, r2 238 001c 22D0 beq .L19 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; 239 .loc 1 265 0 240 001e 0122 movs r2, #1 241 0020 4A60 str r2, [r1, #4] ARM GAS /tmp/ccoU2NQy.s page 10 242 .L20: 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) 243 .loc 1 274 0 244 0022 1E4A ldr r2, .L30 245 0024 5268 ldr r2, [r2, #4] 246 0026 1342 tst r3, r2 247 0028 03D0 beq .L21 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; 248 .loc 1 276 0 249 002a 0222 movs r2, #2 250 002c 4D68 ldr r5, [r1, #4] 251 002e 2A43 orrs r2, r5 252 0030 4A60 str r2, [r1, #4] 253 .L21: 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 **** /* 2] Get trigger for configurable lines : rising */ 280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 254 .loc 1 280 0 255 0032 8201 lsls r2, r0, #6 256 0034 29D5 bpl .L22 281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((EXTI->RTSR & maskline) != 0x00u) 257 .loc 1 283 0 258 0036 194A ldr r2, .L30 259 0038 9268 ldr r2, [r2, #8] 260 003a 1342 tst r3, r2 261 003c 15D0 beq .L23 284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING; 262 .loc 1 285 0 263 003e 0122 movs r2, #1 264 0040 8A60 str r2, [r1, #8] 265 .L24: 286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; 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) 266 .loc 1 294 0 267 0042 164A ldr r2, .L30 268 0044 D268 ldr r2, [r2, #12] 269 0046 1342 tst r3, r2 ARM GAS /tmp/ccoU2NQy.s page 11 270 0048 03D0 beq .L25 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; 271 .loc 1 296 0 272 004a 0223 movs r3, #2 273 .LVL24: 274 004c 8A68 ldr r2, [r1, #8] 275 004e 1343 orrs r3, r2 276 0050 8B60 str r3, [r1, #8] 277 .L25: 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) 278 .loc 1 300 0 279 0052 C022 movs r2, #192 280 0054 D204 lsls r2, r2, #19 281 0056 1040 ands r0, r2 282 0058 9042 cmp r0, r2 283 005a 09D0 beq .L29 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 **** else 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 284 .loc 1 309 0 285 005c 0023 movs r3, #0 286 005e CB60 str r3, [r1, #12] 310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* No Trigger selected */ 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_OK; 287 .loc 1 319 0 288 0060 0020 movs r0, #0 289 0062 16E0 b .L18 290 .LVL25: 291 .L19: 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 292 .loc 1 269 0 293 0064 0022 movs r2, #0 294 0066 4A60 str r2, [r1, #4] 295 0068 DBE7 b .L20 296 .L23: 289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 297 .loc 1 289 0 298 006a 0022 movs r2, #0 299 006c 8A60 str r2, [r1, #8] ARM GAS /tmp/ccoU2NQy.s page 12 300 006e E8E7 b .L24 301 .LVL26: 302 .L29: 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 303 .loc 1 304 0 304 0070 A308 lsrs r3, r4, #2 305 0072 0233 adds r3, r3, #2 306 0074 9B00 lsls r3, r3, #2 307 0076 0A4A ldr r2, .L30+4 308 0078 9B58 ldr r3, [r3, r2] 309 .LVL27: 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 310 .loc 1 305 0 311 007a 0322 movs r2, #3 312 007c A243 bics r2, r4 313 007e 9200 lsls r2, r2, #2 314 0080 9340 lsls r3, r3, r2 315 .LVL28: 316 0082 1B0E lsrs r3, r3, #24 317 0084 CB60 str r3, [r1, #12] 318 .loc 1 319 0 319 0086 0020 movs r0, #0 320 0088 03E0 b .L18 321 .LVL29: 322 .L22: 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 323 .loc 1 315 0 324 008a 0023 movs r3, #0 325 .LVL30: 326 008c 8B60 str r3, [r1, #8] 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 327 .loc 1 316 0 328 008e CB60 str r3, [r1, #12] 329 .loc 1 319 0 330 0090 0020 movs r0, #0 331 .LVL31: 332 .L18: 320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 333 .loc 1 320 0 334 @ sp needed 335 0092 30BD pop {r4, r5, pc} 336 .LVL32: 337 .L27: 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 338 .loc 1 247 0 339 0094 0120 movs r0, #1 340 .LVL33: 341 0096 FCE7 b .L18 342 .LVL34: 343 .L28: 344 0098 0120 movs r0, #1 345 .LVL35: 346 009a FAE7 b .L18 347 .L31: 348 .align 2 349 .L30: 350 009c 00040140 .word 1073808384 ARM GAS /tmp/ccoU2NQy.s page 13 351 00a0 00000140 .word 1073807360 352 .cfi_endproc 353 .LFE41: 355 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits 356 .align 1 357 .global HAL_EXTI_ClearConfigLine 358 .syntax unified 359 .code 16 360 .thumb_func 361 .fpu softvfp 363 HAL_EXTI_ClearConfigLine: 364 .LFB42: 321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line. 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) 328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 365 .loc 1 328 0 366 .cfi_startproc 367 @ args = 0, pretend = 0, frame = 0 368 @ frame_needed = 0, uses_anonymous_args = 0 369 .LVL36: 370 0000 30B5 push {r4, r5, lr} 371 .LCFI2: 372 .cfi_def_cfa_offset 12 373 .cfi_offset 4, -12 374 .cfi_offset 5, -8 375 .cfi_offset 14, -4 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check null pointer */ 334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (hexti == NULL) 376 .loc 1 334 0 377 0002 0028 cmp r0, #0 378 0004 2CD0 beq .L34 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_ERROR; 337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check the parameter */ 340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* compute line mask */ 343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 379 .loc 1 343 0 380 0006 0568 ldr r5, [r0] 381 0008 1F22 movs r2, #31 382 000a 2A40 ands r2, r5 383 .LVL37: 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 384 .loc 1 344 0 385 000c 0123 movs r3, #1 ARM GAS /tmp/ccoU2NQy.s page 14 386 000e 9340 lsls r3, r3, r2 387 .LVL38: 345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 1] Clear interrupt mode */ 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->IMR = (EXTI->IMR & ~maskline); 388 .loc 1 347 0 389 0010 1549 ldr r1, .L38 390 0012 0C68 ldr r4, [r1] 391 0014 DB43 mvns r3, r3 392 .LVL39: 393 0016 1C40 ands r4, r3 394 0018 0C60 str r4, [r1] 348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 2] Clear event mode */ 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->EMR = (EXTI->EMR & ~maskline); 395 .loc 1 350 0 396 001a 4C68 ldr r4, [r1, #4] 397 001c 1C40 ands r4, r3 398 001e 4C60 str r4, [r1, #4] 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */ 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u) 399 .loc 1 353 0 400 0020 0168 ldr r1, [r0] 401 0022 8901 lsls r1, r1, #6 402 0024 1ED5 bpl .L35 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->RTSR = (EXTI->RTSR & ~maskline); 403 .loc 1 355 0 404 0026 1049 ldr r1, .L38 405 0028 8C68 ldr r4, [r1, #8] 406 002a 1C40 ands r4, r3 407 002c 8C60 str r4, [r1, #8] 356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->FTSR = (EXTI->FTSR & ~maskline); 408 .loc 1 356 0 409 002e CC68 ldr r4, [r1, #12] 410 0030 2340 ands r3, r4 411 .LVL40: 412 0032 CB60 str r3, [r1, #12] 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) 413 .loc 1 359 0 414 0034 0368 ldr r3, [r0] 415 0036 C021 movs r1, #192 416 0038 C904 lsls r1, r1, #19 417 003a 0B40 ands r3, r1 418 003c 8B42 cmp r3, r1 419 003e 01D0 beq .L37 360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } ARM GAS /tmp/ccoU2NQy.s page 15 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_OK; 420 .loc 1 369 0 421 0040 0020 movs r0, #0 422 .LVL41: 423 0042 10E0 b .L33 424 .LVL42: 425 .L37: 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 426 .loc 1 363 0 427 0044 9208 lsrs r2, r2, #2 428 .LVL43: 429 0046 0948 ldr r0, .L38+4 430 .LVL44: 431 0048 0232 adds r2, r2, #2 432 004a 9200 lsls r2, r2, #2 433 004c 1158 ldr r1, [r2, r0] 434 .LVL45: 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 435 .loc 1 364 0 436 004e 0323 movs r3, #3 437 0050 1D40 ands r5, r3 438 .LVL46: 439 0052 AD00 lsls r5, r5, #2 440 0054 0C33 adds r3, r3, #12 441 0056 AB40 lsls r3, r3, r5 442 0058 9943 bics r1, r3 443 .LVL47: 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 444 .loc 1 365 0 445 005a 1150 str r1, [r2, r0] 446 .loc 1 369 0 447 005c 0020 movs r0, #0 448 005e 02E0 b .L33 449 .LVL48: 450 .L34: 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 451 .loc 1 336 0 452 0060 0120 movs r0, #1 453 .LVL49: 454 0062 00E0 b .L33 455 .LVL50: 456 .L35: 457 .loc 1 369 0 458 0064 0020 movs r0, #0 459 .LVL51: 460 .L33: 370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 461 .loc 1 370 0 462 @ sp needed 463 0066 30BD pop {r4, r5, pc} 464 .L39: 465 .align 2 466 .L38: 467 0068 00040140 .word 1073808384 468 006c 00000140 .word 1073807360 469 .cfi_endproc ARM GAS /tmp/ccoU2NQy.s page 16 470 .LFE42: 472 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits 473 .align 1 474 .global HAL_EXTI_RegisterCallback 475 .syntax unified 476 .code 16 477 .thumb_func 478 .fpu softvfp 480 HAL_EXTI_RegisterCallback: 481 .LFB43: 371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line. 374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param CallbackID User callback identifier. 376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. 377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback. 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb 381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 482 .loc 1 381 0 483 .cfi_startproc 484 @ args = 0, pretend = 0, frame = 0 485 @ frame_needed = 0, uses_anonymous_args = 0 486 @ link register save eliminated. 487 .LVL52: 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; 383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** switch (CallbackID) 488 .loc 1 384 0 489 0000 0029 cmp r1, #0 490 0002 02D1 bne .L44 385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID: 387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn; 491 .loc 1 387 0 492 0004 4260 str r2, [r0, #4] 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; 493 .loc 1 382 0 494 0006 0020 movs r0, #0 495 .LVL53: 496 .L41: 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** break; 389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** default: 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** status = HAL_ERROR; 392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** break; 393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return status; 396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 497 .loc 1 396 0 498 @ sp needed 499 0008 7047 bx lr 500 .LVL54: 501 .L44: ARM GAS /tmp/ccoU2NQy.s page 17 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** break; 502 .loc 1 391 0 503 000a 0120 movs r0, #1 504 .LVL55: 505 000c FCE7 b .L41 506 .cfi_endproc 507 .LFE43: 509 .section .text.HAL_EXTI_GetHandle,"ax",%progbits 510 .align 1 511 .global HAL_EXTI_GetHandle 512 .syntax unified 513 .code 16 514 .thumb_func 515 .fpu softvfp 517 HAL_EXTI_GetHandle: 518 .LFB44: 397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Store line number as handle private field. 400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param ExtiLine Exti line number. 402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB. 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval HAL Status. 404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 519 .loc 1 406 0 520 .cfi_startproc 521 @ args = 0, pretend = 0, frame = 0 522 @ frame_needed = 0, uses_anonymous_args = 0 523 @ link register save eliminated. 524 .LVL56: 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check the parameters */ 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine)); 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check null pointer */ 411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (hexti == NULL) 525 .loc 1 411 0 526 0000 0028 cmp r0, #0 527 0002 02D0 beq .L47 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_ERROR; 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** else 416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Store line number as handle private field */ 418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** hexti->Line = ExtiLine; 528 .loc 1 418 0 529 0004 0160 str r1, [r0] 419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return HAL_OK; 530 .loc 1 420 0 531 0006 0020 movs r0, #0 532 .LVL57: 533 .L46: 421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } ARM GAS /tmp/ccoU2NQy.s page 18 534 .loc 1 422 0 535 @ sp needed 536 0008 7047 bx lr 537 .LVL58: 538 .L47: 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 539 .loc 1 413 0 540 000a 0120 movs r0, #1 541 .LVL59: 542 000c FCE7 b .L46 543 .cfi_endproc 544 .LFE44: 546 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits 547 .align 1 548 .global HAL_EXTI_IRQHandler 549 .syntax unified 550 .code 16 551 .thumb_func 552 .fpu softvfp 554 HAL_EXTI_IRQHandler: 555 .LFB45: 423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 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 **** */ 427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief EXTI IO functions. 430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @verbatim 432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** =============================================================================== 433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** ##### IO operation functions ##### 434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** =============================================================================== 435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** @endverbatim 437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @{ 438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Handle EXTI interrupt request. 442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval none. 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) 446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 556 .loc 1 446 0 557 .cfi_startproc 558 @ args = 0, pretend = 0, frame = 0 559 @ frame_needed = 0, uses_anonymous_args = 0 560 .LVL60: 561 0000 10B5 push {r4, lr} 562 .LCFI3: 563 .cfi_def_cfa_offset 8 564 .cfi_offset 4, -8 565 .cfi_offset 14, -4 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; ARM GAS /tmp/ccoU2NQy.s page 19 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 566 .loc 1 451 0 567 0002 1F22 movs r2, #31 568 0004 0368 ldr r3, [r0] 569 0006 1A40 ands r2, r3 570 0008 0123 movs r3, #1 571 000a 9340 lsls r3, r3, r2 572 .LVL61: 452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Get pending bit */ 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = (EXTI->PR & maskline); 573 .loc 1 454 0 574 000c 054A ldr r2, .L50 575 000e 5269 ldr r2, [r2, #20] 576 .LVL62: 455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (regval != 0x00u) 577 .loc 1 455 0 578 0010 1342 tst r3, r2 579 0012 05D0 beq .L48 456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Clear pending bit */ 458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->PR = maskline; 580 .loc 1 458 0 581 0014 034A ldr r2, .L50 582 .LVL63: 583 0016 5361 str r3, [r2, #20] 459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Call callback */ 461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** if (hexti->PendingCallback != NULL) 584 .loc 1 461 0 585 0018 4368 ldr r3, [r0, #4] 586 .LVL64: 587 001a 002B cmp r3, #0 588 001c 00D0 beq .L48 462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** hexti->PendingCallback(); 589 .loc 1 463 0 590 001e 9847 blx r3 591 .LVL65: 592 .L48: 464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 593 .loc 1 466 0 594 @ sp needed 595 0020 10BD pop {r4, pc} 596 .L51: 597 0022 C046 .align 2 598 .L50: 599 0024 00040140 .word 1073808384 600 .cfi_endproc 601 .LFE45: 603 .section .text.HAL_EXTI_GetPending,"ax",%progbits 604 .align 1 605 .global HAL_EXTI_GetPending ARM GAS /tmp/ccoU2NQy.s page 20 606 .syntax unified 607 .code 16 608 .thumb_func 609 .fpu softvfp 611 HAL_EXTI_GetPending: 612 .LFB46: 467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line. 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param Edge Specify which pending edge as to be checked. 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be one of the following values: 473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0. 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 613 .loc 1 478 0 614 .cfi_startproc 615 @ args = 0, pretend = 0, frame = 0 616 @ frame_needed = 0, uses_anonymous_args = 0 617 @ link register save eliminated. 618 .LVL66: 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t regval; 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t linepos; 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check parameters */ 484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 619 .loc 1 489 0 620 0000 0268 ldr r2, [r0] 621 0002 1F23 movs r3, #31 622 0004 1340 ands r3, r2 623 .LVL67: 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << linepos); 624 .loc 1 490 0 625 0006 0120 movs r0, #1 626 .LVL68: 627 0008 9840 lsls r0, r0, r3 628 .LVL69: 491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* return 1 if bit is set else 0 */ 493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** regval = ((EXTI->PR & maskline) >> linepos); 629 .loc 1 493 0 630 000a 024A ldr r2, .L53 631 000c 5269 ldr r2, [r2, #20] 632 000e 1040 ands r0, r2 633 .LVL70: 634 0010 D840 lsrs r0, r0, r3 635 .LVL71: 494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** return regval; ARM GAS /tmp/ccoU2NQy.s page 21 495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 636 .loc 1 495 0 637 @ sp needed 638 0012 7047 bx lr 639 .L54: 640 .align 2 641 .L53: 642 0014 00040140 .word 1073808384 643 .cfi_endproc 644 .LFE46: 646 .section .text.HAL_EXTI_ClearPending,"ax",%progbits 647 .align 1 648 .global HAL_EXTI_ClearPending 649 .syntax unified 650 .code 16 651 .thumb_func 652 .fpu softvfp 654 HAL_EXTI_ClearPending: 655 .LFB47: 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line. 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param Edge Specify which pending edge as to be clear. 501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter can be one of the following values: 502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval None. 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 656 .loc 1 507 0 657 .cfi_startproc 658 @ args = 0, pretend = 0, frame = 0 659 @ frame_needed = 0, uses_anonymous_args = 0 660 @ link register save eliminated. 661 .LVL72: 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check parameters */ 511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 662 .loc 1 516 0 663 0000 0368 ldr r3, [r0] 664 0002 1F22 movs r2, #31 665 0004 1A40 ands r2, r3 666 0006 0123 movs r3, #1 667 0008 9340 lsls r3, r3, r2 668 .LVL73: 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Clear Pending bit */ 519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->PR = maskline; 669 .loc 1 519 0 ARM GAS /tmp/ccoU2NQy.s page 22 670 000a 014A ldr r2, .L56 671 000c 5361 str r3, [r2, #20] 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } 672 .loc 1 520 0 673 @ sp needed 674 000e 7047 bx lr 675 .L57: 676 .align 2 677 .L56: 678 0010 00040140 .word 1073808384 679 .cfi_endproc 680 .LFE47: 682 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits 683 .align 1 684 .global HAL_EXTI_GenerateSWI 685 .syntax unified 686 .code 16 687 .thumb_func 688 .fpu softvfp 690 HAL_EXTI_GenerateSWI: 691 .LFB48: 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /** 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line. 524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @param hexti Exti handle. 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** * @retval None. 526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** */ 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** { 692 .loc 1 528 0 693 .cfi_startproc 694 @ args = 0, pretend = 0, frame = 0 695 @ frame_needed = 0, uses_anonymous_args = 0 696 @ link register save eliminated. 697 .LVL74: 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** uint32_t maskline; 530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Check parameters */ 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Compute line mask */ 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 698 .loc 1 536 0 699 0000 0368 ldr r3, [r0] 700 0002 1F22 movs r2, #31 701 0004 1A40 ands r2, r3 702 0006 0123 movs r3, #1 703 0008 9340 lsls r3, r3, r2 704 .LVL75: 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** /* Generate Software interrupt */ 539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** EXTI->SWIER = maskline; 705 .loc 1 539 0 706 000a 014A ldr r2, .L59 707 000c 1361 str r3, [r2, #16] 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti.c **** } ARM GAS /tmp/ccoU2NQy.s page 23 708 .loc 1 540 0 709 @ sp needed 710 000e 7047 bx lr 711 .L60: 712 .align 2 713 .L59: 714 0010 00040140 .word 1073808384 715 .cfi_endproc 716 .LFE48: 718 .text 719 .Letext0: 720 .file 2 "/usr/include/newlib/machine/_default_types.h" 721 .file 3 "/usr/include/newlib/sys/_stdint.h" 722 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" 723 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h" 724 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h" 725 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_exti.h" 726 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" ARM GAS /tmp/ccoU2NQy.s page 24 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f0xx_hal_exti.c /tmp/ccoU2NQy.s:16 .text.HAL_EXTI_SetConfigLine:0000000000000000 $t /tmp/ccoU2NQy.s:23 .text.HAL_EXTI_SetConfigLine:0000000000000000 HAL_EXTI_SetConfigLine /tmp/ccoU2NQy.s:190 .text.HAL_EXTI_SetConfigLine:00000000000000b8 $d /tmp/ccoU2NQy.s:196 .text.HAL_EXTI_GetConfigLine:0000000000000000 $t /tmp/ccoU2NQy.s:203 .text.HAL_EXTI_GetConfigLine:0000000000000000 HAL_EXTI_GetConfigLine /tmp/ccoU2NQy.s:350 .text.HAL_EXTI_GetConfigLine:000000000000009c $d /tmp/ccoU2NQy.s:356 .text.HAL_EXTI_ClearConfigLine:0000000000000000 $t /tmp/ccoU2NQy.s:363 .text.HAL_EXTI_ClearConfigLine:0000000000000000 HAL_EXTI_ClearConfigLine /tmp/ccoU2NQy.s:467 .text.HAL_EXTI_ClearConfigLine:0000000000000068 $d /tmp/ccoU2NQy.s:473 .text.HAL_EXTI_RegisterCallback:0000000000000000 $t /tmp/ccoU2NQy.s:480 .text.HAL_EXTI_RegisterCallback:0000000000000000 HAL_EXTI_RegisterCallback /tmp/ccoU2NQy.s:510 .text.HAL_EXTI_GetHandle:0000000000000000 $t /tmp/ccoU2NQy.s:517 .text.HAL_EXTI_GetHandle:0000000000000000 HAL_EXTI_GetHandle /tmp/ccoU2NQy.s:547 .text.HAL_EXTI_IRQHandler:0000000000000000 $t /tmp/ccoU2NQy.s:554 .text.HAL_EXTI_IRQHandler:0000000000000000 HAL_EXTI_IRQHandler /tmp/ccoU2NQy.s:599 .text.HAL_EXTI_IRQHandler:0000000000000024 $d /tmp/ccoU2NQy.s:604 .text.HAL_EXTI_GetPending:0000000000000000 $t /tmp/ccoU2NQy.s:611 .text.HAL_EXTI_GetPending:0000000000000000 HAL_EXTI_GetPending /tmp/ccoU2NQy.s:642 .text.HAL_EXTI_GetPending:0000000000000014 $d /tmp/ccoU2NQy.s:647 .text.HAL_EXTI_ClearPending:0000000000000000 $t /tmp/ccoU2NQy.s:654 .text.HAL_EXTI_ClearPending:0000000000000000 HAL_EXTI_ClearPending /tmp/ccoU2NQy.s:678 .text.HAL_EXTI_ClearPending:0000000000000010 $d /tmp/ccoU2NQy.s:683 .text.HAL_EXTI_GenerateSWI:0000000000000000 $t /tmp/ccoU2NQy.s:690 .text.HAL_EXTI_GenerateSWI:0000000000000000 HAL_EXTI_GenerateSWI /tmp/ccoU2NQy.s:714 .text.HAL_EXTI_GenerateSWI:0000000000000010 $d NO UNDEFINED SYMBOLS