SLS/Software/build/stm32f0xx_hal_gpio.lst

1726 lines
103 KiB
Plaintext
Raw Normal View History

2024-11-03 13:02:53 +01:00
ARM GAS /tmp/ccJLBnnH.s page 1
1 .cpu cortex-m0
2 .arch armv6s-m
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 1
11 .eabi_attribute 34, 0
12 .eabi_attribute 18, 4
13 .file "stm32f0xx_hal_gpio.c"
14 .text
15 .Ltext0:
16 .cfi_sections .debug_frame
17 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c"
18 .section .text.HAL_GPIO_Init,"ax",%progbits
19 .align 1
20 .global HAL_GPIO_Init
21 .syntax unified
22 .code 16
23 .thumb_func
25 HAL_GPIO_Init:
26 .LVL0:
27 .LFB40:
1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ******************************************************************************
3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @file stm32f0xx_hal_gpio.c
4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @author MCD Application Team
5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief GPIO HAL module driver.
6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * functionalities of the General Purpose Input/Output (GPIO) peripheral:
8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * + Initialization and de-initialization functions
9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * + IO operation functions
10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** *
11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ******************************************************************************
12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @attention
13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** *
14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * Copyright (c) 2016 STMicroelectronics.
15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * All rights reserved.
16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** *
17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * This software is licensed under terms that can be found in the LICENSE file
18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * in the root directory of this software component.
19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** *
21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ******************************************************************************
22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** @verbatim
23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ==============================================================================
24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ##### GPIO Peripheral features #####
25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ==============================================================================
26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** [..]
27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (+) Each port bit of the general-purpose I/O (GPIO) ports can be individually
28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** configured by software in several modes:
29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) Input mode
30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) Analog mode
31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) Output mode
ARM GAS /tmp/ccJLBnnH.s page 2
32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) Alternate function mode
33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) External interrupt/event lines
34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (+) During and just after reset, the alternate functions and external interrupt
36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** lines are not active and the I/O ports are configured in input floating mode.
37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (+) All GPIO pins have weak internal pull-up and pull-down resistors, which can be
39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** activated or not.
40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (+) In Output or Alternate mode, each IO can be configured on open-drain or push-pull
42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** type and the IO speed can be selected depending on the VDD value.
43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (+) The microcontroller IO pins are connected to onboard peripherals/modules through a
45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** multiplexer that allows only one peripheral alternate function (AF) connected
46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** to an IO pin at a time. In this way, there can be no conflict between peripherals
47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** sharing the same IO pin.
48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (+) All ports have external interrupt/event capability. To use external interrupt
50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** lines, the port must be configured in input mode. All available GPIO pins are
51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** connected to the 16 external interrupt/event lines from EXTI0 to EXTI15.
52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (+) The external interrupt/event controller consists of up to 28 edge detectors
54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (16 lines are connected to GPIO) for generating event/interrupt requests (each
55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** input line can be independently configured to select the type (interrupt or event)
56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** and the corresponding trigger event (rising or falling or both). Each line can
57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** also be masked independently.
58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ##### How to use this driver #####
60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ==============================================================================
61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** [..]
62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) Enable the GPIO AHB clock using the following function : __HAL_RCC_GPIOx_CLK_ENABLE().
63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) Configure the GPIO pin(s) using HAL_GPIO_Init().
65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure
66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef
67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** structure.
68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) In case of Output or alternate function mode selection: the speed is
69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** configured through "Speed" member from GPIO_InitTypeDef structure.
70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) In alternate mode is selection, the alternate function connected to the IO
71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** is configured through "Alternate" member from GPIO_InitTypeDef structure.
72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) Analog mode is required when a pin is to be used as ADC channel
73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** or DAC output.
74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (++) In case of external interrupt/event selection the "Mode" member from
75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIO_InitTypeDef structure select the type (interrupt or event) and
76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** the corresponding trigger event (rising or falling or both).
77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority
79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using
80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** HAL_NVIC_EnableIRQ().
81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) HAL_GPIO_DeInit allows to set register values to their reset value. It's also
83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** recommended to use it to unconfigure pin which was used as an external interrupt
84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** or in event mode. That's the only way to reset corresponding bit in EXTI & SYSCFG
85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** registers.
86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin().
88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
ARM GAS /tmp/ccJLBnnH.s page 3
89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) To set/reset the level of a pin configured in output mode use
90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** HAL_GPIO_WritePin()/HAL_GPIO_TogglePin().
91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) To lock pin configuration until next reset use HAL_GPIO_LockPin().
93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) During and just after reset, the alternate functions are not
95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** active and the GPIO pins are configured in input floating mode (except JTAG
96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** pins).
97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose
99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has
100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** priority over the GPIO function.
101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as
103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** general purpose PF0 and PF1, respectively, when the HSE oscillator is off.
104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** The HSE has priority over the GPIO function.
105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** @endverbatim
107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ******************************************************************************
108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Includes ------------------------------------------------------------------*/
111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** #include "stm32f0xx_hal.h"
112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /** @addtogroup STM32F0xx_HAL_Driver
114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @{
115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /** @defgroup GPIO GPIO
118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief GPIO HAL module driver
119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @{
120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /** MISRA C:2012 deviation rule has been granted for following rules:
123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * Rule-18.1_d - Medium: Array pointer `GPIOx' is accessed with index [..,..]
124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * which may be out of array bounds [..,UNKNOWN] in following APIs:
125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * HAL_GPIO_Init
126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * HAL_GPIO_DeInit
127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** #ifdef HAL_GPIO_MODULE_ENABLED
130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Private typedef -----------------------------------------------------------*/
132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Private defines -----------------------------------------------------------*/
133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /** @addtogroup GPIO_Private_Constants GPIO Private Constants
134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @{
135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** #define GPIO_NUMBER 16U
137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @}
139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Private macros ------------------------------------------------------------*/
142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Private variables ---------------------------------------------------------*/
143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Private function prototypes -----------------------------------------------*/
144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Exported functions --------------------------------------------------------*/
145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
ARM GAS /tmp/ccJLBnnH.s page 4
146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions GPIO Exported Functions
147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @{
148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group1 Initialization/de-initialization functions
151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief Initialization and Configuration functions
152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** *
153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** @verbatim
154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ===============================================================================
155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ##### Initialization and de-initialization functions #####
156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ===============================================================================
157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** @endverbatim
159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @{
160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief Initialize the GPIOx peripheral according to the specified parameters in the GPIO_Init.
164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F0 family
165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains
166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * the configuration information for the specified GPIO peripheral.
167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval None
168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
28 .loc 1 170 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 8
31 @ frame_needed = 0, uses_anonymous_args = 0
32 .loc 1 170 1 is_stmt 0 view .LVU1
33 0000 F0B5 push {r4, r5, r6, r7, lr}
34 .cfi_def_cfa_offset 20
35 .cfi_offset 4, -20
36 .cfi_offset 5, -16
37 .cfi_offset 6, -12
38 .cfi_offset 7, -8
39 .cfi_offset 14, -4
40 0002 83B0 sub sp, sp, #12
41 .cfi_def_cfa_offset 32
171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t position = 0x00u;
42 .loc 1 171 3 is_stmt 1 view .LVU2
43 .LVL1:
172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t iocurrent;
44 .loc 1 172 3 view .LVU3
173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t temp;
45 .loc 1 173 3 view .LVU4
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the parameters */
176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
46 .loc 1 176 3 view .LVU5
177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
47 .loc 1 177 3 view .LVU6
178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
48 .loc 1 178 3 view .LVU7
179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the port pins */
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** while (((GPIO_Init->Pin) >> position) != 0x00u)
ARM GAS /tmp/ccJLBnnH.s page 5
49 .loc 1 181 3 view .LVU8
171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t iocurrent;
50 .loc 1 171 12 is_stmt 0 view .LVU9
51 0004 0023 movs r3, #0
52 .loc 1 181 9 view .LVU10
53 0006 56E0 b .L2
54 .LVL2:
55 .L21:
182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Get current io position */
184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** iocurrent = (GPIO_Init->Pin) & (1uL << position);
185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (iocurrent != 0x00u)
187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/
189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* In case of Output or Alternate function mode selection */
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) ||
191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the Speed parameter */
194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
56 .loc 1 194 9 is_stmt 1 view .LVU11
195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the IO Speed */
196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = GPIOx->OSPEEDR;
57 .loc 1 196 9 view .LVU12
58 .loc 1 196 14 is_stmt 0 view .LVU13
59 0008 8668 ldr r6, [r0, #8]
60 .LVL3:
197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2u));
61 .loc 1 197 9 is_stmt 1 view .LVU14
62 .loc 1 197 55 is_stmt 0 view .LVU15
63 000a 5F00 lsls r7, r3, #1
64 .loc 1 197 42 view .LVU16
65 000c 0324 movs r4, #3
66 000e BC40 lsls r4, r4, r7
67 .loc 1 197 14 view .LVU17
68 0010 A643 bics r6, r4
69 .LVL4:
198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2u));
70 .loc 1 198 9 is_stmt 1 view .LVU18
71 .loc 1 198 27 is_stmt 0 view .LVU19
72 0012 CC68 ldr r4, [r1, #12]
73 .loc 1 198 35 view .LVU20
74 0014 BC40 lsls r4, r4, r7
75 .loc 1 198 14 view .LVU21
76 0016 3443 orrs r4, r6
77 .LVL5:
199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
78 .loc 1 199 9 is_stmt 1 view .LVU22
79 .loc 1 199 24 is_stmt 0 view .LVU23
80 0018 8460 str r4, [r0, #8]
200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the IO Output Type */
202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = GPIOx->OTYPER;
81 .loc 1 202 9 is_stmt 1 view .LVU24
82 .loc 1 202 14 is_stmt 0 view .LVU25
83 001a 4468 ldr r4, [r0, #4]
ARM GAS /tmp/ccJLBnnH.s page 6
84 .LVL6:
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ;
85 .loc 1 203 9 is_stmt 1 view .LVU26
86 .loc 1 203 14 is_stmt 0 view .LVU27
87 001c 9443 bics r4, r2
88 .LVL7:
204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
89 .loc 1 204 9 is_stmt 1 view .LVU28
90 .loc 1 204 29 is_stmt 0 view .LVU29
91 001e 4E68 ldr r6, [r1, #4]
92 .loc 1 204 51 view .LVU30
93 0020 3609 lsrs r6, r6, #4
94 0022 0122 movs r2, #1
95 0024 3240 ands r2, r6
96 .loc 1 204 71 view .LVU31
97 0026 9A40 lsls r2, r2, r3
98 .loc 1 204 14 view .LVU32
99 0028 2243 orrs r2, r4
100 .LVL8:
205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->OTYPER = temp;
101 .loc 1 205 9 is_stmt 1 view .LVU33
102 .loc 1 205 23 is_stmt 0 view .LVU34
103 002a 4260 str r2, [r0, #4]
104 002c 53E0 b .L4
105 .LVL9:
106 .L22:
206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the Pull parameter */
211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Activate the Pull-up or Pull down resistor for the current IO */
214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = GPIOx->PUPDR;
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u));
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2u));
217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->PUPDR = temp;
218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* In case of Alternate function mode selection */
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the Alternate function parameters */
224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
107 .loc 1 224 9 is_stmt 1 view .LVU35
225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
108 .loc 1 225 9 view .LVU36
226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure Alternate function mapped with the current IO */
228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = GPIOx->AFR[position >> 3u];
109 .loc 1 228 9 view .LVU37
110 .loc 1 228 36 is_stmt 0 view .LVU38
111 002e DE08 lsrs r6, r3, #3
112 .loc 1 228 14 view .LVU39
113 0030 0836 adds r6, r6, #8
114 0032 B600 lsls r6, r6, #2
ARM GAS /tmp/ccJLBnnH.s page 7
115 0034 3758 ldr r7, [r6, r0]
116 .LVL10:
229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(0xFu << ((position & 0x07u) * 4u));
117 .loc 1 229 9 is_stmt 1 view .LVU40
118 .loc 1 229 38 is_stmt 0 view .LVU41
119 0036 0532 adds r2, r2, #5
120 0038 1A40 ands r2, r3
121 .loc 1 229 47 view .LVU42
122 003a 9200 lsls r2, r2, #2
123 .loc 1 229 24 view .LVU43
124 003c 0F24 movs r4, #15
125 003e 9440 lsls r4, r4, r2
126 .loc 1 229 14 view .LVU44
127 0040 A743 bics r7, r4
128 .LVL11:
230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Alternate) << ((position & 0x07u) * 4u));
129 .loc 1 230 9 is_stmt 1 view .LVU45
130 .loc 1 230 28 is_stmt 0 view .LVU46
131 0042 0C69 ldr r4, [r1, #16]
132 .loc 1 230 41 view .LVU47
133 0044 9440 lsls r4, r4, r2
134 0046 2200 movs r2, r4
135 .loc 1 230 14 view .LVU48
136 0048 3A43 orrs r2, r7
137 .LVL12:
231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->AFR[position >> 3u] = temp;
138 .loc 1 231 9 is_stmt 1 view .LVU49
139 .loc 1 231 36 is_stmt 0 view .LVU50
140 004a 3250 str r2, [r6, r0]
141 004c 56E0 b .L6
142 .LVL13:
143 .L23:
232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = GPIOx->MODER;
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2u));
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u));
238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->MODER = temp;
239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /*--------------------- EXTI Mode Configuration ------------------------*/
241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_MODE) != 0x00u)
243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Enable SYSCFG Clock */
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** __HAL_RCC_SYSCFG_CLK_ENABLE();
246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = SYSCFG->EXTICR[position >> 2u];
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(0x0FuL << (4u * (position & 0x03u)));
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)));
144 .loc 1 249 18 discriminator 5 view .LVU51
145 004e 0226 movs r6, #2
146 0050 00E0 b .L7
147 .L13:
148 .loc 1 249 18 discriminator 2 view .LVU52
149 0052 0026 movs r6, #0
150 .L7:
ARM GAS /tmp/ccJLBnnH.s page 8
151 .loc 1 249 40 discriminator 12 view .LVU53
152 0054 A640 lsls r6, r6, r4
153 0056 3400 movs r4, r6
154 .loc 1 249 14 discriminator 12 view .LVU54
155 0058 3C43 orrs r4, r7
156 .LVL14:
250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp;
157 .loc 1 250 9 is_stmt 1 view .LVU55
158 .loc 1 250 40 is_stmt 0 view .LVU56
159 005a 0232 adds r2, r2, #2
160 005c 9200 lsls r2, r2, #2
161 005e 424E ldr r6, .L24
162 0060 9451 str r4, [r2, r6]
251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = EXTI->RTSR;
163 .loc 1 253 9 is_stmt 1 view .LVU57
164 .loc 1 253 14 is_stmt 0 view .LVU58
165 0062 424A ldr r2, .L24+4
166 0064 9768 ldr r7, [r2, #8]
167 .LVL15:
254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(iocurrent);
168 .loc 1 254 9 is_stmt 1 view .LVU59
169 .loc 1 254 17 is_stmt 0 view .LVU60
170 0066 EA43 mvns r2, r5
171 .loc 1 254 14 view .LVU61
172 0068 3E00 movs r6, r7
173 006a AE43 bics r6, r5
174 .LVL16:
255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u)
175 .loc 1 255 9 is_stmt 1 view .LVU62
176 .loc 1 255 22 is_stmt 0 view .LVU63
177 006c 4C68 ldr r4, [r1, #4]
178 .loc 1 255 11 view .LVU64
179 006e E402 lsls r4, r4, #11
180 0070 01D5 bpl .L8
256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= iocurrent;
181 .loc 1 257 11 is_stmt 1 view .LVU65
182 .loc 1 257 16 is_stmt 0 view .LVU66
183 0072 3E00 movs r6, r7
184 .LVL17:
185 .loc 1 257 16 view .LVU67
186 0074 2E43 orrs r6, r5
187 .LVL18:
188 .L8:
258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->RTSR = temp;
189 .loc 1 259 9 is_stmt 1 view .LVU68
190 .loc 1 259 20 is_stmt 0 view .LVU69
191 0076 3D4C ldr r4, .L24+4
192 0078 A660 str r6, [r4, #8]
260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = EXTI->FTSR;
193 .loc 1 261 9 is_stmt 1 view .LVU70
194 .loc 1 261 14 is_stmt 0 view .LVU71
195 007a E768 ldr r7, [r4, #12]
ARM GAS /tmp/ccJLBnnH.s page 9
196 .LVL19:
262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(iocurrent);
197 .loc 1 262 9 is_stmt 1 view .LVU72
198 .loc 1 262 14 is_stmt 0 view .LVU73
199 007c 3E00 movs r6, r7
200 007e 1640 ands r6, r2
201 .LVL20:
263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u)
202 .loc 1 263 9 is_stmt 1 view .LVU74
203 .loc 1 263 22 is_stmt 0 view .LVU75
204 0080 4C68 ldr r4, [r1, #4]
205 .loc 1 263 11 view .LVU76
206 0082 A402 lsls r4, r4, #10
207 0084 01D5 bpl .L9
264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= iocurrent;
208 .loc 1 265 11 is_stmt 1 view .LVU77
209 .loc 1 265 16 is_stmt 0 view .LVU78
210 0086 3E00 movs r6, r7
211 .LVL21:
212 .loc 1 265 16 view .LVU79
213 0088 2E43 orrs r6, r5
214 .LVL22:
215 .L9:
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->FTSR = temp;
216 .loc 1 267 9 is_stmt 1 view .LVU80
217 .loc 1 267 20 is_stmt 0 view .LVU81
218 008a 384C ldr r4, .L24+4
219 008c E660 str r6, [r4, #12]
268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Clear EXTI line configuration */
270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = EXTI->EMR;
220 .loc 1 270 9 is_stmt 1 view .LVU82
221 .loc 1 270 14 is_stmt 0 view .LVU83
222 008e 6768 ldr r7, [r4, #4]
223 .LVL23:
271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(iocurrent);
224 .loc 1 271 9 is_stmt 1 view .LVU84
225 .loc 1 271 14 is_stmt 0 view .LVU85
226 0090 3E00 movs r6, r7
227 0092 1640 ands r6, r2
228 .LVL24:
272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_EVT) != 0x00u)
229 .loc 1 272 9 is_stmt 1 view .LVU86
230 .loc 1 272 22 is_stmt 0 view .LVU87
231 0094 4C68 ldr r4, [r1, #4]
232 .loc 1 272 11 view .LVU88
233 0096 A403 lsls r4, r4, #14
234 0098 01D5 bpl .L10
273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= iocurrent;
235 .loc 1 274 11 is_stmt 1 view .LVU89
236 .loc 1 274 16 is_stmt 0 view .LVU90
237 009a 3E00 movs r6, r7
238 .LVL25:
239 .loc 1 274 16 view .LVU91
ARM GAS /tmp/ccJLBnnH.s page 10
240 009c 2E43 orrs r6, r5
241 .LVL26:
242 .L10:
275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->EMR = temp;
243 .loc 1 276 9 is_stmt 1 view .LVU92
244 .loc 1 276 19 is_stmt 0 view .LVU93
245 009e 334C ldr r4, .L24+4
246 00a0 6660 str r6, [r4, #4]
277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp = EXTI->IMR;
247 .loc 1 278 9 is_stmt 1 view .LVU94
248 .loc 1 278 14 is_stmt 0 view .LVU95
249 00a2 2668 ldr r6, [r4]
250 .LVL27:
279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(iocurrent);
251 .loc 1 279 9 is_stmt 1 view .LVU96
252 .loc 1 279 14 is_stmt 0 view .LVU97
253 00a4 3240 ands r2, r6
254 .LVL28:
280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_IT) != 0x00u)
255 .loc 1 280 9 is_stmt 1 view .LVU98
256 .loc 1 280 22 is_stmt 0 view .LVU99
257 00a6 4C68 ldr r4, [r1, #4]
258 .loc 1 280 11 view .LVU100
259 00a8 E403 lsls r4, r4, #15
260 00aa 01D5 bpl .L11
281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= iocurrent;
261 .loc 1 282 11 is_stmt 1 view .LVU101
262 .loc 1 282 16 is_stmt 0 view .LVU102
263 00ac 2A00 movs r2, r5
264 .LVL29:
265 .loc 1 282 16 view .LVU103
266 00ae 3243 orrs r2, r6
267 .LVL30:
268 .L11:
283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->IMR = temp;
269 .loc 1 284 9 is_stmt 1 view .LVU104
270 .loc 1 284 19 is_stmt 0 view .LVU105
271 00b0 2E4C ldr r4, .L24+4
272 00b2 2260 str r2, [r4]
273 .LVL31:
274 .L3:
285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** position++;
275 .loc 1 288 5 is_stmt 1 view .LVU106
276 .loc 1 288 13 is_stmt 0 view .LVU107
277 00b4 0133 adds r3, r3, #1
278 .LVL32:
279 .L2:
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
280 .loc 1 181 41 is_stmt 1 view .LVU108
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
ARM GAS /tmp/ccJLBnnH.s page 11
281 .loc 1 181 21 is_stmt 0 view .LVU109
282 00b6 0C68 ldr r4, [r1]
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
283 .loc 1 181 28 view .LVU110
284 00b8 2200 movs r2, r4
285 00ba DA40 lsrs r2, r2, r3
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
286 .loc 1 181 41 view .LVU111
287 00bc 51D0 beq .L20
184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
288 .loc 1 184 5 is_stmt 1 view .LVU112
184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
289 .loc 1 184 41 is_stmt 0 view .LVU113
290 00be 0122 movs r2, #1
291 00c0 9A40 lsls r2, r2, r3
184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
292 .loc 1 184 15 view .LVU114
293 00c2 2500 movs r5, r4
294 00c4 1540 ands r5, r2
295 .LVL33:
186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
296 .loc 1 186 5 is_stmt 1 view .LVU115
186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
297 .loc 1 186 8 is_stmt 0 view .LVU116
298 00c6 1442 tst r4, r2
299 00c8 F4D0 beq .L3
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
300 .loc 1 190 7 is_stmt 1 view .LVU117
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
301 .loc 1 190 21 is_stmt 0 view .LVU118
302 00ca 4E68 ldr r6, [r1, #4]
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
303 .loc 1 190 28 view .LVU119
304 00cc 0324 movs r4, #3
305 00ce 3440 ands r4, r6
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
306 .loc 1 190 57 view .LVU120
307 00d0 013C subs r4, r4, #1
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
308 .loc 1 190 9 view .LVU121
309 00d2 012C cmp r4, #1
310 00d4 98D9 bls .L21
311 .L4:
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
312 .loc 1 208 7 is_stmt 1 view .LVU122
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
313 .loc 1 208 20 is_stmt 0 view .LVU123
314 00d6 4C68 ldr r4, [r1, #4]
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
315 .loc 1 208 27 view .LVU124
316 00d8 0322 movs r2, #3
317 00da 2240 ands r2, r4
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
318 .loc 1 208 9 view .LVU125
319 00dc 032A cmp r2, #3
320 00de 08D0 beq .L5
211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
ARM GAS /tmp/ccJLBnnH.s page 12
321 .loc 1 211 9 is_stmt 1 view .LVU126
214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u));
322 .loc 1 214 9 view .LVU127
214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u));
323 .loc 1 214 14 is_stmt 0 view .LVU128
324 00e0 C468 ldr r4, [r0, #12]
325 .LVL34:
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2u));
326 .loc 1 215 9 is_stmt 1 view .LVU129
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2u));
327 .loc 1 215 50 is_stmt 0 view .LVU130
328 00e2 5E00 lsls r6, r3, #1
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2u));
329 .loc 1 215 37 view .LVU131
330 00e4 0322 movs r2, #3
331 00e6 B240 lsls r2, r2, r6
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2u));
332 .loc 1 215 14 view .LVU132
333 00e8 9443 bics r4, r2
334 .LVL35:
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->PUPDR = temp;
335 .loc 1 216 9 is_stmt 1 view .LVU133
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->PUPDR = temp;
336 .loc 1 216 28 is_stmt 0 view .LVU134
337 00ea 8A68 ldr r2, [r1, #8]
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->PUPDR = temp;
338 .loc 1 216 36 view .LVU135
339 00ec B240 lsls r2, r2, r6
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->PUPDR = temp;
340 .loc 1 216 14 view .LVU136
341 00ee 2243 orrs r2, r4
342 .LVL36:
217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
343 .loc 1 217 9 is_stmt 1 view .LVU137
217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
344 .loc 1 217 22 is_stmt 0 view .LVU138
345 00f0 C260 str r2, [r0, #12]
346 .LVL37:
347 .L5:
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
348 .loc 1 221 7 is_stmt 1 view .LVU139
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
349 .loc 1 221 20 is_stmt 0 view .LVU140
350 00f2 4C68 ldr r4, [r1, #4]
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
351 .loc 1 221 27 view .LVU141
352 00f4 0322 movs r2, #3
353 00f6 2240 ands r2, r4
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
354 .loc 1 221 9 view .LVU142
355 00f8 022A cmp r2, #2
356 00fa 98D0 beq .L22
357 .L6:
235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2u));
358 .loc 1 235 7 is_stmt 1 view .LVU143
235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2u));
359 .loc 1 235 12 is_stmt 0 view .LVU144
ARM GAS /tmp/ccJLBnnH.s page 13
360 00fc 0468 ldr r4, [r0]
361 .LVL38:
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u));
362 .loc 1 236 7 is_stmt 1 view .LVU145
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u));
363 .loc 1 236 48 is_stmt 0 view .LVU146
364 00fe 5E00 lsls r6, r3, #1
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u));
365 .loc 1 236 35 view .LVU147
366 0100 0322 movs r2, #3
367 0102 1700 movs r7, r2
368 0104 B740 lsls r7, r7, r6
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2u));
369 .loc 1 236 12 view .LVU148
370 0106 BC43 bics r4, r7
371 .LVL39:
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->MODER = temp;
372 .loc 1 237 7 is_stmt 1 view .LVU149
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->MODER = temp;
373 .loc 1 237 26 is_stmt 0 view .LVU150
374 0108 4F68 ldr r7, [r1, #4]
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->MODER = temp;
375 .loc 1 237 33 view .LVU151
376 010a 3A40 ands r2, r7
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->MODER = temp;
377 .loc 1 237 46 view .LVU152
378 010c B240 lsls r2, r2, r6
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->MODER = temp;
379 .loc 1 237 12 view .LVU153
380 010e 2243 orrs r2, r4
381 .LVL40:
238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
382 .loc 1 238 7 is_stmt 1 view .LVU154
238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
383 .loc 1 238 20 is_stmt 0 view .LVU155
384 0110 0260 str r2, [r0]
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
385 .loc 1 242 7 is_stmt 1 view .LVU156
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
386 .loc 1 242 20 is_stmt 0 view .LVU157
387 0112 4C68 ldr r4, [r1, #4]
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
388 .loc 1 242 27 view .LVU158
389 0114 C022 movs r2, #192
390 .LVL41:
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
391 .loc 1 242 27 view .LVU159
392 0116 9202 lsls r2, r2, #10
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
393 .loc 1 242 9 view .LVU160
394 0118 1442 tst r4, r2
395 011a CBD0 beq .L3
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
396 .loc 1 245 9 is_stmt 1 view .LVU161
397 .LBB2:
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
398 .loc 1 245 9 view .LVU162
ARM GAS /tmp/ccJLBnnH.s page 14
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
399 .loc 1 245 9 view .LVU163
400 011c 144C ldr r4, .L24+8
401 011e A669 ldr r6, [r4, #24]
402 0120 0122 movs r2, #1
403 0122 1643 orrs r6, r2
404 0124 A661 str r6, [r4, #24]
405 .LVL42:
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
406 .loc 1 245 9 view .LVU164
407 0126 A469 ldr r4, [r4, #24]
408 0128 2240 ands r2, r4
409 012a 0192 str r2, [sp, #4]
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
410 .loc 1 245 9 view .LVU165
411 012c 019A ldr r2, [sp, #4]
412 .LBE2:
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
413 .loc 1 245 9 view .LVU166
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(0x0FuL << (4u * (position & 0x03u)));
414 .loc 1 247 9 view .LVU167
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(0x0FuL << (4u * (position & 0x03u)));
415 .loc 1 247 40 is_stmt 0 view .LVU168
416 012e 9A08 lsrs r2, r3, #2
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp &= ~(0x0FuL << (4u * (position & 0x03u)));
417 .loc 1 247 14 view .LVU169
418 0130 941C adds r4, r2, #2
419 0132 A400 lsls r4, r4, #2
420 0134 0C4E ldr r6, .L24
421 0136 A759 ldr r7, [r4, r6]
422 .LVL43:
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)));
423 .loc 1 248 9 is_stmt 1 view .LVU170
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)));
424 .loc 1 248 45 is_stmt 0 view .LVU171
425 0138 0324 movs r4, #3
426 013a 1C40 ands r4, r3
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)));
427 .loc 1 248 33 view .LVU172
428 013c A400 lsls r4, r4, #2
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)));
429 .loc 1 248 26 view .LVU173
430 013e 0F26 movs r6, #15
431 0140 A640 lsls r6, r6, r4
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u)));
432 .loc 1 248 14 view .LVU174
433 0142 B743 bics r7, r6
434 .LVL44:
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp;
435 .loc 1 249 9 is_stmt 1 view .LVU175
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp;
436 .loc 1 249 18 is_stmt 0 view .LVU176
437 0144 9026 movs r6, #144
438 0146 F605 lsls r6, r6, #23
439 0148 B042 cmp r0, r6
440 014a 82D0 beq .L13
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp;
ARM GAS /tmp/ccJLBnnH.s page 15
441 .loc 1 249 18 discriminator 1 view .LVU177
442 014c 094E ldr r6, .L24+12
443 014e B042 cmp r0, r6
444 0150 05D0 beq .L14
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp;
445 .loc 1 249 18 discriminator 3 view .LVU178
446 0152 094E ldr r6, .L24+16
447 0154 B042 cmp r0, r6
448 0156 00D1 bne .LCB389
449 0158 79E7 b .L23 @long jump
450 .LCB389:
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp;
451 .loc 1 249 18 discriminator 6 view .LVU179
452 015a 0526 movs r6, #5
453 015c 7AE7 b .L7
454 .L14:
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] = temp;
455 .loc 1 249 18 discriminator 4 view .LVU180
456 015e 0126 movs r6, #1
457 0160 78E7 b .L7
458 .LVL45:
459 .L20:
289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
460 .loc 1 290 1 view .LVU181
461 0162 03B0 add sp, sp, #12
462 @ sp needed
463 0164 F0BD pop {r4, r5, r6, r7, pc}
464 .L25:
465 0166 C046 .align 2
466 .L24:
467 0168 00000140 .word 1073807360
468 016c 00040140 .word 1073808384
469 0170 00100240 .word 1073876992
470 0174 00040048 .word 1207960576
471 0178 00080048 .word 1207961600
472 .cfi_endproc
473 .LFE40:
475 .section .text.HAL_GPIO_DeInit,"ax",%progbits
476 .align 1
477 .global HAL_GPIO_DeInit
478 .syntax unified
479 .code 16
480 .thumb_func
482 HAL_GPIO_DeInit:
483 .LVL46:
484 .LFB41:
291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief De-initialize the GPIOx peripheral registers to their default reset values.
294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F0 family
295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval None
298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
ARM GAS /tmp/ccJLBnnH.s page 16
485 .loc 1 300 1 is_stmt 1 view -0
486 .cfi_startproc
487 @ args = 0, pretend = 0, frame = 0
488 @ frame_needed = 0, uses_anonymous_args = 0
489 .loc 1 300 1 is_stmt 0 view .LVU183
490 0000 F0B5 push {r4, r5, r6, r7, lr}
491 .cfi_def_cfa_offset 20
492 .cfi_offset 4, -20
493 .cfi_offset 5, -16
494 .cfi_offset 6, -12
495 .cfi_offset 7, -8
496 .cfi_offset 14, -4
497 0002 CE46 mov lr, r9
498 0004 4746 mov r7, r8
499 0006 80B5 push {r7, lr}
500 .cfi_def_cfa_offset 28
501 .cfi_offset 8, -28
502 .cfi_offset 9, -24
503 0008 8946 mov r9, r1
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t position = 0x00u;
504 .loc 1 301 3 is_stmt 1 view .LVU184
505 .LVL47:
302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t iocurrent;
506 .loc 1 302 3 view .LVU185
303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t tmp;
507 .loc 1 303 3 view .LVU186
304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the parameters */
306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
508 .loc 1 306 3 view .LVU187
307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
509 .loc 1 307 3 view .LVU188
308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the port pins */
310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** while ((GPIO_Pin >> position) != 0x00u)
510 .loc 1 310 3 view .LVU189
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t iocurrent;
511 .loc 1 301 12 is_stmt 0 view .LVU190
512 000a 0023 movs r3, #0
513 .loc 1 310 9 view .LVU191
514 000c 23E0 b .L27
515 .LVL48:
516 .L37:
311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Get current io position */
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** iocurrent = (GPIO_Pin) & (1uL << position);
314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (iocurrent != 0x00u)
316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /*------------------------- EXTI Mode Configuration --------------------*/
318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Clear the External Interrupt or Event for the current IO */
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp = SYSCFG->EXTICR[position >> 2u];
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp &= (0x0FuL << (4u * (position & 0x03u)));
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))))
517 .loc 1 322 19 discriminator 5 view .LVU192
518 000e 0221 movs r1, #2
ARM GAS /tmp/ccJLBnnH.s page 17
519 0010 8846 mov r8, r1
520 0012 01E0 b .L29
521 .L32:
522 .loc 1 322 19 discriminator 2 view .LVU193
523 0014 0021 movs r1, #0
524 0016 8846 mov r8, r1
525 .L29:
526 .loc 1 322 41 discriminator 12 view .LVU194
527 0018 4146 mov r1, r8
528 001a A140 lsls r1, r1, r4
529 .loc 1 322 10 discriminator 12 view .LVU195
530 001c A942 cmp r1, r5
531 001e 40D0 beq .L35
532 .LVL49:
533 .L30:
323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Clear EXTI line configuration */
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->IMR &= ~((uint32_t)iocurrent);
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->FTSR &= ~((uint32_t)iocurrent);
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp = 0x0FuL << (4u * (position & 0x03u));
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] &= ~tmp;
335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /*------------------------- GPIO Mode Configuration --------------------*/
338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure IO Direction in Input Floating Mode */
339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->MODER &= ~(GPIO_MODER_MODER0 << (position * 2u));
534 .loc 1 339 7 is_stmt 1 view .LVU196
535 .loc 1 339 12 is_stmt 0 view .LVU197
536 0020 0468 ldr r4, [r0]
537 .loc 1 339 56 view .LVU198
538 0022 5E00 lsls r6, r3, #1
539 .loc 1 339 43 view .LVU199
540 0024 0325 movs r5, #3
541 0026 B540 lsls r5, r5, r6
542 .loc 1 339 20 view .LVU200
543 0028 AC43 bics r4, r5
544 002a 0460 str r4, [r0]
340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the default Alternate Function in current IO */
342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->AFR[position >> 3u] &= ~(0xFu << ((uint32_t)(position & 0x07u) * 4u)) ;
545 .loc 1 342 7 is_stmt 1 view .LVU201
546 .loc 1 342 17 is_stmt 0 view .LVU202
547 002c DC08 lsrs r4, r3, #3
548 002e 0834 adds r4, r4, #8
549 0030 A400 lsls r4, r4, #2
550 0032 2758 ldr r7, [r4, r0]
551 .loc 1 342 48 view .LVU203
552 0034 0726 movs r6, #7
553 0036 1E40 ands r6, r3
554 .loc 1 342 77 view .LVU204
555 0038 B600 lsls r6, r6, #2
ARM GAS /tmp/ccJLBnnH.s page 18
556 .loc 1 342 44 view .LVU205
557 003a 0F21 movs r1, #15
558 003c B140 lsls r1, r1, r6
559 .loc 1 342 34 view .LVU206
560 003e 8F43 bics r7, r1
561 0040 2750 str r7, [r4, r0]
343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Deactivate the Pull-up and Pull-down resistor for the current IO */
345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << (position * 2u));
562 .loc 1 345 7 is_stmt 1 view .LVU207
563 .loc 1 345 12 is_stmt 0 view .LVU208
564 0042 C468 ldr r4, [r0, #12]
565 .loc 1 345 20 view .LVU209
566 0044 AC43 bics r4, r5
567 0046 C460 str r4, [r0, #12]
346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the default value IO Output Type */
348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->OTYPER &= ~(GPIO_OTYPER_OT_0 << position) ;
568 .loc 1 348 7 is_stmt 1 view .LVU210
569 .loc 1 348 12 is_stmt 0 view .LVU211
570 0048 4468 ldr r4, [r0, #4]
571 .loc 1 348 22 view .LVU212
572 004a 9443 bics r4, r2
573 004c 4460 str r4, [r0, #4]
349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Configure the default value for IO Speed */
351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2u));
574 .loc 1 351 7 is_stmt 1 view .LVU213
575 .loc 1 351 12 is_stmt 0 view .LVU214
576 004e 8268 ldr r2, [r0, #8]
577 .loc 1 351 22 view .LVU215
578 0050 AA43 bics r2, r5
579 0052 8260 str r2, [r0, #8]
580 .L28:
352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** position++;
581 .loc 1 355 5 is_stmt 1 view .LVU216
582 .loc 1 355 13 is_stmt 0 view .LVU217
583 0054 0133 adds r3, r3, #1
584 .LVL50:
585 .L27:
310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
586 .loc 1 310 33 is_stmt 1 view .LVU218
310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
587 .loc 1 310 20 is_stmt 0 view .LVU219
588 0056 4A46 mov r2, r9
589 0058 DA40 lsrs r2, r2, r3
310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
590 .loc 1 310 33 view .LVU220
591 005a 37D0 beq .L36
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
592 .loc 1 313 5 is_stmt 1 view .LVU221
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
593 .loc 1 313 35 is_stmt 0 view .LVU222
594 005c 0122 movs r2, #1
ARM GAS /tmp/ccJLBnnH.s page 19
595 005e 9A40 lsls r2, r2, r3
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
596 .loc 1 313 15 view .LVU223
597 0060 4C46 mov r4, r9
598 0062 1440 ands r4, r2
599 0064 A446 mov ip, r4
600 .LVL51:
315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
601 .loc 1 315 5 is_stmt 1 view .LVU224
315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
602 .loc 1 315 8 is_stmt 0 view .LVU225
603 0066 4946 mov r1, r9
604 0068 1142 tst r1, r2
605 006a F3D0 beq .L28
606 .LVL52:
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp &= (0x0FuL << (4u * (position & 0x03u)));
607 .loc 1 320 7 is_stmt 1 view .LVU226
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp &= (0x0FuL << (4u * (position & 0x03u)));
608 .loc 1 320 37 is_stmt 0 view .LVU227
609 006c 9F08 lsrs r7, r3, #2
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp &= (0x0FuL << (4u * (position & 0x03u)));
610 .loc 1 320 11 view .LVU228
611 006e BC1C adds r4, r7, #2
612 .LVL53:
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp &= (0x0FuL << (4u * (position & 0x03u)));
613 .loc 1 320 11 view .LVU229
614 0070 A400 lsls r4, r4, #2
615 0072 184D ldr r5, .L38
616 0074 6559 ldr r5, [r4, r5]
617 .LVL54:
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))))
618 .loc 1 321 7 is_stmt 1 view .LVU230
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))))
619 .loc 1 321 41 is_stmt 0 view .LVU231
620 0076 0326 movs r6, #3
621 0078 1E40 ands r6, r3
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))))
622 .loc 1 321 29 view .LVU232
623 007a B400 lsls r4, r6, #2
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))))
624 .loc 1 321 22 view .LVU233
625 007c 0F26 movs r6, #15
626 007e A640 lsls r6, r6, r4
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4u * (position & 0x03u))))
627 .loc 1 321 11 view .LVU234
628 0080 3540 ands r5, r6
629 .LVL55:
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
630 .loc 1 322 7 is_stmt 1 view .LVU235
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
631 .loc 1 322 19 is_stmt 0 view .LVU236
632 0082 9021 movs r1, #144
633 .LVL56:
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
634 .loc 1 322 19 view .LVU237
635 0084 C905 lsls r1, r1, #23
636 0086 8842 cmp r0, r1
ARM GAS /tmp/ccJLBnnH.s page 20
637 0088 C4D0 beq .L32
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
638 .loc 1 322 19 discriminator 1 view .LVU238
639 008a 1349 ldr r1, .L38+4
640 008c 8842 cmp r0, r1
641 008e 05D0 beq .L33
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
642 .loc 1 322 19 discriminator 3 view .LVU239
643 0090 1249 ldr r1, .L38+8
644 0092 8842 cmp r0, r1
645 0094 BBD0 beq .L37
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
646 .loc 1 322 19 discriminator 6 view .LVU240
647 0096 0521 movs r1, #5
648 0098 8846 mov r8, r1
649 009a BDE7 b .L29
650 .L33:
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
651 .loc 1 322 19 discriminator 4 view .LVU241
652 009c 0121 movs r1, #1
653 009e 8846 mov r8, r1
654 00a0 BAE7 b .L29
655 .L35:
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
656 .loc 1 325 9 is_stmt 1 view .LVU242
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
657 .loc 1 325 13 is_stmt 0 view .LVU243
658 00a2 0F4C ldr r4, .L38+12
659 00a4 2568 ldr r5, [r4]
660 .LVL57:
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
661 .loc 1 325 19 view .LVU244
662 00a6 6146 mov r1, ip
663 00a8 8D43 bics r5, r1
664 00aa 2560 str r5, [r4]
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
665 .loc 1 326 9 is_stmt 1 view .LVU245
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
666 .loc 1 326 13 is_stmt 0 view .LVU246
667 00ac 6568 ldr r5, [r4, #4]
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
668 .loc 1 326 19 view .LVU247
669 00ae 8D43 bics r5, r1
670 00b0 6560 str r5, [r4, #4]
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
671 .loc 1 329 9 is_stmt 1 view .LVU248
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
672 .loc 1 329 13 is_stmt 0 view .LVU249
673 00b2 E568 ldr r5, [r4, #12]
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
674 .loc 1 329 20 view .LVU250
675 00b4 8D43 bics r5, r1
676 00b6 E560 str r5, [r4, #12]
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
677 .loc 1 330 9 is_stmt 1 view .LVU251
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
678 .loc 1 330 13 is_stmt 0 view .LVU252
ARM GAS /tmp/ccJLBnnH.s page 21
679 00b8 A568 ldr r5, [r4, #8]
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
680 .loc 1 330 20 view .LVU253
681 00ba 8D43 bics r5, r1
682 00bc A560 str r5, [r4, #8]
333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2u] &= ~tmp;
683 .loc 1 333 9 is_stmt 1 view .LVU254
684 .LVL58:
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
685 .loc 1 334 9 view .LVU255
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
686 .loc 1 334 23 is_stmt 0 view .LVU256
687 00be 0549 ldr r1, .L38
688 00c0 0237 adds r7, r7, #2
689 00c2 BC00 lsls r4, r7, #2
690 00c4 6558 ldr r5, [r4, r1]
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
691 .loc 1 334 40 view .LVU257
692 00c6 B543 bics r5, r6
693 00c8 6550 str r5, [r4, r1]
694 00ca A9E7 b .L30
695 .LVL59:
696 .L36:
356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
697 .loc 1 357 1 view .LVU258
698 @ sp needed
699 .LVL60:
700 .loc 1 357 1 view .LVU259
701 00cc C0BC pop {r6, r7}
702 00ce B946 mov r9, r7
703 00d0 B046 mov r8, r6
704 00d2 F0BD pop {r4, r5, r6, r7, pc}
705 .L39:
706 .align 2
707 .L38:
708 00d4 00000140 .word 1073807360
709 00d8 00040048 .word 1207960576
710 00dc 00080048 .word 1207961600
711 00e0 00040140 .word 1073808384
712 .cfi_endproc
713 .LFE41:
715 .section .text.HAL_GPIO_ReadPin,"ax",%progbits
716 .align 1
717 .global HAL_GPIO_ReadPin
718 .syntax unified
719 .code 16
720 .thumb_func
722 HAL_GPIO_ReadPin:
723 .LVL61:
724 .LFB42:
358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @}
361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group2 IO operation functions
ARM GAS /tmp/ccJLBnnH.s page 22
364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief GPIO Read, Write, Toggle, Lock and EXTI management functions.
365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** *
366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** @verbatim
367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ===============================================================================
368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ##### IO operation functions #####
369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** ===============================================================================
370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** @endverbatim
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @{
373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief Read the specified input port pin.
377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F0 family
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to read.
379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * This parameter can be GPIO_PIN_x where x can be (0..15).
380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval The input port pin value.
381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
725 .loc 1 383 1 is_stmt 1 view -0
726 .cfi_startproc
727 @ args = 0, pretend = 0, frame = 0
728 @ frame_needed = 0, uses_anonymous_args = 0
729 @ link register save eliminated.
384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIO_PinState bitstatus;
730 .loc 1 384 3 view .LVU261
385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the parameters */
387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
731 .loc 1 387 3 view .LVU262
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
732 .loc 1 389 3 view .LVU263
733 .loc 1 389 13 is_stmt 0 view .LVU264
734 0000 0369 ldr r3, [r0, #16]
735 .loc 1 389 6 view .LVU265
736 0002 0B42 tst r3, r1
737 0004 01D0 beq .L42
390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET;
738 .loc 1 391 15 view .LVU266
739 0006 0120 movs r0, #1
740 .LVL62:
741 .L41:
392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** else
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** bitstatus = GPIO_PIN_RESET;
396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** return bitstatus;
742 .loc 1 397 3 is_stmt 1 view .LVU267
398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
743 .loc 1 398 3 is_stmt 0 view .LVU268
744 @ sp needed
745 0008 7047 bx lr
746 .LVL63:
ARM GAS /tmp/ccJLBnnH.s page 23
747 .L42:
395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
748 .loc 1 395 15 view .LVU269
749 000a 0020 movs r0, #0
750 .LVL64:
395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
751 .loc 1 395 15 view .LVU270
752 000c FCE7 b .L41
753 .cfi_endproc
754 .LFE42:
756 .section .text.HAL_GPIO_WritePin,"ax",%progbits
757 .align 1
758 .global HAL_GPIO_WritePin
759 .syntax unified
760 .code 16
761 .thumb_func
763 HAL_GPIO_WritePin:
764 .LVL65:
765 .LFB43:
399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief Set or clear the selected data port bit.
402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @note This function uses GPIOx_BSRR and GPIOx_BRR registers to allow atomic read/modify
403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * accesses. In this way, there is no risk of an IRQ occurring between
404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * the read and the modify access.
405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** *
406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIOx where x can be (A..H) to select the GPIO peripheral for STM32F0 family
407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param PinState specifies the value to be written to the selected bit.
410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * This parameter can be one of the GPIO_PinState enum values:
411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @arg GPIO_PIN_RESET: to clear the port pin
412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @arg GPIO_PIN_SET: to set the port pin
413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval None
414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
766 .loc 1 416 1 is_stmt 1 view -0
767 .cfi_startproc
768 @ args = 0, pretend = 0, frame = 0
769 @ frame_needed = 0, uses_anonymous_args = 0
770 @ link register save eliminated.
417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the parameters */
418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
771 .loc 1 418 3 view .LVU272
419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState));
772 .loc 1 419 3 view .LVU273
420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if (PinState != GPIO_PIN_RESET)
773 .loc 1 421 3 view .LVU274
774 .loc 1 421 6 is_stmt 0 view .LVU275
775 0000 002A cmp r2, #0
776 0002 01D0 beq .L44
422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->BSRR = (uint32_t)GPIO_Pin;
777 .loc 1 423 5 is_stmt 1 view .LVU276
778 .loc 1 423 17 is_stmt 0 view .LVU277
ARM GAS /tmp/ccJLBnnH.s page 24
779 0004 8161 str r1, [r0, #24]
780 .L43:
424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** else
426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->BRR = (uint32_t)GPIO_Pin;
428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
781 .loc 1 429 1 view .LVU278
782 @ sp needed
783 0006 7047 bx lr
784 .L44:
427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
785 .loc 1 427 5 is_stmt 1 view .LVU279
427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
786 .loc 1 427 16 is_stmt 0 view .LVU280
787 0008 8162 str r1, [r0, #40]
788 .loc 1 429 1 view .LVU281
789 000a FCE7 b .L43
790 .cfi_endproc
791 .LFE43:
793 .section .text.HAL_GPIO_TogglePin,"ax",%progbits
794 .align 1
795 .global HAL_GPIO_TogglePin
796 .syntax unified
797 .code 16
798 .thumb_func
800 HAL_GPIO_TogglePin:
801 .LVL66:
802 .LFB44:
430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief Toggle the specified GPIO pin.
433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F0 family
434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Pin specifies the pin to be toggled.
435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval None
436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
803 .loc 1 438 1 is_stmt 1 view -0
804 .cfi_startproc
805 @ args = 0, pretend = 0, frame = 0
806 @ frame_needed = 0, uses_anonymous_args = 0
807 @ link register save eliminated.
439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** uint32_t odr;
808 .loc 1 439 3 view .LVU283
440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the parameters */
442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
809 .loc 1 442 3 view .LVU284
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* get current Output Data Register value */
445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** odr = GPIOx->ODR;
810 .loc 1 445 3 view .LVU285
811 .loc 1 445 7 is_stmt 0 view .LVU286
812 0000 4269 ldr r2, [r0, #20]
813 .LVL67:
ARM GAS /tmp/ccJLBnnH.s page 25
446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Set selected pins that were at low level, and reset ones that were high */
448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin);
814 .loc 1 448 3 is_stmt 1 view .LVU287
815 .loc 1 448 23 is_stmt 0 view .LVU288
816 0002 1300 movs r3, r2
817 0004 0B40 ands r3, r1
818 .loc 1 448 35 view .LVU289
819 0006 1B04 lsls r3, r3, #16
820 .loc 1 448 59 view .LVU290
821 0008 9143 bics r1, r2
822 .LVL68:
823 .loc 1 448 51 view .LVU291
824 000a 0B43 orrs r3, r1
825 .loc 1 448 15 view .LVU292
826 000c 8361 str r3, [r0, #24]
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
827 .loc 1 449 1 view .LVU293
828 @ sp needed
829 000e 7047 bx lr
830 .cfi_endproc
831 .LFE44:
833 .section .text.HAL_GPIO_LockPin,"ax",%progbits
834 .align 1
835 .global HAL_GPIO_LockPin
836 .syntax unified
837 .code 16
838 .thumb_func
840 HAL_GPIO_LockPin:
841 .LVL69:
842 .LFB45:
450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief Locks GPIO Pins configuration registers.
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR,
454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH.
455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @note The configuration of the locked GPIO pins can no longer be modified
456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * until the next reset.
457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F0 family
458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bits to be locked.
459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval None
461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
843 .loc 1 463 1 is_stmt 1 view -0
844 .cfi_startproc
845 @ args = 0, pretend = 0, frame = 8
846 @ frame_needed = 0, uses_anonymous_args = 0
847 @ link register save eliminated.
848 .loc 1 463 1 is_stmt 0 view .LVU295
849 0000 82B0 sub sp, sp, #8
850 .cfi_def_cfa_offset 8
464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK;
851 .loc 1 464 3 is_stmt 1 view .LVU296
852 .loc 1 464 17 is_stmt 0 view .LVU297
853 0002 8022 movs r2, #128
ARM GAS /tmp/ccJLBnnH.s page 26
854 0004 5202 lsls r2, r2, #9
855 0006 0192 str r2, [sp, #4]
465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Check the parameters */
467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_LOCK_INSTANCE(GPIOx));
856 .loc 1 467 3 is_stmt 1 view .LVU298
468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
857 .loc 1 468 3 view .LVU299
469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Apply lock key write sequence */
471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** SET_BIT(tmp, GPIO_Pin);
858 .loc 1 471 3 view .LVU300
859 0008 019B ldr r3, [sp, #4]
860 000a 0B43 orrs r3, r1
861 000c 0193 str r3, [sp, #4]
472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->LCKR = tmp;
862 .loc 1 473 3 view .LVU301
863 .loc 1 473 15 is_stmt 0 view .LVU302
864 000e 019B ldr r3, [sp, #4]
865 0010 C361 str r3, [r0, #28]
474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */
475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->LCKR = GPIO_Pin;
866 .loc 1 475 3 is_stmt 1 view .LVU303
867 .loc 1 475 15 is_stmt 0 view .LVU304
868 0012 C161 str r1, [r0, #28]
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** GPIOx->LCKR = tmp;
869 .loc 1 477 3 is_stmt 1 view .LVU305
870 .loc 1 477 15 is_stmt 0 view .LVU306
871 0014 019B ldr r3, [sp, #4]
872 0016 C361 str r3, [r0, #28]
478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Read LCKK register. This read is mandatory to complete key lock sequence */
479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** tmp = GPIOx->LCKR;
873 .loc 1 479 3 is_stmt 1 view .LVU307
874 .loc 1 479 14 is_stmt 0 view .LVU308
875 0018 C369 ldr r3, [r0, #28]
876 .loc 1 479 7 view .LVU309
877 001a 0193 str r3, [sp, #4]
480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* read again in order to confirm lock is active */
482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if((GPIOx->LCKR & GPIO_LCKR_LCKK) != 0x00u)
878 .loc 1 482 2 is_stmt 1 view .LVU310
879 .loc 1 482 11 is_stmt 0 view .LVU311
880 001c C369 ldr r3, [r0, #28]
881 .loc 1 482 4 view .LVU312
882 001e 1342 tst r3, r2
883 0020 02D0 beq .L49
483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** return HAL_OK;
884 .loc 1 484 12 view .LVU313
885 0022 0020 movs r0, #0
886 .LVL70:
887 .L48:
485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** else
487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
ARM GAS /tmp/ccJLBnnH.s page 27
488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** return HAL_ERROR;
489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
888 .loc 1 490 1 view .LVU314
889 0024 02B0 add sp, sp, #8
890 @ sp needed
891 0026 7047 bx lr
892 .LVL71:
893 .L49:
488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
894 .loc 1 488 12 view .LVU315
895 0028 0120 movs r0, #1
896 .LVL72:
488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
897 .loc 1 488 12 view .LVU316
898 002a FBE7 b .L48
899 .cfi_endproc
900 .LFE45:
902 .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits
903 .align 1
904 .weak HAL_GPIO_EXTI_Callback
905 .syntax unified
906 .code 16
907 .thumb_func
909 HAL_GPIO_EXTI_Callback:
910 .LVL73:
911 .LFB47:
491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief Handle EXTI interrupt request.
494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.
495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval None
496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* EXTI line interrupt detected */
500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /**
508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @brief EXTI line detection callback.
509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.
510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** * @retval None
511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
912 .loc 1 513 1 is_stmt 1 view -0
913 .cfi_startproc
914 @ args = 0, pretend = 0, frame = 0
915 @ frame_needed = 0, uses_anonymous_args = 0
916 @ link register save eliminated.
514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* Prevent unused argument(s) compilation warning */
515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** UNUSED(GPIO_Pin);
ARM GAS /tmp/ccJLBnnH.s page 28
917 .loc 1 515 3 view .LVU318
516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* NOTE: This function should not be modified, when the callback is needed,
518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** the HAL_GPIO_EXTI_Callback could be implemented in the user file
519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** */
520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
918 .loc 1 520 1 is_stmt 0 view .LVU319
919 @ sp needed
920 0000 7047 bx lr
921 .cfi_endproc
922 .LFE47:
924 .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits
925 .align 1
926 .global HAL_GPIO_EXTI_IRQHandler
927 .syntax unified
928 .code 16
929 .thumb_func
931 HAL_GPIO_EXTI_IRQHandler:
932 .LVL74:
933 .LFB46:
498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* EXTI line interrupt detected */
934 .loc 1 498 1 is_stmt 1 view -0
935 .cfi_startproc
936 @ args = 0, pretend = 0, frame = 0
937 @ frame_needed = 0, uses_anonymous_args = 0
498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** /* EXTI line interrupt detected */
938 .loc 1 498 1 is_stmt 0 view .LVU321
939 0000 10B5 push {r4, lr}
940 .cfi_def_cfa_offset 8
941 .cfi_offset 4, -8
942 .cfi_offset 14, -4
500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
943 .loc 1 500 3 is_stmt 1 view .LVU322
500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
944 .loc 1 500 6 is_stmt 0 view .LVU323
945 0002 054B ldr r3, .L54
946 0004 5B69 ldr r3, [r3, #20]
500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** {
947 .loc 1 500 5 view .LVU324
948 0006 1842 tst r0, r3
949 0008 00D1 bne .L53
950 .LVL75:
951 .L51:
505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
952 .loc 1 505 1 view .LVU325
953 @ sp needed
954 000a 10BD pop {r4, pc}
955 .LVL76:
956 .L53:
502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
957 .loc 1 502 5 is_stmt 1 view .LVU326
958 000c 024B ldr r3, .L54
959 000e 5861 str r0, [r3, #20]
503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c **** }
960 .loc 1 503 5 view .LVU327
961 0010 FFF7FEFF bl HAL_GPIO_EXTI_Callback
962 .LVL77:
ARM GAS /tmp/ccJLBnnH.s page 29
505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_gpio.c ****
963 .loc 1 505 1 is_stmt 0 view .LVU328
964 0014 F9E7 b .L51
965 .L55:
966 0016 C046 .align 2
967 .L54:
968 0018 00040140 .word 1073808384
969 .cfi_endproc
970 .LFE46:
972 .text
973 .Letext0:
974 .file 2 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
975 .file 3 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
976 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h"
977 .file 5 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h"
978 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h"
ARM GAS /tmp/ccJLBnnH.s page 30
DEFINED SYMBOLS
*ABS*:00000000 stm32f0xx_hal_gpio.c
/tmp/ccJLBnnH.s:19 .text.HAL_GPIO_Init:00000000 $t
/tmp/ccJLBnnH.s:25 .text.HAL_GPIO_Init:00000000 HAL_GPIO_Init
/tmp/ccJLBnnH.s:467 .text.HAL_GPIO_Init:00000168 $d
/tmp/ccJLBnnH.s:476 .text.HAL_GPIO_DeInit:00000000 $t
/tmp/ccJLBnnH.s:482 .text.HAL_GPIO_DeInit:00000000 HAL_GPIO_DeInit
/tmp/ccJLBnnH.s:708 .text.HAL_GPIO_DeInit:000000d4 $d
/tmp/ccJLBnnH.s:716 .text.HAL_GPIO_ReadPin:00000000 $t
/tmp/ccJLBnnH.s:722 .text.HAL_GPIO_ReadPin:00000000 HAL_GPIO_ReadPin
/tmp/ccJLBnnH.s:757 .text.HAL_GPIO_WritePin:00000000 $t
/tmp/ccJLBnnH.s:763 .text.HAL_GPIO_WritePin:00000000 HAL_GPIO_WritePin
/tmp/ccJLBnnH.s:794 .text.HAL_GPIO_TogglePin:00000000 $t
/tmp/ccJLBnnH.s:800 .text.HAL_GPIO_TogglePin:00000000 HAL_GPIO_TogglePin
/tmp/ccJLBnnH.s:834 .text.HAL_GPIO_LockPin:00000000 $t
/tmp/ccJLBnnH.s:840 .text.HAL_GPIO_LockPin:00000000 HAL_GPIO_LockPin
/tmp/ccJLBnnH.s:903 .text.HAL_GPIO_EXTI_Callback:00000000 $t
/tmp/ccJLBnnH.s:909 .text.HAL_GPIO_EXTI_Callback:00000000 HAL_GPIO_EXTI_Callback
/tmp/ccJLBnnH.s:925 .text.HAL_GPIO_EXTI_IRQHandler:00000000 $t
/tmp/ccJLBnnH.s:931 .text.HAL_GPIO_EXTI_IRQHandler:00000000 HAL_GPIO_EXTI_IRQHandler
/tmp/ccJLBnnH.s:968 .text.HAL_GPIO_EXTI_IRQHandler:00000018 $d
NO UNDEFINED SYMBOLS