B3M38SPD seminar project - beehive monitor with LoRa reporting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spd-lorabees/build/stm32l0xx_hal_gpio.lst

1503 lines
90 KiB

ARM GAS /tmp/ccJYgg6T.s page 1
1 .cpu cortex-m0plus
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "stm32l0xx_hal_gpio.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HAL_GPIO_Init,"ax",%progbits
16 .align 1
17 .global HAL_GPIO_Init
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 HAL_GPIO_Init:
24 .LFB39:
25 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c"
1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ******************************************************************************
3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @file stm32l0xx_hal_gpio.c
4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @author MCD Application Team
5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief GPIO HAL module driver.
6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * This file provides firmware functions to manage the following
7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * functionalities of the General Purpose Input/Output (GPIO) peripheral:
8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * + Initialization and de-initialization functions
9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * + IO operation functions
10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** @verbatim
12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ==============================================================================
13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ##### GPIO Peripheral features #####
14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ==============================================================================
15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** [..]
16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (+) Each port bit of the general-purpose I/O (GPIO) ports can be individually
17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** configured by software in several modes:
18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) Input mode
19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) Analog mode
20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) Output mode
21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) Alternate function mode
22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) External interrupt/event lines
23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (+) During and just after reset, the alternate functions and external interrupt
25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** lines are not active and the I/O ports are configured in input floating mode.
26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (+) All GPIO pins have weak internal pull-up and pull-down resistors, which can be
28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** activated or not.
29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (+) In Output or Alternate mode, each IO can be configured on open-drain or push-pull
31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** type and the IO speed can be selected depending on the VDD value.
32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (+) The microcontroller IO pins are connected to onboard peripherals/modules through a
ARM GAS /tmp/ccJYgg6T.s page 2
34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** multiplexer that allows only one peripheral alternate function (AF) connected
35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** to an IO pin at a time. In this way, there can be no conflict between peripherals
36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** sharing the same IO pin.
37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (+) All ports have external interrupt/event capability. To use external interrupt
39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** lines, the port must be configured in input mode. All available GPIO pins are
40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** connected to the 16 external interrupt/event lines from EXTI0 to EXTI15.
41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (+) The external interrupt/event controller consists of up to 28 edge detectors
43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (16 lines are connected to GPIO) for generating event/interrupt requests (each
44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** input line can be independently configured to select the type (interrupt or event)
45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** and the corresponding trigger event (rising or falling or both). Each line can
46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** also be masked independently.
47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ##### How to use this driver #####
49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ==============================================================================
50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** [..]
51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) Enable the GPIO IOPORT clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE().
52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) Configure the GPIO pin(s) using HAL_GPIO_Init().
54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure
55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef
56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** structure.
57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) In case of Output or alternate function mode selection: the speed is
58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** configured through "Speed" member from GPIO_InitTypeDef structure.
59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) In alternate mode is selection, the alternate function connected to the IO
60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** is configured through "Alternate" member from GPIO_InitTypeDef structure.
61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) Analog mode is required when a pin is to be used as ADC channel
62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** or DAC output.
63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (++) In case of external interrupt/event selection the "Mode" member from
64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIO_InitTypeDef structure select the type (interrupt or event) and
65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** the corresponding trigger event (rising or falling or both).
66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority
68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using
69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** HAL_NVIC_EnableIRQ().
70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) HAL_GPIO_DeInit allows to set register values to their reset value. This function
72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** is also to be used when unconfiguring pin which was used as an external interrupt
73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** or in event mode. That is the only way to reset the corresponding bit in
74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI & SYSCFG registers.
75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin().
77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) To set/reset the level of a pin configured in output mode use
79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** HAL_GPIO_WritePin()/HAL_GPIO_TogglePin().
80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) To lock pin configuration until next reset use HAL_GPIO_LockPin().
82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) During and just after reset, the alternate functions are not
84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** active and the GPIO pins are configured in input floating mode (except JTAG
85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** pins).
86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose
88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has
89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** priority over the GPIO function.
90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
ARM GAS /tmp/ccJYgg6T.s page 3
91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as
92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** general purpose PH0 and PH1, respectively, when the HSE oscillator is off.
93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** The HSE has priority over the GPIO function.
94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** @endverbatim
96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ******************************************************************************
97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @attention
98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * Redistribution and use in source and binary forms, with or without modification,
102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * are permitted provided that the following conditions are met:
103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * 1. Redistributions of source code must retain the above copyright notice,
104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * this list of conditions and the following disclaimer.
105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * this list of conditions and the following disclaimer in the documentation
107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * and/or other materials provided with the distribution.
108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * may be used to endorse or promote products derived from this software
110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * without specific prior written permission.
111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ******************************************************************************
124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Includes ------------------------------------------------------------------*/
127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #include "stm32l0xx_hal.h"
128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /** @addtogroup STM32L0xx_HAL_Driver
130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @{
131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #ifdef HAL_GPIO_MODULE_ENABLED
134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /** @addtogroup GPIO
136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief GPIO HAL module driver
137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @{
138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /** @addtogroup GPIO_Private
141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @{
142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Private define ------------------------------------------------------------*/
144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define GPIO_MODE ((uint32_t)0x00000003U)
147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define EXTI_MODE ((uint32_t)0x10000000U)
ARM GAS /tmp/ccJYgg6T.s page 4
148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define GPIO_MODE_IT ((uint32_t)0x00010000U)
149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define GPIO_MODE_EVT ((uint32_t)0x00020000U)
150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define RISING_EDGE ((uint32_t)0x00100000U)
151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define FALLING_EDGE ((uint32_t)0x00200000U)
152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define GPIO_OUTPUT_TYPE ((uint32_t)0x00000010U)
153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** #define GPIO_NUMBER ((uint32_t)16U)
155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @}
158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /** @addtogroup GPIO_Exported_Functions
160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @{
161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /** @addtogroup GPIO_Exported_Functions_Group1
164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief Initialization and de-initialization functions
165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** @verbatim
167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ===============================================================================
168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ##### Initialization and de-initialization functions #####
169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ===============================================================================
170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** @endverbatim
172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @{
173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief Initializes the GPIOx peripheral according to the specified parameters in the GPIO_Init
177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIOx: where x can be (A..E and H) to select the GPIO peripheral for STM32L0XX family d
178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * Note that GPIOE is not available on all devices.
179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Init: pointer to a GPIO_InitTypeDef structure that contains
180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * the configuration information for the specified GPIO peripheral.
181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval None
182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
26 .loc 1 184 0
27 .cfi_startproc
28 @ args = 0, pretend = 0, frame = 0
29 @ frame_needed = 0, uses_anonymous_args = 0
30 .LVL0:
31 0000 F0B5 push {r4, r5, r6, r7, lr}
32 .LCFI0:
33 .cfi_def_cfa_offset 20
34 .cfi_offset 4, -20
35 .cfi_offset 5, -16
36 .cfi_offset 6, -12
37 .cfi_offset 7, -8
38 .cfi_offset 14, -4
39 0002 C646 mov lr, r8
40 0004 00B5 push {lr}
41 .LCFI1:
42 .cfi_def_cfa_offset 24
43 .cfi_offset 8, -24
44 .LVL1:
185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** uint32_t position = 0x00U;
ARM GAS /tmp/ccJYgg6T.s page 5
45 .loc 1 185 0
46 0006 0023 movs r3, #0
186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** uint32_t iocurrent = 0x00U;
187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** uint32_t temp = 0x00U;
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check the parameters */
190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_AVAILABLE(GPIOx,(GPIO_Init->Pin)));
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the port pins */
195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** while (((GPIO_Init->Pin) >> position) != 0)
47 .loc 1 195 0
48 0008 38E0 b .L2
49 .LVL2:
50 .L21:
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Get the IO position */
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** iocurrent = (GPIO_Init->Pin) & (1U << position);
199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if(iocurrent)
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/
203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* In case of Alternate function mode selection */
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check if the Alternate function is compliant with the GPIO in use */
207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_AF_AVAILABLE(GPIOx,(GPIO_Init->Alternate)));
208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure Alternate function mapped with the current IO */
209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = GPIOx->AFR[position >> 3U];
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~((uint32_t)0xFU << ((uint32_t)(position & (uint32_t)0x07U) * 4U)) ;
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07U) * 4U))
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* In case of Output or Alternate function mode selection */
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) ||
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check the Speed parameter */
220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the IO Speed */
222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = GPIOx->OSPEEDR;
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEED0 << (position * 2U));
224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the IO Output Type */
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp= GPIOx->OTYPER;
229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ;
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->OTYPER = temp;
232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = GPIOx->MODER;
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
ARM GAS /tmp/ccJYgg6T.s page 6
237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->MODER = temp;
239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Activate the Pull-up or Pull down resistor for the current IO */
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = GPIOx->PUPDR;
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->PUPDR = temp;
245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /*--------------------- EXTI Mode Configuration ------------------------*/
247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Enable SYSCFG Clock */
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** __HAL_RCC_SYSCFG_CLK_ENABLE();
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = SYSCFG->EXTICR[position >> 2U];
254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** CLEAR_BIT(temp, ((uint32_t)0x0FU) << (4U * (position & 0x03U)));
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03U)));
51 .loc 1 255 0
52 000a 0526 movs r6, #5
53 000c 00E0 b .L8
54 .L14:
55 000e 0026 movs r6, #0
56 .L8:
57 .loc 1 255 0 is_stmt 0 discriminator 24
58 0010 AE40 lsls r6, r6, r5
59 0012 3500 movs r5, r6
60 0014 3D43 orrs r5, r7
61 .LVL3:
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
62 .loc 1 256 0 is_stmt 1 discriminator 24
63 0016 0234 adds r4, r4, #2
64 0018 A400 lsls r4, r4, #2
65 001a 584E ldr r6, .L22
66 001c A551 str r5, [r4, r6]
257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Clear EXTI line configuration */
259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = EXTI->IMR;
67 .loc 1 259 0 discriminator 24
68 001e 584C ldr r4, .L22+4
69 0020 2568 ldr r5, [r4]
70 .LVL4:
260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
71 .loc 1 260 0 discriminator 24
72 0022 4246 mov r2, r8
73 0024 D443 mvns r4, r2
74 0026 2E00 movs r6, r5
75 0028 2640 ands r6, r4
76 .LVL5:
261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
77 .loc 1 261 0 discriminator 24
78 002a 4A68 ldr r2, [r1, #4]
79 002c D203 lsls r2, r2, #15
80 002e 02D5 bpl .L9
262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= iocurrent;
ARM GAS /tmp/ccJYgg6T.s page 7
81 .loc 1 263 0
82 0030 4246 mov r2, r8
83 0032 1543 orrs r5, r2
84 0034 2E00 movs r6, r5
85 .LVL6:
86 .L9:
264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->IMR = temp;
87 .loc 1 265 0
88 0036 524D ldr r5, .L22+4
89 0038 2E60 str r6, [r5]
266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = EXTI->EMR;
90 .loc 1 267 0
91 003a 6D68 ldr r5, [r5, #4]
92 .LVL7:
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
93 .loc 1 268 0
94 003c 2E00 movs r6, r5
95 003e 2640 ands r6, r4
96 .LVL8:
269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
97 .loc 1 269 0
98 0040 4A68 ldr r2, [r1, #4]
99 0042 9203 lsls r2, r2, #14
100 0044 02D5 bpl .L10
270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= iocurrent;
101 .loc 1 271 0
102 0046 4246 mov r2, r8
103 0048 1543 orrs r5, r2
104 004a 2E00 movs r6, r5
105 .LVL9:
106 .L10:
272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->EMR = temp;
107 .loc 1 273 0
108 004c 4C4D ldr r5, .L22+4
109 004e 6E60 str r6, [r5, #4]
274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = EXTI->RTSR;
110 .loc 1 276 0
111 0050 AD68 ldr r5, [r5, #8]
112 .LVL10:
277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
113 .loc 1 277 0
114 0052 2E00 movs r6, r5
115 0054 2640 ands r6, r4
116 .LVL11:
278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
117 .loc 1 278 0
118 0056 4A68 ldr r2, [r1, #4]
119 0058 D202 lsls r2, r2, #11
120 005a 02D5 bpl .L11
279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= iocurrent;
ARM GAS /tmp/ccJYgg6T.s page 8
121 .loc 1 280 0
122 005c 4246 mov r2, r8
123 005e 1543 orrs r5, r2
124 0060 2E00 movs r6, r5
125 .LVL12:
126 .L11:
281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->RTSR = temp;
127 .loc 1 282 0
128 0062 474D ldr r5, .L22+4
129 0064 AE60 str r6, [r5, #8]
283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp = EXTI->FTSR;
130 .loc 1 284 0
131 0066 ED68 ldr r5, [r5, #12]
132 .LVL13:
285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
133 .loc 1 285 0
134 0068 2C40 ands r4, r5
135 .LVL14:
286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
136 .loc 1 286 0
137 006a 4A68 ldr r2, [r1, #4]
138 006c 9202 lsls r2, r2, #10
139 006e 02D5 bpl .L12
287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= iocurrent;
140 .loc 1 288 0
141 0070 4246 mov r2, r8
142 0072 2A43 orrs r2, r5
143 0074 1400 movs r4, r2
144 .LVL15:
145 .L12:
289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->FTSR = temp;
146 .loc 1 290 0
147 0076 424A ldr r2, .L22+4
148 0078 D460 str r4, [r2, #12]
149 .LVL16:
150 .L3:
291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** position++;
151 .loc 1 293 0
152 007a 0133 adds r3, r3, #1
153 .LVL17:
154 .L2:
195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
155 .loc 1 195 0
156 007c 0A68 ldr r2, [r1]
157 007e 1400 movs r4, r2
158 0080 DC40 lsrs r4, r4, r3
159 0082 77D0 beq .L20
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
160 .loc 1 198 0
161 0084 0124 movs r4, #1
162 0086 9C40 lsls r4, r4, r3
ARM GAS /tmp/ccJYgg6T.s page 9
163 0088 2240 ands r2, r4
164 008a 9046 mov r8, r2
165 .LVL18:
200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
166 .loc 1 200 0
167 008c F5D0 beq .L3
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
168 .loc 1 204 0
169 008e 4D68 ldr r5, [r1, #4]
170 0090 022D cmp r5, #2
171 0092 01D0 beq .L4
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
172 .loc 1 204 0 is_stmt 0 discriminator 1
173 0094 122D cmp r5, #18
174 0096 0ED1 bne .L5
175 .L4:
209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~((uint32_t)0xFU << ((uint32_t)(position & (uint32_t)0x07U) * 4U)) ;
176 .loc 1 209 0 is_stmt 1
177 0098 DD08 lsrs r5, r3, #3
178 009a 0835 adds r5, r5, #8
179 009c AD00 lsls r5, r5, #2
180 009e 2F58 ldr r7, [r5, r0]
181 .LVL19:
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07U) * 4U))
182 .loc 1 210 0
183 00a0 0726 movs r6, #7
184 00a2 1E40 ands r6, r3
185 00a4 B600 lsls r6, r6, #2
186 00a6 0F22 movs r2, #15
187 .LVL20:
188 00a8 B240 lsls r2, r2, r6
189 00aa 9743 bics r7, r2
190 .LVL21:
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
191 .loc 1 211 0
192 00ac 0A69 ldr r2, [r1, #16]
193 00ae B240 lsls r2, r2, r6
194 00b0 1600 movs r6, r2
195 00b2 3E43 orrs r6, r7
196 .LVL22:
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
197 .loc 1 212 0
198 00b4 2E50 str r6, [r5, r0]
199 .LVL23:
200 .L5:
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
201 .loc 1 216 0
202 00b6 4D68 ldr r5, [r1, #4]
203 00b8 6E1E subs r6, r5, #1
204 00ba 012E cmp r6, #1
205 00bc 03D9 bls .L6
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
206 .loc 1 216 0 is_stmt 0 discriminator 1
207 00be 112D cmp r5, #17
208 00c0 01D0 beq .L6
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
209 .loc 1 217 0 is_stmt 1
ARM GAS /tmp/ccJYgg6T.s page 10
210 00c2 122D cmp r5, #18
211 00c4 12D1 bne .L7
212 .L6:
222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEED0 << (position * 2U));
213 .loc 1 222 0
214 00c6 8568 ldr r5, [r0, #8]
215 .LVL24:
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
216 .loc 1 223 0
217 00c8 5F00 lsls r7, r3, #1
218 00ca 0326 movs r6, #3
219 00cc BE40 lsls r6, r6, r7
220 00ce B543 bics r5, r6
221 .LVL25:
222 00d0 2E00 movs r6, r5
223 .LVL26:
224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
224 .loc 1 224 0
225 00d2 CD68 ldr r5, [r1, #12]
226 .LVL27:
227 00d4 BD40 lsls r5, r5, r7
228 00d6 3543 orrs r5, r6
229 .LVL28:
225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
230 .loc 1 225 0
231 00d8 8560 str r5, [r0, #8]
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ;
232 .loc 1 228 0
233 00da 4568 ldr r5, [r0, #4]
234 .LVL29:
229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
235 .loc 1 229 0
236 00dc A543 bics r5, r4
237 .LVL30:
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->OTYPER = temp;
238 .loc 1 230 0
239 00de 4A68 ldr r2, [r1, #4]
240 00e0 1609 lsrs r6, r2, #4
241 00e2 0124 movs r4, #1
242 00e4 3440 ands r4, r6
243 00e6 9C40 lsls r4, r4, r3
244 00e8 2C43 orrs r4, r5
245 .LVL31:
231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
246 .loc 1 231 0
247 00ea 4460 str r4, [r0, #4]
248 .LVL32:
249 .L7:
235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
250 .loc 1 235 0
251 00ec 0768 ldr r7, [r0]
252 .LVL33:
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
253 .loc 1 236 0
254 00ee 5E00 lsls r6, r3, #1
255 00f0 0324 movs r4, #3
256 00f2 2500 movs r5, r4
ARM GAS /tmp/ccJYgg6T.s page 11
257 00f4 B540 lsls r5, r5, r6
258 00f6 ED43 mvns r5, r5
259 00f8 2F40 ands r7, r5
260 .LVL34:
237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->MODER = temp;
261 .loc 1 237 0
262 00fa 4A68 ldr r2, [r1, #4]
263 00fc 1440 ands r4, r2
264 00fe B440 lsls r4, r4, r6
265 0100 3C43 orrs r4, r7
266 .LVL35:
238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
267 .loc 1 238 0
268 0102 0460 str r4, [r0]
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
269 .loc 1 241 0
270 0104 C468 ldr r4, [r0, #12]
271 .LVL36:
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
272 .loc 1 242 0
273 0106 2540 ands r5, r4
274 .LVL37:
243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->PUPDR = temp;
275 .loc 1 243 0
276 0108 8C68 ldr r4, [r1, #8]
277 010a B440 lsls r4, r4, r6
278 010c 2C43 orrs r4, r5
279 .LVL38:
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
280 .loc 1 244 0
281 010e C460 str r4, [r0, #12]
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
282 .loc 1 248 0
283 0110 4A68 ldr r2, [r1, #4]
284 0112 D200 lsls r2, r2, #3
285 0114 B1D5 bpl .L3
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
286 .loc 1 251 0
287 0116 1B4D ldr r5, .L22+8
288 0118 6C6B ldr r4, [r5, #52]
289 .LVL39:
290 011a 0126 movs r6, #1
291 011c 3443 orrs r4, r6
292 011e 6C63 str r4, [r5, #52]
293 .LVL40:
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** CLEAR_BIT(temp, ((uint32_t)0x0FU) << (4U * (position & 0x03U)));
294 .loc 1 253 0
295 0120 9C08 lsrs r4, r3, #2
296 0122 A51C adds r5, r4, #2
297 0124 AD00 lsls r5, r5, #2
298 0126 154E ldr r6, .L22
299 0128 AF59 ldr r7, [r5, r6]
300 .LVL41:
254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03U)));
301 .loc 1 254 0
302 012a 0326 movs r6, #3
303 012c 1E40 ands r6, r3
ARM GAS /tmp/ccJYgg6T.s page 12
304 012e B500 lsls r5, r6, #2
305 0130 0F26 movs r6, #15
306 0132 AE40 lsls r6, r6, r5
307 0134 B743 bics r7, r6
308 .LVL42:
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
309 .loc 1 255 0
310 0136 A026 movs r6, #160
311 0138 F605 lsls r6, r6, #23
312 013a B042 cmp r0, r6
313 013c 00D1 bne .LCB317
314 013e 66E7 b .L14 @long jump
315 .LCB317:
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
316 .loc 1 255 0 is_stmt 0 discriminator 1
317 0140 114E ldr r6, .L22+12
318 0142 B042 cmp r0, r6
319 0144 0ED0 beq .L15
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
320 .loc 1 255 0 discriminator 3
321 0146 114E ldr r6, .L22+16
322 0148 B042 cmp r0, r6
323 014a 0DD0 beq .L16
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
324 .loc 1 255 0 discriminator 5
325 014c 104E ldr r6, .L22+20
326 014e B042 cmp r0, r6
327 0150 0CD0 beq .L17
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
328 .loc 1 255 0 discriminator 7
329 0152 104E ldr r6, .L22+24
330 0154 B042 cmp r0, r6
331 0156 0BD0 beq .L18
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
332 .loc 1 255 0 discriminator 9
333 0158 0F4E ldr r6, .L22+28
334 015a B042 cmp r0, r6
335 015c 00D1 bne .LCB332
336 015e 54E7 b .L21 @long jump
337 .LCB332:
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
338 .loc 1 255 0
339 0160 0626 movs r6, #6
340 0162 55E7 b .L8
341 .L15:
342 0164 0126 movs r6, #1
343 0166 53E7 b .L8
344 .L16:
345 0168 0226 movs r6, #2
346 016a 51E7 b .L8
347 .L17:
348 016c 0326 movs r6, #3
349 016e 4FE7 b .L8
350 .L18:
351 0170 0426 movs r6, #4
352 0172 4DE7 b .L8
353 .LVL43:
ARM GAS /tmp/ccJYgg6T.s page 13
354 .L20:
294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
355 .loc 1 295 0 is_stmt 1
356 @ sp needed
357 0174 04BC pop {r2}
358 0176 9046 mov r8, r2
359 0178 F0BD pop {r4, r5, r6, r7, pc}
360 .L23:
361 017a C046 .align 2
362 .L22:
363 017c 00000140 .word 1073807360
364 0180 00040140 .word 1073808384
365 0184 00100240 .word 1073876992
366 0188 00040050 .word 1342178304
367 018c 00080050 .word 1342179328
368 0190 000C0050 .word 1342180352
369 0194 00100050 .word 1342181376
370 0198 001C0050 .word 1342184448
371 .cfi_endproc
372 .LFE39:
374 .section .text.HAL_GPIO_DeInit,"ax",%progbits
375 .align 1
376 .global HAL_GPIO_DeInit
377 .syntax unified
378 .code 16
379 .thumb_func
380 .fpu softvfp
382 HAL_GPIO_DeInit:
383 .LFB40:
296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief De-initializes the GPIOx peripheral registers to their default reset values.
299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIOx: where x can be (A..E and H) to select the GPIO peripheral for STM32L0XX family d
300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * Note that GPIOE is not available on all devices.
301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * All port bits are not necessarily available on all GPIOs.
304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval None
305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
384 .loc 1 307 0
385 .cfi_startproc
386 @ args = 0, pretend = 0, frame = 0
387 @ frame_needed = 0, uses_anonymous_args = 0
388 .LVL44:
389 0000 F0B5 push {r4, r5, r6, r7, lr}
390 .LCFI2:
391 .cfi_def_cfa_offset 20
392 .cfi_offset 4, -20
393 .cfi_offset 5, -16
394 .cfi_offset 6, -12
395 .cfi_offset 7, -8
396 .cfi_offset 14, -4
397 0002 D646 mov lr, r10
398 0004 4F46 mov r7, r9
ARM GAS /tmp/ccJYgg6T.s page 14
399 0006 4646 mov r6, r8
400 0008 C0B5 push {r6, r7, lr}
401 .LCFI3:
402 .cfi_def_cfa_offset 32
403 .cfi_offset 8, -32
404 .cfi_offset 9, -28
405 .cfi_offset 10, -24
406 .LVL45:
308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** uint32_t position = 0x00U;
407 .loc 1 308 0
408 000a 0023 movs r3, #0
309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** uint32_t iocurrent = 0x00U;
310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** uint32_t tmp = 0x00U;
311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check the parameters */
313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_AVAILABLE(GPIOx,GPIO_Pin));
314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the port pins */
316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** while ((GPIO_Pin >> position) != 0)
409 .loc 1 316 0
410 000c 06E0 b .L25
411 .LVL46:
412 .L37:
317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Get the IO position */
319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** iocurrent = (GPIO_Pin) & (1U << position);
320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if(iocurrent)
322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /*------------------------- GPIO Mode Configuration --------------------*/
324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure IO Direction in Input Floting Mode */
325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->MODER |= (GPIO_MODER_MODE0 << (position * 2U));
326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the default Alternate Function in current IO */
328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] &= ~((uint32_t)0xFU << ((uint32_t)(position & (uint32_t)0x07U) * 4
329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the default value for IO Speed */
331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEED0 << (position * 2U));
332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Configure the default value IO Output Type */
334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->OTYPER &= ~(GPIO_OTYPER_OT_0 << position) ;
335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Deactivate the Pull-up oand Pull-down resistor for the current IO */
337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /*------------------------- EXTI Mode Configuration --------------------*/
340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Clear the External Interrupt or Event for the current IO */
341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** tmp = SYSCFG->EXTICR[position >> 2U];
343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** tmp &= (((uint32_t)0x0FU) << (4U * (position & 0x03U)));
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if(tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
413 .loc 1 344 0
414 000e 0525 movs r5, #5
415 0010 00E0 b .L27
416 .L29:
417 0012 0025 movs r5, #0
418 .L27:
ARM GAS /tmp/ccJYgg6T.s page 15
419 .loc 1 344 0 is_stmt 0 discriminator 24
420 0014 9540 lsls r5, r5, r2
421 0016 A542 cmp r5, r4
422 0018 54D0 beq .L35
423 .LVL47:
424 .L26:
345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** tmp = ((uint32_t)0x0FU) << (4U * (position & 0x03U));
347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp;
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Clear EXTI line configuration */
350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->IMR &= ~((uint32_t)iocurrent);
351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->FTSR &= ~((uint32_t)iocurrent);
356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** position++;
425 .loc 1 358 0 is_stmt 1
426 001a 0133 adds r3, r3, #1
427 .LVL48:
428 .L25:
316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
429 .loc 1 316 0
430 001c 0A00 movs r2, r1
431 001e DA40 lsrs r2, r2, r3
432 0020 66D0 beq .L36
319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
433 .loc 1 319 0
434 0022 0122 movs r2, #1
435 0024 9A40 lsls r2, r2, r3
436 0026 0C00 movs r4, r1
437 0028 1440 ands r4, r2
438 002a A446 mov ip, r4
439 .LVL49:
321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
440 .loc 1 321 0
441 002c F5D0 beq .L26
325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
442 .loc 1 325 0
443 002e 0668 ldr r6, [r0]
444 0030 5D00 lsls r5, r3, #1
445 0032 0324 movs r4, #3
446 .LVL50:
447 0034 A246 mov r10, r4
448 0036 2700 movs r7, r4
449 0038 AF40 lsls r7, r7, r5
450 003a 3D00 movs r5, r7
451 003c 3E43 orrs r6, r7
452 003e 0660 str r6, [r0]
328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
453 .loc 1 328 0
454 0040 DF08 lsrs r7, r3, #3
455 0042 0837 adds r7, r7, #8
456 0044 BF00 lsls r7, r7, #2
ARM GAS /tmp/ccJYgg6T.s page 16
457 0046 3C58 ldr r4, [r7, r0]
458 0048 A146 mov r9, r4
459 004a 0726 movs r6, #7
460 004c 1E40 ands r6, r3
461 004e B600 lsls r6, r6, #2
462 0050 0F24 movs r4, #15
463 0052 A046 mov r8, r4
464 0054 B440 lsls r4, r4, r6
465 0056 2600 movs r6, r4
466 0058 4C46 mov r4, r9
467 005a B443 bics r4, r6
468 005c 3C50 str r4, [r7, r0]
331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
469 .loc 1 331 0
470 005e 8668 ldr r6, [r0, #8]
471 0060 ED43 mvns r5, r5
472 0062 2E40 ands r6, r5
473 0064 8660 str r6, [r0, #8]
334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
474 .loc 1 334 0
475 0066 4668 ldr r6, [r0, #4]
476 0068 9643 bics r6, r2
477 006a 4660 str r6, [r0, #4]
337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
478 .loc 1 337 0
479 006c C268 ldr r2, [r0, #12]
480 006e 1540 ands r5, r2
481 0070 C560 str r5, [r0, #12]
342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** tmp &= (((uint32_t)0x0FU) << (4U * (position & 0x03U)));
482 .loc 1 342 0
483 0072 9E08 lsrs r6, r3, #2
484 0074 B51C adds r5, r6, #2
485 0076 AD00 lsls r5, r5, #2
486 0078 204A ldr r2, .L38
487 007a AD58 ldr r5, [r5, r2]
488 .LVL51:
343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if(tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
489 .loc 1 343 0
490 007c 5246 mov r2, r10
491 007e 1A40 ands r2, r3
492 0080 9200 lsls r2, r2, #2
493 0082 4746 mov r7, r8
494 0084 9740 lsls r7, r7, r2
495 0086 2C00 movs r4, r5
496 0088 3C40 ands r4, r7
497 .LVL52:
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
498 .loc 1 344 0
499 008a A025 movs r5, #160
500 008c ED05 lsls r5, r5, #23
501 008e A842 cmp r0, r5
502 0090 BFD0 beq .L29
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
503 .loc 1 344 0 is_stmt 0 discriminator 1
504 0092 1B4D ldr r5, .L38+4
505 0094 A842 cmp r0, r5
506 0096 0DD0 beq .L30
ARM GAS /tmp/ccJYgg6T.s page 17
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
507 .loc 1 344 0 discriminator 3
508 0098 1A4D ldr r5, .L38+8
509 009a A842 cmp r0, r5
510 009c 0CD0 beq .L31
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
511 .loc 1 344 0 discriminator 5
512 009e 1A4D ldr r5, .L38+12
513 00a0 A842 cmp r0, r5
514 00a2 0BD0 beq .L32
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
515 .loc 1 344 0 discriminator 7
516 00a4 194D ldr r5, .L38+16
517 00a6 A842 cmp r0, r5
518 00a8 0AD0 beq .L33
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
519 .loc 1 344 0 discriminator 9
520 00aa 194D ldr r5, .L38+20
521 00ac A842 cmp r0, r5
522 00ae AED0 beq .L37
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
523 .loc 1 344 0
524 00b0 0625 movs r5, #6
525 00b2 AFE7 b .L27
526 .L30:
527 00b4 0125 movs r5, #1
528 00b6 ADE7 b .L27
529 .L31:
530 00b8 0225 movs r5, #2
531 00ba ABE7 b .L27
532 .L32:
533 00bc 0325 movs r5, #3
534 00be A9E7 b .L27
535 .L33:
536 00c0 0425 movs r5, #4
537 00c2 A7E7 b .L27
538 .L35:
539 .LVL53:
347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
540 .loc 1 347 0 is_stmt 1
541 00c4 0D4D ldr r5, .L38
542 00c6 B21C adds r2, r6, #2
543 00c8 9200 lsls r2, r2, #2
544 00ca 5459 ldr r4, [r2, r5]
545 00cc BC43 bics r4, r7
546 00ce 5451 str r4, [r2, r5]
350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
547 .loc 1 350 0
548 00d0 104C ldr r4, .L38+24
549 00d2 2568 ldr r5, [r4]
550 00d4 6246 mov r2, ip
551 00d6 D243 mvns r2, r2
552 00d8 1540 ands r5, r2
553 00da 2560 str r5, [r4]
351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
554 .loc 1 351 0
555 00dc 6568 ldr r5, [r4, #4]
ARM GAS /tmp/ccJYgg6T.s page 18
556 00de 1540 ands r5, r2
557 00e0 6560 str r5, [r4, #4]
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** EXTI->FTSR &= ~((uint32_t)iocurrent);
558 .loc 1 354 0
559 00e2 A568 ldr r5, [r4, #8]
560 00e4 1540 ands r5, r2
561 00e6 A560 str r5, [r4, #8]
355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
562 .loc 1 355 0
563 00e8 E568 ldr r5, [r4, #12]
564 00ea 2A40 ands r2, r5
565 00ec E260 str r2, [r4, #12]
566 00ee 94E7 b .L26
567 .LVL54:
568 .L36:
359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
569 .loc 1 360 0
570 @ sp needed
571 00f0 1CBC pop {r2, r3, r4}
572 00f2 9046 mov r8, r2
573 00f4 9946 mov r9, r3
574 00f6 A246 mov r10, r4
575 00f8 F0BD pop {r4, r5, r6, r7, pc}
576 .L39:
577 00fa C046 .align 2
578 .L38:
579 00fc 00000140 .word 1073807360
580 0100 00040050 .word 1342178304
581 0104 00080050 .word 1342179328
582 0108 000C0050 .word 1342180352
583 010c 00100050 .word 1342181376
584 0110 001C0050 .word 1342184448
585 0114 00040140 .word 1073808384
586 .cfi_endproc
587 .LFE40:
589 .section .text.HAL_GPIO_ReadPin,"ax",%progbits
590 .align 1
591 .global HAL_GPIO_ReadPin
592 .syntax unified
593 .code 16
594 .thumb_func
595 .fpu softvfp
597 HAL_GPIO_ReadPin:
598 .LFB41:
361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @}
364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /** @addtogroup GPIO_Exported_Functions_Group2
367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief GPIO Read and Write
368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** @verbatim
370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ===============================================================================
371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ##### IO operation functions #####
372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** ===============================================================================
ARM GAS /tmp/ccJYgg6T.s page 19
373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** @endverbatim
375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @{
376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief Reads the specified input port pin.
380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIOx: where x can be (A..E and H) to select the GPIO peripheral for STM32L0xx family d
381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * Note that GPIOE is not available on all devices.
382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Pin: specifies the port bit to read.
383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * This parameter can be GPIO_PIN_x where x can be (0..15).
384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * All port bits are not necessarily available on all GPIOs.
385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval The input port pin value.
386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
599 .loc 1 388 0
600 .cfi_startproc
601 @ args = 0, pretend = 0, frame = 0
602 @ frame_needed = 0, uses_anonymous_args = 0
603 @ link register save eliminated.
604 .LVL55:
389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIO_PinState bitstatus;
390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check the parameters */
392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_AVAILABLE(GPIOx,GPIO_Pin));
393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
605 .loc 1 394 0
606 0000 0369 ldr r3, [r0, #16]
607 0002 0B42 tst r3, r1
608 0004 01D1 bne .L43
395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET;
397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** else
399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** bitstatus = GPIO_PIN_RESET;
609 .loc 1 400 0
610 0006 0020 movs r0, #0
611 .LVL56:
612 .L41:
401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** return bitstatus;
403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
613 .loc 1 403 0
614 @ sp needed
615 0008 7047 bx lr
616 .LVL57:
617 .L43:
396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
618 .loc 1 396 0
619 000a 0120 movs r0, #1
620 .LVL58:
621 000c FCE7 b .L41
622 .cfi_endproc
623 .LFE41:
ARM GAS /tmp/ccJYgg6T.s page 20
625 .section .text.HAL_GPIO_WritePin,"ax",%progbits
626 .align 1
627 .global HAL_GPIO_WritePin
628 .syntax unified
629 .code 16
630 .thumb_func
631 .fpu softvfp
633 HAL_GPIO_WritePin:
634 .LFB42:
404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief Sets or clears the selected data port bit.
407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @note This function uses GPIOx_BSRR register to allow atomic read/modify
409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * accesses. In this way, there is no risk of an IRQ occurring between
410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * the read and the modify access.
411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** *
412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIOx: where x can be (A..E and H) to select the GPIO peripheral for STM32L0xx family d
413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * Note that GPIOE is not available on all devices.
414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Pin: specifies the port bit to be written.
415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * All port bits are not necessarily available on all GPIOs.
417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param PinState: specifies the value to be written to the selected bit.
418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * This parameter can be one of the GPIO_PinState enum values:
419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * GPIO_PIN_RESET: to clear the port pin
420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * GPIO_PIN_SET: to set the port pin
421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval None
422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
635 .loc 1 424 0
636 .cfi_startproc
637 @ args = 0, pretend = 0, frame = 0
638 @ frame_needed = 0, uses_anonymous_args = 0
639 @ link register save eliminated.
640 .LVL59:
425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check the parameters */
426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_AVAILABLE(GPIOx,GPIO_Pin));
427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState));
428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if(PinState != GPIO_PIN_RESET)
641 .loc 1 429 0
642 0000 002A cmp r2, #0
643 0002 01D1 bne .L47
430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->BSRR = GPIO_Pin;
432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** else
434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->BRR = GPIO_Pin ;
644 .loc 1 435 0
645 0004 8162 str r1, [r0, #40]
646 .L44:
436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
647 .loc 1 437 0
648 @ sp needed
ARM GAS /tmp/ccJYgg6T.s page 21
649 0006 7047 bx lr
650 .L47:
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
651 .loc 1 431 0
652 0008 8161 str r1, [r0, #24]
653 000a FCE7 b .L44
654 .cfi_endproc
655 .LFE42:
657 .section .text.HAL_GPIO_TogglePin,"ax",%progbits
658 .align 1
659 .global HAL_GPIO_TogglePin
660 .syntax unified
661 .code 16
662 .thumb_func
663 .fpu softvfp
665 HAL_GPIO_TogglePin:
666 .LFB43:
438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief Toggles the specified GPIO pins.
441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIOx: Where x can be (A..E and H) to select the GPIO peripheral for STM32L0xx family d
442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * Note that GPIOE is not available on all devices.
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * All port bits are not necessarily available on all GPIOs.
444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Pin: Specifies the pins to be toggled.
445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval None
446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
667 .loc 1 448 0
668 .cfi_startproc
669 @ args = 0, pretend = 0, frame = 0
670 @ frame_needed = 0, uses_anonymous_args = 0
671 @ link register save eliminated.
672 .LVL60:
449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check the parameters */
450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_AVAILABLE(GPIOx,GPIO_Pin));
451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->ODR ^= GPIO_Pin;
673 .loc 1 452 0
674 0000 4369 ldr r3, [r0, #20]
675 0002 5940 eors r1, r3
676 .LVL61:
677 0004 4161 str r1, [r0, #20]
453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
678 .loc 1 453 0
679 @ sp needed
680 0006 7047 bx lr
681 .cfi_endproc
682 .LFE43:
684 .section .text.HAL_GPIO_LockPin,"ax",%progbits
685 .align 1
686 .global HAL_GPIO_LockPin
687 .syntax unified
688 .code 16
689 .thumb_func
690 .fpu softvfp
692 HAL_GPIO_LockPin:
ARM GAS /tmp/ccJYgg6T.s page 22
693 .LFB44:
454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief Locks GPIO Pins configuration registers.
457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR,
458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH.
459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @note The configuration of the locked GPIO pins can no longer be modified
460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * until the next reset.
461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIOx: where x can be (A..E and H) to select the GPIO peripheral for STM32L0xx family.
462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * Note that GPIOE is not available on all devices.
463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Pin: specifies the port bit to be locked.
464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * All port bits are not necessarily available on all GPIOs.
466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval None
467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
694 .loc 1 469 0
695 .cfi_startproc
696 @ args = 0, pretend = 0, frame = 8
697 @ frame_needed = 0, uses_anonymous_args = 0
698 @ link register save eliminated.
699 .LVL62:
700 0000 82B0 sub sp, sp, #8
701 .LCFI4:
702 .cfi_def_cfa_offset 8
470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK;
703 .loc 1 470 0
704 0002 8022 movs r2, #128
705 0004 5202 lsls r2, r2, #9
706 0006 0192 str r2, [sp, #4]
471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Check the parameters */
473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_AVAILABLE(GPIOx,GPIO_Pin));
474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Apply lock key write sequence */
476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** tmp |= GPIO_Pin;
707 .loc 1 476 0
708 0008 019B ldr r3, [sp, #4]
709 000a 0B43 orrs r3, r1
710 000c 0193 str r3, [sp, #4]
477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->LCKR = tmp;
711 .loc 1 478 0
712 000e 019B ldr r3, [sp, #4]
713 0010 C361 str r3, [r0, #28]
479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->LCKR = GPIO_Pin;
714 .loc 1 480 0
715 0012 C161 str r1, [r0, #28]
481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** GPIOx->LCKR = tmp;
716 .loc 1 482 0
717 0014 019B ldr r3, [sp, #4]
718 0016 C361 str r3, [r0, #28]
483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Read LCKK bit*/
484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** tmp = GPIOx->LCKR;
ARM GAS /tmp/ccJYgg6T.s page 23
719 .loc 1 484 0
720 0018 C369 ldr r3, [r0, #28]
721 001a 0193 str r3, [sp, #4]
485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if((GPIOx->LCKR & GPIO_LCKR_LCKK) != RESET)
722 .loc 1 486 0
723 001c C369 ldr r3, [r0, #28]
724 001e 1342 tst r3, r2
725 0020 02D1 bne .L52
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** return HAL_OK;
489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** else
491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** return HAL_ERROR;
726 .loc 1 492 0
727 0022 0120 movs r0, #1
728 .LVL63:
729 .L50:
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
730 .loc 1 494 0
731 0024 02B0 add sp, sp, #8
732 @ sp needed
733 0026 7047 bx lr
734 .LVL64:
735 .L52:
488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
736 .loc 1 488 0
737 0028 0020 movs r0, #0
738 .LVL65:
739 002a FBE7 b .L50
740 .cfi_endproc
741 .LFE44:
743 .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits
744 .align 1
745 .weak HAL_GPIO_EXTI_Callback
746 .syntax unified
747 .code 16
748 .thumb_func
749 .fpu softvfp
751 HAL_GPIO_EXTI_Callback:
752 .LFB46:
495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief This function handles EXTI interrupt request.
497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Pin: Specifies the pins connected to the EXTI line.
498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval None
499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* EXTI line interrupt detected */
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
ARM GAS /tmp/ccJYgg6T.s page 24
509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /**
511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @brief EXTI line detection callbacks.
512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @param GPIO_Pin: Specifies the pins connected to the EXTI line.
513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** * @retval None
514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
753 .loc 1 516 0
754 .cfi_startproc
755 @ args = 0, pretend = 0, frame = 0
756 @ frame_needed = 0, uses_anonymous_args = 0
757 @ link register save eliminated.
758 .LVL66:
517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* Prevent unused argument(s) compilation warning */
518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** UNUSED(GPIO_Pin);
519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* NOTE: This function Should not be modified, when the callback is needed,
521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** the HAL_GPIO_EXTI_Callback could be implemented in the user file
522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** */
523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
759 .loc 1 523 0
760 @ sp needed
761 0000 7047 bx lr
762 .cfi_endproc
763 .LFE46:
765 .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits
766 .align 1
767 .global HAL_GPIO_EXTI_IRQHandler
768 .syntax unified
769 .code 16
770 .thumb_func
771 .fpu softvfp
773 HAL_GPIO_EXTI_IRQHandler:
774 .LFB45:
501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** /* EXTI line interrupt detected */
775 .loc 1 501 0
776 .cfi_startproc
777 @ args = 0, pretend = 0, frame = 0
778 @ frame_needed = 0, uses_anonymous_args = 0
779 .LVL67:
780 0000 10B5 push {r4, lr}
781 .LCFI5:
782 .cfi_def_cfa_offset 8
783 .cfi_offset 4, -8
784 .cfi_offset 14, -4
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** {
785 .loc 1 503 0
786 0002 054B ldr r3, .L57
787 0004 5B69 ldr r3, [r3, #20]
788 0006 1842 tst r0, r3
789 0008 00D1 bne .L56
790 .LVL68:
791 .L54:
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
792 .loc 1 508 0
793 @ sp needed
ARM GAS /tmp/ccJYgg6T.s page 25
794 000a 10BD pop {r4, pc}
795 .LVL69:
796 .L56:
505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
797 .loc 1 505 0
798 000c 024B ldr r3, .L57
799 000e 5861 str r0, [r3, #20]
506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c **** }
800 .loc 1 506 0
801 0010 FFF7FEFF bl HAL_GPIO_EXTI_Callback
802 .LVL70:
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_gpio.c ****
803 .loc 1 508 0
804 0014 F9E7 b .L54
805 .L58:
806 0016 C046 .align 2
807 .L57:
808 0018 00040140 .word 1073808384
809 .cfi_endproc
810 .LFE45:
812 .text
813 .Letext0:
814 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
815 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
816 .file 4 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
817 .file 5 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
818 .file 6 "/usr/arm-none-eabi/include/sys/lock.h"
819 .file 7 "/usr/arm-none-eabi/include/sys/_types.h"
820 .file 8 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
821 .file 9 "/usr/arm-none-eabi/include/sys/reent.h"
822 .file 10 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h"
823 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h"
824 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_gpio.h"
ARM GAS /tmp/ccJYgg6T.s page 26
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32l0xx_hal_gpio.c
/tmp/ccJYgg6T.s:16 .text.HAL_GPIO_Init:0000000000000000 $t
/tmp/ccJYgg6T.s:23 .text.HAL_GPIO_Init:0000000000000000 HAL_GPIO_Init
/tmp/ccJYgg6T.s:363 .text.HAL_GPIO_Init:000000000000017c $d
/tmp/ccJYgg6T.s:375 .text.HAL_GPIO_DeInit:0000000000000000 $t
/tmp/ccJYgg6T.s:382 .text.HAL_GPIO_DeInit:0000000000000000 HAL_GPIO_DeInit
/tmp/ccJYgg6T.s:579 .text.HAL_GPIO_DeInit:00000000000000fc $d
/tmp/ccJYgg6T.s:590 .text.HAL_GPIO_ReadPin:0000000000000000 $t
/tmp/ccJYgg6T.s:597 .text.HAL_GPIO_ReadPin:0000000000000000 HAL_GPIO_ReadPin
/tmp/ccJYgg6T.s:626 .text.HAL_GPIO_WritePin:0000000000000000 $t
/tmp/ccJYgg6T.s:633 .text.HAL_GPIO_WritePin:0000000000000000 HAL_GPIO_WritePin
/tmp/ccJYgg6T.s:658 .text.HAL_GPIO_TogglePin:0000000000000000 $t
/tmp/ccJYgg6T.s:665 .text.HAL_GPIO_TogglePin:0000000000000000 HAL_GPIO_TogglePin
/tmp/ccJYgg6T.s:685 .text.HAL_GPIO_LockPin:0000000000000000 $t
/tmp/ccJYgg6T.s:692 .text.HAL_GPIO_LockPin:0000000000000000 HAL_GPIO_LockPin
/tmp/ccJYgg6T.s:744 .text.HAL_GPIO_EXTI_Callback:0000000000000000 $t
/tmp/ccJYgg6T.s:751 .text.HAL_GPIO_EXTI_Callback:0000000000000000 HAL_GPIO_EXTI_Callback
/tmp/ccJYgg6T.s:766 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 $t
/tmp/ccJYgg6T.s:773 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 HAL_GPIO_EXTI_IRQHandler
/tmp/ccJYgg6T.s:808 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000018 $d
.debug_frame:0000000000000010 $d
NO UNDEFINED SYMBOLS