ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.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 "stm32f3xx_hal_exti.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .rodata 20 .align 2 21 .LC0: 22 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti" 22 6572732F 22 53544D33 22 32463378 22 785F4841 23 0033 2E6300 .ascii ".c\000" 24 .section .text.HAL_EXTI_SetConfigLine,"ax",%progbits 25 .align 1 26 .global HAL_EXTI_SetConfigLine 27 .syntax unified 28 .thumb 29 .thumb_func 31 HAL_EXTI_SetConfigLine: 32 .LFB130: 33 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c" 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ****************************************************************************** 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @file stm32f3xx_hal_exti.c 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @author MCD Application Team 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief EXTI HAL module driver. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * functionalities of the Extended Interrupts and events controller (EXTI) peripheral: 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * + IO operation functions 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ****************************************************************************** 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @attention 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * Copyright (c) 2019 STMicroelectronics. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * All rights reserved. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This software is licensed under terms that can be found in the LICENSE file 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * in the root directory of this software component. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ****************************************************************************** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 2 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ============================================================================== 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### EXTI Peripheral features ##### 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ============================================================================== 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** [..] 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Each Exti line can be configured within this driver. 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Exti line can be configured in 3 different modes 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Interrupt 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Event 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Both of them 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Configurable Exti lines can be configured with 3 different triggers 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Rising 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Falling 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Both of them 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) When set in interrupt mode, configurable Exti lines have two different 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** interrupts pending registers which allow to distinguish which transition 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** occurs: 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Rising edge pending interrupt 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Falling 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** be selected through multiplexer. 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### How to use this driver ##### 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ============================================================================== 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** [..] 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Configure the EXTI line using HAL_EXTI_SetConfigLine(). 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Choose the interrupt line number by setting "Line" member from 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Configure the interrupt and/or event mode using "Mode" member from 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_ConfigTypeDef structure. 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) For configurable lines, configure rising and/or falling trigger 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** "Trigger" member from EXTI_ConfigTypeDef structure. 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel" 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** member from GPIO_InitTypeDef structure. 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Get current Exti configuration of a dedicated line using 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_EXTI_GetConfigLine(). 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as parameter. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Clear Exti configuration of a dedicated line using HAL_EXTI_ClearConfigLine(). 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as parameter. 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback(). 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as first parameter. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide which callback will be registered using one value from 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_CallbackIDTypeDef. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide callback function pointer. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Get interrupt pending bit using HAL_EXTI_GetPending(). 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Clear interrupt pending bit using HAL_EXTI_ClearPending(). ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 3 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Generate software interrupt using HAL_EXTI_GenerateSWI(). 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Includes ------------------------------------------------------------------*/ 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #include "stm32f3xx_hal.h" 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup STM32F3xx_HAL_Driver 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** MISRA C:2012 deviation rule has been granted for following rule: 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * of bounds [0,3] in following API : 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_SetConfigLine 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_GetConfigLine 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_ClearConfigLine 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #ifdef HAL_EXTI_MODULE_ENABLED 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private typedef -----------------------------------------------------------*/ 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private defines -----------------------------------------------------------*/ 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @defgroup EXTI_Private_Constants EXTI Private Constants 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #define EXTI_MODE_OFFSET 0x08u /* 0x20: offset between CPU IMR/EMR registers * 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #define EXTI_CONFIG_OFFSET 0x08u /* 0x20: offset between CPU Rising/Falling conf 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @} 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private macros ------------------------------------------------------------*/ 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private variables ---------------------------------------------------------*/ 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private function prototypes -----------------------------------------------*/ 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Exported functions --------------------------------------------------------*/ 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group1 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Configuration functions 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### Configuration functions ##### 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 4 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Set configuration of a dedicated Exti line. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pExtiConfig Pointer on EXTI configuration to be set. 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 34 .loc 1 144 1 35 .cfi_startproc 36 @ args = 0, pretend = 0, frame = 32 37 @ frame_needed = 1, uses_anonymous_args = 0 38 0000 80B5 push {r7, lr} 39 .LCFI0: 40 .cfi_def_cfa_offset 8 41 .cfi_offset 7, -8 42 .cfi_offset 14, -4 43 0002 88B0 sub sp, sp, #32 44 .LCFI1: 45 .cfi_def_cfa_offset 40 46 0004 00AF add r7, sp, #0 47 .LCFI2: 48 .cfi_def_cfa_register 7 49 0006 7860 str r0, [r7, #4] 50 0008 3960 str r1, [r7] 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 51 .loc 1 152 6 52 000a 7B68 ldr r3, [r7, #4] 53 000c 002B cmp r3, #0 54 000e 02D0 beq .L2 55 .loc 1 152 23 discriminator 1 56 0010 3B68 ldr r3, [r7] 57 0012 002B cmp r3, #0 58 0014 01D1 bne .L3 59 .L2: 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 60 .loc 1 154 12 61 0016 0123 movs r3, #1 62 0018 17E1 b .L4 63 .L3: 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(pExtiConfig->Line)); 64 .loc 1 158 3 65 001a 3B68 ldr r3, [r7] 66 001c 1A68 ldr r2, [r3] 67 001e 8D4B ldr r3, .L22 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 5 68 0020 1340 ands r3, r3, r2 69 0022 002B cmp r3, #0 70 0024 1BD1 bne .L5 71 .loc 1 158 3 is_stmt 0 discriminator 2 72 0026 3B68 ldr r3, [r7] 73 0028 1B68 ldr r3, [r3] 74 002a 03F0E063 and r3, r3, #117440512 75 002e B3F1807F cmp r3, #16777216 76 0032 0DD0 beq .L6 77 .loc 1 158 3 discriminator 3 78 0034 3B68 ldr r3, [r7] 79 0036 1B68 ldr r3, [r3] 80 0038 03F0E063 and r3, r3, #117440512 81 003c B3F1007F cmp r3, #33554432 82 0040 06D0 beq .L6 83 .loc 1 158 3 discriminator 5 84 0042 3B68 ldr r3, [r7] 85 0044 1B68 ldr r3, [r3] 86 0046 03F0E063 and r3, r3, #117440512 87 004a B3F1C06F cmp r3, #100663296 88 004e 06D1 bne .L5 89 .L6: 90 .loc 1 158 3 discriminator 8 91 0050 3B68 ldr r3, [r7] 92 0052 1A68 ldr r2, [r3] 93 0054 804B ldr r3, .L22+4 94 0056 1340 ands r3, r3, r2 95 0058 804A ldr r2, .L22+8 96 005a 9342 cmp r3, r2 97 005c 03D9 bls .L7 98 .L5: 99 .loc 1 158 3 discriminator 9 100 005e 9E21 movs r1, #158 101 0060 7F48 ldr r0, .L22+12 102 0062 FFF7FEFF bl assert_failed 103 .L7: 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode)); 104 .loc 1 159 3 is_stmt 1 105 0066 3B68 ldr r3, [r7] 106 0068 5B68 ldr r3, [r3, #4] 107 006a 03F00303 and r3, r3, #3 108 006e 002B cmp r3, #0 109 0070 05D0 beq .L8 110 .loc 1 159 3 is_stmt 0 discriminator 2 111 0072 3B68 ldr r3, [r7] 112 0074 5B68 ldr r3, [r3, #4] 113 0076 23F00303 bic r3, r3, #3 114 007a 002B cmp r3, #0 115 007c 03D0 beq .L9 116 .L8: 117 .loc 1 159 3 discriminator 3 118 007e 9F21 movs r1, #159 119 0080 7748 ldr r0, .L22+12 120 0082 FFF7FEFF bl assert_failed 121 .L9: 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Assign line number to handle */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 6 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->Line = pExtiConfig->Line; 122 .loc 1 162 28 is_stmt 1 123 0086 3B68 ldr r3, [r7] 124 0088 1A68 ldr r2, [r3] 125 .loc 1 162 15 126 008a 7B68 ldr r3, [r7, #4] 127 008c 1A60 str r2, [r3] 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Compute line register offset and line mask */ 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 128 .loc 1 165 25 129 008e 3B68 ldr r3, [r7] 130 0090 1B68 ldr r3, [r3] 131 .loc 1 165 49 132 0092 1B0C lsrs r3, r3, #16 133 .loc 1 165 10 134 0094 03F00103 and r3, r3, #1 135 0098 BB61 str r3, [r7, #24] 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 136 .loc 1 166 25 137 009a 3B68 ldr r3, [r7] 138 009c 1B68 ldr r3, [r3] 139 .loc 1 166 11 140 009e 03F01F03 and r3, r3, #31 141 00a2 7B61 str r3, [r7, #20] 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 142 .loc 1 167 12 143 00a4 0122 movs r2, #1 144 00a6 7B69 ldr r3, [r7, #20] 145 00a8 02FA03F3 lsl r3, r2, r3 146 00ac 3B61 str r3, [r7, #16] 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure triggers for configurable lines */ 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 147 .loc 1 170 19 148 00ae 3B68 ldr r3, [r7] 149 00b0 1B68 ldr r3, [r3] 150 .loc 1 170 26 151 00b2 03F00073 and r3, r3, #33554432 152 .loc 1 170 6 153 00b6 002B cmp r3, #0 154 00b8 00F08E80 beq .L10 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger)); 155 .loc 1 172 5 156 00bc 3B68 ldr r3, [r7] 157 00be 9B68 ldr r3, [r3, #8] 158 00c0 23F00303 bic r3, r3, #3 159 00c4 002B cmp r3, #0 160 00c6 03D0 beq .L11 161 .loc 1 172 5 is_stmt 0 discriminator 1 162 00c8 AC21 movs r1, #172 163 00ca 6548 ldr r0, .L22+12 164 00cc FFF7FEFF bl assert_failed 165 .L11: 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure rising trigger */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 7 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset)); 166 .loc 1 175 28 is_stmt 1 167 00d0 BB69 ldr r3, [r7, #24] 168 00d2 5A01 lsls r2, r3, #5 169 .loc 1 175 13 170 00d4 634B ldr r3, .L22+16 171 00d6 1344 add r3, r3, r2 172 00d8 FB60 str r3, [r7, #12] 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 173 .loc 1 176 12 174 00da FB68 ldr r3, [r7, #12] 175 00dc 1B68 ldr r3, [r3] 176 00de FB61 str r3, [r7, #28] 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u) 177 .loc 1 179 21 178 00e0 3B68 ldr r3, [r7] 179 00e2 9B68 ldr r3, [r3, #8] 180 .loc 1 179 31 181 00e4 03F00103 and r3, r3, #1 182 .loc 1 179 8 183 00e8 002B cmp r3, #0 184 00ea 04D0 beq .L12 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; 185 .loc 1 181 14 186 00ec FA69 ldr r2, [r7, #28] 187 00ee 3B69 ldr r3, [r7, #16] 188 00f0 1343 orrs r3, r3, r2 189 00f2 FB61 str r3, [r7, #28] 190 00f4 04E0 b .L13 191 .L12: 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 192 .loc 1 185 17 193 00f6 3B69 ldr r3, [r7, #16] 194 00f8 DB43 mvns r3, r3 195 .loc 1 185 14 196 00fa FA69 ldr r2, [r7, #28] 197 00fc 1340 ands r3, r3, r2 198 00fe FB61 str r3, [r7, #28] 199 .L13: 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store rising trigger mode */ 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 200 .loc 1 189 14 201 0100 FB68 ldr r3, [r7, #12] 202 0102 FA69 ldr r2, [r7, #28] 203 0104 1A60 str r2, [r3] 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure falling trigger */ 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset)); 204 .loc 1 192 28 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 8 205 0106 BB69 ldr r3, [r7, #24] 206 0108 5A01 lsls r2, r3, #5 207 .loc 1 192 13 208 010a 574B ldr r3, .L22+20 209 010c 1344 add r3, r3, r2 210 010e FB60 str r3, [r7, #12] 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 211 .loc 1 193 12 212 0110 FB68 ldr r3, [r7, #12] 213 0112 1B68 ldr r3, [r3] 214 0114 FB61 str r3, [r7, #28] 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u) 215 .loc 1 196 21 216 0116 3B68 ldr r3, [r7] 217 0118 9B68 ldr r3, [r3, #8] 218 .loc 1 196 31 219 011a 03F00203 and r3, r3, #2 220 .loc 1 196 8 221 011e 002B cmp r3, #0 222 0120 04D0 beq .L14 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; 223 .loc 1 198 14 224 0122 FA69 ldr r2, [r7, #28] 225 0124 3B69 ldr r3, [r7, #16] 226 0126 1343 orrs r3, r3, r2 227 0128 FB61 str r3, [r7, #28] 228 012a 04E0 b .L15 229 .L14: 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 230 .loc 1 202 17 231 012c 3B69 ldr r3, [r7, #16] 232 012e DB43 mvns r3, r3 233 .loc 1 202 14 234 0130 FA69 ldr r2, [r7, #28] 235 0132 1340 ands r3, r3, r2 236 0134 FB61 str r3, [r7, #28] 237 .L15: 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store falling trigger mode */ 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 238 .loc 1 206 14 239 0136 FB68 ldr r3, [r7, #12] 240 0138 FA69 ldr r2, [r7, #28] 241 013a 1A60 str r2, [r3] 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure gpio port selection in case of gpio exti line */ 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 242 .loc 1 209 21 243 013c 3B68 ldr r3, [r7] 244 013e 1B68 ldr r3, [r3] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 9 245 .loc 1 209 28 246 0140 03F0C063 and r3, r3, #100663296 247 .loc 1 209 8 248 0144 B3F1C06F cmp r3, #100663296 249 0148 46D1 bne .L10 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel)); 250 .loc 1 211 7 251 014a 3B68 ldr r3, [r7] 252 014c DB68 ldr r3, [r3, #12] 253 014e 002B cmp r3, #0 254 0150 17D0 beq .L16 255 .loc 1 211 7 is_stmt 0 discriminator 1 256 0152 3B68 ldr r3, [r7] 257 0154 DB68 ldr r3, [r3, #12] 258 0156 012B cmp r3, #1 259 0158 13D0 beq .L16 260 .loc 1 211 7 discriminator 2 261 015a 3B68 ldr r3, [r7] 262 015c DB68 ldr r3, [r3, #12] 263 015e 022B cmp r3, #2 264 0160 0FD0 beq .L16 265 .loc 1 211 7 discriminator 3 266 0162 3B68 ldr r3, [r7] 267 0164 DB68 ldr r3, [r3, #12] 268 0166 032B cmp r3, #3 269 0168 0BD0 beq .L16 270 .loc 1 211 7 discriminator 4 271 016a 3B68 ldr r3, [r7] 272 016c DB68 ldr r3, [r3, #12] 273 016e 042B cmp r3, #4 274 0170 07D0 beq .L16 275 .loc 1 211 7 discriminator 5 276 0172 3B68 ldr r3, [r7] 277 0174 DB68 ldr r3, [r3, #12] 278 0176 052B cmp r3, #5 279 0178 03D0 beq .L16 280 .loc 1 211 7 discriminator 6 281 017a D321 movs r1, #211 282 017c 3848 ldr r0, .L22+12 283 017e FFF7FEFF bl assert_failed 284 .L16: 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 285 .loc 1 212 7 is_stmt 1 286 0182 7B69 ldr r3, [r7, #20] 287 0184 0F2B cmp r3, #15 288 0186 03D9 bls .L17 289 .loc 1 212 7 is_stmt 0 discriminator 1 290 0188 D421 movs r1, #212 291 018a 3548 ldr r0, .L22+12 292 018c FFF7FEFF bl assert_failed 293 .L17: 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 294 .loc 1 214 22 is_stmt 1 295 0190 364A ldr r2, .L22+24 296 .loc 1 214 39 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 10 297 0192 7B69 ldr r3, [r7, #20] 298 0194 9B08 lsrs r3, r3, #2 299 .loc 1 214 14 300 0196 0233 adds r3, r3, #2 301 0198 52F82330 ldr r3, [r2, r3, lsl #2] 302 019c FB61 str r3, [r7, #28] 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 303 .loc 1 215 80 304 019e 7B69 ldr r3, [r7, #20] 305 01a0 03F00303 and r3, r3, #3 306 .loc 1 215 69 307 01a4 9B00 lsls r3, r3, #2 308 .loc 1 215 40 309 01a6 0F22 movs r2, #15 310 01a8 02FA03F3 lsl r3, r2, r3 311 .loc 1 215 17 312 01ac DB43 mvns r3, r3 313 .loc 1 215 14 314 01ae FA69 ldr r2, [r7, #28] 315 01b0 1340 ands r3, r3, r2 316 01b2 FB61 str r3, [r7, #28] 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 317 .loc 1 216 29 318 01b4 3B68 ldr r3, [r7] 319 01b6 DA68 ldr r2, [r3, #12] 320 .loc 1 216 79 321 01b8 7B69 ldr r3, [r7, #20] 322 01ba 03F00303 and r3, r3, #3 323 .loc 1 216 68 324 01be 9B00 lsls r3, r3, #2 325 .loc 1 216 39 326 01c0 02FA03F3 lsl r3, r2, r3 327 .loc 1 216 14 328 01c4 FA69 ldr r2, [r7, #28] 329 01c6 1343 orrs r3, r3, r2 330 01c8 FB61 str r3, [r7, #28] 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 331 .loc 1 217 13 332 01ca 2849 ldr r1, .L22+24 333 .loc 1 217 30 334 01cc 7B69 ldr r3, [r7, #20] 335 01ce 9B08 lsrs r3, r3, #2 336 .loc 1 217 37 337 01d0 0233 adds r3, r3, #2 338 01d2 FA69 ldr r2, [r7, #28] 339 01d4 41F82320 str r2, [r1, r3, lsl #2] 340 .L10: 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure interrupt mode : read current mode */ 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset)); 341 .loc 1 222 25 342 01d8 BB69 ldr r3, [r7, #24] 343 01da 5B01 lsls r3, r3, #5 344 .loc 1 222 11 345 01dc 03F18043 add r3, r3, #1073741824 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 11 346 01e0 03F58233 add r3, r3, #66560 347 01e4 FB60 str r3, [r7, #12] 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 348 .loc 1 223 10 349 01e6 FB68 ldr r3, [r7, #12] 350 01e8 1B68 ldr r3, [r3] 351 01ea FB61 str r3, [r7, #28] 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u) 352 .loc 1 226 19 353 01ec 3B68 ldr r3, [r7] 354 01ee 5B68 ldr r3, [r3, #4] 355 .loc 1 226 26 356 01f0 03F00103 and r3, r3, #1 357 .loc 1 226 6 358 01f4 002B cmp r3, #0 359 01f6 04D0 beq .L18 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; 360 .loc 1 228 12 361 01f8 FA69 ldr r2, [r7, #28] 362 01fa 3B69 ldr r3, [r7, #16] 363 01fc 1343 orrs r3, r3, r2 364 01fe FB61 str r3, [r7, #28] 365 0200 04E0 b .L19 366 .L18: 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 367 .loc 1 232 15 368 0202 3B69 ldr r3, [r7, #16] 369 0204 DB43 mvns r3, r3 370 .loc 1 232 12 371 0206 FA69 ldr r2, [r7, #28] 372 0208 1340 ands r3, r3, r2 373 020a FB61 str r3, [r7, #28] 374 .L19: 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store interrupt mode */ 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 375 .loc 1 236 12 376 020c FB68 ldr r3, [r7, #12] 377 020e FA69 ldr r2, [r7, #28] 378 0210 1A60 str r2, [r3] 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure event mode : read current mode */ 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset)); 379 .loc 1 239 25 380 0212 BB69 ldr r3, [r7, #24] 381 0214 5A01 lsls r2, r3, #5 382 .loc 1 239 11 383 0216 164B ldr r3, .L22+28 384 0218 1344 add r3, r3, r2 385 021a FB60 str r3, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 12 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 386 .loc 1 240 10 387 021c FB68 ldr r3, [r7, #12] 388 021e 1B68 ldr r3, [r3] 389 0220 FB61 str r3, [r7, #28] 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */ 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u) 390 .loc 1 243 19 391 0222 3B68 ldr r3, [r7] 392 0224 5B68 ldr r3, [r3, #4] 393 .loc 1 243 26 394 0226 03F00203 and r3, r3, #2 395 .loc 1 243 6 396 022a 002B cmp r3, #0 397 022c 04D0 beq .L20 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline; 398 .loc 1 245 12 399 022e FA69 ldr r2, [r7, #28] 400 0230 3B69 ldr r3, [r7, #16] 401 0232 1343 orrs r3, r3, r2 402 0234 FB61 str r3, [r7, #28] 403 0236 04E0 b .L21 404 .L20: 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline; 405 .loc 1 249 15 406 0238 3B69 ldr r3, [r7, #16] 407 023a DB43 mvns r3, r3 408 .loc 1 249 12 409 023c FA69 ldr r2, [r7, #28] 410 023e 1340 ands r3, r3, r2 411 0240 FB61 str r3, [r7, #28] 412 .L21: 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store event mode */ 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 413 .loc 1 253 12 414 0242 FB68 ldr r3, [r7, #12] 415 0244 FA69 ldr r2, [r7, #28] 416 0246 1A60 str r2, [r3] 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 417 .loc 1 255 10 418 0248 0023 movs r3, #0 419 .L4: 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 420 .loc 1 256 1 421 024a 1846 mov r0, r3 422 024c 2037 adds r7, r7, #32 423 .LCFI3: 424 .cfi_def_cfa_offset 8 425 024e BD46 mov sp, r7 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 13 426 .LCFI4: 427 .cfi_def_cfa_register 13 428 @ sp needed 429 0250 80BD pop {r7, pc} 430 .L23: 431 0252 00BF .align 2 432 .L22: 433 0254 E0FFFEF8 .word -117506080 434 0258 1F000100 .word 65567 435 025c 03000100 .word 65539 436 0260 00000000 .word .LC0 437 0264 08040140 .word 1073808392 438 0268 0C040140 .word 1073808396 439 026c 00000140 .word 1073807360 440 0270 04040140 .word 1073808388 441 .cfi_endproc 442 .LFE130: 444 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits 445 .align 1 446 .global HAL_EXTI_GetConfigLine 447 .syntax unified 448 .thumb 449 .thumb_func 451 HAL_EXTI_GetConfigLine: 452 .LFB131: 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Get configuration of a dedicated Exti line. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pExtiConfig Pointer on structure to store Exti configuration. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 453 .loc 1 265 1 454 .cfi_startproc 455 @ args = 0, pretend = 0, frame = 32 456 @ frame_needed = 1, uses_anonymous_args = 0 457 0000 80B5 push {r7, lr} 458 .LCFI5: 459 .cfi_def_cfa_offset 8 460 .cfi_offset 7, -8 461 .cfi_offset 14, -4 462 0002 88B0 sub sp, sp, #32 463 .LCFI6: 464 .cfi_def_cfa_offset 40 465 0004 00AF add r7, sp, #0 466 .LCFI7: 467 .cfi_def_cfa_register 7 468 0006 7860 str r0, [r7, #4] 469 0008 3960 str r1, [r7] 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 14 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL)) 470 .loc 1 273 6 471 000a 7B68 ldr r3, [r7, #4] 472 000c 002B cmp r3, #0 473 000e 02D0 beq .L25 474 .loc 1 273 23 discriminator 1 475 0010 3B68 ldr r3, [r7] 476 0012 002B cmp r3, #0 477 0014 01D1 bne .L26 478 .L25: 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 479 .loc 1 275 12 480 0016 0123 movs r3, #1 481 0018 B4E0 b .L27 482 .L26: 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameter */ 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 483 .loc 1 279 3 484 001a 7B68 ldr r3, [r7, #4] 485 001c 1A68 ldr r2, [r3] 486 001e 5B4B ldr r3, .L38 487 0020 1340 ands r3, r3, r2 488 0022 002B cmp r3, #0 489 0024 1BD1 bne .L28 490 .loc 1 279 3 is_stmt 0 discriminator 2 491 0026 7B68 ldr r3, [r7, #4] 492 0028 1B68 ldr r3, [r3] 493 002a 03F0E063 and r3, r3, #117440512 494 002e B3F1807F cmp r3, #16777216 495 0032 0DD0 beq .L29 496 .loc 1 279 3 discriminator 3 497 0034 7B68 ldr r3, [r7, #4] 498 0036 1B68 ldr r3, [r3] 499 0038 03F0E063 and r3, r3, #117440512 500 003c B3F1007F cmp r3, #33554432 501 0040 06D0 beq .L29 502 .loc 1 279 3 discriminator 5 503 0042 7B68 ldr r3, [r7, #4] 504 0044 1B68 ldr r3, [r3] 505 0046 03F0E063 and r3, r3, #117440512 506 004a B3F1C06F cmp r3, #100663296 507 004e 06D1 bne .L28 508 .L29: 509 .loc 1 279 3 discriminator 8 510 0050 7B68 ldr r3, [r7, #4] 511 0052 1A68 ldr r2, [r3] 512 0054 4E4B ldr r3, .L38+4 513 0056 1340 ands r3, r3, r2 514 0058 4E4A ldr r2, .L38+8 515 005a 9342 cmp r3, r2 516 005c 04D9 bls .L30 517 .L28: 518 .loc 1 279 3 discriminator 9 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 15 519 005e 40F21711 movw r1, #279 520 0062 4D48 ldr r0, .L38+12 521 0064 FFF7FEFF bl assert_failed 522 .L30: 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store handle line number to configuration structure */ 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Line = hexti->Line; 523 .loc 1 282 28 is_stmt 1 524 0068 7B68 ldr r3, [r7, #4] 525 006a 1A68 ldr r2, [r3] 526 .loc 1 282 21 527 006c 3B68 ldr r3, [r7] 528 006e 1A60 str r2, [r3] 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 529 .loc 1 285 25 530 0070 3B68 ldr r3, [r7] 531 0072 1B68 ldr r3, [r3] 532 .loc 1 285 49 533 0074 1B0C lsrs r3, r3, #16 534 .loc 1 285 10 535 0076 03F00103 and r3, r3, #1 536 007a FB61 str r3, [r7, #28] 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK); 537 .loc 1 286 25 538 007c 3B68 ldr r3, [r7] 539 007e 1B68 ldr r3, [r3] 540 .loc 1 286 11 541 0080 03F01F03 and r3, r3, #31 542 0084 BB61 str r3, [r7, #24] 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 543 .loc 1 287 12 544 0086 0122 movs r2, #1 545 0088 BB69 ldr r3, [r7, #24] 546 008a 02FA03F3 lsl r3, r2, r3 547 008e 7B61 str r3, [r7, #20] 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 1] Get core mode : interrupt */ 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset)); 548 .loc 1 290 25 549 0090 FB69 ldr r3, [r7, #28] 550 0092 5B01 lsls r3, r3, #5 551 .loc 1 290 11 552 0094 03F18043 add r3, r3, #1073741824 553 0098 03F58233 add r3, r3, #66560 554 009c 3B61 str r3, [r7, #16] 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 555 .loc 1 291 10 556 009e 3B69 ldr r3, [r7, #16] 557 00a0 1B68 ldr r3, [r3] 558 00a2 FB60 str r3, [r7, #12] 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if selected line is enable */ 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 559 .loc 1 294 15 560 00a4 FA68 ldr r2, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 16 561 00a6 7B69 ldr r3, [r7, #20] 562 00a8 1340 ands r3, r3, r2 563 .loc 1 294 6 564 00aa 002B cmp r3, #0 565 00ac 03D0 beq .L31 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_INTERRUPT; 566 .loc 1 296 23 567 00ae 3B68 ldr r3, [r7] 568 00b0 0122 movs r2, #1 569 00b2 5A60 str r2, [r3, #4] 570 00b4 02E0 b .L32 571 .L31: 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_NONE; 572 .loc 1 300 23 573 00b6 3B68 ldr r3, [r7] 574 00b8 0022 movs r2, #0 575 00ba 5A60 str r2, [r3, #4] 576 .L32: 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get event mode */ 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset)); 577 .loc 1 304 25 578 00bc FB69 ldr r3, [r7, #28] 579 00be 5A01 lsls r2, r3, #5 580 .loc 1 304 11 581 00c0 364B ldr r3, .L38+16 582 00c2 1344 add r3, r3, r2 583 00c4 3B61 str r3, [r7, #16] 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 584 .loc 1 305 10 585 00c6 3B69 ldr r3, [r7, #16] 586 00c8 1B68 ldr r3, [r3] 587 00ca FB60 str r3, [r7, #12] 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if selected line is enable */ 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 588 .loc 1 308 15 589 00cc FA68 ldr r2, [r7, #12] 590 00ce 7B69 ldr r3, [r7, #20] 591 00d0 1340 ands r3, r3, r2 592 .loc 1 308 6 593 00d2 002B cmp r3, #0 594 00d4 05D0 beq .L33 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode |= EXTI_MODE_EVENT; 595 .loc 1 310 23 596 00d6 3B68 ldr r3, [r7] 597 00d8 5B68 ldr r3, [r3, #4] 598 00da 43F00202 orr r2, r3, #2 599 00de 3B68 ldr r3, [r7] 600 00e0 5A60 str r2, [r3, #4] 601 .L33: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 17 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get default Trigger and GPIOSel configuration */ 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE; 602 .loc 1 314 24 603 00e2 3B68 ldr r3, [r7] 604 00e4 0022 movs r2, #0 605 00e6 9A60 str r2, [r3, #8] 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u; 606 .loc 1 315 24 607 00e8 3B68 ldr r3, [r7] 608 00ea 0022 movs r2, #0 609 00ec DA60 str r2, [r3, #12] 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 2] Get trigger for configurable lines : rising */ 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u) 610 .loc 1 318 19 611 00ee 3B68 ldr r3, [r7] 612 00f0 1B68 ldr r3, [r3] 613 .loc 1 318 26 614 00f2 03F00073 and r3, r3, #33554432 615 .loc 1 318 6 616 00f6 002B cmp r3, #0 617 00f8 43D0 beq .L34 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset)); 618 .loc 1 320 28 619 00fa FB69 ldr r3, [r7, #28] 620 00fc 5A01 lsls r2, r3, #5 621 .loc 1 320 13 622 00fe 284B ldr r3, .L38+20 623 0100 1344 add r3, r3, r2 624 0102 3B61 str r3, [r7, #16] 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 625 .loc 1 321 12 626 0104 3B69 ldr r3, [r7, #16] 627 0106 1B68 ldr r3, [r3] 628 0108 FB60 str r3, [r7, #12] 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 629 .loc 1 324 17 630 010a FA68 ldr r2, [r7, #12] 631 010c 7B69 ldr r3, [r7, #20] 632 010e 1340 ands r3, r3, r2 633 .loc 1 324 8 634 0110 002B cmp r3, #0 635 0112 02D0 beq .L35 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING; 636 .loc 1 326 28 637 0114 3B68 ldr r3, [r7] 638 0116 0122 movs r2, #1 639 0118 9A60 str r2, [r3, #8] 640 .L35: 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 18 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get falling configuration */ 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset)); 641 .loc 1 330 28 642 011a FB69 ldr r3, [r7, #28] 643 011c 5A01 lsls r2, r3, #5 644 .loc 1 330 13 645 011e 214B ldr r3, .L38+24 646 0120 1344 add r3, r3, r2 647 0122 3B61 str r3, [r7, #16] 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr; 648 .loc 1 331 12 649 0124 3B69 ldr r3, [r7, #16] 650 0126 1B68 ldr r3, [r3] 651 0128 FB60 str r3, [r7, #12] 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if configuration of selected line is enable */ 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u) 652 .loc 1 334 17 653 012a FA68 ldr r2, [r7, #12] 654 012c 7B69 ldr r3, [r7, #20] 655 012e 1340 ands r3, r3, r2 656 .loc 1 334 8 657 0130 002B cmp r3, #0 658 0132 05D0 beq .L36 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING; 659 .loc 1 336 28 660 0134 3B68 ldr r3, [r7] 661 0136 9B68 ldr r3, [r3, #8] 662 0138 43F00202 orr r2, r3, #2 663 013c 3B68 ldr r3, [r7] 664 013e 9A60 str r2, [r3, #8] 665 .L36: 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO) 666 .loc 1 340 21 667 0140 3B68 ldr r3, [r7] 668 0142 1B68 ldr r3, [r3] 669 .loc 1 340 28 670 0144 03F0C063 and r3, r3, #100663296 671 .loc 1 340 8 672 0148 B3F1C06F cmp r3, #100663296 673 014c 19D1 bne .L34 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 674 .loc 1 342 7 675 014e BB69 ldr r3, [r7, #24] 676 0150 0F2B cmp r3, #15 677 0152 04D9 bls .L37 678 .loc 1 342 7 is_stmt 0 discriminator 1 679 0154 4FF4AB71 mov r1, #342 680 0158 0F48 ldr r0, .L38+12 681 015a FFF7FEFF bl assert_failed 682 .L37: 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 19 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 683 .loc 1 344 22 is_stmt 1 684 015e 124A ldr r2, .L38+28 685 .loc 1 344 39 686 0160 BB69 ldr r3, [r7, #24] 687 0162 9B08 lsrs r3, r3, #2 688 .loc 1 344 14 689 0164 0233 adds r3, r3, #2 690 0166 52F82330 ldr r3, [r2, r3, lsl #2] 691 016a FB60 str r3, [r7, #12] 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = (regval >> (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))) & SYSCFG_EX 692 .loc 1 345 78 693 016c BB69 ldr r3, [r7, #24] 694 016e 03F00303 and r3, r3, #3 695 .loc 1 345 67 696 0172 9B00 lsls r3, r3, #2 697 .loc 1 345 38 698 0174 FA68 ldr r2, [r7, #12] 699 0176 22FA03F3 lsr r3, r2, r3 700 .loc 1 345 89 701 017a 03F00F02 and r2, r3, #15 702 .loc 1 345 28 703 017e 3B68 ldr r3, [r7] 704 0180 DA60 str r2, [r3, #12] 705 .L34: 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 706 .loc 1 349 10 707 0182 0023 movs r3, #0 708 .L27: 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 709 .loc 1 350 1 710 0184 1846 mov r0, r3 711 0186 2037 adds r7, r7, #32 712 .LCFI8: 713 .cfi_def_cfa_offset 8 714 0188 BD46 mov sp, r7 715 .LCFI9: 716 .cfi_def_cfa_register 13 717 @ sp needed 718 018a 80BD pop {r7, pc} 719 .L39: 720 .align 2 721 .L38: 722 018c E0FFFEF8 .word -117506080 723 0190 1F000100 .word 65567 724 0194 03000100 .word 65539 725 0198 00000000 .word .LC0 726 019c 04040140 .word 1073808388 727 01a0 08040140 .word 1073808392 728 01a4 0C040140 .word 1073808396 729 01a8 00000140 .word 1073807360 730 .cfi_endproc 731 .LFE131: 733 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 20 734 .align 1 735 .global HAL_EXTI_ClearConfigLine 736 .syntax unified 737 .thumb 738 .thumb_func 740 HAL_EXTI_ClearConfigLine: 741 .LFB132: 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line. 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 742 .loc 1 358 1 743 .cfi_startproc 744 @ args = 0, pretend = 0, frame = 32 745 @ frame_needed = 1, uses_anonymous_args = 0 746 0000 80B5 push {r7, lr} 747 .LCFI10: 748 .cfi_def_cfa_offset 8 749 .cfi_offset 7, -8 750 .cfi_offset 14, -4 751 0002 88B0 sub sp, sp, #32 752 .LCFI11: 753 .cfi_def_cfa_offset 40 754 0004 00AF add r7, sp, #0 755 .LCFI12: 756 .cfi_def_cfa_register 7 757 0006 7860 str r0, [r7, #4] 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti == NULL) 758 .loc 1 366 6 759 0008 7B68 ldr r3, [r7, #4] 760 000a 002B cmp r3, #0 761 000c 01D1 bne .L41 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 762 .loc 1 368 12 763 000e 0123 movs r3, #1 764 0010 9FE0 b .L42 765 .L41: 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameter */ 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 766 .loc 1 372 3 767 0012 7B68 ldr r3, [r7, #4] 768 0014 1A68 ldr r2, [r3] 769 0016 514B ldr r3, .L48 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 21 770 0018 1340 ands r3, r3, r2 771 001a 002B cmp r3, #0 772 001c 1BD1 bne .L43 773 .loc 1 372 3 is_stmt 0 discriminator 2 774 001e 7B68 ldr r3, [r7, #4] 775 0020 1B68 ldr r3, [r3] 776 0022 03F0E063 and r3, r3, #117440512 777 0026 B3F1807F cmp r3, #16777216 778 002a 0DD0 beq .L44 779 .loc 1 372 3 discriminator 3 780 002c 7B68 ldr r3, [r7, #4] 781 002e 1B68 ldr r3, [r3] 782 0030 03F0E063 and r3, r3, #117440512 783 0034 B3F1007F cmp r3, #33554432 784 0038 06D0 beq .L44 785 .loc 1 372 3 discriminator 5 786 003a 7B68 ldr r3, [r7, #4] 787 003c 1B68 ldr r3, [r3] 788 003e 03F0E063 and r3, r3, #117440512 789 0042 B3F1C06F cmp r3, #100663296 790 0046 06D1 bne .L43 791 .L44: 792 .loc 1 372 3 discriminator 8 793 0048 7B68 ldr r3, [r7, #4] 794 004a 1A68 ldr r2, [r3] 795 004c 444B ldr r3, .L48+4 796 004e 1340 ands r3, r3, r2 797 0050 444A ldr r2, .L48+8 798 0052 9342 cmp r3, r2 799 0054 04D9 bls .L45 800 .L43: 801 .loc 1 372 3 discriminator 9 802 0056 4FF4BA71 mov r1, #372 803 005a 4348 ldr r0, .L48+12 804 005c FFF7FEFF bl assert_failed 805 .L45: 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 806 .loc 1 375 19 is_stmt 1 807 0060 7B68 ldr r3, [r7, #4] 808 0062 1B68 ldr r3, [r3] 809 .loc 1 375 43 810 0064 1B0C lsrs r3, r3, #16 811 .loc 1 375 10 812 0066 03F00103 and r3, r3, #1 813 006a FB61 str r3, [r7, #28] 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 814 .loc 1 376 19 815 006c 7B68 ldr r3, [r7, #4] 816 006e 1B68 ldr r3, [r3] 817 .loc 1 376 11 818 0070 03F01F03 and r3, r3, #31 819 0074 BB61 str r3, [r7, #24] 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 820 .loc 1 377 12 821 0076 0122 movs r2, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 22 822 0078 BB69 ldr r3, [r7, #24] 823 007a 02FA03F3 lsl r3, r2, r3 824 007e 7B61 str r3, [r7, #20] 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 1] Clear interrupt mode */ 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset)); 825 .loc 1 380 25 826 0080 FB69 ldr r3, [r7, #28] 827 0082 5B01 lsls r3, r3, #5 828 .loc 1 380 11 829 0084 03F18043 add r3, r3, #1073741824 830 0088 03F58233 add r3, r3, #66560 831 008c 3B61 str r3, [r7, #16] 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 832 .loc 1 381 13 833 008e 3B69 ldr r3, [r7, #16] 834 0090 1A68 ldr r2, [r3] 835 .loc 1 381 24 836 0092 7B69 ldr r3, [r7, #20] 837 0094 DB43 mvns r3, r3 838 .loc 1 381 10 839 0096 1340 ands r3, r3, r2 840 0098 FB60 str r3, [r7, #12] 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 841 .loc 1 382 12 842 009a 3B69 ldr r3, [r7, #16] 843 009c FA68 ldr r2, [r7, #12] 844 009e 1A60 str r2, [r3] 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 2] Clear event mode */ 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset)); 845 .loc 1 385 25 846 00a0 FB69 ldr r3, [r7, #28] 847 00a2 5A01 lsls r2, r3, #5 848 .loc 1 385 11 849 00a4 314B ldr r3, .L48+16 850 00a6 1344 add r3, r3, r2 851 00a8 3B61 str r3, [r7, #16] 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 852 .loc 1 386 13 853 00aa 3B69 ldr r3, [r7, #16] 854 00ac 1A68 ldr r2, [r3] 855 .loc 1 386 24 856 00ae 7B69 ldr r3, [r7, #20] 857 00b0 DB43 mvns r3, r3 858 .loc 1 386 10 859 00b2 1340 ands r3, r3, r2 860 00b4 FB60 str r3, [r7, #12] 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 861 .loc 1 387 12 862 00b6 3B69 ldr r3, [r7, #16] 863 00b8 FA68 ldr r2, [r7, #12] 864 00ba 1A60 str r2, [r3] 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */ 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u) 865 .loc 1 390 13 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 23 866 00bc 7B68 ldr r3, [r7, #4] 867 00be 1B68 ldr r3, [r3] 868 .loc 1 390 20 869 00c0 03F00073 and r3, r3, #33554432 870 .loc 1 390 6 871 00c4 002B cmp r3, #0 872 00c6 43D0 beq .L46 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset)); 873 .loc 1 392 28 874 00c8 FB69 ldr r3, [r7, #28] 875 00ca 5A01 lsls r2, r3, #5 876 .loc 1 392 13 877 00cc 284B ldr r3, .L48+20 878 00ce 1344 add r3, r3, r2 879 00d0 3B61 str r3, [r7, #16] 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 880 .loc 1 393 15 881 00d2 3B69 ldr r3, [r7, #16] 882 00d4 1A68 ldr r2, [r3] 883 .loc 1 393 26 884 00d6 7B69 ldr r3, [r7, #20] 885 00d8 DB43 mvns r3, r3 886 .loc 1 393 12 887 00da 1340 ands r3, r3, r2 888 00dc FB60 str r3, [r7, #12] 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 889 .loc 1 394 14 890 00de 3B69 ldr r3, [r7, #16] 891 00e0 FA68 ldr r2, [r7, #12] 892 00e2 1A60 str r2, [r3] 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset)); 893 .loc 1 396 28 894 00e4 FB69 ldr r3, [r7, #28] 895 00e6 5A01 lsls r2, r3, #5 896 .loc 1 396 13 897 00e8 224B ldr r3, .L48+24 898 00ea 1344 add r3, r3, r2 899 00ec 3B61 str r3, [r7, #16] 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline); 900 .loc 1 397 15 901 00ee 3B69 ldr r3, [r7, #16] 902 00f0 1A68 ldr r2, [r3] 903 .loc 1 397 26 904 00f2 7B69 ldr r3, [r7, #20] 905 00f4 DB43 mvns r3, r3 906 .loc 1 397 12 907 00f6 1340 ands r3, r3, r2 908 00f8 FB60 str r3, [r7, #12] 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval; 909 .loc 1 398 14 910 00fa 3B69 ldr r3, [r7, #16] 911 00fc FA68 ldr r2, [r7, #12] 912 00fe 1A60 str r2, [r3] 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 24 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO) 913 .loc 1 401 15 914 0100 7B68 ldr r3, [r7, #4] 915 0102 1B68 ldr r3, [r3] 916 .loc 1 401 22 917 0104 03F0C063 and r3, r3, #100663296 918 .loc 1 401 8 919 0108 B3F1C06F cmp r3, #100663296 920 010c 20D1 bne .L46 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos)); 921 .loc 1 403 7 922 010e BB69 ldr r3, [r7, #24] 923 0110 0F2B cmp r3, #15 924 0112 04D9 bls .L47 925 .loc 1 403 7 is_stmt 0 discriminator 1 926 0114 40F29311 movw r1, #403 927 0118 1348 ldr r0, .L48+12 928 011a FFF7FEFF bl assert_failed 929 .L47: 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u]; 930 .loc 1 405 22 is_stmt 1 931 011e 164A ldr r2, .L48+28 932 .loc 1 405 39 933 0120 BB69 ldr r3, [r7, #24] 934 0122 9B08 lsrs r3, r3, #2 935 .loc 1 405 14 936 0124 0233 adds r3, r3, #2 937 0126 52F82330 ldr r3, [r2, r3, lsl #2] 938 012a FB60 str r3, [r7, #12] 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u))); 939 .loc 1 406 80 940 012c BB69 ldr r3, [r7, #24] 941 012e 03F00303 and r3, r3, #3 942 .loc 1 406 69 943 0132 9B00 lsls r3, r3, #2 944 .loc 1 406 40 945 0134 0F22 movs r2, #15 946 0136 02FA03F3 lsl r3, r2, r3 947 .loc 1 406 17 948 013a DB43 mvns r3, r3 949 .loc 1 406 14 950 013c FA68 ldr r2, [r7, #12] 951 013e 1340 ands r3, r3, r2 952 0140 FB60 str r3, [r7, #12] 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval; 953 .loc 1 407 13 954 0142 0D49 ldr r1, .L48+28 955 .loc 1 407 30 956 0144 BB69 ldr r3, [r7, #24] 957 0146 9B08 lsrs r3, r3, #2 958 .loc 1 407 37 959 0148 0233 adds r3, r3, #2 960 014a FA68 ldr r2, [r7, #12] 961 014c 41F82320 str r2, [r1, r3, lsl #2] 962 .L46: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 25 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 963 .loc 1 411 10 964 0150 0023 movs r3, #0 965 .L42: 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 966 .loc 1 412 1 967 0152 1846 mov r0, r3 968 0154 2037 adds r7, r7, #32 969 .LCFI13: 970 .cfi_def_cfa_offset 8 971 0156 BD46 mov sp, r7 972 .LCFI14: 973 .cfi_def_cfa_register 13 974 @ sp needed 975 0158 80BD pop {r7, pc} 976 .L49: 977 015a 00BF .align 2 978 .L48: 979 015c E0FFFEF8 .word -117506080 980 0160 1F000100 .word 65567 981 0164 03000100 .word 65539 982 0168 00000000 .word .LC0 983 016c 04040140 .word 1073808388 984 0170 08040140 .word 1073808392 985 0174 0C040140 .word 1073808396 986 0178 00000140 .word 1073807360 987 .cfi_endproc 988 .LFE132: 990 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits 991 .align 1 992 .global HAL_EXTI_RegisterCallback 993 .syntax unified 994 .thumb 995 .thumb_func 997 HAL_EXTI_RegisterCallback: 998 .LFB133: 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line. 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param CallbackID User callback identifier. 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 999 .loc 1 423 1 1000 .cfi_startproc 1001 @ args = 0, pretend = 0, frame = 24 1002 @ frame_needed = 1, uses_anonymous_args = 0 1003 @ link register save eliminated. 1004 0000 80B4 push {r7} 1005 .LCFI15: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 26 1006 .cfi_def_cfa_offset 4 1007 .cfi_offset 7, -4 1008 0002 87B0 sub sp, sp, #28 1009 .LCFI16: 1010 .cfi_def_cfa_offset 32 1011 0004 00AF add r7, sp, #0 1012 .LCFI17: 1013 .cfi_def_cfa_register 7 1014 0006 F860 str r0, [r7, #12] 1015 0008 0B46 mov r3, r1 1016 000a 7A60 str r2, [r7, #4] 1017 000c FB72 strb r3, [r7, #11] 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK; 1018 .loc 1 424 21 1019 000e 0023 movs r3, #0 1020 0010 FB75 strb r3, [r7, #23] 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** switch (CallbackID) 1021 .loc 1 426 3 1022 0012 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1023 0014 002B cmp r3, #0 1024 0016 03D1 bne .L51 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID: 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn; 1025 .loc 1 429 30 1026 0018 FB68 ldr r3, [r7, #12] 1027 001a 7A68 ldr r2, [r7, #4] 1028 001c 5A60 str r2, [r3, #4] 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** break; 1029 .loc 1 430 7 1030 001e 02E0 b .L52 1031 .L51: 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** default: 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** status = HAL_ERROR; 1032 .loc 1 433 14 1033 0020 0123 movs r3, #1 1034 0022 FB75 strb r3, [r7, #23] 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** break; 1035 .loc 1 434 7 1036 0024 00BF nop 1037 .L52: 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return status; 1038 .loc 1 437 10 1039 0026 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1040 .loc 1 438 1 1041 0028 1846 mov r0, r3 1042 002a 1C37 adds r7, r7, #28 1043 .LCFI18: 1044 .cfi_def_cfa_offset 4 1045 002c BD46 mov sp, r7 1046 .LCFI19: 1047 .cfi_def_cfa_register 13 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 27 1048 @ sp needed 1049 002e 5DF8047B ldr r7, [sp], #4 1050 .LCFI20: 1051 .cfi_restore 7 1052 .cfi_def_cfa_offset 0 1053 0032 7047 bx lr 1054 .cfi_endproc 1055 .LFE133: 1057 .section .text.HAL_EXTI_GetHandle,"ax",%progbits 1058 .align 1 1059 .global HAL_EXTI_GetHandle 1060 .syntax unified 1061 .thumb 1062 .thumb_func 1064 HAL_EXTI_GetHandle: 1065 .LFB134: 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Store line number as handle private field. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param ExtiLine Exti line number. 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB. 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine) 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 1066 .loc 1 448 1 1067 .cfi_startproc 1068 @ args = 0, pretend = 0, frame = 8 1069 @ frame_needed = 1, uses_anonymous_args = 0 1070 0000 80B5 push {r7, lr} 1071 .LCFI21: 1072 .cfi_def_cfa_offset 8 1073 .cfi_offset 7, -8 1074 .cfi_offset 14, -4 1075 0002 82B0 sub sp, sp, #8 1076 .LCFI22: 1077 .cfi_def_cfa_offset 16 1078 0004 00AF add r7, sp, #0 1079 .LCFI23: 1080 .cfi_def_cfa_register 7 1081 0006 7860 str r0, [r7, #4] 1082 0008 3960 str r1, [r7] 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameters */ 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine)); 1083 .loc 1 450 3 1084 000a 3A68 ldr r2, [r7] 1085 000c 164B ldr r3, .L60 1086 000e 1340 ands r3, r3, r2 1087 0010 002B cmp r3, #0 1088 0012 17D1 bne .L55 1089 .loc 1 450 3 is_stmt 0 discriminator 2 1090 0014 3B68 ldr r3, [r7] 1091 0016 03F0E063 and r3, r3, #117440512 1092 001a B3F1807F cmp r3, #16777216 1093 001e 0BD0 beq .L56 1094 .loc 1 450 3 discriminator 3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 28 1095 0020 3B68 ldr r3, [r7] 1096 0022 03F0E063 and r3, r3, #117440512 1097 0026 B3F1007F cmp r3, #33554432 1098 002a 05D0 beq .L56 1099 .loc 1 450 3 discriminator 5 1100 002c 3B68 ldr r3, [r7] 1101 002e 03F0E063 and r3, r3, #117440512 1102 0032 B3F1C06F cmp r3, #100663296 1103 0036 05D1 bne .L55 1104 .L56: 1105 .loc 1 450 3 discriminator 8 1106 0038 3A68 ldr r2, [r7] 1107 003a 0C4B ldr r3, .L60+4 1108 003c 1340 ands r3, r3, r2 1109 003e 0C4A ldr r2, .L60+8 1110 0040 9342 cmp r3, r2 1111 0042 04D9 bls .L57 1112 .L55: 1113 .loc 1 450 3 discriminator 9 1114 0044 4FF4E171 mov r1, #450 1115 0048 0A48 ldr r0, .L60+12 1116 004a FFF7FEFF bl assert_failed 1117 .L57: 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */ 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti == NULL) 1118 .loc 1 453 6 is_stmt 1 1119 004e 7B68 ldr r3, [r7, #4] 1120 0050 002B cmp r3, #0 1121 0052 01D1 bne .L58 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR; 1122 .loc 1 455 12 1123 0054 0123 movs r3, #1 1124 0056 03E0 b .L59 1125 .L58: 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store line number as handle private field */ 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->Line = ExtiLine; 1126 .loc 1 460 17 1127 0058 7B68 ldr r3, [r7, #4] 1128 005a 3A68 ldr r2, [r7] 1129 005c 1A60 str r2, [r3] 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK; 1130 .loc 1 462 12 1131 005e 0023 movs r3, #0 1132 .L59: 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1133 .loc 1 464 1 1134 0060 1846 mov r0, r3 1135 0062 0837 adds r7, r7, #8 1136 .LCFI24: 1137 .cfi_def_cfa_offset 8 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 29 1138 0064 BD46 mov sp, r7 1139 .LCFI25: 1140 .cfi_def_cfa_register 13 1141 @ sp needed 1142 0066 80BD pop {r7, pc} 1143 .L61: 1144 .align 2 1145 .L60: 1146 0068 E0FFFEF8 .word -117506080 1147 006c 1F000100 .word 65567 1148 0070 03000100 .word 65539 1149 0074 00000000 .word .LC0 1150 .cfi_endproc 1151 .LFE134: 1153 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits 1154 .align 1 1155 .global HAL_EXTI_IRQHandler 1156 .syntax unified 1157 .thumb 1158 .thumb_func 1160 HAL_EXTI_IRQHandler: 1161 .LFB135: 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @} 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief EXTI IO functions. 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### IO operation functions ##### 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** =============================================================================== 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{ 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Handle EXTI interrupt request. 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval none. 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 1162 .loc 1 488 1 1163 .cfi_startproc 1164 @ args = 0, pretend = 0, frame = 24 1165 @ frame_needed = 1, uses_anonymous_args = 0 1166 0000 80B5 push {r7, lr} 1167 .LCFI26: 1168 .cfi_def_cfa_offset 8 1169 .cfi_offset 7, -8 1170 .cfi_offset 14, -4 1171 0002 86B0 sub sp, sp, #24 1172 .LCFI27: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 30 1173 .cfi_def_cfa_offset 32 1174 0004 00AF add r7, sp, #0 1175 .LCFI28: 1176 .cfi_def_cfa_register 7 1177 0006 7860 str r0, [r7, #4] 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Compute line register offset and line mask */ 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 1178 .loc 1 495 19 1179 0008 7B68 ldr r3, [r7, #4] 1180 000a 1B68 ldr r3, [r3] 1181 .loc 1 495 43 1182 000c 1B0C lsrs r3, r3, #16 1183 .loc 1 495 10 1184 000e 03F00103 and r3, r3, #1 1185 0012 7B61 str r3, [r7, #20] 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 1186 .loc 1 496 28 1187 0014 7B68 ldr r3, [r7, #4] 1188 0016 1B68 ldr r3, [r3] 1189 .loc 1 496 35 1190 0018 03F01F03 and r3, r3, #31 1191 .loc 1 496 12 1192 001c 0122 movs r2, #1 1193 001e 02FA03F3 lsl r3, r2, r3 1194 0022 3B61 str r3, [r7, #16] 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */ 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset)); 1195 .loc 1 499 24 1196 0024 7B69 ldr r3, [r7, #20] 1197 0026 5A01 lsls r2, r3, #5 1198 .loc 1 499 11 1199 0028 0C4B ldr r3, .L65 1200 002a 1344 add r3, r3, r2 1201 002c FB60 str r3, [r7, #12] 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & maskline); 1202 .loc 1 500 13 1203 002e FB68 ldr r3, [r7, #12] 1204 0030 1B68 ldr r3, [r3] 1205 .loc 1 500 10 1206 0032 3A69 ldr r2, [r7, #16] 1207 0034 1340 ands r3, r3, r2 1208 0036 BB60 str r3, [r7, #8] 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (regval != 0x00u) 1209 .loc 1 502 6 1210 0038 BB68 ldr r3, [r7, #8] 1211 003a 002B cmp r3, #0 1212 003c 09D0 beq .L64 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Clear pending bit */ 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI->PR = maskline; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 31 1213 .loc 1 505 9 1214 003e 084A ldr r2, .L65+4 1215 .loc 1 505 14 1216 0040 3B69 ldr r3, [r7, #16] 1217 0042 5361 str r3, [r2, #20] 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Call callback */ 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti->PendingCallback != NULL) 1218 .loc 1 508 14 1219 0044 7B68 ldr r3, [r7, #4] 1220 0046 5B68 ldr r3, [r3, #4] 1221 .loc 1 508 8 1222 0048 002B cmp r3, #0 1223 004a 02D0 beq .L64 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->PendingCallback(); 1224 .loc 1 510 12 1225 004c 7B68 ldr r3, [r7, #4] 1226 004e 5B68 ldr r3, [r3, #4] 1227 .loc 1 510 7 1228 0050 9847 blx r3 1229 .LVL0: 1230 .L64: 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1231 .loc 1 513 1 1232 0052 00BF nop 1233 0054 1837 adds r7, r7, #24 1234 .LCFI29: 1235 .cfi_def_cfa_offset 8 1236 0056 BD46 mov sp, r7 1237 .LCFI30: 1238 .cfi_def_cfa_register 13 1239 @ sp needed 1240 0058 80BD pop {r7, pc} 1241 .L66: 1242 005a 00BF .align 2 1243 .L65: 1244 005c 14040140 .word 1073808404 1245 0060 00040140 .word 1073808384 1246 .cfi_endproc 1247 .LFE135: 1249 .section .text.HAL_EXTI_GetPending,"ax",%progbits 1250 .align 1 1251 .global HAL_EXTI_GetPending 1252 .syntax unified 1253 .thumb 1254 .thumb_func 1256 HAL_EXTI_GetPending: 1257 .LFB136: 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line. 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param Edge Specify which pending edge as to be checked. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of the following values: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 32 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 1258 .loc 1 525 1 1259 .cfi_startproc 1260 @ args = 0, pretend = 0, frame = 32 1261 @ frame_needed = 1, uses_anonymous_args = 0 1262 0000 80B5 push {r7, lr} 1263 .LCFI31: 1264 .cfi_def_cfa_offset 8 1265 .cfi_offset 7, -8 1266 .cfi_offset 14, -4 1267 0002 88B0 sub sp, sp, #32 1268 .LCFI32: 1269 .cfi_def_cfa_offset 40 1270 0004 00AF add r7, sp, #0 1271 .LCFI33: 1272 .cfi_def_cfa_register 7 1273 0006 7860 str r0, [r7, #4] 1274 0008 3960 str r1, [r7] 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval; 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos; 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 1275 .loc 1 533 3 1276 000a 7B68 ldr r3, [r7, #4] 1277 000c 1A68 ldr r2, [r3] 1278 000e 2D4B ldr r3, .L74 1279 0010 1340 ands r3, r3, r2 1280 0012 002B cmp r3, #0 1281 0014 1BD1 bne .L68 1282 .loc 1 533 3 is_stmt 0 discriminator 2 1283 0016 7B68 ldr r3, [r7, #4] 1284 0018 1B68 ldr r3, [r3] 1285 001a 03F0E063 and r3, r3, #117440512 1286 001e B3F1807F cmp r3, #16777216 1287 0022 0DD0 beq .L69 1288 .loc 1 533 3 discriminator 3 1289 0024 7B68 ldr r3, [r7, #4] 1290 0026 1B68 ldr r3, [r3] 1291 0028 03F0E063 and r3, r3, #117440512 1292 002c B3F1007F cmp r3, #33554432 1293 0030 06D0 beq .L69 1294 .loc 1 533 3 discriminator 5 1295 0032 7B68 ldr r3, [r7, #4] 1296 0034 1B68 ldr r3, [r3] 1297 0036 03F0E063 and r3, r3, #117440512 1298 003a B3F1C06F cmp r3, #100663296 1299 003e 06D1 bne .L68 1300 .L69: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 33 1301 .loc 1 533 3 discriminator 8 1302 0040 7B68 ldr r3, [r7, #4] 1303 0042 1A68 ldr r2, [r3] 1304 0044 204B ldr r3, .L74+4 1305 0046 1340 ands r3, r3, r2 1306 0048 204A ldr r2, .L74+8 1307 004a 9342 cmp r3, r2 1308 004c 04D9 bls .L70 1309 .L68: 1310 .loc 1 533 3 discriminator 9 1311 004e 40F21521 movw r1, #533 1312 0052 1F48 ldr r0, .L74+12 1313 0054 FFF7FEFF bl assert_failed 1314 .L70: 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 1315 .loc 1 534 3 is_stmt 1 1316 0058 7B68 ldr r3, [r7, #4] 1317 005a 1B68 ldr r3, [r3] 1318 005c 03F00073 and r3, r3, #33554432 1319 0060 002B cmp r3, #0 1320 0062 04D1 bne .L71 1321 .loc 1 534 3 is_stmt 0 discriminator 1 1322 0064 40F21621 movw r1, #534 1323 0068 1948 ldr r0, .L74+12 1324 006a FFF7FEFF bl assert_failed 1325 .L71: 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 1326 .loc 1 535 3 is_stmt 1 1327 006e 3B68 ldr r3, [r7] 1328 0070 032B cmp r3, #3 1329 0072 04D0 beq .L72 1330 .loc 1 535 3 is_stmt 0 discriminator 1 1331 0074 40F21721 movw r1, #535 1332 0078 1548 ldr r0, .L74+12 1333 007a FFF7FEFF bl assert_failed 1334 .L72: 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 1335 .loc 1 538 19 is_stmt 1 1336 007e 7B68 ldr r3, [r7, #4] 1337 0080 1B68 ldr r3, [r3] 1338 .loc 1 538 43 1339 0082 1B0C lsrs r3, r3, #16 1340 .loc 1 538 10 1341 0084 03F00103 and r3, r3, #1 1342 0088 FB61 str r3, [r7, #28] 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK); 1343 .loc 1 539 19 1344 008a 7B68 ldr r3, [r7, #4] 1345 008c 1B68 ldr r3, [r3] 1346 .loc 1 539 11 1347 008e 03F01F03 and r3, r3, #31 1348 0092 BB61 str r3, [r7, #24] 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos); 1349 .loc 1 540 12 1350 0094 0122 movs r2, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 34 1351 0096 BB69 ldr r3, [r7, #24] 1352 0098 02FA03F3 lsl r3, r2, r3 1353 009c 7B61 str r3, [r7, #20] 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */ 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset)); 1354 .loc 1 543 24 1355 009e FB69 ldr r3, [r7, #28] 1356 00a0 5A01 lsls r2, r3, #5 1357 .loc 1 543 11 1358 00a2 0C4B ldr r3, .L74+16 1359 00a4 1344 add r3, r3, r2 1360 00a6 3B61 str r3, [r7, #16] 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* return 1 if bit is set else 0 */ 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = ((*regaddr & maskline) >> linepos); 1361 .loc 1 545 14 1362 00a8 3B69 ldr r3, [r7, #16] 1363 00aa 1A68 ldr r2, [r3] 1364 .loc 1 545 23 1365 00ac 7B69 ldr r3, [r7, #20] 1366 00ae 1A40 ands r2, r2, r3 1367 .loc 1 545 10 1368 00b0 BB69 ldr r3, [r7, #24] 1369 00b2 22FA03F3 lsr r3, r2, r3 1370 00b6 FB60 str r3, [r7, #12] 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return regval; 1371 .loc 1 546 10 1372 00b8 FB68 ldr r3, [r7, #12] 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1373 .loc 1 547 1 1374 00ba 1846 mov r0, r3 1375 00bc 2037 adds r7, r7, #32 1376 .LCFI34: 1377 .cfi_def_cfa_offset 8 1378 00be BD46 mov sp, r7 1379 .LCFI35: 1380 .cfi_def_cfa_register 13 1381 @ sp needed 1382 00c0 80BD pop {r7, pc} 1383 .L75: 1384 00c2 00BF .align 2 1385 .L74: 1386 00c4 E0FFFEF8 .word -117506080 1387 00c8 1F000100 .word 65567 1388 00cc 03000100 .word 65539 1389 00d0 00000000 .word .LC0 1390 00d4 14040140 .word 1073808404 1391 .cfi_endproc 1392 .LFE136: 1394 .section .text.HAL_EXTI_ClearPending,"ax",%progbits 1395 .align 1 1396 .global HAL_EXTI_ClearPending 1397 .syntax unified 1398 .thumb 1399 .thumb_func 1401 HAL_EXTI_ClearPending: 1402 .LFB137: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 35 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line. 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param Edge Specify which pending edge as to be clear. 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of the following values: 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter is kept for compatibility with other series. 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval None. 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 1403 .loc 1 559 1 1404 .cfi_startproc 1405 @ args = 0, pretend = 0, frame = 24 1406 @ frame_needed = 1, uses_anonymous_args = 0 1407 0000 80B5 push {r7, lr} 1408 .LCFI36: 1409 .cfi_def_cfa_offset 8 1410 .cfi_offset 7, -8 1411 .cfi_offset 14, -4 1412 0002 86B0 sub sp, sp, #24 1413 .LCFI37: 1414 .cfi_def_cfa_offset 32 1415 0004 00AF add r7, sp, #0 1416 .LCFI38: 1417 .cfi_def_cfa_register 7 1418 0006 7860 str r0, [r7, #4] 1419 0008 3960 str r1, [r7] 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 1420 .loc 1 565 3 1421 000a 7B68 ldr r3, [r7, #4] 1422 000c 1A68 ldr r2, [r3] 1423 000e 294B ldr r3, .L82 1424 0010 1340 ands r3, r3, r2 1425 0012 002B cmp r3, #0 1426 0014 1BD1 bne .L77 1427 .loc 1 565 3 is_stmt 0 discriminator 2 1428 0016 7B68 ldr r3, [r7, #4] 1429 0018 1B68 ldr r3, [r3] 1430 001a 03F0E063 and r3, r3, #117440512 1431 001e B3F1807F cmp r3, #16777216 1432 0022 0DD0 beq .L78 1433 .loc 1 565 3 discriminator 3 1434 0024 7B68 ldr r3, [r7, #4] 1435 0026 1B68 ldr r3, [r3] 1436 0028 03F0E063 and r3, r3, #117440512 1437 002c B3F1007F cmp r3, #33554432 1438 0030 06D0 beq .L78 1439 .loc 1 565 3 discriminator 5 1440 0032 7B68 ldr r3, [r7, #4] 1441 0034 1B68 ldr r3, [r3] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 36 1442 0036 03F0E063 and r3, r3, #117440512 1443 003a B3F1C06F cmp r3, #100663296 1444 003e 06D1 bne .L77 1445 .L78: 1446 .loc 1 565 3 discriminator 8 1447 0040 7B68 ldr r3, [r7, #4] 1448 0042 1A68 ldr r2, [r3] 1449 0044 1C4B ldr r3, .L82+4 1450 0046 1340 ands r3, r3, r2 1451 0048 1C4A ldr r2, .L82+8 1452 004a 9342 cmp r3, r2 1453 004c 04D9 bls .L79 1454 .L77: 1455 .loc 1 565 3 discriminator 9 1456 004e 40F23521 movw r1, #565 1457 0052 1B48 ldr r0, .L82+12 1458 0054 FFF7FEFF bl assert_failed 1459 .L79: 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 1460 .loc 1 566 3 is_stmt 1 1461 0058 7B68 ldr r3, [r7, #4] 1462 005a 1B68 ldr r3, [r3] 1463 005c 03F00073 and r3, r3, #33554432 1464 0060 002B cmp r3, #0 1465 0062 04D1 bne .L80 1466 .loc 1 566 3 is_stmt 0 discriminator 1 1467 0064 40F23621 movw r1, #566 1468 0068 1548 ldr r0, .L82+12 1469 006a FFF7FEFF bl assert_failed 1470 .L80: 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge)); 1471 .loc 1 567 3 is_stmt 1 1472 006e 3B68 ldr r3, [r7] 1473 0070 032B cmp r3, #3 1474 0072 04D0 beq .L81 1475 .loc 1 567 3 is_stmt 0 discriminator 1 1476 0074 40F23721 movw r1, #567 1477 0078 1148 ldr r0, .L82+12 1478 007a FFF7FEFF bl assert_failed 1479 .L81: 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 1480 .loc 1 570 19 is_stmt 1 1481 007e 7B68 ldr r3, [r7, #4] 1482 0080 1B68 ldr r3, [r3] 1483 .loc 1 570 43 1484 0082 1B0C lsrs r3, r3, #16 1485 .loc 1 570 10 1486 0084 03F00103 and r3, r3, #1 1487 0088 7B61 str r3, [r7, #20] 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 1488 .loc 1 571 28 1489 008a 7B68 ldr r3, [r7, #4] 1490 008c 1B68 ldr r3, [r3] 1491 .loc 1 571 35 1492 008e 03F01F03 and r3, r3, #31 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 37 1493 .loc 1 571 12 1494 0092 0122 movs r2, #1 1495 0094 02FA03F3 lsl r3, r2, r3 1496 0098 3B61 str r3, [r7, #16] 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */ 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset)); 1497 .loc 1 574 24 1498 009a 7B69 ldr r3, [r7, #20] 1499 009c 5A01 lsls r2, r3, #5 1500 .loc 1 574 11 1501 009e 094B ldr r3, .L82+16 1502 00a0 1344 add r3, r3, r2 1503 00a2 FB60 str r3, [r7, #12] 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Clear Pending bit */ 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = maskline; 1504 .loc 1 577 12 1505 00a4 FB68 ldr r3, [r7, #12] 1506 00a6 3A69 ldr r2, [r7, #16] 1507 00a8 1A60 str r2, [r3] 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1508 .loc 1 578 1 1509 00aa 00BF nop 1510 00ac 1837 adds r7, r7, #24 1511 .LCFI39: 1512 .cfi_def_cfa_offset 8 1513 00ae BD46 mov sp, r7 1514 .LCFI40: 1515 .cfi_def_cfa_register 13 1516 @ sp needed 1517 00b0 80BD pop {r7, pc} 1518 .L83: 1519 00b2 00BF .align 2 1520 .L82: 1521 00b4 E0FFFEF8 .word -117506080 1522 00b8 1F000100 .word 65567 1523 00bc 03000100 .word 65539 1524 00c0 00000000 .word .LC0 1525 00c4 14040140 .word 1073808404 1526 .cfi_endproc 1527 .LFE137: 1529 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits 1530 .align 1 1531 .global HAL_EXTI_GenerateSWI 1532 .syntax unified 1533 .thumb 1534 .thumb_func 1536 HAL_EXTI_GenerateSWI: 1537 .LFB138: 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line. 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval None. 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */ 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 38 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** { 1538 .loc 1 586 1 1539 .cfi_startproc 1540 @ args = 0, pretend = 0, frame = 24 1541 @ frame_needed = 1, uses_anonymous_args = 0 1542 0000 80B5 push {r7, lr} 1543 .LCFI41: 1544 .cfi_def_cfa_offset 8 1545 .cfi_offset 7, -8 1546 .cfi_offset 14, -4 1547 0002 86B0 sub sp, sp, #24 1548 .LCFI42: 1549 .cfi_def_cfa_offset 32 1550 0004 00AF add r7, sp, #0 1551 .LCFI43: 1552 .cfi_def_cfa_register 7 1553 0006 7860 str r0, [r7, #4] 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr; 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline; 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset; 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */ 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line)); 1554 .loc 1 592 3 1555 0008 7B68 ldr r3, [r7, #4] 1556 000a 1A68 ldr r2, [r3] 1557 000c 244B ldr r3, .L89 1558 000e 1340 ands r3, r3, r2 1559 0010 002B cmp r3, #0 1560 0012 1BD1 bne .L85 1561 .loc 1 592 3 is_stmt 0 discriminator 2 1562 0014 7B68 ldr r3, [r7, #4] 1563 0016 1B68 ldr r3, [r3] 1564 0018 03F0E063 and r3, r3, #117440512 1565 001c B3F1807F cmp r3, #16777216 1566 0020 0DD0 beq .L86 1567 .loc 1 592 3 discriminator 3 1568 0022 7B68 ldr r3, [r7, #4] 1569 0024 1B68 ldr r3, [r3] 1570 0026 03F0E063 and r3, r3, #117440512 1571 002a B3F1007F cmp r3, #33554432 1572 002e 06D0 beq .L86 1573 .loc 1 592 3 discriminator 5 1574 0030 7B68 ldr r3, [r7, #4] 1575 0032 1B68 ldr r3, [r3] 1576 0034 03F0E063 and r3, r3, #117440512 1577 0038 B3F1C06F cmp r3, #100663296 1578 003c 06D1 bne .L85 1579 .L86: 1580 .loc 1 592 3 discriminator 8 1581 003e 7B68 ldr r3, [r7, #4] 1582 0040 1A68 ldr r2, [r3] 1583 0042 184B ldr r3, .L89+4 1584 0044 1340 ands r3, r3, r2 1585 0046 184A ldr r2, .L89+8 1586 0048 9342 cmp r3, r2 1587 004a 04D9 bls .L87 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 39 1588 .L85: 1589 .loc 1 592 3 discriminator 9 1590 004c 4FF41471 mov r1, #592 1591 0050 1648 ldr r0, .L89+12 1592 0052 FFF7FEFF bl assert_failed 1593 .L87: 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line)); 1594 .loc 1 593 3 is_stmt 1 1595 0056 7B68 ldr r3, [r7, #4] 1596 0058 1B68 ldr r3, [r3] 1597 005a 03F00073 and r3, r3, #33554432 1598 005e 002B cmp r3, #0 1599 0060 04D1 bne .L88 1600 .loc 1 593 3 is_stmt 0 discriminator 1 1601 0062 40F25121 movw r1, #593 1602 0066 1148 ldr r0, .L89+12 1603 0068 FFF7FEFF bl assert_failed 1604 .L88: 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */ 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT); 1605 .loc 1 596 19 is_stmt 1 1606 006c 7B68 ldr r3, [r7, #4] 1607 006e 1B68 ldr r3, [r3] 1608 .loc 1 596 43 1609 0070 1B0C lsrs r3, r3, #16 1610 .loc 1 596 10 1611 0072 03F00103 and r3, r3, #1 1612 0076 7B61 str r3, [r7, #20] 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK)); 1613 .loc 1 597 28 1614 0078 7B68 ldr r3, [r7, #4] 1615 007a 1B68 ldr r3, [r3] 1616 .loc 1 597 35 1617 007c 03F01F03 and r3, r3, #31 1618 .loc 1 597 12 1619 0080 0122 movs r2, #1 1620 0082 02FA03F3 lsl r3, r2, r3 1621 0086 3B61 str r3, [r7, #16] 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->SWIER + (EXTI_CONFIG_OFFSET * offset)); 1622 .loc 1 599 27 1623 0088 7B69 ldr r3, [r7, #20] 1624 008a 5A01 lsls r2, r3, #5 1625 .loc 1 599 11 1626 008c 084B ldr r3, .L89+16 1627 008e 1344 add r3, r3, r2 1628 0090 FB60 str r3, [r7, #12] 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = maskline; 1629 .loc 1 600 12 1630 0092 FB68 ldr r3, [r7, #12] 1631 0094 3A69 ldr r2, [r7, #16] 1632 0096 1A60 str r2, [r3] 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** } 1633 .loc 1 601 1 1634 0098 00BF nop 1635 009a 1837 adds r7, r7, #24 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 40 1636 .LCFI44: 1637 .cfi_def_cfa_offset 8 1638 009c BD46 mov sp, r7 1639 .LCFI45: 1640 .cfi_def_cfa_register 13 1641 @ sp needed 1642 009e 80BD pop {r7, pc} 1643 .L90: 1644 .align 2 1645 .L89: 1646 00a0 E0FFFEF8 .word -117506080 1647 00a4 1F000100 .word 65567 1648 00a8 03000100 .word 65539 1649 00ac 00000000 .word .LC0 1650 00b0 10040140 .word 1073808400 1651 .cfi_endproc 1652 .LFE138: 1654 .text 1655 .Letext0: 1656 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 1657 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 1658 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 1659 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 1660 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s page 41 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_exti.c C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:20 .rodata:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:25 .text.HAL_EXTI_SetConfigLine:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:31 .text.HAL_EXTI_SetConfigLine:00000000 HAL_EXTI_SetConfigLine C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:433 .text.HAL_EXTI_SetConfigLine:00000254 $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:445 .text.HAL_EXTI_GetConfigLine:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:451 .text.HAL_EXTI_GetConfigLine:00000000 HAL_EXTI_GetConfigLine C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:722 .text.HAL_EXTI_GetConfigLine:0000018c $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:734 .text.HAL_EXTI_ClearConfigLine:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:740 .text.HAL_EXTI_ClearConfigLine:00000000 HAL_EXTI_ClearConfigLine C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:979 .text.HAL_EXTI_ClearConfigLine:0000015c $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:991 .text.HAL_EXTI_RegisterCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:997 .text.HAL_EXTI_RegisterCallback:00000000 HAL_EXTI_RegisterCallback C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1058 .text.HAL_EXTI_GetHandle:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1064 .text.HAL_EXTI_GetHandle:00000000 HAL_EXTI_GetHandle C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1146 .text.HAL_EXTI_GetHandle:00000068 $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1154 .text.HAL_EXTI_IRQHandler:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1160 .text.HAL_EXTI_IRQHandler:00000000 HAL_EXTI_IRQHandler C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1244 .text.HAL_EXTI_IRQHandler:0000005c $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1250 .text.HAL_EXTI_GetPending:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1256 .text.HAL_EXTI_GetPending:00000000 HAL_EXTI_GetPending C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1386 .text.HAL_EXTI_GetPending:000000c4 $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1395 .text.HAL_EXTI_ClearPending:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1401 .text.HAL_EXTI_ClearPending:00000000 HAL_EXTI_ClearPending C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1521 .text.HAL_EXTI_ClearPending:000000b4 $d C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1530 .text.HAL_EXTI_GenerateSWI:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1536 .text.HAL_EXTI_GenerateSWI:00000000 HAL_EXTI_GenerateSWI C:\Users\zl835\AppData\Local\Temp\ccOo5IDX.s:1646 .text.HAL_EXTI_GenerateSWI:000000a0 $d UNDEFINED SYMBOLS assert_failed