SLS/Software/build/stm32f0xx_hal_gpio.lst

1726 lines
103 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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