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

© Copyright (c) 2019 STMicroelectronics. 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * All rights reserved.

78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * This software component is licensed by ST under BSD 3-Clause license, 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * the "License"; You may not use this file except in compliance with the 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * License. You may obtain a copy of the License at: 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * opensource.org/licenses/BSD-3-Clause 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ****************************************************************************** 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Includes ------------------------------------------------------------------*/ 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #include "stm32g4xx_hal.h" 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ARM GAS /tmp/cciyAbUk.s page 3 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup STM32G4xx_HAL_Driver 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** MISRA C:2012 deviation rule has been granted for following rule: 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * of bounds [0,3] in following API : 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * HAL_EXTI_SetConfigLine 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * HAL_EXTI_GetConfigLine 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * HAL_EXTI_ClearConfigLine 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #ifdef HAL_EXTI_MODULE_ENABLED 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private typedef -----------------------------------------------------------*/ 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private defines ------------------------------------------------------------*/ 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @defgroup EXTI_Private_Constants EXTI Private Constants 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #define EXTI_MODE_OFFSET 0x08U /* 0x20: offset between MCU IMR/EMR registers * 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** #define EXTI_CONFIG_OFFSET 0x08U /* 0x20: offset between MCU Rising/Falling conf 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @} 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private macros ------------------------------------------------------------*/ 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private variables ---------------------------------------------------------*/ 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Private function prototypes -----------------------------------------------*/ 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Exported functions --------------------------------------------------------*/ 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group1 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Configuration functions 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @verbatim 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ##### Configuration functions ##### 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @endverbatim 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Set configuration of a dedicated Exti line. 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param pExtiConfig Pointer on EXTI configuration to be set. 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { ARM GAS /tmp/cciyAbUk.s page 4 27 .loc 1 146 0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 32 .LVL0: 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 33 .loc 1 154 0 34 0000 0028 cmp r0, #0 35 0002 3CD0 beq .L15 36 .loc 1 154 0 is_stmt 0 discriminator 1 37 0004 0029 cmp r1, #0 38 0006 3AD0 beq .L15 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameters */ 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(pExtiConfig->Line)); 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Assign line number to handle */ 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->Line = pExtiConfig->Line; 39 .loc 1 164 0 is_stmt 1 40 0008 0A68 ldr r2, [r1] 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 41 .loc 1 146 0 42 000a F0B4 push {r4, r5, r6, r7} 43 .LCFI0: 44 .cfi_def_cfa_offset 16 45 .cfi_offset 4, -16 46 .cfi_offset 5, -12 47 .cfi_offset 6, -8 48 .cfi_offset 7, -4 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 49 .loc 1 167 0 50 000c C2F30043 ubfx r3, r2, #16, #1 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 51 .loc 1 164 0 52 0010 0260 str r2, [r0] 53 .LVL1: 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line position */ 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 54 .loc 1 169 0 55 0012 02F01F04 and r4, r2, #31 56 .LVL2: 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); ARM GAS /tmp/cciyAbUk.s page 5 57 .loc 1 171 0 58 0016 0120 movs r0, #1 59 .LVL3: 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure triggers for configurable lines */ 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 60 .loc 1 174 0 61 0018 9501 lsls r5, r2, #6 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 62 .loc 1 171 0 63 001a 00FA04F0 lsl r0, r0, r4 64 .LVL4: 65 001e 4FEA4313 lsl r3, r3, #5 66 .loc 1 174 0 67 0022 15D5 bpl .L4 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger)); 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure rising trigger */ 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); 68 .loc 1 179 0 69 0024 214E ldr r6, .L22 70 .LVL5: 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) 71 .loc 1 183 0 72 0026 8F68 ldr r7, [r1, #8] 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 73 .loc 1 180 0 74 0028 9D59 ldr r5, [r3, r6] 75 .LVL6: 76 .loc 1 183 0 77 002a FF07 lsls r7, r7, #31 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; 78 .loc 1 185 0 79 002c 4CBF ite mi 80 002e 0543 orrmi r5, r5, r0 81 .LVL7: 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; 82 .loc 1 189 0 83 0030 8543 bicpl r5, r5, r0 84 .LVL8: 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store rising trigger mode */ 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 85 .loc 1 193 0 86 0032 9D51 str r5, [r3, r6] 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure falling trigger */ 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); ARM GAS /tmp/cciyAbUk.s page 6 87 .loc 1 196 0 88 0034 1E4E ldr r6, .L22+4 89 .LVL9: 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) 90 .loc 1 200 0 91 0036 8F68 ldr r7, [r1, #8] 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 92 .loc 1 197 0 93 0038 9D59 ldr r5, [r3, r6] 94 .LVL10: 95 .loc 1 200 0 96 003a BF07 lsls r7, r7, #30 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; 97 .loc 1 202 0 98 003c 4CBF ite mi 99 003e 0543 orrmi r5, r5, r0 100 .LVL11: 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; 101 .loc 1 206 0 102 0040 8543 bicpl r5, r5, r0 103 .LVL12: 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store falling trigger mode */ 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 104 .loc 1 210 0 105 0042 9D51 str r5, [r3, r6] 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure gpio port selection in case of gpio exti line */ 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 106 .loc 1 213 0 107 0044 0D68 ldr r5, [r1] 108 .LVL13: 109 0046 05F0C065 and r5, r5, #100663296 110 004a B5F1C06F cmp r5, #100663296 111 004e 18D0 beq .L21 112 .LVL14: 113 .L4: 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel)); 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure interrupt mode : read current mode */ ARM GAS /tmp/cciyAbUk.s page 7 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); 114 .loc 1 226 0 115 0050 03F18042 add r2, r3, #1073741824 116 0054 02F58232 add r2, r2, #66560 117 .LVL15: 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) 118 .loc 1 230 0 119 0058 4D68 ldr r5, [r1, #4] 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 120 .loc 1 227 0 121 005a 1468 ldr r4, [r2] 122 .LVL16: 123 .loc 1 230 0 124 005c ED07 lsls r5, r5, #31 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; 125 .loc 1 232 0 126 005e 4CBF ite mi 127 0060 0443 orrmi r4, r4, r0 128 .LVL17: 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; 129 .loc 1 236 0 130 0062 8443 bicpl r4, r4, r0 131 .LVL18: 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store interrupt mode */ 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 132 .loc 1 240 0 133 0064 1460 str r4, [r2] 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Configure event mode : read current mode */ 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Mask or set line */ 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) 134 .loc 1 247 0 135 0066 4C68 ldr r4, [r1, #4] 136 .LVL19: 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 137 .loc 1 243 0 138 0068 1249 ldr r1, .L22+8 139 .LVL20: 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 140 .loc 1 244 0 141 006a 5A58 ldr r2, [r3, r1] 142 .LVL21: 143 .loc 1 247 0 144 006c A407 lsls r4, r4, #30 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { ARM GAS /tmp/cciyAbUk.s page 8 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= maskline; 145 .loc 1 249 0 146 006e 4CBF ite mi 147 0070 1043 orrmi r0, r0, r2 148 .LVL22: 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~maskline; 149 .loc 1 253 0 150 0072 22EA0000 bicpl r0, r2, r0 151 .LVL23: 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store event mode */ 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 152 .loc 1 257 0 153 0076 5850 str r0, [r3, r1] 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 154 .loc 1 260 0 155 0078 F0BC pop {r4, r5, r6, r7} 156 .LCFI1: 157 .cfi_restore 7 158 .cfi_restore 6 159 .cfi_restore 5 160 .cfi_restore 4 161 .cfi_def_cfa_offset 0 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 162 .loc 1 259 0 163 007a 0020 movs r0, #0 164 .LVL24: 165 .loc 1 260 0 166 007c 7047 bx lr 167 .LVL25: 168 .L15: 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 169 .loc 1 156 0 170 007e 0120 movs r0, #1 171 .LVL26: 172 .loc 1 260 0 173 0080 7047 bx lr 174 .LVL27: 175 .L21: 176 .LCFI2: 177 .cfi_def_cfa_offset 16 178 .cfi_offset 4, -16 179 .cfi_offset 5, -12 180 .cfi_offset 6, -8 181 .cfi_offset 7, -4 182 0082 04F01C04 and r4, r4, #28 183 .LVL28: 184 0086 04F18044 add r4, r4, #1073741824 185 008a 04F58034 add r4, r4, #65536 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 186 .loc 1 219 0 ARM GAS /tmp/cciyAbUk.s page 9 187 008e 02F00302 and r2, r2, #3 188 .LVL29: 189 0092 9200 lsls r2, r2, #2 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 190 .loc 1 218 0 191 0094 A668 ldr r6, [r4, #8] 192 .LVL30: 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 193 .loc 1 220 0 194 0096 CD68 ldr r5, [r1, #12] 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 195 .loc 1 219 0 196 0098 0727 movs r7, #7 197 009a 9740 lsls r7, r7, r2 198 009c 26EA0706 bic r6, r6, r7 199 .LVL31: 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 200 .loc 1 220 0 201 00a0 05FA02F2 lsl r2, r5, r2 202 00a4 3243 orrs r2, r2, r6 203 .LVL32: 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 204 .loc 1 221 0 205 00a6 A260 str r2, [r4, #8] 206 00a8 D2E7 b .L4 207 .L23: 208 00aa 00BF .align 2 209 .L22: 210 00ac 08040140 .word 1073808392 211 00b0 0C040140 .word 1073808396 212 00b4 04040140 .word 1073808388 213 .cfi_endproc 214 .LFE329: 216 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits 217 .align 1 218 .p2align 2,,3 219 .global HAL_EXTI_GetConfigLine 220 .syntax unified 221 .thumb 222 .thumb_func 223 .fpu fpv4-sp-d16 225 HAL_EXTI_GetConfigLine: 226 .LFB330: 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Get configuration of a dedicated Exti line. 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param pExtiConfig Pointer on structure to store Exti configuration. 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 227 .loc 1 270 0 228 .cfi_startproc 229 @ args = 0, pretend = 0, frame = 0 230 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cciyAbUk.s page 10 231 @ link register save eliminated. 232 .LVL33: 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 233 .loc 1 278 0 234 0000 0028 cmp r0, #0 235 0002 3BD0 beq .L31 236 .loc 1 278 0 is_stmt 0 discriminator 1 237 0004 0029 cmp r1, #0 238 0006 39D0 beq .L31 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameter */ 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store handle line number to configuration structure */ 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Line = hexti->Line; 239 .loc 1 287 0 is_stmt 1 240 0008 0368 ldr r3, [r0] 241 000a 0B60 str r3, [r1] 242 .LVL34: 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 243 .loc 1 270 0 244 000c 70B4 push {r4, r5, r6} 245 .LCFI3: 246 .cfi_def_cfa_offset 12 247 .cfi_offset 4, -12 248 .cfi_offset 5, -8 249 .cfi_offset 6, -4 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset and line mask */ 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 250 .loc 1 290 0 251 000e C3F30045 ubfx r5, r3, #16, #1 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line position */ 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute mask */ 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 1] Get core mode : interrupt */ 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); 252 .loc 1 297 0 253 0012 6D01 lsls r5, r5, #5 254 0014 05F18042 add r2, r5, #1073741824 255 0018 02F58232 add r2, r2, #66560 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute mask */ 256 .loc 1 292 0 257 001c 03F01F06 and r6, r3, #31 258 .LVL35: ARM GAS /tmp/cciyAbUk.s page 11 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 259 .loc 1 298 0 260 0020 1068 ldr r0, [r2] 261 .LVL36: 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if selected line is enable */ 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_INTERRUPT; 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_NONE; 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get event mode */ 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); 262 .loc 1 311 0 263 0022 1E4C ldr r4, .L44 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 264 .loc 1 294 0 265 0024 0122 movs r2, #1 266 0026 B240 lsls r2, r2, r6 267 .LVL37: 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 268 .loc 1 301 0 269 0028 0242 tst r2, r0 270 002a 14BF ite ne 271 002c 0120 movne r0, #1 272 .LVL38: 273 002e 0020 moveq r0, #0 274 0030 4860 str r0, [r1, #4] 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 275 .loc 1 312 0 276 0032 2C59 ldr r4, [r5, r4] 277 .LVL39: 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if selected line is enable */ 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 278 .loc 1 315 0 279 0034 2242 tst r2, r4 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Mode |= EXTI_MODE_EVENT; 280 .loc 1 317 0 281 0036 1CBF itt ne 282 0038 40F00200 orrne r0, r0, #2 283 003c 4860 strne r0, [r1, #4] 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 2] Get trigger for configurable lines : rising */ 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 284 .loc 1 321 0 285 003e 13F00070 ands r0, r3, #33554432 286 0042 03D1 bne .L42 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; ARM GAS /tmp/cciyAbUk.s page 12 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING; 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get falling configuration */ 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 287 .loc 1 362 0 288 0044 C1E90200 strd r0, r0, [r1, #8] 289 .LVL40: 290 .L25: 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 291 .loc 1 366 0 292 0048 70BC pop {r4, r5, r6} 293 .LCFI4: 294 .cfi_remember_state 295 .cfi_restore 6 296 .cfi_restore 5 297 .cfi_restore 4 298 .cfi_def_cfa_offset 0 299 .LVL41: 300 004a 7047 bx lr 301 .LVL42: ARM GAS /tmp/cciyAbUk.s page 13 302 .L42: 303 .LCFI5: 304 .cfi_restore_state 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 305 .loc 1 323 0 306 004c 1448 ldr r0, .L44+4 307 .LVL43: 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = *regaddr; 308 .loc 1 337 0 309 004e 154C ldr r4, .L44+8 310 .LVL44: 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 311 .loc 1 324 0 312 0050 2858 ldr r0, [r5, r0] 313 .LVL45: 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 314 .loc 1 327 0 315 0052 0242 tst r2, r0 316 0054 14BF ite ne 317 0056 0120 movne r0, #1 318 .LVL46: 319 0058 0020 moveq r0, #0 320 005a 8860 str r0, [r1, #8] 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 321 .loc 1 338 0 322 005c 2C59 ldr r4, [r5, r4] 323 .LVL47: 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 324 .loc 1 341 0 325 005e 2242 tst r2, r4 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 326 .loc 1 343 0 327 0060 18BF it ne 328 0062 40F00200 orrne r0, r0, #2 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 329 .loc 1 347 0 330 0066 03F0C062 and r2, r3, #100663296 331 .LVL48: 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 332 .loc 1 343 0 333 006a 18BF it ne 334 006c 8860 strne r0, [r1, #8] 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 335 .loc 1 347 0 336 006e B2F1C06F cmp r2, #100663296 337 0072 05D0 beq .L43 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 338 .loc 1 356 0 339 0074 0020 movs r0, #0 340 0076 C860 str r0, [r1, #12] 341 .loc 1 366 0 342 0078 70BC pop {r4, r5, r6} 343 .LCFI6: 344 .cfi_restore 6 345 .cfi_restore 5 346 .cfi_restore 4 347 .cfi_def_cfa_offset 0 ARM GAS /tmp/cciyAbUk.s page 14 348 .LVL49: 349 007a 7047 bx lr 350 .LVL50: 351 .L31: 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 352 .loc 1 280 0 353 007c 0120 movs r0, #1 354 .LVL51: 355 .loc 1 366 0 356 007e 7047 bx lr 357 .LVL52: 358 .L43: 359 .LCFI7: 360 .cfi_def_cfa_offset 12 361 .cfi_offset 4, -12 362 .cfi_offset 5, -8 363 .cfi_offset 6, -4 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); 364 .loc 1 351 0 365 0080 B208 lsrs r2, r6, #2 366 0082 0948 ldr r0, .L44+12 367 0084 0232 adds r2, r2, #2 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 368 .loc 1 352 0 369 0086 03F00303 and r3, r3, #3 370 .LVL53: 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval >> (SYSCFG_EXTICR1_EXTI1_Pos * ((linepos & 0x03u))))); 371 .loc 1 351 0 372 008a 50F82220 ldr r2, [r0, r2, lsl #2] 373 .LVL54: 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 374 .loc 1 352 0 375 008e 9B00 lsls r3, r3, #2 376 0090 22FA03F3 lsr r3, r2, r3 377 0094 CB60 str r3, [r1, #12] 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 378 .loc 1 365 0 379 0096 0020 movs r0, #0 380 0098 D6E7 b .L25 381 .L45: 382 009a 00BF .align 2 383 .L44: 384 009c 04040140 .word 1073808388 385 00a0 08040140 .word 1073808392 386 00a4 0C040140 .word 1073808396 387 00a8 00000140 .word 1073807360 388 .cfi_endproc 389 .LFE330: 391 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits 392 .align 1 393 .p2align 2,,3 394 .global HAL_EXTI_ClearConfigLine 395 .syntax unified 396 .thumb 397 .thumb_func 398 .fpu fpv4-sp-d16 400 HAL_EXTI_ClearConfigLine: ARM GAS /tmp/cciyAbUk.s page 15 401 .LFB331: 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line. 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 402 .loc 1 375 0 403 .cfi_startproc 404 @ args = 0, pretend = 0, frame = 0 405 @ frame_needed = 0, uses_anonymous_args = 0 406 @ link register save eliminated. 407 .LVL55: 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (hexti == NULL) 408 .loc 1 383 0 409 0000 40B3 cbz r0, .L50 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 410 .loc 1 375 0 411 0002 F0B4 push {r4, r5, r6, r7} 412 .LCFI8: 413 .cfi_def_cfa_offset 16 414 .cfi_offset 4, -16 415 .cfi_offset 5, -12 416 .cfi_offset 6, -8 417 .cfi_offset 7, -4 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameter */ 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line register offset and line mask */ 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 418 .loc 1 392 0 419 0004 0568 ldr r5, [r0] 420 .LVL56: 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line position */ 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 1] Clear interrupt mode */ 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset)); 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ARM GAS /tmp/cciyAbUk.s page 16 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 2] Clear event mode */ 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset)); 421 .loc 1 404 0 422 0006 1E4F ldr r7, .L57 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line position */ 423 .loc 1 392 0 424 0008 C5F30044 ubfx r4, r5, #16, #1 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); 425 .loc 1 399 0 426 000c 6401 lsls r4, r4, #5 427 000e 04F18042 add r2, r4, #1073741824 428 0012 02F58232 add r2, r2, #66560 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ 429 .loc 1 394 0 430 0016 05F01F06 and r6, r5, #31 431 .LVL57: 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 432 .loc 1 396 0 433 001a 0123 movs r3, #1 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 434 .loc 1 400 0 435 001c 1168 ldr r1, [r2] 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 436 .loc 1 396 0 437 001e B340 lsls r3, r3, r6 438 .LVL58: 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 439 .loc 1 400 0 440 0020 DB43 mvns r3, r3 441 .LVL59: 442 0022 1940 ands r1, r1, r3 443 .LVL60: 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 444 .loc 1 401 0 445 0024 1160 str r1, [r2] 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); 446 .loc 1 405 0 447 0026 E259 ldr r2, [r4, r7] 448 0028 1A40 ands r2, r2, r3 449 .LVL61: 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 450 .loc 1 406 0 451 002a E251 str r2, [r4, r7] 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */ 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u) 452 .loc 1 409 0 453 002c 0268 ldr r2, [r0] 454 .LVL62: 455 002e 9201 lsls r2, r2, #6 456 0030 0DD5 bpl .L55 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset)); 457 .loc 1 411 0 458 0032 144F ldr r7, .L57+4 459 .LVL63: 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); ARM GAS /tmp/cciyAbUk.s page 17 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset)); 460 .loc 1 415 0 461 0034 1449 ldr r1, .L57+8 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); 462 .loc 1 412 0 463 0036 E259 ldr r2, [r4, r7] 464 0038 1A40 ands r2, r2, r3 465 .LVL64: 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 466 .loc 1 413 0 467 003a E251 str r2, [r4, r7] 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & ~maskline); 468 .loc 1 416 0 469 003c 6258 ldr r2, [r4, r1] 470 .LVL65: 471 003e 1340 ands r3, r3, r2 472 .LVL66: 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = regval; 473 .loc 1 417 0 474 0040 6350 str r3, [r4, r1] 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) 475 .loc 1 420 0 476 0042 0368 ldr r3, [r0] 477 .LVL67: 478 0044 03F0C063 and r3, r3, #100663296 479 0048 B3F1C06F cmp r3, #100663296 480 004c 04D0 beq .L56 481 .LVL68: 482 .L55: 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; 483 .loc 1 430 0 484 004e 0020 movs r0, #0 485 .LVL69: 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 486 .loc 1 431 0 487 0050 F0BC pop {r4, r5, r6, r7} 488 .LCFI9: 489 .cfi_restore 7 490 .cfi_restore 6 491 .cfi_restore 5 492 .cfi_restore 4 493 .cfi_def_cfa_offset 0 494 .LVL70: 495 0052 7047 bx lr ARM GAS /tmp/cciyAbUk.s page 18 496 .LVL71: 497 .L50: 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 498 .loc 1 385 0 499 0054 0120 movs r0, #1 500 .LVL72: 501 .loc 1 431 0 502 0056 7047 bx lr 503 .LVL73: 504 .L56: 505 .LCFI10: 506 .cfi_def_cfa_offset 16 507 .cfi_offset 4, -16 508 .cfi_offset 5, -12 509 .cfi_offset 6, -8 510 .cfi_offset 7, -4 511 0058 06F01C06 and r6, r6, #28 512 .LVL74: 513 005c 06F18046 add r6, r6, #1073741824 514 0060 06F58036 add r6, r6, #65536 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 515 .loc 1 425 0 516 0064 05F00303 and r3, r5, #3 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 517 .loc 1 424 0 518 0068 B268 ldr r2, [r6, #8] 519 .LVL75: 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 520 .loc 1 425 0 521 006a 9B00 lsls r3, r3, #2 522 006c 0721 movs r1, #7 523 .LVL76: 524 006e 01FA03F3 lsl r3, r1, r3 525 0072 22EA0303 bic r3, r2, r3 526 .LVL77: 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 527 .loc 1 426 0 528 0076 B360 str r3, [r6, #8] 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 529 .loc 1 430 0 530 0078 0020 movs r0, #0 531 .LVL78: 532 .loc 1 431 0 533 007a F0BC pop {r4, r5, r6, r7} 534 .LCFI11: 535 .cfi_restore 7 536 .cfi_restore 6 537 .cfi_restore 5 538 .cfi_restore 4 539 .cfi_def_cfa_offset 0 540 .LVL79: 541 007c 7047 bx lr 542 .L58: 543 007e 00BF .align 2 544 .L57: 545 0080 04040140 .word 1073808388 546 0084 08040140 .word 1073808392 ARM GAS /tmp/cciyAbUk.s page 19 547 0088 0C040140 .word 1073808396 548 .cfi_endproc 549 .LFE331: 551 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits 552 .align 1 553 .p2align 2,,3 554 .global HAL_EXTI_RegisterCallback 555 .syntax unified 556 .thumb 557 .thumb_func 558 .fpu fpv4-sp-d16 560 HAL_EXTI_RegisterCallback: 561 .LFB332: 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line. 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param CallbackID User callback identifier. 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback. 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 562 .loc 1 443 0 563 .cfi_startproc 564 @ args = 0, pretend = 0, frame = 0 565 @ frame_needed = 0, uses_anonymous_args = 0 566 @ link register save eliminated. 567 .LVL80: 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameters */ 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CB(CallbackID)); 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** switch (CallbackID) 568 .loc 1 449 0 569 0000 19B1 cbz r1, .L64 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* set common callback */ 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID: 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn; 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** break; 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** default: 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->PendingCallback = NULL; 570 .loc 1 457 0 571 0002 0023 movs r3, #0 572 0004 4360 str r3, [r0, #4] 573 .LVL81: 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** status = HAL_ERROR; 574 .loc 1 458 0 575 0006 0120 movs r0, #1 576 .LVL82: 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** break; 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } ARM GAS /tmp/cciyAbUk.s page 20 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return status; 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 577 .loc 1 463 0 578 0008 7047 bx lr 579 .LVL83: 580 .L64: 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** break; 581 .loc 1 453 0 582 000a 4260 str r2, [r0, #4] 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 583 .loc 1 444 0 584 000c 0846 mov r0, r1 585 .LVL84: 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 586 .loc 1 454 0 587 000e 7047 bx lr 588 .cfi_endproc 589 .LFE332: 591 .section .text.HAL_EXTI_GetHandle,"ax",%progbits 592 .align 1 593 .p2align 2,,3 594 .global HAL_EXTI_GetHandle 595 .syntax unified 596 .thumb 597 .thumb_func 598 .fpu fpv4-sp-d16 600 HAL_EXTI_GetHandle: 601 .LFB333: 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Store line number as handle private field. 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param ExtiLine Exti line number. 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB. 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval HAL Status. 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 602 .loc 1 474 0 603 .cfi_startproc 604 @ args = 0, pretend = 0, frame = 0 605 @ frame_needed = 0, uses_anonymous_args = 0 606 @ link register save eliminated. 607 .LVL85: 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check the parameters */ 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine)); 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check null pointer */ 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (hexti == NULL) 608 .loc 1 479 0 609 0000 10B1 cbz r0, .L67 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_ERROR; 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** else ARM GAS /tmp/cciyAbUk.s page 21 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Store line number as handle private field */ 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->Line = ExtiLine; 610 .loc 1 486 0 611 0002 0160 str r1, [r0] 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return HAL_OK; 612 .loc 1 488 0 613 0004 0020 movs r0, #0 614 .LVL86: 615 0006 7047 bx lr 616 .LVL87: 617 .L67: 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 618 .loc 1 481 0 619 0008 0120 movs r0, #1 620 .LVL88: 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 621 .loc 1 490 0 622 000a 7047 bx lr 623 .cfi_endproc 624 .LFE333: 626 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits 627 .align 1 628 .p2align 2,,3 629 .global HAL_EXTI_IRQHandler 630 .syntax unified 631 .thumb 632 .thumb_func 633 .fpu fpv4-sp-d16 635 HAL_EXTI_IRQHandler: 636 .LFB334: 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @} 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief EXTI IO functions. 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @verbatim 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ##### IO operation functions ##### 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** =============================================================================== 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** @endverbatim 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @{ 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Handle EXTI interrupt request. 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval none. 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) ARM GAS /tmp/cciyAbUk.s page 22 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 637 .loc 1 515 0 638 .cfi_startproc 639 @ args = 0, pretend = 0, frame = 0 640 @ frame_needed = 0, uses_anonymous_args = 0 641 @ link register save eliminated. 642 .LVL89: 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 643 .loc 1 522 0 644 0000 0368 ldr r3, [r0] 645 .LVL90: 646 0002 C3F30042 ubfx r2, r3, #16, #1 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 647 .loc 1 515 0 648 0006 30B4 push {r4, r5} 649 .LCFI12: 650 .cfi_def_cfa_offset 8 651 .cfi_offset 4, -8 652 .cfi_offset 5, -4 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get pending bit */ 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); 653 .loc 1 527 0 654 0008 5201 lsls r2, r2, #5 655 000a 084C ldr r4, .L76 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 656 .loc 1 524 0 657 000c 03F01F03 and r3, r3, #31 658 .LVL91: 659 0010 0121 movs r1, #1 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = (*regaddr & maskline); 660 .loc 1 528 0 661 0012 1559 ldr r5, [r2, r4] 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 662 .loc 1 524 0 663 0014 01FA03F3 lsl r3, r1, r3 664 .LVL92: 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (regval != 0x00u) 665 .loc 1 530 0 666 0018 1D42 tst r5, r3 667 001a 04D0 beq .L68 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Clear pending bit */ 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = maskline; 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Call pending callback */ 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** if (hexti->PendingCallback != NULL) 668 .loc 1 536 0 ARM GAS /tmp/cciyAbUk.s page 23 669 001c 4168 ldr r1, [r0, #4] 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 670 .loc 1 533 0 671 001e 1351 str r3, [r2, r4] 672 .LVL93: 673 .loc 1 536 0 674 0020 09B1 cbz r1, .L68 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** hexti->PendingCallback(); 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 675 .loc 1 541 0 676 0022 30BC pop {r4, r5} 677 .LCFI13: 678 .cfi_remember_state 679 .cfi_restore 5 680 .cfi_restore 4 681 .cfi_def_cfa_offset 0 682 .LVL94: 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 683 .loc 1 538 0 684 0024 0847 bx r1 @ indirect register sibling call 685 .LVL95: 686 .L68: 687 .LCFI14: 688 .cfi_restore_state 689 .loc 1 541 0 690 0026 30BC pop {r4, r5} 691 .LCFI15: 692 .cfi_restore 5 693 .cfi_restore 4 694 .cfi_def_cfa_offset 0 695 .LVL96: 696 0028 7047 bx lr 697 .L77: 698 002a 00BF .align 2 699 .L76: 700 002c 14040140 .word 1073808404 701 .cfi_endproc 702 .LFE334: 704 .section .text.HAL_EXTI_GetPending,"ax",%progbits 705 .align 1 706 .p2align 2,,3 707 .global HAL_EXTI_GetPending 708 .syntax unified 709 .thumb 710 .thumb_func 711 .fpu fpv4-sp-d16 713 HAL_EXTI_GetPending: 714 .LFB335: 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line. 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param Edge unused 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0. ARM GAS /tmp/cciyAbUk.s page 24 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 715 .loc 1 550 0 716 .cfi_startproc 717 @ args = 0, pretend = 0, frame = 0 718 @ frame_needed = 0, uses_anonymous_args = 0 719 @ link register save eliminated. 720 .LVL97: 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t regval; 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t linepos; 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameters */ 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** UNUSED(Edge); 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 721 .loc 1 563 0 722 0000 0368 ldr r3, [r0] 723 .LVL98: 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line position */ 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << linepos); 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get pending bit */ 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); 724 .loc 1 570 0 725 0002 0649 ldr r1, .L79 726 .LVL99: 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line position */ 727 .loc 1 563 0 728 0004 C3F30042 ubfx r2, r3, #16, #1 729 .loc 1 570 0 730 0008 5201 lsls r2, r2, #5 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ 731 .loc 1 565 0 732 000a 03F01F03 and r3, r3, #31 733 .LVL100: 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* return 1 if bit is set else 0 */ 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regval = ((*regaddr & maskline) >> linepos); 734 .loc 1 573 0 735 000e 5258 ldr r2, [r2, r1] 736 .LVL101: 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 737 .loc 1 567 0 738 0010 0120 movs r0, #1 739 .LVL102: 740 0012 9840 lsls r0, r0, r3 741 .LVL103: 742 .loc 1 573 0 ARM GAS /tmp/cciyAbUk.s page 25 743 0014 1040 ands r0, r0, r2 744 .LVL104: 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** return regval; 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 745 .loc 1 575 0 746 0016 D840 lsrs r0, r0, r3 747 .LVL105: 748 0018 7047 bx lr 749 .L80: 750 001a 00BF .align 2 751 .L79: 752 001c 14040140 .word 1073808404 753 .cfi_endproc 754 .LFE335: 756 .section .text.HAL_EXTI_ClearPending,"ax",%progbits 757 .align 1 758 .p2align 2,,3 759 .global HAL_EXTI_ClearPending 760 .syntax unified 761 .thumb 762 .thumb_func 763 .fpu fpv4-sp-d16 765 HAL_EXTI_ClearPending: 766 .LFB336: 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line. 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param Edge unused 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval None. 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 767 .loc 1 585 0 768 .cfi_startproc 769 @ args = 0, pretend = 0, frame = 0 770 @ frame_needed = 0, uses_anonymous_args = 0 771 @ link register save eliminated. 772 .LVL106: 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameters */ 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** UNUSED(Edge); 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line register offset */ 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 773 .loc 1 596 0 774 0000 0368 ldr r3, [r0] 775 .LVL107: 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** ARM GAS /tmp/cciyAbUk.s page 26 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Get pending register address */ 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->PR1 + (EXTI_CONFIG_OFFSET * offset)); 776 .loc 1 601 0 777 0002 0548 ldr r0, .L82 778 .LVL108: 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Compute line mask */ 779 .loc 1 596 0 780 0004 C3F30042 ubfx r2, r3, #16, #1 781 .loc 1 601 0 782 0008 5201 lsls r2, r2, #5 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 783 .loc 1 598 0 784 000a 03F01F03 and r3, r3, #31 785 .LVL109: 786 000e 0121 movs r1, #1 787 .LVL110: 788 0010 01FA03F3 lsl r3, r1, r3 789 .LVL111: 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Clear Pending bit */ 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = maskline; 790 .loc 1 604 0 791 0014 1350 str r3, [r2, r0] 792 .LVL112: 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 793 .loc 1 605 0 794 0016 7047 bx lr 795 .L83: 796 .align 2 797 .L82: 798 0018 14040140 .word 1073808404 799 .cfi_endproc 800 .LFE336: 802 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits 803 .align 1 804 .p2align 2,,3 805 .global HAL_EXTI_GenerateSWI 806 .syntax unified 807 .thumb 808 .thumb_func 809 .fpu fpv4-sp-d16 811 HAL_EXTI_GenerateSWI: 812 .LFB337: 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /** 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line. 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @param hexti Exti handle. 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** * @retval None. 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** */ 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** { 813 .loc 1 614 0 814 .cfi_startproc 815 @ args = 0, pretend = 0, frame = 0 816 @ frame_needed = 0, uses_anonymous_args = 0 817 @ link register save eliminated. ARM GAS /tmp/cciyAbUk.s page 27 818 .LVL113: 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** __IO uint32_t *regaddr; 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t maskline; 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** uint32_t offset; 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* Check parameter */ 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line register offset */ 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 819 .loc 1 624 0 820 0000 0368 ldr r3, [r0] 821 .LVL114: 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** regaddr = (&EXTI->SWIER1 + (EXTI_CONFIG_OFFSET * offset)); 822 .loc 1 628 0 823 0002 0548 ldr r0, .L85 824 .LVL115: 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** /* compute line mask */ 825 .loc 1 624 0 826 0004 C3F30042 ubfx r2, r3, #16, #1 827 .loc 1 628 0 828 0008 5201 lsls r2, r2, #5 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** 829 .loc 1 626 0 830 000a 03F01F03 and r3, r3, #31 831 .LVL116: 832 000e 0121 movs r1, #1 833 0010 01FA03F3 lsl r3, r1, r3 834 .LVL117: 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** *regaddr = maskline; 835 .loc 1 629 0 836 0014 1350 str r3, [r2, r0] 837 .LVL118: 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_exti.c **** } 838 .loc 1 630 0 839 0016 7047 bx lr 840 .L86: 841 .align 2 842 .L85: 843 0018 10040140 .word 1073808400 844 .cfi_endproc 845 .LFE337: 847 .text 848 .Letext0: 849 .file 2 "/usr/include/newlib/machine/_default_types.h" 850 .file 3 "/usr/include/newlib/sys/_stdint.h" 851 .file 4 "Drivers/CMSIS/Include/core_cm4.h" 852 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" 853 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 854 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 855 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h" 856 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h" 857 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" ARM GAS /tmp/cciyAbUk.s page 28 858 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" ARM GAS /tmp/cciyAbUk.s page 29 DEFINED SYMBOLS *ABS*:0000000000000000 stm32g4xx_hal_exti.c /tmp/cciyAbUk.s:16 .text.HAL_EXTI_SetConfigLine:0000000000000000 $t /tmp/cciyAbUk.s:24 .text.HAL_EXTI_SetConfigLine:0000000000000000 HAL_EXTI_SetConfigLine /tmp/cciyAbUk.s:210 .text.HAL_EXTI_SetConfigLine:00000000000000ac $d /tmp/cciyAbUk.s:217 .text.HAL_EXTI_GetConfigLine:0000000000000000 $t /tmp/cciyAbUk.s:225 .text.HAL_EXTI_GetConfigLine:0000000000000000 HAL_EXTI_GetConfigLine /tmp/cciyAbUk.s:384 .text.HAL_EXTI_GetConfigLine:000000000000009c $d /tmp/cciyAbUk.s:392 .text.HAL_EXTI_ClearConfigLine:0000000000000000 $t /tmp/cciyAbUk.s:400 .text.HAL_EXTI_ClearConfigLine:0000000000000000 HAL_EXTI_ClearConfigLine /tmp/cciyAbUk.s:545 .text.HAL_EXTI_ClearConfigLine:0000000000000080 $d /tmp/cciyAbUk.s:552 .text.HAL_EXTI_RegisterCallback:0000000000000000 $t /tmp/cciyAbUk.s:560 .text.HAL_EXTI_RegisterCallback:0000000000000000 HAL_EXTI_RegisterCallback /tmp/cciyAbUk.s:592 .text.HAL_EXTI_GetHandle:0000000000000000 $t /tmp/cciyAbUk.s:600 .text.HAL_EXTI_GetHandle:0000000000000000 HAL_EXTI_GetHandle /tmp/cciyAbUk.s:627 .text.HAL_EXTI_IRQHandler:0000000000000000 $t /tmp/cciyAbUk.s:635 .text.HAL_EXTI_IRQHandler:0000000000000000 HAL_EXTI_IRQHandler /tmp/cciyAbUk.s:700 .text.HAL_EXTI_IRQHandler:000000000000002c $d /tmp/cciyAbUk.s:705 .text.HAL_EXTI_GetPending:0000000000000000 $t /tmp/cciyAbUk.s:713 .text.HAL_EXTI_GetPending:0000000000000000 HAL_EXTI_GetPending /tmp/cciyAbUk.s:752 .text.HAL_EXTI_GetPending:000000000000001c $d /tmp/cciyAbUk.s:757 .text.HAL_EXTI_ClearPending:0000000000000000 $t /tmp/cciyAbUk.s:765 .text.HAL_EXTI_ClearPending:0000000000000000 HAL_EXTI_ClearPending /tmp/cciyAbUk.s:798 .text.HAL_EXTI_ClearPending:0000000000000018 $d /tmp/cciyAbUk.s:803 .text.HAL_EXTI_GenerateSWI:0000000000000000 $t /tmp/cciyAbUk.s:811 .text.HAL_EXTI_GenerateSWI:0000000000000000 HAL_EXTI_GenerateSWI /tmp/cciyAbUk.s:843 .text.HAL_EXTI_GenerateSWI:0000000000000018 $d NO UNDEFINED SYMBOLS