Files
bassofono/codice/build/stm32g4xx_hal_gpio.lst
2021-07-03 18:17:05 +02:00

1498 lines
89 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/ccgqPWsi.s page 1
1 .cpu cortex-m4
2 .eabi_attribute 27, 1
3 .eabi_attribute 28, 1
4 .eabi_attribute 23, 1
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 2
9 .eabi_attribute 34, 1
10 .eabi_attribute 18, 4
11 .file "stm32g4xx_hal_gpio.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HAL_GPIO_Init,"ax",%progbits
16 .align 1
17 .p2align 2,,3
18 .global HAL_GPIO_Init
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu fpv4-sp-d16
24 HAL_GPIO_Init:
25 .LFB329:
26 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c"
1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ******************************************************************************
3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @file stm32g4xx_hal_gpio.c
4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @author MCD Application Team
5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief GPIO HAL module driver.
6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * functionalities of the General Purpose Input/Output (GPIO) peripheral:
8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + Initialization and de-initialization functions
9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * + IO operation functions
10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @verbatim
12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ==============================================================================
13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### GPIO Peripheral features #####
14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ==============================================================================
15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** [..]
16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) Each port bit of the general-purpose I/O (GPIO) ports can be individually
17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** configured by software in several modes:
18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Input mode
19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Analog mode
20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Output mode
21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Alternate function mode
22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) External interrupt/event lines
23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) During and just after reset, the alternate functions and external interrupt
25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** lines are not active and the I/O ports are configured in input floating mode.
26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) All GPIO pins have weak internal pull-up and pull-down resistors, which can be
28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** activated or not.
29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) In Output or Alternate mode, each IO can be configured on open-drain or push-pull
31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** type and the IO speed can be selected depending on the VDD value.
32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
ARM GAS /tmp/ccgqPWsi.s page 2
33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) The microcontroller IO pins are connected to onboard peripherals/modules through a
34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** multiplexer that allows only one peripheral alternate function (AF) connected
35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** to an IO pin at a time. In this way, there can be no conflict between peripherals
36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** sharing the same IO pin.
37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) All ports have external interrupt/event capability. To use external interrupt
39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** lines, the port must be configured in input mode. All available GPIO pins are
40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** connected to the 16 external interrupt/event lines from EXTI0 to EXTI15.
41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (+) The external interrupt/event controller consists of up to 44 edge detectors
43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (16 lines are connected to GPIO) for generating event/interrupt requests (each
44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** input line can be independently configured to select the type (interrupt or event)
45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** and the corresponding trigger event (rising or falling or both). Each line can
46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** also be masked independently.
47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### How to use this driver #####
49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ==============================================================================
50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** [..]
51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) Enable the GPIO AHB clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE().
52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) Configure the GPIO pin(s) using HAL_GPIO_Init().
54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure
55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef
56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** structure.
57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) In case of Output or alternate function mode selection: the speed is
58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** configured through "Speed" member from GPIO_InitTypeDef structure.
59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) In alternate mode is selection, the alternate function connected to the IO
60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** is configured through "Alternate" member from GPIO_InitTypeDef structure.
61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) Analog mode is required when a pin is to be used as ADC channel
62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** or DAC output.
63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (++) In case of external interrupt/event selection the "Mode" member from
64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIO_InitTypeDef structure select the type (interrupt or event) and
65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** the corresponding trigger event (rising or falling or both).
66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority
68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using
69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_NVIC_EnableIRQ().
70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin().
72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) To set/reset the level of a pin configured in output mode use
74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_GPIO_WritePin()/HAL_GPIO_TogglePin().
75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) To lock pin configuration until next reset use HAL_GPIO_LockPin().
77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) During and just after reset, the alternate functions are not
79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** active and the GPIO pins are configured in input floating mode (except JTAG
80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** pins).
81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose
83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has
84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** priority over the GPIO function.
85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as
87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** general purpose PF0 and PF1, respectively, when the HSE oscillator is off.
88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** The HSE has priority over the GPIO function.
89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
ARM GAS /tmp/ccgqPWsi.s page 3
90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @endverbatim
91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ******************************************************************************
92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @attention
93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * All rights reserved.</center></h2>
96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This software component is licensed by ST under BSD 3-Clause license,
98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * the "License"; You may not use this file except in compliance with the
99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * License. You may obtain a copy of the License at:
100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * opensource.org/licenses/BSD-3-Clause
101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ******************************************************************************
103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Includes ------------------------------------------------------------------*/
106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #include "stm32g4xx_hal.h"
107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup STM32G4xx_HAL_Driver
109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{
110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup GPIO
113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{
114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** MISRA C:2012 deviation rule has been granted for following rules:
116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * Rule-12.2 - Medium: RHS argument is in interval [0,INF] which is out of
117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * range of the shift operator in following API :
118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * HAL_GPIO_Init
119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * HAL_GPIO_DeInit
120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #ifdef HAL_GPIO_MODULE_ENABLED
123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private typedef -----------------------------------------------------------*/
125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private defines ------------------------------------------------------------*/
126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @defgroup GPIO_Private_Constants GPIO Private Constants
127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{
128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define GPIO_MODE (0x00000003U)
130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define EXTI_MODE (0x10000000U)
131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define GPIO_MODE_IT (0x00010000U)
132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define GPIO_MODE_EVT (0x00020000U)
133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define RISING_EDGE (0x00100000U)
134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define FALLING_EDGE (0x00200000U)
135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define GPIO_OUTPUT_TYPE (0x00000010U)
136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** #define GPIO_NUMBER (16U)
138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @}
140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private macros ------------------------------------------------------------*/
143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private variables ---------------------------------------------------------*/
144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Private function prototypes -----------------------------------------------*/
145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Exported functions --------------------------------------------------------*/
146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
ARM GAS /tmp/ccgqPWsi.s page 4
147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup GPIO_Exported_Functions
148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{
149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group1 Initialization/de-initialization functions
152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Initialization and Configuration functions
153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @verbatim
155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ===============================================================================
156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### Initialization and de-initialization functions #####
157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ===============================================================================
158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @endverbatim
160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{
161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Initialize the GPIOx peripheral according to the specified parameters in the GPIO_Init.
165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family
166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains
167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * the configuration information for the specified GPIO peripheral.
168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None
169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
27 .loc 1 171 0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 8
30 @ frame_needed = 0, uses_anonymous_args = 0
31 .LVL0:
32 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
33 .LCFI0:
34 .cfi_def_cfa_offset 36
35 .cfi_offset 4, -36
36 .cfi_offset 5, -32
37 .cfi_offset 6, -28
38 .cfi_offset 7, -24
39 .cfi_offset 8, -20
40 .cfi_offset 9, -16
41 .cfi_offset 10, -12
42 .cfi_offset 11, -8
43 .cfi_offset 14, -4
172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U;
173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent;
174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t temp;
175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */
177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the port pins */
183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** while (((GPIO_Init->Pin) >> position) != 0U)
44 .loc 1 183 0
45 0004 D1F800E0 ldr lr, [r1]
171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U;
ARM GAS /tmp/ccgqPWsi.s page 5
46 .loc 1 171 0
47 0008 83B0 sub sp, sp, #12
48 .LCFI1:
49 .cfi_def_cfa_offset 48
50 .loc 1 183 0
51 000a BEF1000F cmp lr, #0
52 000e 00F08180 beq .L1
184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Get current io position */
186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** iocurrent = (GPIO_Init->Pin) & (1UL << position);
187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (iocurrent != 0x00u)
189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/
191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* In case of Output or Alternate function mode selection */
192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) ||
193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the Speed parameter */
196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the IO Speed */
198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->OSPEEDR;
199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the IO Output Type */
204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->OTYPER;
205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT0 << position) ;
206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OTYPER = temp;
208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Activate the Pull-up or Pull down resistor for the current IO */
211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->PUPDR;
212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* In case of Alternate function mode selection */
217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the Alternate function parameters */
220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure Alternate function mapped with the current IO */
224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->AFR[position >> 3U];
225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0xFU << ((position & 0x07U) * 4U));
226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U));
227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = GPIOx->MODER;
232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
ARM GAS /tmp/ccgqPWsi.s page 6
234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp;
235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*--------------------- EXTI Mode Configuration ------------------------*/
237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Enable SYSCFG Clock */
241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __HAL_RCC_SYSCFG_CLK_ENABLE();
242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = SYSCFG->EXTICR[position >> 2U];
244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0x0FUL << (4U * (position & 0x03U)));
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear EXTI line configuration */
249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->IMR1;
53 .loc 1 249 0
54 0012 DFF8A091 ldr r9, .L39+24
55 0016 8846 mov r8, r1
172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent;
56 .loc 1 172 0
57 0018 0026 movs r6, #0
58 .LVL1:
59 .L22:
186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
60 .loc 1 186 0
61 001a 0123 movs r3, #1
62 001c 03FA06F2 lsl r2, r3, r6
63 .LVL2:
188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
64 .loc 1 188 0
65 0020 12EA0E07 ands r7, r2, lr
66 .LVL3:
67 0024 72D0 beq .L4
68 0026 D8E90114 ldrd r1, r4, [r8, #4]
192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
69 .loc 1 192 0
70 002a 21F0100B bic fp, r1, #16
71 002e 06FA03FC lsl ip, r6, r3
72 0032 0BF1FF35 add r5, fp, #-1
73 0036 0323 movs r3, #3
74 0038 03FA0CFA lsl r10, r3, ip
75 003c 012D cmp r5, #1
76 003e 6FEA0A0A mvn r10, r10
77 0042 04FA0CF4 lsl r4, r4, ip
78 0046 68D9 bls .L5
211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
79 .loc 1 211 0 discriminator 1
80 0048 C368 ldr r3, [r0, #12]
81 .LVL4:
212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
82 .loc 1 212 0 discriminator 1
83 004a 0AEA0303 and r3, r10, r3
84 .LVL5:
213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
85 .loc 1 213 0 discriminator 1
86 004e 1C43 orrs r4, r4, r3
ARM GAS /tmp/ccgqPWsi.s page 7
87 .LVL6:
214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
88 .loc 1 214 0 discriminator 1
89 0050 C460 str r4, [r0, #12]
90 .LVL7:
91 .L6:
231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
92 .loc 1 231 0
93 0052 0268 ldr r2, [r0]
94 .LVL8:
233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp;
95 .loc 1 233 0
96 0054 01F00303 and r3, r1, #3
232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
97 .loc 1 232 0
98 0058 02EA0A0A and r10, r2, r10
99 .LVL9:
233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER = temp;
100 .loc 1 233 0
101 005c 03FA0CF3 lsl r3, r3, ip
102 0060 43EA0A03 orr r3, r3, r10
103 .LVL10:
238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
104 .loc 1 238 0
105 0064 CD00 lsls r5, r1, #3
234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
106 .loc 1 234 0
107 0066 0360 str r3, [r0]
238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
108 .loc 1 238 0
109 0068 50D5 bpl .L4
110 .LBB2:
241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
111 .loc 1 241 0
112 006a 4C4A ldr r2, .L39
113 006c 136E ldr r3, [r2, #96]
114 .LVL11:
115 006e 43F00103 orr r3, r3, #1
116 0072 1366 str r3, [r2, #96]
117 .LVL12:
118 0074 136E ldr r3, [r2, #96]
119 0076 26F00304 bic r4, r6, #3
120 007a 04F18044 add r4, r4, #1073741824
121 007e 03F00103 and r3, r3, #1
122 0082 04F58034 add r4, r4, #65536
123 0086 0193 str r3, [sp, #4]
124 .LBE2:
244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
125 .loc 1 244 0
126 0088 06F00303 and r3, r6, #3
127 .LBB3:
241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
128 .loc 1 241 0
129 008c 019A ldr r2, [sp, #4]
130 .LBE3:
243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0x0FUL << (4U * (position & 0x03U)));
131 .loc 1 243 0
ARM GAS /tmp/ccgqPWsi.s page 8
132 008e A568 ldr r5, [r4, #8]
133 .LVL13:
244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
134 .loc 1 244 0
135 0090 9B00 lsls r3, r3, #2
136 0092 0F22 movs r2, #15
137 0094 9A40 lsls r2, r2, r3
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
138 .loc 1 245 0
139 0096 B0F1904F cmp r0, #1207959552
244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
140 .loc 1 244 0
141 009a 25EA0202 bic r2, r5, r2
142 .LVL14:
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
143 .loc 1 245 0
144 009e 13D0 beq .L8
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
145 .loc 1 245 0 is_stmt 0 discriminator 1
146 00a0 3F4D ldr r5, .L39+4
147 00a2 A842 cmp r0, r5
148 00a4 6BD0 beq .L35
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
149 .loc 1 245 0 discriminator 3
150 00a6 3F4D ldr r5, .L39+8
151 00a8 A842 cmp r0, r5
152 00aa 63D0 beq .L36
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
153 .loc 1 245 0 discriminator 5
154 00ac 3E4D ldr r5, .L39+12
155 00ae A842 cmp r0, r5
156 00b0 6AD0 beq .L37
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
157 .loc 1 245 0 discriminator 7
158 00b2 3E4D ldr r5, .L39+16
159 00b4 A842 cmp r0, r5
160 00b6 6CD0 beq .L38
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
161 .loc 1 245 0 discriminator 9
162 00b8 3D4D ldr r5, .L39+20
163 00ba A842 cmp r0, r5
164 00bc 0CBF ite eq
165 00be 0525 moveq r5, #5
166 00c0 0625 movne r5, #6
167 00c2 05FA03F3 lsl r3, r5, r3
168 00c6 1A43 orrs r2, r2, r3
169 .LVL15:
170 .L8:
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
171 .loc 1 246 0 is_stmt 1 discriminator 24
172 00c8 A260 str r2, [r4, #8]
173 .loc 1 249 0 discriminator 24
174 00ca D9F80030 ldr r3, [r9]
175 .LVL16:
250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
176 .loc 1 250 0 discriminator 24
177 00ce FA43 mvns r2, r7
ARM GAS /tmp/ccgqPWsi.s page 9
178 .LVL17:
251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
179 .loc 1 251 0 discriminator 24
180 00d0 CC03 lsls r4, r1, #15
250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
181 .loc 1 250 0 discriminator 24
182 00d2 54BF ite pl
183 00d4 1340 andpl r3, r3, r2
184 .LVL18:
252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent;
185 .loc 1 253 0 discriminator 24
186 00d6 3B43 orrmi r3, r3, r7
187 .LVL19:
254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->IMR1 = temp;
188 .loc 1 255 0 discriminator 24
189 00d8 C9F80030 str r3, [r9]
256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->EMR1;
190 .loc 1 257 0 discriminator 24
191 00dc D9F80430 ldr r3, [r9, #4]
192 .LVL20:
258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
193 .loc 1 259 0 discriminator 24
194 00e0 8D03 lsls r5, r1, #14
258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
195 .loc 1 258 0 discriminator 24
196 00e2 54BF ite pl
197 00e4 1340 andpl r3, r3, r2
198 .LVL21:
260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent;
199 .loc 1 261 0 discriminator 24
200 00e6 3B43 orrmi r3, r3, r7
201 .LVL22:
262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 = temp;
202 .loc 1 263 0 discriminator 24
203 00e8 C9F80430 str r3, [r9, #4]
264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->RTSR1;
204 .loc 1 266 0 discriminator 24
205 00ec D9F80830 ldr r3, [r9, #8]
206 .LVL23:
267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
207 .loc 1 268 0 discriminator 24
208 00f0 CC02 lsls r4, r1, #11
267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
209 .loc 1 267 0 discriminator 24
210 00f2 54BF ite pl
211 00f4 1340 andpl r3, r3, r2
212 .LVL24:
269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
ARM GAS /tmp/ccgqPWsi.s page 10
270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent;
213 .loc 1 270 0 discriminator 24
214 00f6 3B43 orrmi r3, r3, r7
215 .LVL25:
271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->RTSR1 = temp;
216 .loc 1 272 0 discriminator 24
217 00f8 C9F80830 str r3, [r9, #8]
273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp = EXTI->FTSR1;
218 .loc 1 274 0 discriminator 24
219 00fc D9F80C30 ldr r3, [r9, #12]
220 .LVL26:
275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
221 .loc 1 276 0 discriminator 24
222 0100 8902 lsls r1, r1, #10
275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(iocurrent);
223 .loc 1 275 0 discriminator 24
224 0102 54BF ite pl
225 0104 1340 andpl r3, r3, r2
226 .LVL27:
277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= iocurrent;
227 .loc 1 278 0 discriminator 24
228 0106 3B43 orrmi r3, r3, r7
229 .LVL28:
279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->FTSR1 = temp;
230 .loc 1 280 0 discriminator 24
231 0108 C9F80C30 str r3, [r9, #12]
232 .LVL29:
233 .L4:
281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** position++;
234 .loc 1 284 0
235 010c 0136 adds r6, r6, #1
236 .LVL30:
183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
237 .loc 1 183 0
238 010e 3EFA06F3 lsrs r3, lr, r6
239 0112 82D1 bne .L22
240 .LVL31:
241 .L1:
285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
242 .loc 1 286 0
243 0114 03B0 add sp, sp, #12
244 .LCFI2:
245 .cfi_remember_state
246 .cfi_def_cfa_offset 36
247 @ sp needed
248 0116 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
249 .LVL32:
250 .L5:
ARM GAS /tmp/ccgqPWsi.s page 11
251 .LCFI3:
252 .cfi_restore_state
198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
253 .loc 1 198 0
254 011a 8368 ldr r3, [r0, #8]
255 .LVL33:
200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
256 .loc 1 200 0
257 011c D8F80C50 ldr r5, [r8, #12]
199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
258 .loc 1 199 0
259 0120 03EA0A03 and r3, r3, r10
260 .LVL34:
200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
261 .loc 1 200 0
262 0124 05FA0CF5 lsl r5, r5, ip
263 0128 1D43 orrs r5, r5, r3
264 .LVL35:
201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
265 .loc 1 201 0
266 012a 8560 str r5, [r0, #8]
204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT0 << position) ;
267 .loc 1 204 0
268 012c 4368 ldr r3, [r0, #4]
269 .LVL36:
206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OTYPER = temp;
270 .loc 1 206 0
271 012e C1F30015 ubfx r5, r1, #4, #1
205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
272 .loc 1 205 0
273 0132 23EA0203 bic r3, r3, r2
274 .LVL37:
206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OTYPER = temp;
275 .loc 1 206 0
276 0136 2A46 mov r2, r5
277 0138 B240 lsls r2, r2, r6
278 013a 1A43 orrs r2, r2, r3
279 .LVL38:
207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
280 .loc 1 207 0
281 013c 4260 str r2, [r0, #4]
211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
282 .loc 1 211 0
283 013e C368 ldr r3, [r0, #12]
284 .LVL39:
212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
285 .loc 1 212 0
286 0140 03EA0A03 and r3, r3, r10
287 .LVL40:
213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
288 .loc 1 213 0
289 0144 1C43 orrs r4, r4, r3
290 .LVL41:
217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
291 .loc 1 217 0
292 0146 BBF1020F cmp fp, #2
214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
ARM GAS /tmp/ccgqPWsi.s page 12
293 .loc 1 214 0
294 014a C460 str r4, [r0, #12]
217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
295 .loc 1 217 0
296 014c 81D1 bne .L6
224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0xFU << ((position & 0x07U) * 4U));
297 .loc 1 224 0
298 014e F408 lsrs r4, r6, #3
299 .LVL42:
300 0150 00EB8404 add r4, r0, r4, lsl #2
225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U));
301 .loc 1 225 0
302 0154 06F00703 and r3, r6, #7
224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp &= ~(0xFU << ((position & 0x07U) * 4U));
303 .loc 1 224 0
304 0158 256A ldr r5, [r4, #32]
305 .LVL43:
226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
306 .loc 1 226 0
307 015a D8F81020 ldr r2, [r8, #16]
225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U));
308 .loc 1 225 0
309 015e 9B00 lsls r3, r3, #2
310 0160 4FF00F0B mov fp, #15
311 0164 0BFA03FB lsl fp, fp, r3
312 0168 25EA0B05 bic r5, r5, fp
313 .LVL44:
226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
314 .loc 1 226 0
315 016c 9A40 lsls r2, r2, r3
316 016e 2A43 orrs r2, r2, r5
317 .LVL45:
227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
318 .loc 1 227 0
319 0170 2262 str r2, [r4, #32]
320 0172 6EE7 b .L6
321 .L36:
322 0174 0225 movs r5, #2
323 0176 05FA03F3 lsl r3, r5, r3
324 017a 1A43 orrs r2, r2, r3
325 .LVL46:
326 017c A4E7 b .L8
327 .LVL47:
328 .L35:
329 017e 0125 movs r5, #1
330 0180 05FA03F3 lsl r3, r5, r3
331 0184 1A43 orrs r2, r2, r3
332 .LVL48:
333 0186 9FE7 b .L8
334 .LVL49:
335 .L37:
336 0188 0325 movs r5, #3
337 018a 05FA03F3 lsl r3, r5, r3
338 018e 1A43 orrs r2, r2, r3
339 .LVL50:
340 0190 9AE7 b .L8
341 .LVL51:
ARM GAS /tmp/ccgqPWsi.s page 13
342 .L38:
343 0192 0425 movs r5, #4
344 0194 05FA03F3 lsl r3, r5, r3
345 0198 1A43 orrs r2, r2, r3
346 .LVL52:
347 019a 95E7 b .L8
348 .L40:
349 .align 2
350 .L39:
351 019c 00100240 .word 1073876992
352 01a0 00040048 .word 1207960576
353 01a4 00080048 .word 1207961600
354 01a8 000C0048 .word 1207962624
355 01ac 00100048 .word 1207963648
356 01b0 00140048 .word 1207964672
357 01b4 00040140 .word 1073808384
358 .cfi_endproc
359 .LFE329:
361 .section .text.HAL_GPIO_DeInit,"ax",%progbits
362 .align 1
363 .p2align 2,,3
364 .global HAL_GPIO_DeInit
365 .syntax unified
366 .thumb
367 .thumb_func
368 .fpu fpv4-sp-d16
370 HAL_GPIO_DeInit:
371 .LFB330:
287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief De-initialize the GPIOx peripheral registers to their default reset values.
290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family
291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15).
293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None
294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
372 .loc 1 296 0
373 .cfi_startproc
374 @ args = 0, pretend = 0, frame = 8
375 @ frame_needed = 0, uses_anonymous_args = 0
376 .LVL53:
297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U;
298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent;
299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t tmp;
300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */
302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the port pins */
306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** while ((GPIO_Pin >> position) != 0U)
377 .loc 1 306 0
378 0000 0029 cmp r1, #0
379 0002 00F08E80 beq .L61
296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U;
ARM GAS /tmp/ccgqPWsi.s page 14
380 .loc 1 296 0
381 0006 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
382 .LCFI4:
383 .cfi_def_cfa_offset 36
384 .cfi_offset 4, -36
385 .cfi_offset 5, -32
386 .cfi_offset 6, -28
387 .cfi_offset 7, -24
388 .cfi_offset 8, -20
389 .cfi_offset 9, -16
390 .cfi_offset 10, -12
391 .cfi_offset 11, -8
392 .cfi_offset 14, -4
307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Get current io position */
309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** iocurrent = (GPIO_Pin) & (1UL << position);
310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (iocurrent != 0x00u)
312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*------------------------- EXTI Mode Configuration --------------------*/
314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear the External Interrupt or Event for the current IO */
315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp = SYSCFG->EXTICR[position >> 2U];
317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp &= (0x0FUL << (4U * (position & 0x03U)));
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear EXTI line configuration */
321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->IMR1 &= ~(iocurrent);
393 .loc 1 321 0
394 000a DFF82C81 ldr r8, .L68+20
296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t position = 0x00U;
395 .loc 1 296 0
396 000e 83B0 sub sp, sp, #12
397 .LCFI5:
398 .cfi_def_cfa_offset 48
297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t iocurrent;
399 .loc 1 297 0
400 0010 0023 movs r3, #0
309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
401 .loc 1 309 0
402 0012 4FF00109 mov r9, #1
317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
403 .loc 1 317 0
404 0016 4FF00F0A mov r10, #15
322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 &= ~(iocurrent);
323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->RTSR1 &= ~(iocurrent);
326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->FTSR1 &= ~(iocurrent);
327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp = 0x0FUL << (4U * (position & 0x03U));
329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp;
330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /*------------------------- GPIO Mode Configuration --------------------*/
333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure IO in Analog Mode */
334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->MODER |= (GPIO_MODER_MODE0 << (position * 2u));
ARM GAS /tmp/ccgqPWsi.s page 15
405 .loc 1 334 0
406 001a 4FF0030B mov fp, #3
407 .LVL54:
408 .L51:
309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
409 .loc 1 309 0
410 001e 09FA03F5 lsl r5, r9, r3
411 .LVL55:
311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
412 .loc 1 311 0
413 0022 15EA0106 ands r6, r5, r1
414 .LVL56:
415 0026 61D0 beq .L43
416 0028 23F00304 bic r4, r3, #3
417 002c 04F18044 add r4, r4, #1073741824
418 0030 04F58034 add r4, r4, #65536
317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
419 .loc 1 317 0
420 0034 03F00302 and r2, r3, #3
316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp &= (0x0FUL << (4U * (position & 0x03U)));
421 .loc 1 316 0
422 0038 A768 ldr r7, [r4, #8]
423 .LVL57:
317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
424 .loc 1 317 0
425 003a 9200 lsls r2, r2, #2
426 003c 0AFA02FC lsl ip, r10, r2
427 0040 0CEA0707 and r7, ip, r7
428 .LVL58:
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
429 .loc 1 318 0
430 0044 B0F1904F cmp r0, #1207959552
317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
431 .loc 1 317 0
432 0048 0197 str r7, [sp, #4]
433 .LVL59:
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
434 .loc 1 318 0
435 004a 16D0 beq .L52
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
436 .loc 1 318 0 is_stmt 0 discriminator 1
437 004c 354F ldr r7, .L68
438 .LVL60:
439 004e B842 cmp r0, r7
440 0050 53D0 beq .L64
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
441 .loc 1 318 0 discriminator 3
442 0052 354F ldr r7, .L68+4
443 0054 B842 cmp r0, r7
444 0056 5AD0 beq .L65
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
445 .loc 1 318 0 discriminator 5
446 0058 344F ldr r7, .L68+8
447 005a B842 cmp r0, r7
448 005c 5DD0 beq .L66
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
449 .loc 1 318 0 discriminator 7
ARM GAS /tmp/ccgqPWsi.s page 16
450 005e 344F ldr r7, .L68+12
451 0060 B842 cmp r0, r7
452 0062 4ED0 beq .L67
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
453 .loc 1 318 0 discriminator 9
454 0064 334F ldr r7, .L68+16
455 0066 B842 cmp r0, r7
456 0068 14BF ite ne
457 006a 4FF0060E movne lr, #6
458 006e 4FF0050E moveq lr, #5
459 0072 0EFA02F2 lsl r2, lr, r2
460 0076 019F ldr r7, [sp, #4]
461 0078 00E0 b .L44
462 .L52:
463 007a 0022 movs r2, #0
464 .L44:
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
465 .loc 1 318 0 discriminator 24
466 007c 9742 cmp r7, r2
467 007e 18D1 bne .L50
321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->EMR1 &= ~(iocurrent);
468 .loc 1 321 0 is_stmt 1
469 0080 D8F80020 ldr r2, [r8]
470 0084 F643 mvns r6, r6
471 .LVL61:
472 0086 3240 ands r2, r2, r6
473 0088 C8F80020 str r2, [r8]
322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
474 .loc 1 322 0
475 008c D8F80420 ldr r2, [r8, #4]
476 0090 3240 ands r2, r2, r6
477 0092 C8F80420 str r2, [r8, #4]
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** EXTI->FTSR1 &= ~(iocurrent);
478 .loc 1 325 0
479 0096 D8F80820 ldr r2, [r8, #8]
480 009a 3240 ands r2, r2, r6
481 009c C8F80820 str r2, [r8, #8]
326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
482 .loc 1 326 0
483 00a0 D8F80C20 ldr r2, [r8, #12]
484 00a4 1640 ands r6, r6, r2
485 .LVL62:
486 00a6 C8F80C60 str r6, [r8, #12]
487 .LVL63:
329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
488 .loc 1 329 0
489 00aa A268 ldr r2, [r4, #8]
490 00ac 22EA0C02 bic r2, r2, ip
491 00b0 A260 str r2, [r4, #8]
492 .LVL64:
493 .L50:
494 .loc 1 334 0
495 00b2 0468 ldr r4, [r0]
496 00b4 5A00 lsls r2, r3, #1
497 00b6 0BFA02F2 lsl r2, fp, r2
335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the default Alternate Function in current IO */
ARM GAS /tmp/ccgqPWsi.s page 17
337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->AFR[position >> 3u] &= ~(0xFu << ((position & 0x07u) * 4u));
498 .loc 1 337 0
499 00ba DE08 lsrs r6, r3, #3
334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
500 .loc 1 334 0
501 00bc 1443 orrs r4, r4, r2
502 00be 00EB8606 add r6, r0, r6, lsl #2
503 00c2 0460 str r4, [r0]
504 .loc 1 337 0
505 00c4 03F00704 and r4, r3, #7
506 00c8 376A ldr r7, [r6, #32]
507 00ca A400 lsls r4, r4, #2
508 00cc 0AFA04F4 lsl r4, r10, r4
509 00d0 27EA0404 bic r4, r7, r4
510 00d4 3462 str r4, [r6, #32]
338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Deactivate the Pull-up and Pull-down resistor for the current IO */
340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPD0 << (position * 2u));
511 .loc 1 340 0
512 00d6 C468 ldr r4, [r0, #12]
513 00d8 D243 mvns r2, r2
514 00da 1440 ands r4, r4, r2
515 00dc C460 str r4, [r0, #12]
341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the default value IO Output Type */
343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OTYPER &= ~(GPIO_OTYPER_OT0 << position);
516 .loc 1 343 0
517 00de 4468 ldr r4, [r0, #4]
518 00e0 24EA0505 bic r5, r4, r5
519 .LVL65:
520 00e4 4560 str r5, [r0, #4]
344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Configure the default value for IO Speed */
346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->OSPEEDR &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2u));
521 .loc 1 346 0
522 00e6 8468 ldr r4, [r0, #8]
523 00e8 2240 ands r2, r2, r4
524 00ea 8260 str r2, [r0, #8]
525 .L43:
347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** position++;
526 .loc 1 349 0
527 00ec 0133 adds r3, r3, #1
528 .LVL66:
306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
529 .loc 1 306 0
530 00ee 31FA03F2 lsrs r2, r1, r3
531 00f2 94D1 bne .L51
350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
532 .loc 1 351 0
533 00f4 03B0 add sp, sp, #12
534 .LCFI6:
535 .cfi_remember_state
536 .cfi_def_cfa_offset 36
537 @ sp needed
ARM GAS /tmp/ccgqPWsi.s page 18
538 00f6 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
539 .LVL67:
540 .L64:
541 .LCFI7:
542 .cfi_restore_state
543 00fa 09FA02F2 lsl r2, r9, r2
544 00fe 019F ldr r7, [sp, #4]
545 0100 BCE7 b .L44
546 .L67:
547 0102 4FF0040E mov lr, #4
548 0106 0EFA02F2 lsl r2, lr, r2
549 010a 019F ldr r7, [sp, #4]
550 010c B6E7 b .L44
551 .L65:
552 010e 4FF0020E mov lr, #2
553 0112 0EFA02F2 lsl r2, lr, r2
554 0116 019F ldr r7, [sp, #4]
555 0118 B0E7 b .L44
556 .L66:
557 011a 0BFA02F2 lsl r2, fp, r2
558 011e 019F ldr r7, [sp, #4]
559 0120 ACE7 b .L44
560 .LVL68:
561 .L61:
562 .LCFI8:
563 .cfi_def_cfa_offset 0
564 .cfi_restore 4
565 .cfi_restore 5
566 .cfi_restore 6
567 .cfi_restore 7
568 .cfi_restore 8
569 .cfi_restore 9
570 .cfi_restore 10
571 .cfi_restore 11
572 .cfi_restore 14
573 0122 7047 bx lr
574 .L69:
575 .align 2
576 .L68:
577 0124 00040048 .word 1207960576
578 0128 00080048 .word 1207961600
579 012c 000C0048 .word 1207962624
580 0130 00100048 .word 1207963648
581 0134 00140048 .word 1207964672
582 0138 00040140 .word 1073808384
583 .cfi_endproc
584 .LFE330:
586 .section .text.HAL_GPIO_ReadPin,"ax",%progbits
587 .align 1
588 .p2align 2,,3
589 .global HAL_GPIO_ReadPin
590 .syntax unified
591 .thumb
592 .thumb_func
593 .fpu fpv4-sp-d16
595 HAL_GPIO_ReadPin:
596 .LFB331:
ARM GAS /tmp/ccgqPWsi.s page 19
352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @}
355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /** @addtogroup GPIO_Exported_Functions_Group2
358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief GPIO Read, Write, Toggle, Lock and EXTI management functions.
359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @verbatim
361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ===============================================================================
362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ##### IO operation functions #####
363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** ===============================================================================
364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** @endverbatim
366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @{
367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Read the specified input port pin.
371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family
372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to read.
373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15).
374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval The input port pin value.
375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
597 .loc 1 377 0
598 .cfi_startproc
599 @ args = 0, pretend = 0, frame = 0
600 @ frame_needed = 0, uses_anonymous_args = 0
601 @ link register save eliminated.
602 .LVL69:
378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIO_PinState bitstatus;
379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */
381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIOx->IDR & GPIO_Pin) != 0x00U)
603 .loc 1 383 0
604 0000 0369 ldr r3, [r0, #16]
605 .LVL70:
606 0002 1942 tst r1, r3
384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET;
386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** else
388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** bitstatus = GPIO_PIN_RESET;
390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** return bitstatus;
392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
607 .loc 1 392 0
608 0004 14BF ite ne
609 0006 0120 movne r0, #1
610 .LVL71:
611 0008 0020 moveq r0, #0
612 000a 7047 bx lr
ARM GAS /tmp/ccgqPWsi.s page 20
613 .cfi_endproc
614 .LFE331:
616 .section .text.HAL_GPIO_WritePin,"ax",%progbits
617 .align 1
618 .p2align 2,,3
619 .global HAL_GPIO_WritePin
620 .syntax unified
621 .thumb
622 .thumb_func
623 .fpu fpv4-sp-d16
625 HAL_GPIO_WritePin:
626 .LFB332:
393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Set or clear the selected data port bit.
396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @note This function uses GPIOx_BSRR and GPIOx_BRR registers to allow atomic read/modify
398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * accesses. In this way, there is no risk of an IRQ occurring between
399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * the read and the modify access.
400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** *
401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family
402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15).
404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param PinState specifies the value to be written to the selected bit.
405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be one of the GPIO_PinState enum values:
406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @arg GPIO_PIN_RESET: to clear the port pin
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @arg GPIO_PIN_SET: to set the port pin
408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None
409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
627 .loc 1 411 0
628 .cfi_startproc
629 @ args = 0, pretend = 0, frame = 0
630 @ frame_needed = 0, uses_anonymous_args = 0
631 @ link register save eliminated.
632 .LVL72:
412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */
413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState));
415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (PinState != GPIO_PIN_RESET)
633 .loc 1 416 0
634 0000 0AB9 cbnz r2, .L74
417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->BSRR = (uint32_t)GPIO_Pin;
419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** else
421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->BRR = (uint32_t)GPIO_Pin;
635 .loc 1 422 0
636 0002 8162 str r1, [r0, #40]
423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
637 .loc 1 424 0
638 0004 7047 bx lr
639 .L74:
ARM GAS /tmp/ccgqPWsi.s page 21
418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
640 .loc 1 418 0
641 0006 8161 str r1, [r0, #24]
642 0008 7047 bx lr
643 .cfi_endproc
644 .LFE332:
646 000a 00BF .section .text.HAL_GPIO_TogglePin,"ax",%progbits
647 .align 1
648 .p2align 2,,3
649 .global HAL_GPIO_TogglePin
650 .syntax unified
651 .thumb
652 .thumb_func
653 .fpu fpv4-sp-d16
655 HAL_GPIO_TogglePin:
656 .LFB333:
425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Toggle the specified GPIO pin.
428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family
429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the pin to be toggled.
430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15).
431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None
432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
657 .loc 1 434 0
658 .cfi_startproc
659 @ args = 0, pretend = 0, frame = 0
660 @ frame_needed = 0, uses_anonymous_args = 0
661 @ link register save eliminated.
662 .LVL73:
435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** uint32_t odr;
436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */
438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* get current Output Data Register value */
441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** odr = GPIOx->ODR;
663 .loc 1 441 0
664 0000 4369 ldr r3, [r0, #20]
665 .LVL74:
442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Set selected pins that were at low level, and reset ones that were high */
444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin);
666 .loc 1 444 0
667 0002 01EA0302 and r2, r1, r3
668 0006 21EA0301 bic r1, r1, r3
669 .LVL75:
670 000a 41EA0241 orr r1, r1, r2, lsl #16
671 000e 8161 str r1, [r0, #24]
445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
672 .loc 1 445 0
673 0010 7047 bx lr
674 .cfi_endproc
675 .LFE333:
677 0012 00BF .section .text.HAL_GPIO_LockPin,"ax",%progbits
ARM GAS /tmp/ccgqPWsi.s page 22
678 .align 1
679 .p2align 2,,3
680 .global HAL_GPIO_LockPin
681 .syntax unified
682 .thumb
683 .thumb_func
684 .fpu fpv4-sp-d16
686 HAL_GPIO_LockPin:
687 .LFB334:
446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Lock GPIO Pins configuration registers.
449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR,
450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH.
451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @note The configuration of the locked GPIO pins can no longer be modified
452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * until the next reset.
453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIOx where x can be (A..G) to select the GPIO peripheral for STM32G4xx family
454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bits to be locked.
455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None
457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
688 .loc 1 459 0
689 .cfi_startproc
690 @ args = 0, pretend = 0, frame = 8
691 @ frame_needed = 0, uses_anonymous_args = 0
692 @ link register save eliminated.
693 .LVL76:
694 0000 82B0 sub sp, sp, #8
695 .LCFI9:
696 .cfi_def_cfa_offset 8
460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK;
697 .loc 1 460 0
698 0002 4FF48033 mov r3, #65536
699 0006 0193 str r3, [sp, #4]
461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Check the parameters */
463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_LOCK_INSTANCE(GPIOx));
464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Apply lock key write sequence */
467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp |= GPIO_Pin;
700 .loc 1 467 0
701 0008 019B ldr r3, [sp, #4]
702 000a 0B43 orrs r3, r3, r1
703 000c 0193 str r3, [sp, #4]
468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->LCKR = tmp;
704 .loc 1 469 0
705 000e 019B ldr r3, [sp, #4]
706 0010 C361 str r3, [r0, #28]
470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */
471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->LCKR = GPIO_Pin;
707 .loc 1 471 0
708 0012 C161 str r1, [r0, #28]
472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
ARM GAS /tmp/ccgqPWsi.s page 23
473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** GPIOx->LCKR = tmp;
709 .loc 1 473 0
710 0014 019B ldr r3, [sp, #4]
711 0016 C361 str r3, [r0, #28]
474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Read LCKK register. This read is mandatory to complete key lock sequence */
475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** tmp = GPIOx->LCKR;
712 .loc 1 475 0
713 0018 C369 ldr r3, [r0, #28]
714 001a 0193 str r3, [sp, #4]
476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* read again in order to confirm lock is active */
478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if ((GPIOx->LCKR & GPIO_LCKR_LCKK) != 0x00u)
715 .loc 1 478 0
716 001c C069 ldr r0, [r0, #28]
717 .LVL77:
718 001e 80F48030 eor r0, r0, #65536
479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** return HAL_OK;
481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** else
483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** return HAL_ERROR;
485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
719 .loc 1 486 0
720 0022 C0F30040 ubfx r0, r0, #16, #1
721 0026 02B0 add sp, sp, #8
722 .LCFI10:
723 .cfi_def_cfa_offset 0
724 @ sp needed
725 0028 7047 bx lr
726 .cfi_endproc
727 .LFE334:
729 002a 00BF .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits
730 .align 1
731 .p2align 2,,3
732 .weak HAL_GPIO_EXTI_Callback
733 .syntax unified
734 .thumb
735 .thumb_func
736 .fpu fpv4-sp-d16
738 HAL_GPIO_EXTI_Callback:
739 .LFB336:
487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief Handle EXTI interrupt request.
490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.
491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None
492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* EXTI line interrupt detected */
496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
ARM GAS /tmp/ccgqPWsi.s page 24
501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /**
504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @brief EXTI line detection callback.
505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @param GPIO_Pin: Specifies the port pin connected to corresponding EXTI line.
506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** * @retval None
507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
740 .loc 1 509 0
741 .cfi_startproc
742 @ args = 0, pretend = 0, frame = 0
743 @ frame_needed = 0, uses_anonymous_args = 0
744 @ link register save eliminated.
745 .LVL78:
510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* Prevent unused argument(s) compilation warning */
511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** UNUSED(GPIO_Pin);
512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* NOTE: This function should not be modified, when the callback is needed,
514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** the HAL_GPIO_EXTI_Callback could be implemented in the user file
515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** */
516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
746 .loc 1 516 0
747 0000 7047 bx lr
748 .cfi_endproc
749 .LFE336:
751 0002 00BF .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits
752 .align 1
753 .p2align 2,,3
754 .global HAL_GPIO_EXTI_IRQHandler
755 .syntax unified
756 .thumb
757 .thumb_func
758 .fpu fpv4-sp-d16
760 HAL_GPIO_EXTI_IRQHandler:
761 .LFB335:
494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* EXTI line interrupt detected */
762 .loc 1 494 0
763 .cfi_startproc
764 @ args = 0, pretend = 0, frame = 0
765 @ frame_needed = 0, uses_anonymous_args = 0
766 .LVL79:
496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** {
767 .loc 1 496 0
768 0000 044A ldr r2, .L89
769 0002 5169 ldr r1, [r2, #20]
770 0004 0142 tst r1, r0
771 0006 00D1 bne .L88
772 0008 7047 bx lr
773 .L88:
494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** /* EXTI line interrupt detected */
774 .loc 1 494 0
775 000a 08B5 push {r3, lr}
776 .LCFI11:
777 .cfi_def_cfa_offset 8
778 .cfi_offset 3, -8
779 .cfi_offset 14, -4
ARM GAS /tmp/ccgqPWsi.s page 25
498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
780 .loc 1 498 0
781 000c 5061 str r0, [r2, #20]
499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c **** }
782 .loc 1 499 0
783 000e FFF7FEFF bl HAL_GPIO_EXTI_Callback
784 .LVL80:
501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_gpio.c ****
785 .loc 1 501 0
786 0012 08BD pop {r3, pc}
787 .L90:
788 .align 2
789 .L89:
790 0014 00040140 .word 1073808384
791 .cfi_endproc
792 .LFE335:
794 .text
795 .Letext0:
796 .file 2 "/usr/include/newlib/machine/_default_types.h"
797 .file 3 "/usr/include/newlib/sys/_stdint.h"
798 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
799 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h"
800 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
801 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
802 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h"
803 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
804 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h"
805 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
ARM GAS /tmp/ccgqPWsi.s page 26
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32g4xx_hal_gpio.c
/tmp/ccgqPWsi.s:16 .text.HAL_GPIO_Init:0000000000000000 $t
/tmp/ccgqPWsi.s:24 .text.HAL_GPIO_Init:0000000000000000 HAL_GPIO_Init
/tmp/ccgqPWsi.s:351 .text.HAL_GPIO_Init:000000000000019c $d
/tmp/ccgqPWsi.s:362 .text.HAL_GPIO_DeInit:0000000000000000 $t
/tmp/ccgqPWsi.s:370 .text.HAL_GPIO_DeInit:0000000000000000 HAL_GPIO_DeInit
/tmp/ccgqPWsi.s:577 .text.HAL_GPIO_DeInit:0000000000000124 $d
/tmp/ccgqPWsi.s:587 .text.HAL_GPIO_ReadPin:0000000000000000 $t
/tmp/ccgqPWsi.s:595 .text.HAL_GPIO_ReadPin:0000000000000000 HAL_GPIO_ReadPin
/tmp/ccgqPWsi.s:617 .text.HAL_GPIO_WritePin:0000000000000000 $t
/tmp/ccgqPWsi.s:625 .text.HAL_GPIO_WritePin:0000000000000000 HAL_GPIO_WritePin
/tmp/ccgqPWsi.s:647 .text.HAL_GPIO_TogglePin:0000000000000000 $t
/tmp/ccgqPWsi.s:655 .text.HAL_GPIO_TogglePin:0000000000000000 HAL_GPIO_TogglePin
/tmp/ccgqPWsi.s:678 .text.HAL_GPIO_LockPin:0000000000000000 $t
/tmp/ccgqPWsi.s:686 .text.HAL_GPIO_LockPin:0000000000000000 HAL_GPIO_LockPin
/tmp/ccgqPWsi.s:730 .text.HAL_GPIO_EXTI_Callback:0000000000000000 $t
/tmp/ccgqPWsi.s:738 .text.HAL_GPIO_EXTI_Callback:0000000000000000 HAL_GPIO_EXTI_Callback
/tmp/ccgqPWsi.s:752 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 $t
/tmp/ccgqPWsi.s:760 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 HAL_GPIO_EXTI_IRQHandler
/tmp/ccgqPWsi.s:790 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000014 $d
NO UNDEFINED SYMBOLS