ARM GAS /tmp/cc63nak4.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_gpio.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c" 20 .section .text.HAL_GPIO_Init,"ax",%progbits 21 .align 1 22 .global HAL_GPIO_Init 23 .syntax unified 24 .thumb 25 .thumb_func 27 HAL_GPIO_Init: 28 .LFB130: 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ****************************************************************************** 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @file stm32f3xx_hal_gpio.c 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @author MCD Application Team 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief GPIO HAL module driver. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * functionalities of the General Purpose Input/Output (GPIO) peripheral: 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * + IO operation functions 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ****************************************************************************** 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @attention 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * Copyright (c) 2016 STMicroelectronics. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * All rights reserved. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * This software is licensed under terms that can be found in the LICENSE file 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * in the root directory of this software component. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ****************************************************************************** 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** @verbatim 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ============================================================================== 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ##### GPIO Peripheral features ##### 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ============================================================================== 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** [..] 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (+) Each port bit of the general-purpose I/O (GPIO) ports can be individually 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** configured by software in several modes: 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) Input mode 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) Analog mode ARM GAS /tmp/cc63nak4.s page 2 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) Output mode 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) Alternate function mode 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) External interrupt/event lines 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (+) During and just after reset, the alternate functions and external interrupt 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** lines are not active and the I/O ports are configured in input floating mode. 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (+) All GPIO pins have weak internal pull-up and pull-down resistors, which can be 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** activated or not. 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (+) In Output or Alternate mode, each IO can be configured on open-drain or push-pull 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** type and the IO speed can be selected depending on the VDD value. 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (+) The microcontroller IO pins are connected to onboard peripherals/modules through a 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** multiplexer that allows only one peripheral alternate function (AF) connected 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** to an IO pin at a time. In this way, there can be no conflict between peripherals 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** sharing the same IO pin. 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (+) All ports have external interrupt/event capability. To use external interrupt 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** lines, the port must be configured in input mode. All available GPIO pins are 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** connected to the 16 external interrupt/event lines from EXTI0 to EXTI15. 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (+) The external interrupt/event controller consists of up to 23 edge detectors 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (16 lines are connected to GPIO) for generating event/interrupt requests (each 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** input line can be independently configured to select the type (interrupt or event) 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** and the corresponding trigger event (rising or falling or both). Each line can 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** also be masked independently. 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ##### How to use this driver ##### 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ============================================================================== 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** [..] 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) Enable the GPIO AHB clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE(). 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) Configure the GPIO pin(s) using HAL_GPIO_Init(). 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** structure. 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) In case of Output or alternate function mode selection: the speed is 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** configured through "Speed" member from GPIO_InitTypeDef structure. 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) In alternate mode is selection, the alternate function connected to the IO 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** is configured through "Alternate" member from GPIO_InitTypeDef structure. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) Analog mode is required when a pin is to be used as ADC channel 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** or DAC output. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (++) In case of external interrupt/event selection the "Mode" member from 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIO_InitTypeDef structure select the type (interrupt or event) and 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** the corresponding trigger event (rising or falling or both). 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** HAL_NVIC_EnableIRQ(). 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin(). 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) To set/reset the level of a pin configured in output mode use 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** HAL_GPIO_WritePin()/HAL_GPIO_TogglePin(). 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) To lock pin configuration until next reset use HAL_GPIO_LockPin(). ARM GAS /tmp/cc63nak4.s page 3 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) During and just after reset, the alternate functions are not 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** active and the GPIO pins are configured in input floating mode (except JTAG 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** pins). 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (PC14 and PC15U, respectively) when the LSE oscillator is off. The LSE has 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** priority over the GPIO function. 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** general purpose PF0 and PF1, respectively, when the HSE oscillator is off. 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** The HSE has priority over the GPIO function. 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** @endverbatim 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ****************************************************************************** 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Includes ------------------------------------------------------------------*/ 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** #include "stm32f3xx_hal.h" 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** @addtogroup STM32F3xx_HAL_Driver 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @{ 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** @defgroup GPIO GPIO 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief GPIO HAL module driver 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @{ 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** MISRA C:2012 deviation rule has been granted for following rules: 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * Rule-18.1_d - Medium: Array pointer `GPIOx' is accessed with index [..,..] 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * which may be out of array bounds [..,UNKNOWN] in following APIs: 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * HAL_GPIO_Init 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * HAL_GPIO_DeInit 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** #ifdef HAL_GPIO_MODULE_ENABLED 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Private typedef -----------------------------------------------------------*/ 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Private defines -----------------------------------------------------------*/ 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** @addtogroup GPIO_Private_Constants 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @{ 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** #define GPIO_NUMBER (16U) 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @} 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Private macros ------------------------------------------------------------*/ 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Private macros ------------------------------------------------------------*/ 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** @defgroup GPIO_Private_Macros GPIO Private Macros 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @{ 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @} 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Private variables ---------------------------------------------------------*/ ARM GAS /tmp/cc63nak4.s page 4 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Private function prototypes -----------------------------------------------*/ 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Exported functions --------------------------------------------------------*/ 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions GPIO Exported Functions 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @{ 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group1 Initialization/de-initialization functions 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief Initialization and Configuration functions 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** @verbatim 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** =============================================================================== 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ##### Initialization and de-initialization functions ##### 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** =============================================================================== 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** @endverbatim 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @{ 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief Initialize the GPIOx peripheral according to the specified parameters in the GPIO_Init. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F3 family devices 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * the configuration information for the specified GPIO peripheral. 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval None 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 29 .loc 1 172 1 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 24 32 @ frame_needed = 1, uses_anonymous_args = 0 33 @ link register save eliminated. 34 0000 80B4 push {r7} 35 .cfi_def_cfa_offset 4 36 .cfi_offset 7, -4 37 0002 87B0 sub sp, sp, #28 38 .cfi_def_cfa_offset 32 39 0004 00AF add r7, sp, #0 40 .cfi_def_cfa_register 7 41 0006 7860 str r0, [r7, #4] 42 0008 3960 str r1, [r7] 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** uint32_t position = 0x00u; 43 .loc 1 173 12 44 000a 0023 movs r3, #0 45 000c 7B61 str r3, [r7, #20] 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** uint32_t iocurrent; 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** uint32_t temp; 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the parameters */ 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the port pins */ 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** while (((GPIO_Init->Pin) >> position) != 0x00u) 46 .loc 1 183 9 ARM GAS /tmp/cc63nak4.s page 5 47 000e 54E1 b .L2 48 .L22: 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Get current io position */ 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** iocurrent = (GPIO_Init->Pin) & (1uL << position); 49 .loc 1 186 27 50 0010 3B68 ldr r3, [r7] 51 0012 1A68 ldr r2, [r3] 52 .loc 1 186 41 53 0014 0121 movs r1, #1 54 0016 7B69 ldr r3, [r7, #20] 55 0018 01FA03F3 lsl r3, r1, r3 56 .loc 1 186 15 57 001c 1340 ands r3, r3, r2 58 001e FB60 str r3, [r7, #12] 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if (iocurrent != 0x00u) 59 .loc 1 188 8 60 0020 FB68 ldr r3, [r7, #12] 61 0022 002B cmp r3, #0 62 0024 00F04681 beq .L3 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/ 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* In case of Output or Alternate function mode selection */ 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_A 63 .loc 1 192 21 64 0028 3B68 ldr r3, [r7] 65 002a 5B68 ldr r3, [r3, #4] 66 .loc 1 192 28 67 002c 03F00303 and r3, r3, #3 68 .loc 1 192 9 69 0030 012B cmp r3, #1 70 0032 05D0 beq .L4 71 .loc 1 192 71 discriminator 1 72 0034 3B68 ldr r3, [r7] 73 0036 5B68 ldr r3, [r3, #4] 74 .loc 1 192 78 discriminator 1 75 0038 03F00303 and r3, r3, #3 76 .loc 1 192 57 discriminator 1 77 003c 022B cmp r3, #2 78 003e 30D1 bne .L5 79 .L4: 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the Speed parameter */ 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the IO Speed */ 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = GPIOx->OSPEEDR; 80 .loc 1 197 14 81 0040 7B68 ldr r3, [r7, #4] 82 0042 9B68 ldr r3, [r3, #8] 83 0044 3B61 str r3, [r7, #16] 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2u)); 84 .loc 1 198 55 85 0046 7B69 ldr r3, [r7, #20] 86 0048 5B00 lsls r3, r3, #1 87 .loc 1 198 42 88 004a 0322 movs r2, #3 ARM GAS /tmp/cc63nak4.s page 6 89 004c 02FA03F3 lsl r3, r2, r3 90 .loc 1 198 17 91 0050 DB43 mvns r3, r3 92 .loc 1 198 14 93 0052 3A69 ldr r2, [r7, #16] 94 0054 1340 ands r3, r3, r2 95 0056 3B61 str r3, [r7, #16] 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2u)); 96 .loc 1 199 27 97 0058 3B68 ldr r3, [r7] 98 005a DA68 ldr r2, [r3, #12] 99 .loc 1 199 48 100 005c 7B69 ldr r3, [r7, #20] 101 005e 5B00 lsls r3, r3, #1 102 .loc 1 199 35 103 0060 02FA03F3 lsl r3, r2, r3 104 .loc 1 199 14 105 0064 3A69 ldr r2, [r7, #16] 106 0066 1343 orrs r3, r3, r2 107 0068 3B61 str r3, [r7, #16] 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->OSPEEDR = temp; 108 .loc 1 200 24 109 006a 7B68 ldr r3, [r7, #4] 110 006c 3A69 ldr r2, [r7, #16] 111 006e 9A60 str r2, [r3, #8] 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the IO Output Type */ 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = GPIOx->OTYPER; 112 .loc 1 203 14 113 0070 7B68 ldr r3, [r7, #4] 114 0072 5B68 ldr r3, [r3, #4] 115 0074 3B61 str r3, [r7, #16] 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ; 116 .loc 1 204 36 117 0076 0122 movs r2, #1 118 0078 7B69 ldr r3, [r7, #20] 119 007a 02FA03F3 lsl r3, r2, r3 120 .loc 1 204 17 121 007e DB43 mvns r3, r3 122 .loc 1 204 14 123 0080 3A69 ldr r2, [r7, #16] 124 0082 1340 ands r3, r3, r2 125 0084 3B61 str r3, [r7, #16] 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); 126 .loc 1 205 29 127 0086 3B68 ldr r3, [r7] 128 0088 5B68 ldr r3, [r3, #4] 129 .loc 1 205 51 130 008a 1B09 lsrs r3, r3, #4 131 008c 03F00102 and r2, r3, #1 132 .loc 1 205 71 133 0090 7B69 ldr r3, [r7, #20] 134 0092 02FA03F3 lsl r3, r2, r3 135 .loc 1 205 14 136 0096 3A69 ldr r2, [r7, #16] 137 0098 1343 orrs r3, r3, r2 138 009a 3B61 str r3, [r7, #16] ARM GAS /tmp/cc63nak4.s page 7 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->OTYPER = temp; 139 .loc 1 206 23 140 009c 7B68 ldr r3, [r7, #4] 141 009e 3A69 ldr r2, [r7, #16] 142 00a0 5A60 str r2, [r3, #4] 143 .L5: 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) 144 .loc 1 209 20 145 00a2 3B68 ldr r3, [r7] 146 00a4 5B68 ldr r3, [r3, #4] 147 .loc 1 209 27 148 00a6 03F00303 and r3, r3, #3 149 .loc 1 209 9 150 00aa 032B cmp r3, #3 151 00ac 17D0 beq .L6 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the Pull parameter */ 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Activate the Pull-up or Pull down resistor for the current IO */ 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = GPIOx->PUPDR; 152 .loc 1 215 14 153 00ae 7B68 ldr r3, [r7, #4] 154 00b0 DB68 ldr r3, [r3, #12] 155 00b2 3B61 str r3, [r7, #16] 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u)); 156 .loc 1 216 50 157 00b4 7B69 ldr r3, [r7, #20] 158 00b6 5B00 lsls r3, r3, #1 159 .loc 1 216 37 160 00b8 0322 movs r2, #3 161 00ba 02FA03F3 lsl r3, r2, r3 162 .loc 1 216 17 163 00be DB43 mvns r3, r3 164 .loc 1 216 14 165 00c0 3A69 ldr r2, [r7, #16] 166 00c2 1340 ands r3, r3, r2 167 00c4 3B61 str r3, [r7, #16] 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2u)); 168 .loc 1 217 28 169 00c6 3B68 ldr r3, [r7] 170 00c8 9A68 ldr r2, [r3, #8] 171 .loc 1 217 49 172 00ca 7B69 ldr r3, [r7, #20] 173 00cc 5B00 lsls r3, r3, #1 174 .loc 1 217 36 175 00ce 02FA03F3 lsl r3, r2, r3 176 .loc 1 217 14 177 00d2 3A69 ldr r2, [r7, #16] 178 00d4 1343 orrs r3, r3, r2 179 00d6 3B61 str r3, [r7, #16] 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->PUPDR = temp; 180 .loc 1 218 22 181 00d8 7B68 ldr r3, [r7, #4] 182 00da 3A69 ldr r2, [r7, #16] ARM GAS /tmp/cc63nak4.s page 8 183 00dc DA60 str r2, [r3, #12] 184 .L6: 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/ 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* In case of Alternate function mode selection */ 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) 185 .loc 1 223 20 186 00de 3B68 ldr r3, [r7] 187 00e0 5B68 ldr r3, [r3, #4] 188 .loc 1 223 27 189 00e2 03F00303 and r3, r3, #3 190 .loc 1 223 9 191 00e6 022B cmp r3, #2 192 00e8 23D1 bne .L7 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the Alternate function parameters */ 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure Alternate function mapped with the current IO */ 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = GPIOx->AFR[position >> 3u]; 193 .loc 1 230 36 194 00ea 7B69 ldr r3, [r7, #20] 195 00ec DA08 lsrs r2, r3, #3 196 .loc 1 230 14 197 00ee 7B68 ldr r3, [r7, #4] 198 00f0 0832 adds r2, r2, #8 199 00f2 53F82230 ldr r3, [r3, r2, lsl #2] 200 00f6 3B61 str r3, [r7, #16] 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(0xFu << ((position & 0x07u) * 4u)); 201 .loc 1 231 38 202 00f8 7B69 ldr r3, [r7, #20] 203 00fa 03F00703 and r3, r3, #7 204 .loc 1 231 47 205 00fe 9B00 lsls r3, r3, #2 206 .loc 1 231 24 207 0100 0F22 movs r2, #15 208 0102 02FA03F3 lsl r3, r2, r3 209 .loc 1 231 17 210 0106 DB43 mvns r3, r3 211 .loc 1 231 14 212 0108 3A69 ldr r2, [r7, #16] 213 010a 1340 ands r3, r3, r2 214 010c 3B61 str r3, [r7, #16] 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= ((GPIO_Init->Alternate) << ((position & 0x07u) * 4u)); 215 .loc 1 232 28 216 010e 3B68 ldr r3, [r7] 217 0110 1A69 ldr r2, [r3, #16] 218 .loc 1 232 55 219 0112 7B69 ldr r3, [r7, #20] 220 0114 03F00703 and r3, r3, #7 221 .loc 1 232 64 222 0118 9B00 lsls r3, r3, #2 223 .loc 1 232 41 224 011a 02FA03F3 lsl r3, r2, r3 225 .loc 1 232 14 ARM GAS /tmp/cc63nak4.s page 9 226 011e 3A69 ldr r2, [r7, #16] 227 0120 1343 orrs r3, r3, r2 228 0122 3B61 str r3, [r7, #16] 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->AFR[position >> 3u] = temp; 229 .loc 1 233 29 230 0124 7B69 ldr r3, [r7, #20] 231 0126 DA08 lsrs r2, r3, #3 232 .loc 1 233 36 233 0128 7B68 ldr r3, [r7, #4] 234 012a 0832 adds r2, r2, #8 235 012c 3969 ldr r1, [r7, #16] 236 012e 43F82210 str r1, [r3, r2, lsl #2] 237 .L7: 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = GPIOx->MODER; 238 .loc 1 237 12 239 0132 7B68 ldr r3, [r7, #4] 240 0134 1B68 ldr r3, [r3] 241 0136 3B61 str r3, [r7, #16] 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2u)); 242 .loc 1 238 48 243 0138 7B69 ldr r3, [r7, #20] 244 013a 5B00 lsls r3, r3, #1 245 .loc 1 238 35 246 013c 0322 movs r2, #3 247 013e 02FA03F3 lsl r3, r2, r3 248 .loc 1 238 15 249 0142 DB43 mvns r3, r3 250 .loc 1 238 12 251 0144 3A69 ldr r2, [r7, #16] 252 0146 1340 ands r3, r3, r2 253 0148 3B61 str r3, [r7, #16] 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u)); 254 .loc 1 239 26 255 014a 3B68 ldr r3, [r7] 256 014c 5B68 ldr r3, [r3, #4] 257 .loc 1 239 33 258 014e 03F00302 and r2, r3, #3 259 .loc 1 239 59 260 0152 7B69 ldr r3, [r7, #20] 261 0154 5B00 lsls r3, r3, #1 262 .loc 1 239 46 263 0156 02FA03F3 lsl r3, r2, r3 264 .loc 1 239 12 265 015a 3A69 ldr r2, [r7, #16] 266 015c 1343 orrs r3, r3, r2 267 015e 3B61 str r3, [r7, #16] 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->MODER = temp; 268 .loc 1 240 20 269 0160 7B68 ldr r3, [r7, #4] 270 0162 3A69 ldr r2, [r7, #16] 271 0164 1A60 str r2, [r3] 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /*--------------------- EXTI Mode Configuration ------------------------*/ 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */ ARM GAS /tmp/cc63nak4.s page 10 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_MODE) != 0x00u) 272 .loc 1 244 20 273 0166 3B68 ldr r3, [r7] 274 0168 5B68 ldr r3, [r3, #4] 275 .loc 1 244 27 276 016a 03F44033 and r3, r3, #196608 277 .loc 1 244 9 278 016e 002B cmp r3, #0 279 0170 00F0A080 beq .L3 280 .LBB2: 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Enable SYSCFG Clock */ 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** __HAL_RCC_SYSCFG_CLK_ENABLE(); 281 .loc 1 247 9 282 0174 584B ldr r3, .L23 283 0176 9B69 ldr r3, [r3, #24] 284 0178 574A ldr r2, .L23 285 017a 43F00103 orr r3, r3, #1 286 017e 9361 str r3, [r2, #24] 287 0180 554B ldr r3, .L23 288 0182 9B69 ldr r3, [r3, #24] 289 0184 03F00103 and r3, r3, #1 290 0188 BB60 str r3, [r7, #8] 291 018a BB68 ldr r3, [r7, #8] 292 .LBE2: 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = SYSCFG->EXTICR[position >> 2u]; 293 .loc 1 249 22 294 018c 534A ldr r2, .L23+4 295 .loc 1 249 40 296 018e 7B69 ldr r3, [r7, #20] 297 0190 9B08 lsrs r3, r3, #2 298 .loc 1 249 14 299 0192 0233 adds r3, r3, #2 300 0194 52F82330 ldr r3, [r2, r3, lsl #2] 301 0198 3B61 str r3, [r7, #16] 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(0x0FuL << (4u * (position & 0x03u))); 302 .loc 1 250 45 303 019a 7B69 ldr r3, [r7, #20] 304 019c 03F00303 and r3, r3, #3 305 .loc 1 250 33 306 01a0 9B00 lsls r3, r3, #2 307 .loc 1 250 26 308 01a2 0F22 movs r2, #15 309 01a4 02FA03F3 lsl r3, r2, r3 310 .loc 1 250 17 311 01a8 DB43 mvns r3, r3 312 .loc 1 250 14 313 01aa 3A69 ldr r2, [r7, #16] 314 01ac 1340 ands r3, r3, r2 315 01ae 3B61 str r3, [r7, #16] 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))); 316 .loc 1 251 18 317 01b0 7B68 ldr r3, [r7, #4] 318 01b2 B3F1904F cmp r3, #1207959552 319 01b6 19D0 beq .L8 320 .loc 1 251 18 is_stmt 0 discriminator 1 ARM GAS /tmp/cc63nak4.s page 11 321 01b8 7B68 ldr r3, [r7, #4] 322 01ba 494A ldr r2, .L23+8 323 01bc 9342 cmp r3, r2 324 01be 13D0 beq .L9 325 .loc 1 251 18 discriminator 3 326 01c0 7B68 ldr r3, [r7, #4] 327 01c2 484A ldr r2, .L23+12 328 01c4 9342 cmp r3, r2 329 01c6 0DD0 beq .L10 330 .loc 1 251 18 discriminator 5 331 01c8 7B68 ldr r3, [r7, #4] 332 01ca 474A ldr r2, .L23+16 333 01cc 9342 cmp r3, r2 334 01ce 07D0 beq .L11 335 .loc 1 251 18 discriminator 7 336 01d0 7B68 ldr r3, [r7, #4] 337 01d2 464A ldr r2, .L23+20 338 01d4 9342 cmp r3, r2 339 01d6 01D1 bne .L12 340 .loc 1 251 18 discriminator 9 341 01d8 0423 movs r3, #4 342 01da 08E0 b .L17 343 .L12: 344 .loc 1 251 18 discriminator 10 345 01dc 0523 movs r3, #5 346 01de 06E0 b .L17 347 .L11: 348 .loc 1 251 18 discriminator 8 349 01e0 0323 movs r3, #3 350 01e2 04E0 b .L17 351 .L10: 352 .loc 1 251 18 discriminator 6 353 01e4 0223 movs r3, #2 354 01e6 02E0 b .L17 355 .L9: 356 .loc 1 251 18 discriminator 4 357 01e8 0123 movs r3, #1 358 01ea 00E0 b .L17 359 .L8: 360 .loc 1 251 18 discriminator 2 361 01ec 0023 movs r3, #0 362 .L17: 363 .loc 1 251 59 is_stmt 1 discriminator 20 364 01ee 7A69 ldr r2, [r7, #20] 365 01f0 02F00302 and r2, r2, #3 366 .loc 1 251 47 discriminator 20 367 01f4 9200 lsls r2, r2, #2 368 .loc 1 251 40 discriminator 20 369 01f6 9340 lsls r3, r3, r2 370 .loc 1 251 14 discriminator 20 371 01f8 3A69 ldr r2, [r7, #16] 372 01fa 1343 orrs r3, r3, r2 373 01fc 3B61 str r3, [r7, #16] 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp; 374 .loc 1 252 15 375 01fe 3749 ldr r1, .L23+4 376 .loc 1 252 33 ARM GAS /tmp/cc63nak4.s page 12 377 0200 7B69 ldr r3, [r7, #20] 378 0202 9B08 lsrs r3, r3, #2 379 .loc 1 252 40 380 0204 0233 adds r3, r3, #2 381 0206 3A69 ldr r2, [r7, #16] 382 0208 41F82320 str r2, [r1, r3, lsl #2] 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */ 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = EXTI->RTSR; 383 .loc 1 255 20 384 020c 384B ldr r3, .L23+24 385 .loc 1 255 14 386 020e 9B68 ldr r3, [r3, #8] 387 0210 3B61 str r3, [r7, #16] 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(iocurrent); 388 .loc 1 256 17 389 0212 FB68 ldr r3, [r7, #12] 390 0214 DB43 mvns r3, r3 391 .loc 1 256 14 392 0216 3A69 ldr r2, [r7, #16] 393 0218 1340 ands r3, r3, r2 394 021a 3B61 str r3, [r7, #16] 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) 395 .loc 1 257 22 396 021c 3B68 ldr r3, [r7] 397 021e 5B68 ldr r3, [r3, #4] 398 .loc 1 257 29 399 0220 03F48013 and r3, r3, #1048576 400 .loc 1 257 11 401 0224 002B cmp r3, #0 402 0226 03D0 beq .L18 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= iocurrent; 403 .loc 1 259 16 404 0228 3A69 ldr r2, [r7, #16] 405 022a FB68 ldr r3, [r7, #12] 406 022c 1343 orrs r3, r3, r2 407 022e 3B61 str r3, [r7, #16] 408 .L18: 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->RTSR = temp; 409 .loc 1 261 13 410 0230 2F4A ldr r2, .L23+24 411 .loc 1 261 20 412 0232 3B69 ldr r3, [r7, #16] 413 0234 9360 str r3, [r2, #8] 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = EXTI->FTSR; 414 .loc 1 263 20 415 0236 2E4B ldr r3, .L23+24 416 .loc 1 263 14 417 0238 DB68 ldr r3, [r3, #12] 418 023a 3B61 str r3, [r7, #16] 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(iocurrent); 419 .loc 1 264 17 420 023c FB68 ldr r3, [r7, #12] 421 023e DB43 mvns r3, r3 ARM GAS /tmp/cc63nak4.s page 13 422 .loc 1 264 14 423 0240 3A69 ldr r2, [r7, #16] 424 0242 1340 ands r3, r3, r2 425 0244 3B61 str r3, [r7, #16] 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) 426 .loc 1 265 22 427 0246 3B68 ldr r3, [r7] 428 0248 5B68 ldr r3, [r3, #4] 429 .loc 1 265 29 430 024a 03F40013 and r3, r3, #2097152 431 .loc 1 265 11 432 024e 002B cmp r3, #0 433 0250 03D0 beq .L19 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= iocurrent; 434 .loc 1 267 16 435 0252 3A69 ldr r2, [r7, #16] 436 0254 FB68 ldr r3, [r7, #12] 437 0256 1343 orrs r3, r3, r2 438 0258 3B61 str r3, [r7, #16] 439 .L19: 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->FTSR = temp; 440 .loc 1 269 13 441 025a 254A ldr r2, .L23+24 442 .loc 1 269 20 443 025c 3B69 ldr r3, [r7, #16] 444 025e D360 str r3, [r2, #12] 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = EXTI->EMR; 445 .loc 1 271 20 446 0260 234B ldr r3, .L23+24 447 .loc 1 271 14 448 0262 5B68 ldr r3, [r3, #4] 449 0264 3B61 str r3, [r7, #16] 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(iocurrent); 450 .loc 1 272 17 451 0266 FB68 ldr r3, [r7, #12] 452 0268 DB43 mvns r3, r3 453 .loc 1 272 14 454 026a 3A69 ldr r2, [r7, #16] 455 026c 1340 ands r3, r3, r2 456 026e 3B61 str r3, [r7, #16] 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_EVT) != 0x00u) 457 .loc 1 273 22 458 0270 3B68 ldr r3, [r7] 459 0272 5B68 ldr r3, [r3, #4] 460 .loc 1 273 29 461 0274 03F40033 and r3, r3, #131072 462 .loc 1 273 11 463 0278 002B cmp r3, #0 464 027a 03D0 beq .L20 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= iocurrent; 465 .loc 1 275 16 466 027c 3A69 ldr r2, [r7, #16] 467 027e FB68 ldr r3, [r7, #12] ARM GAS /tmp/cc63nak4.s page 14 468 0280 1343 orrs r3, r3, r2 469 0282 3B61 str r3, [r7, #16] 470 .L20: 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->EMR = temp; 471 .loc 1 277 13 472 0284 1A4A ldr r2, .L23+24 473 .loc 1 277 19 474 0286 3B69 ldr r3, [r7, #16] 475 0288 5360 str r3, [r2, #4] 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Clear EXTI line configuration */ 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp = EXTI->IMR; 476 .loc 1 280 20 477 028a 194B ldr r3, .L23+24 478 .loc 1 280 14 479 028c 1B68 ldr r3, [r3] 480 028e 3B61 str r3, [r7, #16] 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp &= ~(iocurrent); 481 .loc 1 281 17 482 0290 FB68 ldr r3, [r7, #12] 483 0292 DB43 mvns r3, r3 484 .loc 1 281 14 485 0294 3A69 ldr r2, [r7, #16] 486 0296 1340 ands r3, r3, r2 487 0298 3B61 str r3, [r7, #16] 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_IT) != 0x00u) 488 .loc 1 282 22 489 029a 3B68 ldr r3, [r7] 490 029c 5B68 ldr r3, [r3, #4] 491 .loc 1 282 29 492 029e 03F48033 and r3, r3, #65536 493 .loc 1 282 11 494 02a2 002B cmp r3, #0 495 02a4 03D0 beq .L21 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** temp |= iocurrent; 496 .loc 1 284 16 497 02a6 3A69 ldr r2, [r7, #16] 498 02a8 FB68 ldr r3, [r7, #12] 499 02aa 1343 orrs r3, r3, r2 500 02ac 3B61 str r3, [r7, #16] 501 .L21: 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->IMR = temp; 502 .loc 1 286 13 503 02ae 104A ldr r2, .L23+24 504 .loc 1 286 19 505 02b0 3B69 ldr r3, [r7, #16] 506 02b2 1360 str r3, [r2] 507 .L3: 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** position++; 508 .loc 1 290 13 509 02b4 7B69 ldr r3, [r7, #20] ARM GAS /tmp/cc63nak4.s page 15 510 02b6 0133 adds r3, r3, #1 511 02b8 7B61 str r3, [r7, #20] 512 .L2: 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 513 .loc 1 183 21 514 02ba 3B68 ldr r3, [r7] 515 02bc 1A68 ldr r2, [r3] 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 516 .loc 1 183 28 517 02be 7B69 ldr r3, [r7, #20] 518 02c0 22FA03F3 lsr r3, r2, r3 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 519 .loc 1 183 41 520 02c4 002B cmp r3, #0 521 02c6 7FF4A3AE bne .L22 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 522 .loc 1 292 1 523 02ca 00BF nop 524 02cc 00BF nop 525 02ce 1C37 adds r7, r7, #28 526 .cfi_def_cfa_offset 4 527 02d0 BD46 mov sp, r7 528 .cfi_def_cfa_register 13 529 @ sp needed 530 02d2 5DF8047B ldr r7, [sp], #4 531 .cfi_restore 7 532 .cfi_def_cfa_offset 0 533 02d6 7047 bx lr 534 .L24: 535 .align 2 536 .L23: 537 02d8 00100240 .word 1073876992 538 02dc 00000140 .word 1073807360 539 02e0 00040048 .word 1207960576 540 02e4 00080048 .word 1207961600 541 02e8 000C0048 .word 1207962624 542 02ec 00100048 .word 1207963648 543 02f0 00040140 .word 1073808384 544 .cfi_endproc 545 .LFE130: 547 .section .text.HAL_GPIO_DeInit,"ax",%progbits 548 .align 1 549 .global HAL_GPIO_DeInit 550 .syntax unified 551 .thumb 552 .thumb_func 554 HAL_GPIO_DeInit: 555 .LFB131: 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief De-initialize the GPIOx peripheral registers to their default reset values. 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F30X device or STM32 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written. 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15). 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval None 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ ARM GAS /tmp/cc63nak4.s page 16 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin) 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 556 .loc 1 302 1 557 .cfi_startproc 558 @ args = 0, pretend = 0, frame = 24 559 @ frame_needed = 1, uses_anonymous_args = 0 560 @ link register save eliminated. 561 0000 80B4 push {r7} 562 .cfi_def_cfa_offset 4 563 .cfi_offset 7, -4 564 0002 87B0 sub sp, sp, #28 565 .cfi_def_cfa_offset 32 566 0004 00AF add r7, sp, #0 567 .cfi_def_cfa_register 7 568 0006 7860 str r0, [r7, #4] 569 0008 3960 str r1, [r7] 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** uint32_t position = 0x00u; 570 .loc 1 303 12 571 000a 0023 movs r3, #0 572 000c 7B61 str r3, [r7, #20] 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** uint32_t iocurrent; 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** uint32_t tmp; 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the parameters */ 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the port pins */ 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** while ((GPIO_Pin >> position) != 0x00u) 573 .loc 1 312 9 574 000e B8E0 b .L26 575 .L39: 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Get current io position */ 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** iocurrent = (GPIO_Pin) & (1uL << position); 576 .loc 1 315 35 577 0010 0122 movs r2, #1 578 0012 7B69 ldr r3, [r7, #20] 579 0014 02FA03F3 lsl r3, r2, r3 580 .loc 1 315 15 581 0018 3A68 ldr r2, [r7] 582 001a 1340 ands r3, r3, r2 583 001c 3B61 str r3, [r7, #16] 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if (iocurrent != 0x00u) 584 .loc 1 317 8 585 001e 3B69 ldr r3, [r7, #16] 586 0020 002B cmp r3, #0 587 0022 00F0AB80 beq .L27 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /*------------------------- EXTI Mode Configuration --------------------*/ 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Clear the External Interrupt or Event for the current IO */ 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** tmp = SYSCFG->EXTICR[position >> 2u]; 588 .loc 1 322 19 589 0026 5E4A ldr r2, .L40 590 .loc 1 322 37 ARM GAS /tmp/cc63nak4.s page 17 591 0028 7B69 ldr r3, [r7, #20] 592 002a 9B08 lsrs r3, r3, #2 593 .loc 1 322 11 594 002c 0233 adds r3, r3, #2 595 002e 52F82330 ldr r3, [r2, r3, lsl #2] 596 0032 FB60 str r3, [r7, #12] 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** tmp &= (0x0FuL << (4u * (position & 0x03u))); 597 .loc 1 323 41 598 0034 7B69 ldr r3, [r7, #20] 599 0036 03F00303 and r3, r3, #3 600 .loc 1 323 29 601 003a 9B00 lsls r3, r3, #2 602 .loc 1 323 22 603 003c 0F22 movs r2, #15 604 003e 02FA03F3 lsl r3, r2, r3 605 .loc 1 323 11 606 0042 FA68 ldr r2, [r7, #12] 607 0044 1340 ands r3, r3, r2 608 0046 FB60 str r3, [r7, #12] 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)))) 609 .loc 1 324 19 610 0048 7B68 ldr r3, [r7, #4] 611 004a B3F1904F cmp r3, #1207959552 612 004e 19D0 beq .L28 613 .loc 1 324 19 is_stmt 0 discriminator 1 614 0050 7B68 ldr r3, [r7, #4] 615 0052 544A ldr r2, .L40+4 616 0054 9342 cmp r3, r2 617 0056 13D0 beq .L29 618 .loc 1 324 19 discriminator 3 619 0058 7B68 ldr r3, [r7, #4] 620 005a 534A ldr r2, .L40+8 621 005c 9342 cmp r3, r2 622 005e 0DD0 beq .L30 623 .loc 1 324 19 discriminator 5 624 0060 7B68 ldr r3, [r7, #4] 625 0062 524A ldr r2, .L40+12 626 0064 9342 cmp r3, r2 627 0066 07D0 beq .L31 628 .loc 1 324 19 discriminator 7 629 0068 7B68 ldr r3, [r7, #4] 630 006a 514A ldr r2, .L40+16 631 006c 9342 cmp r3, r2 632 006e 01D1 bne .L32 633 .loc 1 324 19 discriminator 9 634 0070 0423 movs r3, #4 635 0072 08E0 b .L37 636 .L32: 637 .loc 1 324 19 discriminator 10 638 0074 0523 movs r3, #5 639 0076 06E0 b .L37 640 .L31: 641 .loc 1 324 19 discriminator 8 642 0078 0323 movs r3, #3 643 007a 04E0 b .L37 644 .L30: 645 .loc 1 324 19 discriminator 6 ARM GAS /tmp/cc63nak4.s page 18 646 007c 0223 movs r3, #2 647 007e 02E0 b .L37 648 .L29: 649 .loc 1 324 19 discriminator 4 650 0080 0123 movs r3, #1 651 0082 00E0 b .L37 652 .L28: 653 .loc 1 324 19 discriminator 2 654 0084 0023 movs r3, #0 655 .L37: 656 .loc 1 324 60 is_stmt 1 discriminator 20 657 0086 7A69 ldr r2, [r7, #20] 658 0088 02F00302 and r2, r2, #3 659 .loc 1 324 48 discriminator 20 660 008c 9200 lsls r2, r2, #2 661 .loc 1 324 41 discriminator 20 662 008e 9340 lsls r3, r3, r2 663 .loc 1 324 10 discriminator 20 664 0090 FA68 ldr r2, [r7, #12] 665 0092 9A42 cmp r2, r3 666 0094 32D1 bne .L38 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Clear EXTI line configuration */ 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->IMR &= ~((uint32_t)iocurrent); 667 .loc 1 327 13 668 0096 474B ldr r3, .L40+20 669 0098 1A68 ldr r2, [r3] 670 .loc 1 327 22 671 009a 3B69 ldr r3, [r7, #16] 672 009c DB43 mvns r3, r3 673 .loc 1 327 13 674 009e 4549 ldr r1, .L40+20 675 .loc 1 327 19 676 00a0 1340 ands r3, r3, r2 677 00a2 0B60 str r3, [r1] 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent); 678 .loc 1 328 13 679 00a4 434B ldr r3, .L40+20 680 00a6 5A68 ldr r2, [r3, #4] 681 .loc 1 328 22 682 00a8 3B69 ldr r3, [r7, #16] 683 00aa DB43 mvns r3, r3 684 .loc 1 328 13 685 00ac 4149 ldr r1, .L40+20 686 .loc 1 328 19 687 00ae 1340 ands r3, r3, r2 688 00b0 4B60 str r3, [r1, #4] 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */ 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->FTSR &= ~((uint32_t)iocurrent); 689 .loc 1 331 13 690 00b2 404B ldr r3, .L40+20 691 00b4 DA68 ldr r2, [r3, #12] 692 .loc 1 331 23 693 00b6 3B69 ldr r3, [r7, #16] 694 00b8 DB43 mvns r3, r3 695 .loc 1 331 13 ARM GAS /tmp/cc63nak4.s page 19 696 00ba 3E49 ldr r1, .L40+20 697 .loc 1 331 20 698 00bc 1340 ands r3, r3, r2 699 00be CB60 str r3, [r1, #12] 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent); 700 .loc 1 332 13 701 00c0 3C4B ldr r3, .L40+20 702 00c2 9A68 ldr r2, [r3, #8] 703 .loc 1 332 23 704 00c4 3B69 ldr r3, [r7, #16] 705 00c6 DB43 mvns r3, r3 706 .loc 1 332 13 707 00c8 3A49 ldr r1, .L40+20 708 .loc 1 332 20 709 00ca 1340 ands r3, r3, r2 710 00cc 8B60 str r3, [r1, #8] 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */ 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** tmp = 0x0FuL << (4u * (position & 0x03u)); 711 .loc 1 335 41 712 00ce 7B69 ldr r3, [r7, #20] 713 00d0 03F00303 and r3, r3, #3 714 .loc 1 335 29 715 00d4 9B00 lsls r3, r3, #2 716 .loc 1 335 13 717 00d6 0F22 movs r2, #15 718 00d8 02FA03F3 lsl r3, r2, r3 719 00dc FB60 str r3, [r7, #12] 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] &= ~tmp; 720 .loc 1 336 15 721 00de 304A ldr r2, .L40 722 .loc 1 336 23 723 00e0 7B69 ldr r3, [r7, #20] 724 00e2 9B08 lsrs r3, r3, #2 725 00e4 0233 adds r3, r3, #2 726 00e6 52F82310 ldr r1, [r2, r3, lsl #2] 727 .loc 1 336 43 728 00ea FB68 ldr r3, [r7, #12] 729 00ec DA43 mvns r2, r3 730 .loc 1 336 15 731 00ee 2C48 ldr r0, .L40 732 .loc 1 336 23 733 00f0 7B69 ldr r3, [r7, #20] 734 00f2 9B08 lsrs r3, r3, #2 735 .loc 1 336 40 736 00f4 0A40 ands r2, r2, r1 737 00f6 0233 adds r3, r3, #2 738 00f8 40F82320 str r2, [r0, r3, lsl #2] 739 .L38: 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /*------------------------- GPIO Mode Configuration --------------------*/ 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure IO Direction in Input Floating Mode */ 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->MODER &= ~(GPIO_MODER_MODER0 << (position * 2u)); 740 .loc 1 341 12 741 00fc 7B68 ldr r3, [r7, #4] 742 00fe 1A68 ldr r2, [r3] ARM GAS /tmp/cc63nak4.s page 20 743 .loc 1 341 56 744 0100 7B69 ldr r3, [r7, #20] 745 0102 5B00 lsls r3, r3, #1 746 .loc 1 341 43 747 0104 0321 movs r1, #3 748 0106 01FA03F3 lsl r3, r1, r3 749 .loc 1 341 23 750 010a DB43 mvns r3, r3 751 .loc 1 341 20 752 010c 1A40 ands r2, r2, r3 753 010e 7B68 ldr r3, [r7, #4] 754 0110 1A60 str r2, [r3] 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the default Alternate Function in current IO */ 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->AFR[position >> 3u] &= ~(0xFu << ((uint32_t)(position & 0x07u) * 4u)) ; 755 .loc 1 344 17 756 0112 7B69 ldr r3, [r7, #20] 757 0114 DA08 lsrs r2, r3, #3 758 0116 7B68 ldr r3, [r7, #4] 759 0118 0832 adds r2, r2, #8 760 011a 53F82210 ldr r1, [r3, r2, lsl #2] 761 .loc 1 344 48 762 011e 7B69 ldr r3, [r7, #20] 763 0120 03F00703 and r3, r3, #7 764 .loc 1 344 77 765 0124 9B00 lsls r3, r3, #2 766 .loc 1 344 44 767 0126 0F22 movs r2, #15 768 0128 02FA03F3 lsl r3, r2, r3 769 .loc 1 344 37 770 012c DB43 mvns r3, r3 771 .loc 1 344 17 772 012e 7A69 ldr r2, [r7, #20] 773 0130 D208 lsrs r2, r2, #3 774 .loc 1 344 34 775 0132 1940 ands r1, r1, r3 776 0134 7B68 ldr r3, [r7, #4] 777 0136 0832 adds r2, r2, #8 778 0138 43F82210 str r1, [r3, r2, lsl #2] 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Deactivate the Pull-up and Pull-down resistor for the current IO */ 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u)); 779 .loc 1 347 12 780 013c 7B68 ldr r3, [r7, #4] 781 013e DA68 ldr r2, [r3, #12] 782 .loc 1 347 56 783 0140 7B69 ldr r3, [r7, #20] 784 0142 5B00 lsls r3, r3, #1 785 .loc 1 347 43 786 0144 0321 movs r1, #3 787 0146 01FA03F3 lsl r3, r1, r3 788 .loc 1 347 23 789 014a DB43 mvns r3, r3 790 .loc 1 347 20 791 014c 1A40 ands r2, r2, r3 792 014e 7B68 ldr r3, [r7, #4] 793 0150 DA60 str r2, [r3, #12] ARM GAS /tmp/cc63nak4.s page 21 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the default value IO Output Type */ 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->OTYPER &= ~(GPIO_OTYPER_OT_0 << position) ; 794 .loc 1 350 12 795 0152 7B68 ldr r3, [r7, #4] 796 0154 5A68 ldr r2, [r3, #4] 797 .loc 1 350 44 798 0156 0121 movs r1, #1 799 0158 7B69 ldr r3, [r7, #20] 800 015a 01FA03F3 lsl r3, r1, r3 801 .loc 1 350 25 802 015e DB43 mvns r3, r3 803 .loc 1 350 22 804 0160 1A40 ands r2, r2, r3 805 0162 7B68 ldr r3, [r7, #4] 806 0164 5A60 str r2, [r3, #4] 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Configure the default value for IO Speed */ 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2u)); 807 .loc 1 353 12 808 0166 7B68 ldr r3, [r7, #4] 809 0168 9A68 ldr r2, [r3, #8] 810 .loc 1 353 63 811 016a 7B69 ldr r3, [r7, #20] 812 016c 5B00 lsls r3, r3, #1 813 .loc 1 353 50 814 016e 0321 movs r1, #3 815 0170 01FA03F3 lsl r3, r1, r3 816 .loc 1 353 25 817 0174 DB43 mvns r3, r3 818 .loc 1 353 22 819 0176 1A40 ands r2, r2, r3 820 0178 7B68 ldr r3, [r7, #4] 821 017a 9A60 str r2, [r3, #8] 822 .L27: 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** position++; 823 .loc 1 356 13 824 017c 7B69 ldr r3, [r7, #20] 825 017e 0133 adds r3, r3, #1 826 0180 7B61 str r3, [r7, #20] 827 .L26: 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 828 .loc 1 312 20 829 0182 3A68 ldr r2, [r7] 830 0184 7B69 ldr r3, [r7, #20] 831 0186 22FA03F3 lsr r3, r2, r3 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 832 .loc 1 312 33 833 018a 002B cmp r3, #0 834 018c 7FF440AF bne .L39 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 835 .loc 1 358 1 836 0190 00BF nop 837 0192 00BF nop ARM GAS /tmp/cc63nak4.s page 22 838 0194 1C37 adds r7, r7, #28 839 .cfi_def_cfa_offset 4 840 0196 BD46 mov sp, r7 841 .cfi_def_cfa_register 13 842 @ sp needed 843 0198 5DF8047B ldr r7, [sp], #4 844 .cfi_restore 7 845 .cfi_def_cfa_offset 0 846 019c 7047 bx lr 847 .L41: 848 019e 00BF .align 2 849 .L40: 850 01a0 00000140 .word 1073807360 851 01a4 00040048 .word 1207960576 852 01a8 00080048 .word 1207961600 853 01ac 000C0048 .word 1207962624 854 01b0 00100048 .word 1207963648 855 01b4 00040140 .word 1073808384 856 .cfi_endproc 857 .LFE131: 859 .section .text.HAL_GPIO_ReadPin,"ax",%progbits 860 .align 1 861 .global HAL_GPIO_ReadPin 862 .syntax unified 863 .thumb 864 .thumb_func 866 HAL_GPIO_ReadPin: 867 .LFB132: 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @} 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group2 IO operation functions 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief GPIO Read, Write, Toggle, Lock and EXTI management functions. 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** @verbatim 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** =============================================================================== 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** ##### IO operation functions ##### 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** =============================================================================== 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** @endverbatim 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @{ 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief Read the specified input port pin. 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F3 family 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to read. 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * This parameter can be GPIO_PIN_x where x can be (0..15). 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval The input port pin value. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 868 .loc 1 384 1 869 .cfi_startproc 870 @ args = 0, pretend = 0, frame = 16 ARM GAS /tmp/cc63nak4.s page 23 871 @ frame_needed = 1, uses_anonymous_args = 0 872 @ link register save eliminated. 873 0000 80B4 push {r7} 874 .cfi_def_cfa_offset 4 875 .cfi_offset 7, -4 876 0002 85B0 sub sp, sp, #20 877 .cfi_def_cfa_offset 24 878 0004 00AF add r7, sp, #0 879 .cfi_def_cfa_register 7 880 0006 7860 str r0, [r7, #4] 881 0008 0B46 mov r3, r1 882 000a 7B80 strh r3, [r7, #2] @ movhi 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIO_PinState bitstatus; 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the parameters */ 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) 883 .loc 1 390 12 884 000c 7B68 ldr r3, [r7, #4] 885 000e 1A69 ldr r2, [r3, #16] 886 .loc 1 390 18 887 0010 7B88 ldrh r3, [r7, #2] 888 0012 1340 ands r3, r3, r2 889 .loc 1 390 5 890 0014 002B cmp r3, #0 891 0016 02D0 beq .L43 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET; 892 .loc 1 392 15 893 0018 0123 movs r3, #1 894 001a FB73 strb r3, [r7, #15] 895 001c 01E0 b .L44 896 .L43: 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** else 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** bitstatus = GPIO_PIN_RESET; 897 .loc 1 396 15 898 001e 0023 movs r3, #0 899 0020 FB73 strb r3, [r7, #15] 900 .L44: 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** return bitstatus; 901 .loc 1 398 10 902 0022 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 903 .loc 1 399 1 904 0024 1846 mov r0, r3 905 0026 1437 adds r7, r7, #20 906 .cfi_def_cfa_offset 4 907 0028 BD46 mov sp, r7 908 .cfi_def_cfa_register 13 909 @ sp needed 910 002a 5DF8047B ldr r7, [sp], #4 911 .cfi_restore 7 912 .cfi_def_cfa_offset 0 ARM GAS /tmp/cc63nak4.s page 24 913 002e 7047 bx lr 914 .cfi_endproc 915 .LFE132: 917 .section .text.HAL_GPIO_WritePin,"ax",%progbits 918 .align 1 919 .global HAL_GPIO_WritePin 920 .syntax unified 921 .thumb 922 .thumb_func 924 HAL_GPIO_WritePin: 925 .LFB133: 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief Set or clear the selected data port bit. 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @note This function uses GPIOx_BSRR and GPIOx_BRR registers to allow atomic read/modify 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * accesses. In this way, there is no risk of an IRQ occurring between 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * the read and the modify access. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F3 family 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written. 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15). 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param PinState specifies the value to be written to the selected bit. 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * This parameter can be one of the GPIO_PinState enum values: 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @arg GPIO_PIN_RESET: to clear the port pin 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @arg GPIO_PIN_SET: to set the port pin 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval None 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 926 .loc 1 418 1 927 .cfi_startproc 928 @ args = 0, pretend = 0, frame = 8 929 @ frame_needed = 1, uses_anonymous_args = 0 930 @ link register save eliminated. 931 0000 80B4 push {r7} 932 .cfi_def_cfa_offset 4 933 .cfi_offset 7, -4 934 0002 83B0 sub sp, sp, #12 935 .cfi_def_cfa_offset 16 936 0004 00AF add r7, sp, #0 937 .cfi_def_cfa_register 7 938 0006 7860 str r0, [r7, #4] 939 0008 0B46 mov r3, r1 940 000a 7B80 strh r3, [r7, #2] @ movhi 941 000c 1346 mov r3, r2 942 000e 7B70 strb r3, [r7, #1] 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the parameters */ 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState)); 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if(PinState != GPIO_PIN_RESET) 943 .loc 1 423 5 944 0010 7B78 ldrb r3, [r7, #1] @ zero_extendqisi2 945 0012 002B cmp r3, #0 946 0014 03D0 beq .L47 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { ARM GAS /tmp/cc63nak4.s page 25 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->BSRR = (uint32_t)GPIO_Pin; 947 .loc 1 425 19 948 0016 7A88 ldrh r2, [r7, #2] 949 .loc 1 425 17 950 0018 7B68 ldr r3, [r7, #4] 951 001a 9A61 str r2, [r3, #24] 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** else 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->BRR = (uint32_t)GPIO_Pin; 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 952 .loc 1 431 1 953 001c 02E0 b .L49 954 .L47: 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 955 .loc 1 429 18 956 001e 7A88 ldrh r2, [r7, #2] 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 957 .loc 1 429 16 958 0020 7B68 ldr r3, [r7, #4] 959 0022 9A62 str r2, [r3, #40] 960 .L49: 961 .loc 1 431 1 962 0024 00BF nop 963 0026 0C37 adds r7, r7, #12 964 .cfi_def_cfa_offset 4 965 0028 BD46 mov sp, r7 966 .cfi_def_cfa_register 13 967 @ sp needed 968 002a 5DF8047B ldr r7, [sp], #4 969 .cfi_restore 7 970 .cfi_def_cfa_offset 0 971 002e 7047 bx lr 972 .cfi_endproc 973 .LFE133: 975 .section .text.HAL_GPIO_TogglePin,"ax",%progbits 976 .align 1 977 .global HAL_GPIO_TogglePin 978 .syntax unified 979 .thumb 980 .thumb_func 982 HAL_GPIO_TogglePin: 983 .LFB134: 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief Toggle the specified GPIO pin. 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F3 family 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Pin specifies the pin to be toggled. 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval None 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 984 .loc 1 440 1 985 .cfi_startproc 986 @ args = 0, pretend = 0, frame = 16 987 @ frame_needed = 1, uses_anonymous_args = 0 ARM GAS /tmp/cc63nak4.s page 26 988 @ link register save eliminated. 989 0000 80B4 push {r7} 990 .cfi_def_cfa_offset 4 991 .cfi_offset 7, -4 992 0002 85B0 sub sp, sp, #20 993 .cfi_def_cfa_offset 24 994 0004 00AF add r7, sp, #0 995 .cfi_def_cfa_register 7 996 0006 7860 str r0, [r7, #4] 997 0008 0B46 mov r3, r1 998 000a 7B80 strh r3, [r7, #2] @ movhi 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** uint32_t odr; 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the parameters */ 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* get current Output Data Register value */ 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** odr = GPIOx->ODR; 999 .loc 1 447 7 1000 000c 7B68 ldr r3, [r7, #4] 1001 000e 5B69 ldr r3, [r3, #20] 1002 0010 FB60 str r3, [r7, #12] 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Set selected pins that were at low level, and reset ones that were high */ 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin); 1003 .loc 1 450 23 1004 0012 7A88 ldrh r2, [r7, #2] 1005 0014 FB68 ldr r3, [r7, #12] 1006 0016 1340 ands r3, r3, r2 1007 .loc 1 450 35 1008 0018 1A04 lsls r2, r3, #16 1009 .loc 1 450 54 1010 001a FB68 ldr r3, [r7, #12] 1011 001c D943 mvns r1, r3 1012 .loc 1 450 59 1013 001e 7B88 ldrh r3, [r7, #2] 1014 0020 0B40 ands r3, r3, r1 1015 .loc 1 450 51 1016 0022 1A43 orrs r2, r2, r3 1017 .loc 1 450 15 1018 0024 7B68 ldr r3, [r7, #4] 1019 0026 9A61 str r2, [r3, #24] 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 1020 .loc 1 451 1 1021 0028 00BF nop 1022 002a 1437 adds r7, r7, #20 1023 .cfi_def_cfa_offset 4 1024 002c BD46 mov sp, r7 1025 .cfi_def_cfa_register 13 1026 @ sp needed 1027 002e 5DF8047B ldr r7, [sp], #4 1028 .cfi_restore 7 1029 .cfi_def_cfa_offset 0 1030 0032 7047 bx lr 1031 .cfi_endproc 1032 .LFE134: 1034 .section .text.HAL_GPIO_LockPin,"ax",%progbits ARM GAS /tmp/cc63nak4.s page 27 1035 .align 1 1036 .global HAL_GPIO_LockPin 1037 .syntax unified 1038 .thumb 1039 .thumb_func 1041 HAL_GPIO_LockPin: 1042 .LFB135: 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief Lock GPIO Pins configuration registers. 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH. 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @note The configuration of the locked GPIO pins can no longer be modified 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * until the next reset. 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F3 family 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bits to be locked. 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * This parameter can be any combination of GPIO_Pin_x where x can be (0..15). 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval None 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 1043 .loc 1 465 1 1044 .cfi_startproc 1045 @ args = 0, pretend = 0, frame = 16 1046 @ frame_needed = 1, uses_anonymous_args = 0 1047 @ link register save eliminated. 1048 0000 80B4 push {r7} 1049 .cfi_def_cfa_offset 4 1050 .cfi_offset 7, -4 1051 0002 85B0 sub sp, sp, #20 1052 .cfi_def_cfa_offset 24 1053 0004 00AF add r7, sp, #0 1054 .cfi_def_cfa_register 7 1055 0006 7860 str r0, [r7, #4] 1056 0008 0B46 mov r3, r1 1057 000a 7B80 strh r3, [r7, #2] @ movhi 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK; 1058 .loc 1 466 17 1059 000c 4FF48033 mov r3, #65536 1060 0010 FB60 str r3, [r7, #12] 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Check the parameters */ 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_LOCK_INSTANCE(GPIOx)); 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin)); 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Apply lock key write sequence */ 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** tmp |= GPIO_Pin; 1061 .loc 1 473 7 1062 0012 7A88 ldrh r2, [r7, #2] 1063 0014 FB68 ldr r3, [r7, #12] 1064 0016 1343 orrs r3, r3, r2 1065 0018 FB60 str r3, [r7, #12] 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15U-0] */ 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->LCKR = tmp; 1066 .loc 1 475 15 1067 001a FA68 ldr r2, [r7, #12] 1068 001c 7B68 ldr r3, [r7, #4] ARM GAS /tmp/cc63nak4.s page 28 1069 001e DA61 str r2, [r3, #28] 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Reset LCKx bit(s): LCKK='0' + LCK[15U-0] */ 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->LCKR = GPIO_Pin; 1070 .loc 1 477 15 1071 0020 7A88 ldrh r2, [r7, #2] 1072 0022 7B68 ldr r3, [r7, #4] 1073 0024 DA61 str r2, [r3, #28] 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15U-0] */ 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** GPIOx->LCKR = tmp; 1074 .loc 1 479 15 1075 0026 FA68 ldr r2, [r7, #12] 1076 0028 7B68 ldr r3, [r7, #4] 1077 002a DA61 str r2, [r3, #28] 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Read LCKK register. This read is mandatory to complete key lock sequence */ 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** tmp = GPIOx->LCKR; 1078 .loc 1 481 14 1079 002c 7B68 ldr r3, [r7, #4] 1080 002e DB69 ldr r3, [r3, #28] 1081 .loc 1 481 7 1082 0030 FB60 str r3, [r7, #12] 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* read again in order to confirm lock is active */ 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if((GPIOx->LCKR & GPIO_LCKR_LCKK) != 0x00u) 1083 .loc 1 484 11 1084 0032 7B68 ldr r3, [r7, #4] 1085 0034 DB69 ldr r3, [r3, #28] 1086 .loc 1 484 18 1087 0036 03F48033 and r3, r3, #65536 1088 .loc 1 484 4 1089 003a 002B cmp r3, #0 1090 003c 01D0 beq .L52 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** return HAL_OK; 1091 .loc 1 486 12 1092 003e 0023 movs r3, #0 1093 0040 00E0 b .L53 1094 .L52: 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** else 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** return HAL_ERROR; 1095 .loc 1 490 12 1096 0042 0123 movs r3, #1 1097 .L53: 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 1098 .loc 1 492 1 1099 0044 1846 mov r0, r3 1100 0046 1437 adds r7, r7, #20 1101 .cfi_def_cfa_offset 4 1102 0048 BD46 mov sp, r7 1103 .cfi_def_cfa_register 13 1104 @ sp needed 1105 004a 5DF8047B ldr r7, [sp], #4 1106 .cfi_restore 7 1107 .cfi_def_cfa_offset 0 1108 004e 7047 bx lr ARM GAS /tmp/cc63nak4.s page 29 1109 .cfi_endproc 1110 .LFE135: 1112 .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits 1113 .align 1 1114 .global HAL_GPIO_EXTI_IRQHandler 1115 .syntax unified 1116 .thumb 1117 .thumb_func 1119 HAL_GPIO_EXTI_IRQHandler: 1120 .LFB136: 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief Handle EXTI interrupt request. 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval None 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 1121 .loc 1 500 1 1122 .cfi_startproc 1123 @ args = 0, pretend = 0, frame = 8 1124 @ frame_needed = 1, uses_anonymous_args = 0 1125 0000 80B5 push {r7, lr} 1126 .cfi_def_cfa_offset 8 1127 .cfi_offset 7, -8 1128 .cfi_offset 14, -4 1129 0002 82B0 sub sp, sp, #8 1130 .cfi_def_cfa_offset 16 1131 0004 00AF add r7, sp, #0 1132 .cfi_def_cfa_register 7 1133 0006 0346 mov r3, r0 1134 0008 FB80 strh r3, [r7, #6] @ movhi 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* EXTI line interrupt detected */ 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u) 1135 .loc 1 502 6 1136 000a 084B ldr r3, .L57 1137 000c 5A69 ldr r2, [r3, #20] 1138 000e FB88 ldrh r3, [r7, #6] 1139 0010 1340 ands r3, r3, r2 1140 .loc 1 502 5 1141 0012 002B cmp r3, #0 1142 0014 06D0 beq .L56 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); 1143 .loc 1 504 5 1144 0016 054A ldr r2, .L57 1145 0018 FB88 ldrh r3, [r7, #6] 1146 001a 5361 str r3, [r2, #20] 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin); 1147 .loc 1 505 5 1148 001c FB88 ldrh r3, [r7, #6] 1149 001e 1846 mov r0, r3 1150 0020 FFF7FEFF bl HAL_GPIO_EXTI_Callback 1151 .L56: 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 1152 .loc 1 507 1 ARM GAS /tmp/cc63nak4.s page 30 1153 0024 00BF nop 1154 0026 0837 adds r7, r7, #8 1155 .cfi_def_cfa_offset 8 1156 0028 BD46 mov sp, r7 1157 .cfi_def_cfa_register 13 1158 @ sp needed 1159 002a 80BD pop {r7, pc} 1160 .L58: 1161 .align 2 1162 .L57: 1163 002c 00040140 .word 1073808384 1164 .cfi_endproc 1165 .LFE136: 1167 .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits 1168 .align 1 1169 .weak HAL_GPIO_EXTI_Callback 1170 .syntax unified 1171 .thumb 1172 .thumb_func 1174 HAL_GPIO_EXTI_Callback: 1175 .LFB137: 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /** 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @brief EXTI line detection callback. 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** * @retval None 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** { 1176 .loc 1 515 1 1177 .cfi_startproc 1178 @ args = 0, pretend = 0, frame = 8 1179 @ frame_needed = 1, uses_anonymous_args = 0 1180 @ link register save eliminated. 1181 0000 80B4 push {r7} 1182 .cfi_def_cfa_offset 4 1183 .cfi_offset 7, -4 1184 0002 83B0 sub sp, sp, #12 1185 .cfi_def_cfa_offset 16 1186 0004 00AF add r7, sp, #0 1187 .cfi_def_cfa_register 7 1188 0006 0346 mov r3, r0 1189 0008 FB80 strh r3, [r7, #6] @ movhi 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* Prevent unused argument(s) compilation warning */ 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** UNUSED(GPIO_Pin); 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** /* NOTE: This function should not be modified, when the callback is needed, 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** the HAL_GPIO_EXTI_Callback could be implemented in the user file 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** */ 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_gpio.c **** } 1190 .loc 1 522 1 1191 000a 00BF nop 1192 000c 0C37 adds r7, r7, #12 1193 .cfi_def_cfa_offset 4 1194 000e BD46 mov sp, r7 1195 .cfi_def_cfa_register 13 1196 @ sp needed ARM GAS /tmp/cc63nak4.s page 31 1197 0010 5DF8047B ldr r7, [sp], #4 1198 .cfi_restore 7 1199 .cfi_def_cfa_offset 0 1200 0014 7047 bx lr 1201 .cfi_endproc 1202 .LFE137: 1204 .text 1205 .Letext0: 1206 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl 1207 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl 1208 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 1209 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 1210 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h" ARM GAS /tmp/cc63nak4.s page 32 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_gpio.c /tmp/cc63nak4.s:21 .text.HAL_GPIO_Init:00000000 $t /tmp/cc63nak4.s:27 .text.HAL_GPIO_Init:00000000 HAL_GPIO_Init /tmp/cc63nak4.s:537 .text.HAL_GPIO_Init:000002d8 $d /tmp/cc63nak4.s:548 .text.HAL_GPIO_DeInit:00000000 $t /tmp/cc63nak4.s:554 .text.HAL_GPIO_DeInit:00000000 HAL_GPIO_DeInit /tmp/cc63nak4.s:850 .text.HAL_GPIO_DeInit:000001a0 $d /tmp/cc63nak4.s:860 .text.HAL_GPIO_ReadPin:00000000 $t /tmp/cc63nak4.s:866 .text.HAL_GPIO_ReadPin:00000000 HAL_GPIO_ReadPin /tmp/cc63nak4.s:918 .text.HAL_GPIO_WritePin:00000000 $t /tmp/cc63nak4.s:924 .text.HAL_GPIO_WritePin:00000000 HAL_GPIO_WritePin /tmp/cc63nak4.s:976 .text.HAL_GPIO_TogglePin:00000000 $t /tmp/cc63nak4.s:982 .text.HAL_GPIO_TogglePin:00000000 HAL_GPIO_TogglePin /tmp/cc63nak4.s:1035 .text.HAL_GPIO_LockPin:00000000 $t /tmp/cc63nak4.s:1041 .text.HAL_GPIO_LockPin:00000000 HAL_GPIO_LockPin /tmp/cc63nak4.s:1113 .text.HAL_GPIO_EXTI_IRQHandler:00000000 $t /tmp/cc63nak4.s:1119 .text.HAL_GPIO_EXTI_IRQHandler:00000000 HAL_GPIO_EXTI_IRQHandler /tmp/cc63nak4.s:1174 .text.HAL_GPIO_EXTI_Callback:00000000 HAL_GPIO_EXTI_Callback /tmp/cc63nak4.s:1163 .text.HAL_GPIO_EXTI_IRQHandler:0000002c $d /tmp/cc63nak4.s:1168 .text.HAL_GPIO_EXTI_Callback:00000000 $t NO UNDEFINED SYMBOLS