Files
stm32f4_makefile/build/stm32f4xx_hal_gpio.lst
2025-06-25 11:12:35 +08:00

1759 lines
105 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/cci4QTfC.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 1
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "stm32f4xx_hal_gpio.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .section .text.HAL_GPIO_Init,"ax",%progbits
20 .align 1
21 .global HAL_GPIO_Init
22 .syntax unified
23 .thumb
24 .thumb_func
26 HAL_GPIO_Init:
27 .LVL0:
28 .LFB134:
29 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c"
1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ******************************************************************************
3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @file stm32f4xx_hal_gpio.c
4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @author MCD Application Team
5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief GPIO HAL module driver.
6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * functionalities of the General Purpose Input/Output (GPIO) peripheral:
8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * + Initialization and de-initialization functions
9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * + IO operation functions
10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ******************************************************************************
12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @attention
13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * Copyright (c) 2017 STMicroelectronics.
15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * All rights reserved.
16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This software is licensed under terms that can be found in the LICENSE file
18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * in the root directory of this software component.
19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ******************************************************************************
22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @verbatim
23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ==============================================================================
24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### GPIO Peripheral features #####
25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ==============================================================================
26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** Subject to the specific hardware characteristics of each I/O port listed in the datasheet, each
28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** port bit of the General Purpose IO (GPIO) Ports, can be individually configured by software
29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** in several modes:
ARM GAS /tmp/cci4QTfC.s page 2
30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Input mode
31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Analog mode
32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Output mode
33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Alternate function mode
34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) External interrupt/event lines
35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** During and just after reset, the alternate functions and external interrupt
38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** lines are not active and the I/O ports are configured in input floating mode.
39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** All GPIO pins have weak internal pull-up and pull-down resistors, which can be
42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** activated or not.
43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** In Output or Alternate mode, each IO can be configured on open-drain or push-pull
46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** type and the IO speed can be selected depending on the VDD value.
47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** All ports have external interrupt/event capability. To use external interrupt
50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** lines, the port must be configured in input mode. All available GPIO pins are
51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** connected to the 16 external interrupt/event lines from EXTI0 to EXTI15.
52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** The external interrupt/event controller consists of up to 23 edge detectors
55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (16 lines are connected to GPIO) for generating event/interrupt requests (each
56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** input line can be independently configured to select the type (interrupt or event)
57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** and the corresponding trigger event (rising or falling or both). Each line can
58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** also be masked independently.
59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### How to use this driver #####
61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ==============================================================================
62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) Enable the GPIO AHB clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE().
64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) Configure the GPIO pin(s) using HAL_GPIO_Init().
66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure
67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef
68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** structure.
69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) In case of Output or alternate function mode selection: the speed is
70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** configured through "Speed" member from GPIO_InitTypeDef structure.
71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) In alternate mode is selection, the alternate function connected to the IO
72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** is configured through "Alternate" member from GPIO_InitTypeDef structure.
73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) Analog mode is required when a pin is to be used as ADC channel
74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** or DAC output.
75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) In case of external interrupt/event selection the "Mode" member from
76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIO_InitTypeDef structure select the type (interrupt or event) and
77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** the corresponding trigger event (rising or falling or both).
78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority
80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using
81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_NVIC_EnableIRQ().
82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin().
84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) To set/reset the level of a pin configured in output mode use
86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_GPIO_WritePin()/HAL_GPIO_TogglePin().
ARM GAS /tmp/cci4QTfC.s page 3
87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) To lock pin configuration until next reset use HAL_GPIO_LockPin().
89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) During and just after reset, the alternate functions are not
92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** active and the GPIO pins are configured in input floating mode (except JTAG
93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** pins).
94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose
96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has
97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** priority over the GPIO function.
98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as
100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** general purpose PH0 and PH1, respectively, when the HSE oscillator is off.
101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** The HSE has priority over the GPIO function.
102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @endverbatim
104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ******************************************************************************
105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Includes ------------------------------------------------------------------*/
108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #include "stm32f4xx_hal.h"
109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @addtogroup STM32F4xx_HAL_Driver
111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO GPIO
115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief GPIO HAL module driver
116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #ifdef HAL_GPIO_MODULE_ENABLED
120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private typedef -----------------------------------------------------------*/
122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private define ------------------------------------------------------------*/
123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @addtogroup GPIO_Private_Constants GPIO Private Constants
124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define GPIO_NUMBER 16U
128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @}
130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private macro -------------------------------------------------------------*/
132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private variables ---------------------------------------------------------*/
133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private function prototypes -----------------------------------------------*/
134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private functions ---------------------------------------------------------*/
135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Exported functions --------------------------------------------------------*/
136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions GPIO Exported Functions
137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group1 Initialization and de-initialization functions
141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Initialization and Configuration functions
142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @verbatim
ARM GAS /tmp/cci4QTfC.s page 4
144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### Initialization and de-initialization functions #####
146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** This section provides functions allowing to initialize and de-initialize the GPIOs
149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** to be ready for use.
150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @endverbatim
152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Initializes the GPIOx peripheral according to the specified parameters in the GPIO_Init
158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIOx where x can be (A..K) to select the GPIO peripheral for STM32F429X device or
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains
161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * the configuration information for the specified GPIO peripheral.
162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
30 .loc 1 165 1 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 8
33 @ frame_needed = 0, uses_anonymous_args = 0
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
34 .loc 1 166 3 view .LVU1
167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t ioposition = 0x00U;
35 .loc 1 167 3 view .LVU2
168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t iocurrent = 0x00U;
36 .loc 1 168 3 view .LVU3
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t temp = 0x00U;
37 .loc 1 169 3 view .LVU4
170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
38 .loc 1 172 3 view .LVU5
173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
39 .loc 1 173 3 view .LVU6
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
40 .loc 1 174 3 view .LVU7
175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the port pins */
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** for(position = 0U; position < GPIO_NUMBER; position++)
41 .loc 1 177 3 view .LVU8
42 .loc 1 177 16 is_stmt 0 view .LVU9
43 0000 0023 movs r3, #0
44 .LVL1:
45 .loc 1 177 22 is_stmt 1 view .LVU10
46 .loc 1 177 3 is_stmt 0 view .LVU11
47 0002 0F2B cmp r3, #15
48 0004 00F2E480 bhi .L24
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
49 .loc 1 165 1 view .LVU12
50 0008 70B5 push {r4, r5, r6, lr}
51 .LCFI0:
ARM GAS /tmp/cci4QTfC.s page 5
52 .cfi_def_cfa_offset 16
53 .cfi_offset 4, -16
54 .cfi_offset 5, -12
55 .cfi_offset 6, -8
56 .cfi_offset 14, -4
57 000a 82B0 sub sp, sp, #8
58 .LCFI1:
59 .cfi_def_cfa_offset 24
60 000c 60E0 b .L12
61 .LVL2:
62 .L26:
178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the IO position */
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ioposition = 0x01U << position;
181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(iocurrent == ioposition)
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* In case of Output or Alternate function mode selection */
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || \
189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the Speed parameter */
192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
63 .loc 1 192 9 is_stmt 1 view .LVU13
193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the IO Speed */
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->OSPEEDR;
64 .loc 1 194 9 view .LVU14
65 .loc 1 194 14 is_stmt 0 view .LVU15
66 000e 8568 ldr r5, [r0, #8]
67 .LVL3:
195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U));
68 .loc 1 195 9 is_stmt 1 view .LVU16
69 .loc 1 195 55 is_stmt 0 view .LVU17
70 0010 5E00 lsls r6, r3, #1
71 .loc 1 195 42 view .LVU18
72 0012 0324 movs r4, #3
73 0014 B440 lsls r4, r4, r6
74 .loc 1 195 14 view .LVU19
75 0016 25EA0405 bic r5, r5, r4
76 .LVL4:
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
77 .loc 1 196 9 is_stmt 1 view .LVU20
78 .loc 1 196 27 is_stmt 0 view .LVU21
79 001a CC68 ldr r4, [r1, #12]
80 .loc 1 196 35 view .LVU22
81 001c B440 lsls r4, r4, r6
82 .loc 1 196 14 view .LVU23
83 001e 2C43 orrs r4, r4, r5
84 .LVL5:
197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
85 .loc 1 197 9 is_stmt 1 view .LVU24
86 .loc 1 197 24 is_stmt 0 view .LVU25
87 0020 8460 str r4, [r0, #8]
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
ARM GAS /tmp/cci4QTfC.s page 6
199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the IO Output Type */
200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->OTYPER;
88 .loc 1 200 9 is_stmt 1 view .LVU26
89 .loc 1 200 14 is_stmt 0 view .LVU27
90 0022 4568 ldr r5, [r0, #4]
91 .LVL6:
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ;
92 .loc 1 201 9 is_stmt 1 view .LVU28
93 .loc 1 201 14 is_stmt 0 view .LVU29
94 0024 25EA0205 bic r5, r5, r2
95 .LVL7:
202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
96 .loc 1 202 9 is_stmt 1 view .LVU30
97 .loc 1 202 29 is_stmt 0 view .LVU31
98 0028 4C68 ldr r4, [r1, #4]
99 .loc 1 202 51 view .LVU32
100 002a C4F30012 ubfx r2, r4, #4, #1
101 .LVL8:
102 .loc 1 202 71 view .LVU33
103 002e 9A40 lsls r2, r2, r3
104 .loc 1 202 14 view .LVU34
105 0030 2A43 orrs r2, r2, r5
106 .LVL9:
203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OTYPER = temp;
107 .loc 1 203 9 is_stmt 1 view .LVU35
108 .loc 1 203 23 is_stmt 0 view .LVU36
109 0032 4260 str r2, [r0, #4]
110 0034 5AE0 b .L4
111 .LVL10:
112 .L27:
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Activate the Pull-up or Pull down resistor for the current IO */
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->PUPDR;
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* In case of Alternate function mode selection */
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the Alternate function parameter */
222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
113 .loc 1 222 9 is_stmt 1 view .LVU37
223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure Alternate function mapped with the current IO */
224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->AFR[position >> 3U];
114 .loc 1 224 9 view .LVU38
115 .loc 1 224 36 is_stmt 0 view .LVU39
116 0036 DC08 lsrs r4, r3, #3
117 .loc 1 224 14 view .LVU40
118 0038 0834 adds r4, r4, #8
ARM GAS /tmp/cci4QTfC.s page 7
119 003a 50F82460 ldr r6, [r0, r4, lsl #2]
120 .LVL11:
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0xFU << ((uint32_t)(position & 0x07U) * 4U)) ;
121 .loc 1 225 9 is_stmt 1 view .LVU41
122 .loc 1 225 28 is_stmt 0 view .LVU42
123 003e 03F00702 and r2, r3, #7
124 .loc 1 225 57 view .LVU43
125 0042 9500 lsls r5, r2, #2
126 .loc 1 225 24 view .LVU44
127 0044 0F22 movs r2, #15
128 0046 AA40 lsls r2, r2, r5
129 .loc 1 225 14 view .LVU45
130 0048 26EA020E bic lr, r6, r2
131 .LVL12:
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4U));
132 .loc 1 226 9 is_stmt 1 view .LVU46
133 .loc 1 226 38 is_stmt 0 view .LVU47
134 004c 0A69 ldr r2, [r1, #16]
135 .loc 1 226 51 view .LVU48
136 004e AA40 lsls r2, r2, r5
137 .loc 1 226 14 view .LVU49
138 0050 42EA0E02 orr r2, r2, lr
139 .LVL13:
227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
140 .loc 1 227 9 is_stmt 1 view .LVU50
141 .loc 1 227 36 is_stmt 0 view .LVU51
142 0054 40F82420 str r2, [r0, r4, lsl #2]
143 0058 5CE0 b .L6
144 .LVL14:
145 .L28:
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->MODER;
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2U));
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*--------------------- EXTI Mode Configuration ------------------------*/
237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_MODE) != 0x00U)
239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Enable SYSCFG Clock */
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __HAL_RCC_SYSCFG_CLK_ENABLE();
242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = SYSCFG->EXTICR[position >> 2U];
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
146 .loc 1 245 29 view .LVU52
147 005a 0722 movs r2, #7
148 005c 00E0 b .L7
149 .L13:
150 .loc 1 245 18 view .LVU53
151 005e 0022 movs r2, #0
152 .L7:
153 .loc 1 245 52 discriminator 32 view .LVU54
154 0060 02FA0EF2 lsl r2, r2, lr
ARM GAS /tmp/cci4QTfC.s page 8
155 .loc 1 245 14 discriminator 32 view .LVU55
156 0064 2A43 orrs r2, r2, r5
157 .LVL15:
246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
158 .loc 1 246 9 is_stmt 1 discriminator 32 view .LVU56
159 .loc 1 246 40 is_stmt 0 discriminator 32 view .LVU57
160 0066 0234 adds r4, r4, #2
161 0068 5A4D ldr r5, .L29
162 006a 45F82420 str r2, [r5, r4, lsl #2]
247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->RTSR;
163 .loc 1 249 9 is_stmt 1 discriminator 32 view .LVU58
164 .loc 1 249 14 is_stmt 0 discriminator 32 view .LVU59
165 006e 5A4A ldr r2, .L29+4
166 .LVL16:
167 .loc 1 249 14 discriminator 32 view .LVU60
168 0070 9468 ldr r4, [r2, #8]
169 .LVL17:
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
170 .loc 1 250 9 is_stmt 1 discriminator 32 view .LVU61
171 .loc 1 250 17 is_stmt 0 discriminator 32 view .LVU62
172 0072 6FEA0C02 mvn r2, ip
173 .loc 1 250 14 discriminator 32 view .LVU63
174 0076 24EA0C05 bic r5, r4, ip
175 .LVL18:
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U)
176 .loc 1 251 9 is_stmt 1 discriminator 32 view .LVU64
177 .loc 1 251 22 is_stmt 0 discriminator 32 view .LVU65
178 007a 4E68 ldr r6, [r1, #4]
179 .loc 1 251 11 discriminator 32 view .LVU66
180 007c 16F4801F tst r6, #1048576
181 0080 01D0 beq .L8
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
182 .loc 1 253 11 is_stmt 1 view .LVU67
183 .loc 1 253 16 is_stmt 0 view .LVU68
184 0082 4CEA0405 orr r5, ip, r4
185 .LVL19:
186 .L8:
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR = temp;
187 .loc 1 255 9 is_stmt 1 view .LVU69
188 .loc 1 255 20 is_stmt 0 view .LVU70
189 0086 544C ldr r4, .L29+4
190 0088 A560 str r5, [r4, #8]
256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->FTSR;
191 .loc 1 257 9 is_stmt 1 view .LVU71
192 .loc 1 257 14 is_stmt 0 view .LVU72
193 008a E468 ldr r4, [r4, #12]
194 .LVL20:
258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
195 .loc 1 258 9 is_stmt 1 view .LVU73
196 .loc 1 258 14 is_stmt 0 view .LVU74
197 008c 02EA0405 and r5, r2, r4
198 .LVL21:
ARM GAS /tmp/cci4QTfC.s page 9
259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U)
199 .loc 1 259 9 is_stmt 1 view .LVU75
200 .loc 1 259 22 is_stmt 0 view .LVU76
201 0090 4E68 ldr r6, [r1, #4]
202 .loc 1 259 11 view .LVU77
203 0092 16F4001F tst r6, #2097152
204 0096 01D0 beq .L9
260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
205 .loc 1 261 11 is_stmt 1 view .LVU78
206 .loc 1 261 16 is_stmt 0 view .LVU79
207 0098 4CEA0405 orr r5, ip, r4
208 .LVL22:
209 .L9:
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->FTSR = temp;
210 .loc 1 263 9 is_stmt 1 view .LVU80
211 .loc 1 263 20 is_stmt 0 view .LVU81
212 009c 4E4C ldr r4, .L29+4
213 009e E560 str r5, [r4, #12]
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->EMR;
214 .loc 1 265 9 is_stmt 1 view .LVU82
215 .loc 1 265 14 is_stmt 0 view .LVU83
216 00a0 6468 ldr r4, [r4, #4]
217 .LVL23:
266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
218 .loc 1 266 9 is_stmt 1 view .LVU84
219 .loc 1 266 14 is_stmt 0 view .LVU85
220 00a2 02EA0405 and r5, r2, r4
221 .LVL24:
267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_EVT) != 0x00U)
222 .loc 1 267 9 is_stmt 1 view .LVU86
223 .loc 1 267 22 is_stmt 0 view .LVU87
224 00a6 4E68 ldr r6, [r1, #4]
225 .loc 1 267 11 view .LVU88
226 00a8 16F4003F tst r6, #131072
227 00ac 01D0 beq .L10
268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
228 .loc 1 269 11 is_stmt 1 view .LVU89
229 .loc 1 269 16 is_stmt 0 view .LVU90
230 00ae 4CEA0405 orr r5, ip, r4
231 .LVL25:
232 .L10:
270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR = temp;
233 .loc 1 271 9 is_stmt 1 view .LVU91
234 .loc 1 271 19 is_stmt 0 view .LVU92
235 00b2 494C ldr r4, .L29+4
236 00b4 6560 str r5, [r4, #4]
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear EXTI line configuration */
274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->IMR;
237 .loc 1 274 9 is_stmt 1 view .LVU93
238 .loc 1 274 14 is_stmt 0 view .LVU94
239 00b6 2468 ldr r4, [r4]
ARM GAS /tmp/cci4QTfC.s page 10
240 .LVL26:
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
241 .loc 1 275 9 is_stmt 1 view .LVU95
242 .loc 1 275 14 is_stmt 0 view .LVU96
243 00b8 2240 ands r2, r2, r4
244 .LVL27:
276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_IT) != 0x00U)
245 .loc 1 276 9 is_stmt 1 view .LVU97
246 .loc 1 276 22 is_stmt 0 view .LVU98
247 00ba 4D68 ldr r5, [r1, #4]
248 .loc 1 276 11 view .LVU99
249 00bc 15F4803F tst r5, #65536
250 00c0 01D0 beq .L11
277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
251 .loc 1 278 11 is_stmt 1 view .LVU100
252 .loc 1 278 16 is_stmt 0 view .LVU101
253 00c2 4CEA0402 orr r2, ip, r4
254 .LVL28:
255 .L11:
279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->IMR = temp;
256 .loc 1 280 9 is_stmt 1 view .LVU102
257 .loc 1 280 19 is_stmt 0 view .LVU103
258 00c6 444C ldr r4, .L29+4
259 00c8 2260 str r2, [r4]
260 .LVL29:
261 .L3:
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
262 .loc 1 177 46 is_stmt 1 discriminator 2 view .LVU104
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
263 .loc 1 177 54 is_stmt 0 discriminator 2 view .LVU105
264 00ca 0133 adds r3, r3, #1
265 .LVL30:
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
266 .loc 1 177 22 is_stmt 1 discriminator 2 view .LVU106
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
267 .loc 1 177 3 is_stmt 0 discriminator 2 view .LVU107
268 00cc 0F2B cmp r3, #15
269 00ce 7DD8 bhi .L25
270 .LVL31:
271 .L12:
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
272 .loc 1 180 5 is_stmt 1 view .LVU108
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
273 .loc 1 180 16 is_stmt 0 view .LVU109
274 00d0 0122 movs r2, #1
275 00d2 9A40 lsls r2, r2, r3
276 .LVL32:
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
277 .loc 1 182 5 is_stmt 1 view .LVU110
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
278 .loc 1 182 37 is_stmt 0 view .LVU111
279 00d4 0C68 ldr r4, [r1]
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
280 .loc 1 182 15 view .LVU112
281 00d6 04EA020C and ip, r4, r2
ARM GAS /tmp/cci4QTfC.s page 11
282 .LVL33:
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
283 .loc 1 184 5 is_stmt 1 view .LVU113
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
284 .loc 1 184 7 is_stmt 0 view .LVU114
285 00da 32EA0404 bics r4, r2, r4
286 00de F4D1 bne .L3
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
287 .loc 1 188 7 is_stmt 1 view .LVU115
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
288 .loc 1 188 21 is_stmt 0 view .LVU116
289 00e0 4C68 ldr r4, [r1, #4]
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
290 .loc 1 188 28 view .LVU117
291 00e2 04F00304 and r4, r4, #3
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
292 .loc 1 188 57 view .LVU118
293 00e6 013C subs r4, r4, #1
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
294 .loc 1 188 9 view .LVU119
295 00e8 012C cmp r4, #1
296 00ea 90D9 bls .L26
297 .LVL34:
298 .L4:
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
299 .loc 1 206 7 is_stmt 1 view .LVU120
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
300 .loc 1 206 20 is_stmt 0 view .LVU121
301 00ec 4A68 ldr r2, [r1, #4]
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
302 .loc 1 206 27 view .LVU122
303 00ee 02F00302 and r2, r2, #3
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
304 .loc 1 206 9 view .LVU123
305 00f2 032A cmp r2, #3
306 00f4 09D0 beq .L5
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
307 .loc 1 209 9 is_stmt 1 view .LVU124
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
308 .loc 1 212 9 view .LVU125
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
309 .loc 1 212 14 is_stmt 0 view .LVU126
310 00f6 C468 ldr r4, [r0, #12]
311 .LVL35:
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
312 .loc 1 213 9 is_stmt 1 view .LVU127
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
313 .loc 1 213 50 is_stmt 0 view .LVU128
314 00f8 5D00 lsls r5, r3, #1
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
315 .loc 1 213 37 view .LVU129
316 00fa 0322 movs r2, #3
317 00fc AA40 lsls r2, r2, r5
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
318 .loc 1 213 14 view .LVU130
319 00fe 24EA0204 bic r4, r4, r2
320 .LVL36:
ARM GAS /tmp/cci4QTfC.s page 12
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
321 .loc 1 214 9 is_stmt 1 view .LVU131
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
322 .loc 1 214 28 is_stmt 0 view .LVU132
323 0102 8A68 ldr r2, [r1, #8]
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
324 .loc 1 214 36 view .LVU133
325 0104 AA40 lsls r2, r2, r5
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
326 .loc 1 214 14 view .LVU134
327 0106 2243 orrs r2, r2, r4
328 .LVL37:
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
329 .loc 1 215 9 is_stmt 1 view .LVU135
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
330 .loc 1 215 22 is_stmt 0 view .LVU136
331 0108 C260 str r2, [r0, #12]
332 .LVL38:
333 .L5:
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
334 .loc 1 219 7 is_stmt 1 view .LVU137
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
335 .loc 1 219 20 is_stmt 0 view .LVU138
336 010a 4A68 ldr r2, [r1, #4]
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
337 .loc 1 219 27 view .LVU139
338 010c 02F00302 and r2, r2, #3
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
339 .loc 1 219 9 view .LVU140
340 0110 022A cmp r2, #2
341 0112 90D0 beq .L27
342 .L6:
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2U));
343 .loc 1 231 7 is_stmt 1 view .LVU141
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2U));
344 .loc 1 231 12 is_stmt 0 view .LVU142
345 0114 0468 ldr r4, [r0]
346 .LVL39:
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
347 .loc 1 232 7 is_stmt 1 view .LVU143
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
348 .loc 1 232 48 is_stmt 0 view .LVU144
349 0116 4FEA430E lsl lr, r3, #1
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
350 .loc 1 232 35 view .LVU145
351 011a 0322 movs r2, #3
352 011c 02FA0EF2 lsl r2, r2, lr
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
353 .loc 1 232 12 view .LVU146
354 0120 24EA0204 bic r4, r4, r2
355 .LVL40:
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
356 .loc 1 233 7 is_stmt 1 view .LVU147
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
357 .loc 1 233 26 is_stmt 0 view .LVU148
358 0124 4A68 ldr r2, [r1, #4]
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
ARM GAS /tmp/cci4QTfC.s page 13
359 .loc 1 233 33 view .LVU149
360 0126 02F00302 and r2, r2, #3
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
361 .loc 1 233 46 view .LVU150
362 012a 02FA0EF2 lsl r2, r2, lr
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
363 .loc 1 233 12 view .LVU151
364 012e 2243 orrs r2, r2, r4
365 .LVL41:
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
366 .loc 1 234 7 is_stmt 1 view .LVU152
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
367 .loc 1 234 20 is_stmt 0 view .LVU153
368 0130 0260 str r2, [r0]
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
369 .loc 1 238 7 is_stmt 1 view .LVU154
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
370 .loc 1 238 20 is_stmt 0 view .LVU155
371 0132 4A68 ldr r2, [r1, #4]
372 .LVL42:
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
373 .loc 1 238 9 view .LVU156
374 0134 12F4403F tst r2, #196608
375 0138 C7D0 beq .L3
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
376 .loc 1 241 9 is_stmt 1 view .LVU157
377 .LBB2:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
378 .loc 1 241 9 view .LVU158
379 013a 0022 movs r2, #0
380 013c 0192 str r2, [sp, #4]
381 .LVL43:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
382 .loc 1 241 9 view .LVU159
383 013e 274A ldr r2, .L29+8
384 0140 546C ldr r4, [r2, #68]
385 0142 44F48044 orr r4, r4, #16384
386 0146 5464 str r4, [r2, #68]
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
387 .loc 1 241 9 view .LVU160
388 0148 526C ldr r2, [r2, #68]
389 014a 02F48042 and r2, r2, #16384
390 014e 0192 str r2, [sp, #4]
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
391 .loc 1 241 9 view .LVU161
392 0150 019A ldr r2, [sp, #4]
393 .LBE2:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
394 .loc 1 241 9 view .LVU162
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
395 .loc 1 243 9 view .LVU163
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
396 .loc 1 243 40 is_stmt 0 view .LVU164
397 0152 9C08 lsrs r4, r3, #2
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
398 .loc 1 243 14 view .LVU165
399 0154 A51C adds r5, r4, #2
ARM GAS /tmp/cci4QTfC.s page 14
400 0156 1F4A ldr r2, .L29
401 0158 52F82550 ldr r5, [r2, r5, lsl #2]
402 .LVL44:
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
403 .loc 1 244 9 is_stmt 1 view .LVU166
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
404 .loc 1 244 44 is_stmt 0 view .LVU167
405 015c 03F00302 and r2, r3, #3
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
406 .loc 1 244 32 view .LVU168
407 0160 4FEA820E lsl lr, r2, #2
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
408 .loc 1 244 25 view .LVU169
409 0164 0F22 movs r2, #15
410 0166 02FA0EF2 lsl r2, r2, lr
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
411 .loc 1 244 14 view .LVU170
412 016a 25EA0205 bic r5, r5, r2
413 .LVL45:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
414 .loc 1 245 9 is_stmt 1 view .LVU171
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
415 .loc 1 245 18 is_stmt 0 view .LVU172
416 016e 1C4A ldr r2, .L29+12
417 0170 9042 cmp r0, r2
418 0172 3FF474AF beq .L13
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
419 .loc 1 245 29 discriminator 1 view .LVU173
420 0176 02F58062 add r2, r2, #1024
421 017a 9042 cmp r0, r2
422 017c 1AD0 beq .L14
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
423 .loc 1 245 29 discriminator 3 view .LVU174
424 017e 02F58062 add r2, r2, #1024
425 0182 9042 cmp r0, r2
426 0184 18D0 beq .L15
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
427 .loc 1 245 29 discriminator 5 view .LVU175
428 0186 02F58062 add r2, r2, #1024
429 018a 9042 cmp r0, r2
430 018c 16D0 beq .L16
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
431 .loc 1 245 29 discriminator 7 view .LVU176
432 018e 02F58062 add r2, r2, #1024
433 0192 9042 cmp r0, r2
434 0194 14D0 beq .L17
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
435 .loc 1 245 29 discriminator 9 view .LVU177
436 0196 02F58062 add r2, r2, #1024
437 019a 9042 cmp r0, r2
438 019c 12D0 beq .L18
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
439 .loc 1 245 29 discriminator 11 view .LVU178
440 019e 02F58062 add r2, r2, #1024
441 01a2 9042 cmp r0, r2
442 01a4 10D0 beq .L19
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
ARM GAS /tmp/cci4QTfC.s page 15
443 .loc 1 245 29 discriminator 13 view .LVU179
444 01a6 02F58062 add r2, r2, #1024
445 01aa 9042 cmp r0, r2
446 01ac 3FF455AF beq .L28
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
447 .loc 1 245 29 view .LVU180
448 01b0 0822 movs r2, #8
449 01b2 55E7 b .L7
450 .L14:
451 01b4 0122 movs r2, #1
452 .LVL46:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
453 .loc 1 245 29 view .LVU181
454 01b6 53E7 b .L7
455 .LVL47:
456 .L15:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
457 .loc 1 245 29 view .LVU182
458 01b8 0222 movs r2, #2
459 01ba 51E7 b .L7
460 .L16:
461 01bc 0322 movs r2, #3
462 01be 4FE7 b .L7
463 .L17:
464 01c0 0422 movs r2, #4
465 01c2 4DE7 b .L7
466 .L18:
467 01c4 0522 movs r2, #5
468 01c6 4BE7 b .L7
469 .L19:
470 01c8 0622 movs r2, #6
471 01ca 49E7 b .L7
472 .LVL48:
473 .L25:
281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
474 .loc 1 284 1 view .LVU183
475 01cc 02B0 add sp, sp, #8
476 .LCFI2:
477 .cfi_def_cfa_offset 16
478 @ sp needed
479 01ce 70BD pop {r4, r5, r6, pc}
480 .LVL49:
481 .L24:
482 .LCFI3:
483 .cfi_def_cfa_offset 0
484 .cfi_restore 4
485 .cfi_restore 5
486 .cfi_restore 6
487 .cfi_restore 14
488 .loc 1 284 1 view .LVU184
489 01d0 7047 bx lr
490 .L30:
491 01d2 00BF .align 2
492 .L29:
ARM GAS /tmp/cci4QTfC.s page 16
493 01d4 00380140 .word 1073821696
494 01d8 003C0140 .word 1073822720
495 01dc 00380240 .word 1073887232
496 01e0 00000240 .word 1073872896
497 .cfi_endproc
498 .LFE134:
500 .section .text.HAL_GPIO_DeInit,"ax",%progbits
501 .align 1
502 .global HAL_GPIO_DeInit
503 .syntax unified
504 .thumb
505 .thumb_func
507 HAL_GPIO_DeInit:
508 .LVL50:
509 .LFB135:
285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief De-initializes the GPIOx peripheral registers to their default reset values.
288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIOx where x can be (A..K) to select the GPIO peripheral for STM32F429X device or
289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
510 .loc 1 295 1 is_stmt 1 view -0
511 .cfi_startproc
512 @ args = 0, pretend = 0, frame = 0
513 @ frame_needed = 0, uses_anonymous_args = 0
296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
514 .loc 1 296 3 view .LVU186
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t ioposition = 0x00U;
515 .loc 1 297 3 view .LVU187
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t iocurrent = 0x00U;
516 .loc 1 298 3 view .LVU188
299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t tmp = 0x00U;
517 .loc 1 299 3 view .LVU189
300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
518 .loc 1 302 3 view .LVU190
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the port pins */
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** for(position = 0U; position < GPIO_NUMBER; position++)
519 .loc 1 305 3 view .LVU191
520 .loc 1 305 16 is_stmt 0 view .LVU192
521 0000 0023 movs r3, #0
522 .LVL51:
523 .loc 1 305 22 is_stmt 1 view .LVU193
524 .loc 1 305 3 is_stmt 0 view .LVU194
525 0002 0F2B cmp r3, #15
526 0004 00F28F80 bhi .L48
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
527 .loc 1 295 1 view .LVU195
528 0008 F0B5 push {r4, r5, r6, r7, lr}
529 .LCFI4:
ARM GAS /tmp/cci4QTfC.s page 17
530 .cfi_def_cfa_offset 20
531 .cfi_offset 4, -20
532 .cfi_offset 5, -16
533 .cfi_offset 6, -12
534 .cfi_offset 7, -8
535 .cfi_offset 14, -4
536 000a 2DE0 b .L36
537 .LVL52:
538 .L51:
306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the IO position */
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ioposition = 0x01U << position;
309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** iocurrent = (GPIO_Pin) & ioposition;
311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(iocurrent == ioposition)
313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*------------------------- EXTI Mode Configuration --------------------*/
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp = SYSCFG->EXTICR[position >> 2U];
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
539 .loc 1 317 29 view .LVU196
540 000c 0725 movs r5, #7
541 000e 00E0 b .L34
542 .L37:
543 .loc 1 317 18 view .LVU197
544 0010 0025 movs r5, #0
545 .L34:
546 .loc 1 317 52 discriminator 32 view .LVU198
547 0012 05FA0CFC lsl ip, r5, ip
548 .loc 1 317 9 discriminator 32 view .LVU199
549 0016 A445 cmp ip, r4
550 0018 69D0 beq .L49
551 .LVL53:
552 .L35:
318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear EXTI line configuration */
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->IMR &= ~((uint32_t)iocurrent);
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->FTSR &= ~((uint32_t)iocurrent);
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp = 0x0FU << (4U * (position & 0x03U));
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp;
330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*------------------------- GPIO Mode Configuration --------------------*/
333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure IO Direction in Input Floating Mode */
334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER &= ~(GPIO_MODER_MODER0 << (position * 2U));
553 .loc 1 334 7 is_stmt 1 view .LVU200
554 .loc 1 334 20 is_stmt 0 view .LVU201
555 001a 0468 ldr r4, [r0]
556 .loc 1 334 56 view .LVU202
557 001c 5D00 lsls r5, r3, #1
ARM GAS /tmp/cci4QTfC.s page 18
558 .loc 1 334 43 view .LVU203
559 001e 4FF0030C mov ip, #3
560 0022 0CFA05FC lsl ip, ip, r5
561 .loc 1 334 20 view .LVU204
562 0026 24EA0C04 bic r4, r4, ip
563 002a 0460 str r4, [r0]
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the default Alternate Function in current IO */
337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] &= ~(0xFU << ((uint32_t)(position & 0x07U) * 4U)) ;
564 .loc 1 337 7 is_stmt 1 view .LVU205
565 .loc 1 337 34 is_stmt 0 view .LVU206
566 002c 4FEAD30E lsr lr, r3, #3
567 0030 0EF1080E add lr, lr, #8
568 0034 50F82E40 ldr r4, [r0, lr, lsl #2]
569 .loc 1 337 48 view .LVU207
570 0038 03F00705 and r5, r3, #7
571 .loc 1 337 77 view .LVU208
572 003c AE00 lsls r6, r5, #2
573 .loc 1 337 44 view .LVU209
574 003e 0F25 movs r5, #15
575 0040 B540 lsls r5, r5, r6
576 .loc 1 337 34 view .LVU210
577 0042 24EA0504 bic r4, r4, r5
578 0046 40F82E40 str r4, [r0, lr, lsl #2]
338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Deactivate the Pull-up and Pull-down resistor for the current IO */
340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
579 .loc 1 340 7 is_stmt 1 view .LVU211
580 .loc 1 340 20 is_stmt 0 view .LVU212
581 004a C468 ldr r4, [r0, #12]
582 004c 24EA0C04 bic r4, r4, ip
583 0050 C460 str r4, [r0, #12]
341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the default value IO Output Type */
343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OTYPER &= ~(GPIO_OTYPER_OT_0 << position) ;
584 .loc 1 343 7 is_stmt 1 view .LVU213
585 .loc 1 343 22 is_stmt 0 view .LVU214
586 0052 4468 ldr r4, [r0, #4]
587 0054 24EA0202 bic r2, r4, r2
588 .LVL54:
589 .loc 1 343 22 view .LVU215
590 0058 4260 str r2, [r0, #4]
344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the default value for IO Speed */
346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U));
591 .loc 1 346 7 is_stmt 1 view .LVU216
592 .loc 1 346 22 is_stmt 0 view .LVU217
593 005a 8268 ldr r2, [r0, #8]
594 005c 22EA0C02 bic r2, r2, ip
595 0060 8260 str r2, [r0, #8]
596 .L33:
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
597 .loc 1 305 46 is_stmt 1 discriminator 2 view .LVU218
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
598 .loc 1 305 54 is_stmt 0 discriminator 2 view .LVU219
599 0062 0133 adds r3, r3, #1
600 .LVL55:
ARM GAS /tmp/cci4QTfC.s page 19
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
601 .loc 1 305 22 is_stmt 1 discriminator 2 view .LVU220
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
602 .loc 1 305 3 is_stmt 0 discriminator 2 view .LVU221
603 0064 0F2B cmp r3, #15
604 0066 5DD8 bhi .L50
605 .LVL56:
606 .L36:
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
607 .loc 1 308 5 is_stmt 1 view .LVU222
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
608 .loc 1 308 16 is_stmt 0 view .LVU223
609 0068 0122 movs r2, #1
610 006a 9A40 lsls r2, r2, r3
611 .LVL57:
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
612 .loc 1 310 5 is_stmt 1 view .LVU224
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
613 .loc 1 310 15 is_stmt 0 view .LVU225
614 006c 02EA0106 and r6, r2, r1
615 .LVL58:
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
616 .loc 1 312 5 is_stmt 1 view .LVU226
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
617 .loc 1 312 7 is_stmt 0 view .LVU227
618 0070 32EA0104 bics r4, r2, r1
619 0074 F5D1 bne .L33
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
620 .loc 1 315 7 is_stmt 1 view .LVU228
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
621 .loc 1 315 37 is_stmt 0 view .LVU229
622 0076 4FEA930E lsr lr, r3, #2
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
623 .loc 1 315 11 view .LVU230
624 007a 0EF10205 add r5, lr, #2
625 007e 2A4C ldr r4, .L52
626 0080 54F82540 ldr r4, [r4, r5, lsl #2]
627 .LVL59:
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
628 .loc 1 316 7 is_stmt 1 view .LVU231
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
629 .loc 1 316 40 is_stmt 0 view .LVU232
630 0084 03F0030C and ip, r3, #3
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
631 .loc 1 316 28 view .LVU233
632 0088 4FEA8C0C lsl ip, ip, #2
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
633 .loc 1 316 21 view .LVU234
634 008c 0F25 movs r5, #15
635 008e 05FA0CF7 lsl r7, r5, ip
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
636 .loc 1 316 11 view .LVU235
637 0092 3C40 ands r4, r4, r7
638 .LVL60:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
639 .loc 1 317 7 is_stmt 1 view .LVU236
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
ARM GAS /tmp/cci4QTfC.s page 20
640 .loc 1 317 18 is_stmt 0 view .LVU237
641 0094 254D ldr r5, .L52+4
642 0096 A842 cmp r0, r5
643 0098 BAD0 beq .L37
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
644 .loc 1 317 29 discriminator 1 view .LVU238
645 009a 05F58065 add r5, r5, #1024
646 009e A842 cmp r0, r5
647 00a0 19D0 beq .L38
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
648 .loc 1 317 29 discriminator 3 view .LVU239
649 00a2 05F58065 add r5, r5, #1024
650 00a6 A842 cmp r0, r5
651 00a8 17D0 beq .L39
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
652 .loc 1 317 29 discriminator 5 view .LVU240
653 00aa 05F58065 add r5, r5, #1024
654 00ae A842 cmp r0, r5
655 00b0 15D0 beq .L40
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
656 .loc 1 317 29 discriminator 7 view .LVU241
657 00b2 05F58065 add r5, r5, #1024
658 00b6 A842 cmp r0, r5
659 00b8 13D0 beq .L41
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
660 .loc 1 317 29 discriminator 9 view .LVU242
661 00ba 05F58065 add r5, r5, #1024
662 00be A842 cmp r0, r5
663 00c0 11D0 beq .L42
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
664 .loc 1 317 29 discriminator 11 view .LVU243
665 00c2 05F58065 add r5, r5, #1024
666 00c6 A842 cmp r0, r5
667 00c8 0FD0 beq .L43
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
668 .loc 1 317 29 discriminator 13 view .LVU244
669 00ca 05F58065 add r5, r5, #1024
670 00ce A842 cmp r0, r5
671 00d0 9CD0 beq .L51
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
672 .loc 1 317 29 view .LVU245
673 00d2 0825 movs r5, #8
674 00d4 9DE7 b .L34
675 .L38:
676 00d6 0125 movs r5, #1
677 00d8 9BE7 b .L34
678 .L39:
679 00da 0225 movs r5, #2
680 00dc 99E7 b .L34
681 .L40:
682 00de 0325 movs r5, #3
683 00e0 97E7 b .L34
684 .L41:
685 00e2 0425 movs r5, #4
686 00e4 95E7 b .L34
687 .L42:
688 00e6 0525 movs r5, #5
ARM GAS /tmp/cci4QTfC.s page 21
689 00e8 93E7 b .L34
690 .L43:
691 00ea 0625 movs r5, #6
692 00ec 91E7 b .L34
693 .L49:
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
694 .loc 1 320 9 is_stmt 1 view .LVU246
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
695 .loc 1 320 19 is_stmt 0 view .LVU247
696 00ee 104C ldr r4, .L52+8
697 .LVL61:
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
698 .loc 1 320 19 view .LVU248
699 00f0 2568 ldr r5, [r4]
700 00f2 25EA0605 bic r5, r5, r6
701 00f6 2560 str r5, [r4]
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
702 .loc 1 321 9 is_stmt 1 view .LVU249
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
703 .loc 1 321 19 is_stmt 0 view .LVU250
704 00f8 6568 ldr r5, [r4, #4]
705 00fa 25EA0605 bic r5, r5, r6
706 00fe 6560 str r5, [r4, #4]
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
707 .loc 1 324 9 is_stmt 1 view .LVU251
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
708 .loc 1 324 20 is_stmt 0 view .LVU252
709 0100 E568 ldr r5, [r4, #12]
710 0102 25EA0605 bic r5, r5, r6
711 0106 E560 str r5, [r4, #12]
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
712 .loc 1 325 9 is_stmt 1 view .LVU253
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
713 .loc 1 325 20 is_stmt 0 view .LVU254
714 0108 A568 ldr r5, [r4, #8]
715 010a 25EA0606 bic r6, r5, r6
716 .LVL62:
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
717 .loc 1 325 20 view .LVU255
718 010e A660 str r6, [r4, #8]
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp;
719 .loc 1 328 9 is_stmt 1 view .LVU256
720 .LVL63:
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
721 .loc 1 329 9 view .LVU257
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
722 .loc 1 329 40 is_stmt 0 view .LVU258
723 0110 054E ldr r6, .L52
724 0112 0EF10204 add r4, lr, #2
725 0116 56F82450 ldr r5, [r6, r4, lsl #2]
726 011a 25EA0705 bic r5, r5, r7
727 011e 46F82450 str r5, [r6, r4, lsl #2]
728 0122 7AE7 b .L35
729 .LVL64:
730 .L50:
347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
ARM GAS /tmp/cci4QTfC.s page 22
349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
731 .loc 1 349 1 view .LVU259
732 0124 F0BD pop {r4, r5, r6, r7, pc}
733 .LVL65:
734 .L48:
735 .LCFI5:
736 .cfi_def_cfa_offset 0
737 .cfi_restore 4
738 .cfi_restore 5
739 .cfi_restore 6
740 .cfi_restore 7
741 .cfi_restore 14
742 .loc 1 349 1 view .LVU260
743 0126 7047 bx lr
744 .L53:
745 .align 2
746 .L52:
747 0128 00380140 .word 1073821696
748 012c 00000240 .word 1073872896
749 0130 003C0140 .word 1073822720
750 .cfi_endproc
751 .LFE135:
753 .section .text.HAL_GPIO_ReadPin,"ax",%progbits
754 .align 1
755 .global HAL_GPIO_ReadPin
756 .syntax unified
757 .thumb
758 .thumb_func
760 HAL_GPIO_ReadPin:
761 .LVL66:
762 .LFB136:
350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @}
353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group2 IO operation functions
356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief GPIO Read and Write
357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @verbatim
359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### IO operation functions #####
361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @endverbatim
364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Reads the specified input port pin.
369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIOx where x can be (A..K) to select the GPIO peripheral for STM32F429X device or
370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to read.
372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be GPIO_PIN_x where x can be (0..15).
373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval The input port pin value.
374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
ARM GAS /tmp/cci4QTfC.s page 23
376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
763 .loc 1 376 1 is_stmt 1 view -0
764 .cfi_startproc
765 @ args = 0, pretend = 0, frame = 0
766 @ frame_needed = 0, uses_anonymous_args = 0
767 @ link register save eliminated.
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIO_PinState bitstatus;
768 .loc 1 377 3 view .LVU262
378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
769 .loc 1 380 3 view .LVU263
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
770 .loc 1 382 3 view .LVU264
771 .loc 1 382 12 is_stmt 0 view .LVU265
772 0000 0369 ldr r3, [r0, #16]
773 .loc 1 382 5 view .LVU266
774 0002 1942 tst r1, r3
775 0004 01D0 beq .L56
383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET;
776 .loc 1 384 15 view .LVU267
777 0006 0120 movs r0, #1
778 .LVL67:
779 .loc 1 384 15 view .LVU268
780 0008 7047 bx lr
781 .LVL68:
782 .L56:
385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** else
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** bitstatus = GPIO_PIN_RESET;
783 .loc 1 388 15 view .LVU269
784 000a 0020 movs r0, #0
785 .LVL69:
389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return bitstatus;
786 .loc 1 390 3 is_stmt 1 view .LVU270
391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
787 .loc 1 391 1 is_stmt 0 view .LVU271
788 000c 7047 bx lr
789 .cfi_endproc
790 .LFE136:
792 .section .text.HAL_GPIO_WritePin,"ax",%progbits
793 .align 1
794 .global HAL_GPIO_WritePin
795 .syntax unified
796 .thumb
797 .thumb_func
799 HAL_GPIO_WritePin:
800 .LVL70:
801 .LFB137:
392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Sets or clears the selected data port bit.
395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
ARM GAS /tmp/cci4QTfC.s page 24
396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @note This function uses GPIOx_BSRR register to allow atomic read/modify
397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * accesses. In this way, there is no risk of an IRQ occurring between
398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * the read and the modify access.
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIOx where x can be (A..K) to select the GPIO peripheral for STM32F429X device or
401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param PinState specifies the value to be written to the selected bit.
405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be one of the GPIO_PinState enum values:
406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @arg GPIO_PIN_RESET: to clear the port pin
407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @arg GPIO_PIN_SET: to set the port pin
408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
802 .loc 1 411 1 is_stmt 1 view -0
803 .cfi_startproc
804 @ args = 0, pretend = 0, frame = 0
805 @ frame_needed = 0, uses_anonymous_args = 0
806 @ link register save eliminated.
412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
807 .loc 1 413 3 view .LVU273
414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState));
808 .loc 1 414 3 view .LVU274
415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(PinState != GPIO_PIN_RESET)
809 .loc 1 416 3 view .LVU275
810 .loc 1 416 5 is_stmt 0 view .LVU276
811 0000 0AB1 cbz r2, .L58
417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = GPIO_Pin;
812 .loc 1 418 5 is_stmt 1 view .LVU277
813 .loc 1 418 17 is_stmt 0 view .LVU278
814 0002 8161 str r1, [r0, #24]
815 0004 7047 bx lr
816 .L58:
419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** else
421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;
817 .loc 1 422 5 is_stmt 1 view .LVU279
818 .loc 1 422 38 is_stmt 0 view .LVU280
819 0006 0904 lsls r1, r1, #16
820 .LVL71:
821 .loc 1 422 17 view .LVU281
822 0008 8161 str r1, [r0, #24]
423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
823 .loc 1 424 1 view .LVU282
824 000a 7047 bx lr
825 .cfi_endproc
826 .LFE137:
828 .section .text.HAL_GPIO_TogglePin,"ax",%progbits
829 .align 1
830 .global HAL_GPIO_TogglePin
ARM GAS /tmp/cci4QTfC.s page 25
831 .syntax unified
832 .thumb
833 .thumb_func
835 HAL_GPIO_TogglePin:
836 .LVL72:
837 .LFB138:
425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Toggles the specified GPIO pins.
428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIOx Where x can be (A..K) to select the GPIO peripheral for STM32F429X device or
429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the pins to be toggled.
431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
838 .loc 1 434 1 is_stmt 1 view -0
839 .cfi_startproc
840 @ args = 0, pretend = 0, frame = 0
841 @ frame_needed = 0, uses_anonymous_args = 0
842 @ link register save eliminated.
435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t odr;
843 .loc 1 435 3 view .LVU284
436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
844 .loc 1 438 3 view .LVU285
439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* get current Output Data Register value */
441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** odr = GPIOx->ODR;
845 .loc 1 441 3 view .LVU286
846 .loc 1 441 7 is_stmt 0 view .LVU287
847 0000 4369 ldr r3, [r0, #20]
848 .LVL73:
442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Set selected pins that were at low level, and reset ones that were high */
444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin);
849 .loc 1 444 3 is_stmt 1 view .LVU288
850 .loc 1 444 23 is_stmt 0 view .LVU289
851 0002 01EA0302 and r2, r1, r3
852 .loc 1 444 59 view .LVU290
853 0006 21EA0301 bic r1, r1, r3
854 .LVL74:
855 .loc 1 444 51 view .LVU291
856 000a 41EA0241 orr r1, r1, r2, lsl #16
857 .loc 1 444 15 view .LVU292
858 000e 8161 str r1, [r0, #24]
445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
859 .loc 1 445 1 view .LVU293
860 0010 7047 bx lr
861 .cfi_endproc
862 .LFE138:
864 .section .text.HAL_GPIO_LockPin,"ax",%progbits
865 .align 1
866 .global HAL_GPIO_LockPin
867 .syntax unified
868 .thumb
ARM GAS /tmp/cci4QTfC.s page 26
869 .thumb_func
871 HAL_GPIO_LockPin:
872 .LVL75:
873 .LFB139:
446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Locks GPIO Pins configuration registers.
449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR,
450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH.
451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @note The configuration of the locked GPIO pins can no longer be modified
452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * until the next reset.
453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F4 family
454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be locked.
455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be any combination of GPIO_PIN_x where x can be (0..15).
456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
874 .loc 1 459 1 is_stmt 1 view -0
875 .cfi_startproc
876 @ args = 0, pretend = 0, frame = 8
877 @ frame_needed = 0, uses_anonymous_args = 0
878 @ link register save eliminated.
879 .loc 1 459 1 is_stmt 0 view .LVU295
880 0000 82B0 sub sp, sp, #8
881 .LCFI6:
882 .cfi_def_cfa_offset 8
460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK;
883 .loc 1 460 3 is_stmt 1 view .LVU296
884 .loc 1 460 17 is_stmt 0 view .LVU297
885 0002 4FF48033 mov r3, #65536
886 0006 0193 str r3, [sp, #4]
461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
887 .loc 1 463 3 is_stmt 1 view .LVU298
464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Apply lock key write sequence */
466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp |= GPIO_Pin;
888 .loc 1 466 3 view .LVU299
889 .loc 1 466 7 is_stmt 0 view .LVU300
890 0008 019B ldr r3, [sp, #4]
891 000a 0B43 orrs r3, r3, r1
892 000c 0193 str r3, [sp, #4]
467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->LCKR = tmp;
893 .loc 1 468 3 is_stmt 1 view .LVU301
894 .loc 1 468 15 is_stmt 0 view .LVU302
895 000e 019B ldr r3, [sp, #4]
896 0010 C361 str r3, [r0, #28]
469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */
470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->LCKR = GPIO_Pin;
897 .loc 1 470 3 is_stmt 1 view .LVU303
898 .loc 1 470 15 is_stmt 0 view .LVU304
899 0012 C161 str r1, [r0, #28]
471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->LCKR = tmp;
ARM GAS /tmp/cci4QTfC.s page 27
900 .loc 1 472 3 is_stmt 1 view .LVU305
901 .loc 1 472 15 is_stmt 0 view .LVU306
902 0014 019B ldr r3, [sp, #4]
903 0016 C361 str r3, [r0, #28]
473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Read LCKR register. This read is mandatory to complete key lock sequence */
474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp = GPIOx->LCKR;
904 .loc 1 474 3 is_stmt 1 view .LVU307
905 .loc 1 474 14 is_stmt 0 view .LVU308
906 0018 C369 ldr r3, [r0, #28]
907 .loc 1 474 7 view .LVU309
908 001a 0193 str r3, [sp, #4]
475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Read again in order to confirm lock is active */
477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIOx->LCKR & GPIO_LCKR_LCKK) != RESET)
909 .loc 1 477 2 is_stmt 1 view .LVU310
910 .loc 1 477 11 is_stmt 0 view .LVU311
911 001c C369 ldr r3, [r0, #28]
912 .loc 1 477 4 view .LVU312
913 001e 13F4803F tst r3, #65536
914 0022 02D0 beq .L63
478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return HAL_OK;
915 .loc 1 479 12 view .LVU313
916 0024 0020 movs r0, #0
917 .LVL76:
918 .L62:
480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** else
482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return HAL_ERROR;
484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
919 .loc 1 485 1 view .LVU314
920 0026 02B0 add sp, sp, #8
921 .LCFI7:
922 .cfi_remember_state
923 .cfi_def_cfa_offset 0
924 @ sp needed
925 0028 7047 bx lr
926 .LVL77:
927 .L63:
928 .LCFI8:
929 .cfi_restore_state
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
930 .loc 1 483 12 view .LVU315
931 002a 0120 movs r0, #1
932 .LVL78:
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
933 .loc 1 483 12 view .LVU316
934 002c FBE7 b .L62
935 .cfi_endproc
936 .LFE139:
938 .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits
939 .align 1
940 .weak HAL_GPIO_EXTI_Callback
941 .syntax unified
942 .thumb
ARM GAS /tmp/cci4QTfC.s page 28
943 .thumb_func
945 HAL_GPIO_EXTI_Callback:
946 .LVL79:
947 .LFB141:
486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief This function handles EXTI interrupt request.
489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the pins connected EXTI line
490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief EXTI line detection callbacks.
504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the pins connected EXTI line
505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
948 .loc 1 508 1 is_stmt 1 view -0
949 .cfi_startproc
950 @ args = 0, pretend = 0, frame = 0
951 @ frame_needed = 0, uses_anonymous_args = 0
952 @ link register save eliminated.
509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Prevent unused argument(s) compilation warning */
510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** UNUSED(GPIO_Pin);
953 .loc 1 510 3 view .LVU318
511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* NOTE: This function Should not be modified, when the callback is needed,
512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** the HAL_GPIO_EXTI_Callback could be implemented in the user file
513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
954 .loc 1 514 1 is_stmt 0 view .LVU319
955 0000 7047 bx lr
956 .cfi_endproc
957 .LFE141:
959 .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits
960 .align 1
961 .global HAL_GPIO_EXTI_IRQHandler
962 .syntax unified
963 .thumb
964 .thumb_func
966 HAL_GPIO_EXTI_IRQHandler:
967 .LVL80:
968 .LFB140:
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
969 .loc 1 493 1 is_stmt 1 view -0
970 .cfi_startproc
971 @ args = 0, pretend = 0, frame = 0
972 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/cci4QTfC.s page 29
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
973 .loc 1 493 1 is_stmt 0 view .LVU321
974 0000 08B5 push {r3, lr}
975 .LCFI9:
976 .cfi_def_cfa_offset 8
977 .cfi_offset 3, -8
978 .cfi_offset 14, -4
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
979 .loc 1 495 3 is_stmt 1 view .LVU322
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
980 .loc 1 495 6 is_stmt 0 view .LVU323
981 0002 054B ldr r3, .L70
982 0004 5B69 ldr r3, [r3, #20]
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
983 .loc 1 495 5 view .LVU324
984 0006 0342 tst r3, r0
985 0008 00D1 bne .L69
986 .LVL81:
987 .L66:
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
988 .loc 1 500 1 view .LVU325
989 000a 08BD pop {r3, pc}
990 .LVL82:
991 .L69:
497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
992 .loc 1 497 5 is_stmt 1 view .LVU326
993 000c 024B ldr r3, .L70
994 000e 5861 str r0, [r3, #20]
498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
995 .loc 1 498 5 view .LVU327
996 0010 FFF7FEFF bl HAL_GPIO_EXTI_Callback
997 .LVL83:
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
998 .loc 1 500 1 is_stmt 0 view .LVU328
999 0014 F9E7 b .L66
1000 .L71:
1001 0016 00BF .align 2
1002 .L70:
1003 0018 003C0140 .word 1073822720
1004 .cfi_endproc
1005 .LFE140:
1007 .text
1008 .Letext0:
1009 .file 2 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_defaul
1010 .file 3 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h"
1011 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
1012 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
1013 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
1014 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h"
ARM GAS /tmp/cci4QTfC.s page 30
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f4xx_hal_gpio.c
/tmp/cci4QTfC.s:20 .text.HAL_GPIO_Init:0000000000000000 $t
/tmp/cci4QTfC.s:26 .text.HAL_GPIO_Init:0000000000000000 HAL_GPIO_Init
/tmp/cci4QTfC.s:493 .text.HAL_GPIO_Init:00000000000001d4 $d
/tmp/cci4QTfC.s:501 .text.HAL_GPIO_DeInit:0000000000000000 $t
/tmp/cci4QTfC.s:507 .text.HAL_GPIO_DeInit:0000000000000000 HAL_GPIO_DeInit
/tmp/cci4QTfC.s:747 .text.HAL_GPIO_DeInit:0000000000000128 $d
/tmp/cci4QTfC.s:754 .text.HAL_GPIO_ReadPin:0000000000000000 $t
/tmp/cci4QTfC.s:760 .text.HAL_GPIO_ReadPin:0000000000000000 HAL_GPIO_ReadPin
/tmp/cci4QTfC.s:793 .text.HAL_GPIO_WritePin:0000000000000000 $t
/tmp/cci4QTfC.s:799 .text.HAL_GPIO_WritePin:0000000000000000 HAL_GPIO_WritePin
/tmp/cci4QTfC.s:829 .text.HAL_GPIO_TogglePin:0000000000000000 $t
/tmp/cci4QTfC.s:835 .text.HAL_GPIO_TogglePin:0000000000000000 HAL_GPIO_TogglePin
/tmp/cci4QTfC.s:865 .text.HAL_GPIO_LockPin:0000000000000000 $t
/tmp/cci4QTfC.s:871 .text.HAL_GPIO_LockPin:0000000000000000 HAL_GPIO_LockPin
/tmp/cci4QTfC.s:939 .text.HAL_GPIO_EXTI_Callback:0000000000000000 $t
/tmp/cci4QTfC.s:945 .text.HAL_GPIO_EXTI_Callback:0000000000000000 HAL_GPIO_EXTI_Callback
/tmp/cci4QTfC.s:960 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 $t
/tmp/cci4QTfC.s:966 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 HAL_GPIO_EXTI_IRQHandler
/tmp/cci4QTfC.s:1003 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000018 $d
NO UNDEFINED SYMBOLS