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