Files
RFG_stm32_ADC_STM32F429/build/stm32f4xx_hal_gpio.lst

1823 lines
108 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/cc1esYfs.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 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c"
20 .section .text.HAL_GPIO_Init,"ax",%progbits
21 .align 1
22 .global HAL_GPIO_Init
23 .syntax unified
24 .thumb
25 .thumb_func
27 HAL_GPIO_Init:
28 .LVL0:
29 .LFB239:
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/cc1esYfs.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/cc1esYfs.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/cc1esYfs.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 31 is_stmt 1 discriminator 1 view .LVU10
46 0002 0F2B cmp r3, #15
47 0004 00F2F680 bhi .L26
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
48 .loc 1 165 1 is_stmt 0 view .LVU11
49 0008 70B5 push {r4, r5, r6, lr}
50 .LCFI0:
51 .cfi_def_cfa_offset 16
ARM GAS /tmp/cc1esYfs.s page 5
52 .cfi_offset 4, -16
53 .cfi_offset 5, -12
54 .cfi_offset 6, -8
55 .cfi_offset 14, -4
56 000a 82B0 sub sp, sp, #8
57 .LCFI1:
58 .cfi_def_cfa_offset 24
59 000c 66E0 b .L12
60 .LVL2:
61 .L28:
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));
62 .loc 1 192 9 is_stmt 1 view .LVU12
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;
63 .loc 1 194 9 view .LVU13
64 .loc 1 194 14 is_stmt 0 view .LVU14
65 000e 8568 ldr r5, [r0, #8]
66 .LVL3:
195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U));
67 .loc 1 195 9 is_stmt 1 view .LVU15
68 .loc 1 195 55 is_stmt 0 view .LVU16
69 0010 4FEA430E lsl lr, r3, #1
70 .loc 1 195 42 view .LVU17
71 0014 0324 movs r4, #3
72 0016 04FA0EF4 lsl r4, r4, lr
73 .loc 1 195 14 view .LVU18
74 001a 25EA0405 bic r5, r5, r4
75 .LVL4:
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
76 .loc 1 196 9 is_stmt 1 view .LVU19
77 .loc 1 196 27 is_stmt 0 view .LVU20
78 001e CC68 ldr r4, [r1, #12]
79 .loc 1 196 35 view .LVU21
80 0020 04FA0EF4 lsl r4, r4, lr
81 .loc 1 196 14 view .LVU22
82 0024 2C43 orrs r4, r4, r5
83 .LVL5:
197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
84 .loc 1 197 9 is_stmt 1 view .LVU23
85 .loc 1 197 24 is_stmt 0 view .LVU24
86 0026 8460 str r4, [r0, #8]
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the IO Output Type */
ARM GAS /tmp/cc1esYfs.s page 6
200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->OTYPER;
87 .loc 1 200 9 is_stmt 1 view .LVU25
88 .loc 1 200 14 is_stmt 0 view .LVU26
89 0028 4468 ldr r4, [r0, #4]
90 .LVL6:
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ;
91 .loc 1 201 9 is_stmt 1 view .LVU27
92 .loc 1 201 14 is_stmt 0 view .LVU28
93 002a 24EA0204 bic r4, r4, r2
94 .LVL7:
202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
95 .loc 1 202 9 is_stmt 1 view .LVU29
96 .loc 1 202 29 is_stmt 0 view .LVU30
97 002e 4A68 ldr r2, [r1, #4]
98 .LVL8:
99 .loc 1 202 51 view .LVU31
100 0030 C2F30012 ubfx r2, r2, #4, #1
101 .loc 1 202 71 view .LVU32
102 0034 9A40 lsls r2, r2, r3
103 .loc 1 202 14 view .LVU33
104 0036 2243 orrs r2, r2, r4
105 .LVL9:
203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OTYPER = temp;
106 .loc 1 203 9 is_stmt 1 view .LVU34
107 .loc 1 203 23 is_stmt 0 view .LVU35
108 0038 4260 str r2, [r0, #4]
109 003a 5DE0 b .L4
110 .LVL10:
111 .L29:
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));
112 .loc 1 222 9 is_stmt 1 view .LVU36
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];
113 .loc 1 224 9 view .LVU37
114 .loc 1 224 36 is_stmt 0 view .LVU38
115 003c DC08 lsrs r4, r3, #3
116 .loc 1 224 14 view .LVU39
117 003e 0834 adds r4, r4, #8
118 0040 50F82420 ldr r2, [r0, r4, lsl #2]
ARM GAS /tmp/cc1esYfs.s page 7
119 .LVL11:
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0xFU << ((uint32_t)(position & 0x07U) * 4U)) ;
120 .loc 1 225 9 is_stmt 1 view .LVU40
121 .loc 1 225 28 is_stmt 0 view .LVU41
122 0044 03F00705 and r5, r3, #7
123 .loc 1 225 57 view .LVU42
124 0048 AD00 lsls r5, r5, #2
125 .loc 1 225 24 view .LVU43
126 004a 4FF00F0E mov lr, #15
127 004e 0EFA05FE lsl lr, lr, r5
128 .loc 1 225 14 view .LVU44
129 0052 22EA0E0E bic lr, r2, lr
130 .LVL12:
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4U));
131 .loc 1 226 9 is_stmt 1 view .LVU45
132 .loc 1 226 38 is_stmt 0 view .LVU46
133 0056 0A69 ldr r2, [r1, #16]
134 .loc 1 226 51 view .LVU47
135 0058 AA40 lsls r2, r2, r5
136 .loc 1 226 14 view .LVU48
137 005a 42EA0E02 orr r2, r2, lr
138 .LVL13:
227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
139 .loc 1 227 9 is_stmt 1 view .LVU49
140 .loc 1 227 36 is_stmt 0 view .LVU50
141 005e 40F82420 str r2, [r0, r4, lsl #2]
142 0062 5DE0 b .L6
143 .LVL14:
144 .L30:
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)));
145 .loc 1 245 29 discriminator 19 view .LVU51
146 0064 0922 movs r2, #9
147 0066 00E0 b .L7
148 .L13:
149 .loc 1 245 18 discriminator 2 view .LVU52
150 0068 0022 movs r2, #0
151 .L7:
152 .loc 1 245 52 discriminator 40 view .LVU53
153 006a 02FA0EF2 lsl r2, r2, lr
154 .loc 1 245 14 discriminator 40 view .LVU54
ARM GAS /tmp/cc1esYfs.s page 8
155 006e 2A43 orrs r2, r2, r5
156 .LVL15:
246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
157 .loc 1 246 9 is_stmt 1 view .LVU55
158 .loc 1 246 40 is_stmt 0 view .LVU56
159 0070 0234 adds r4, r4, #2
160 0072 614D ldr r5, .L31
161 0074 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;
162 .loc 1 249 9 is_stmt 1 view .LVU57
163 .loc 1 249 14 is_stmt 0 view .LVU58
164 0078 604A ldr r2, .L31+4
165 .LVL16:
166 .loc 1 249 14 view .LVU59
167 007a 9468 ldr r4, [r2, #8]
168 .LVL17:
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
169 .loc 1 250 9 is_stmt 1 view .LVU60
170 .loc 1 250 17 is_stmt 0 view .LVU61
171 007c 6FEA0C02 mvn r2, ip
172 .loc 1 250 14 view .LVU62
173 0080 24EA0C05 bic r5, r4, ip
174 .LVL18:
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U)
175 .loc 1 251 9 is_stmt 1 view .LVU63
176 .loc 1 251 11 is_stmt 0 view .LVU64
177 0084 4E68 ldr r6, [r1, #4]
178 0086 16F4801F tst r6, #1048576
179 008a 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;
180 .loc 1 253 11 is_stmt 1 view .LVU65
181 .loc 1 253 16 is_stmt 0 view .LVU66
182 008c 4CEA0405 orr r5, ip, r4
183 .LVL19:
184 .L8:
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR = temp;
185 .loc 1 255 9 is_stmt 1 view .LVU67
186 .loc 1 255 20 is_stmt 0 view .LVU68
187 0090 5A4C ldr r4, .L31+4
188 0092 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;
189 .loc 1 257 9 is_stmt 1 view .LVU69
190 .loc 1 257 14 is_stmt 0 view .LVU70
191 0094 E468 ldr r4, [r4, #12]
192 .LVL20:
258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
193 .loc 1 258 9 is_stmt 1 view .LVU71
194 .loc 1 258 14 is_stmt 0 view .LVU72
195 0096 02EA0405 and r5, r2, r4
196 .LVL21:
259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U)
197 .loc 1 259 9 is_stmt 1 view .LVU73
ARM GAS /tmp/cc1esYfs.s page 9
198 .loc 1 259 11 is_stmt 0 view .LVU74
199 009a 4E68 ldr r6, [r1, #4]
200 009c 16F4001F tst r6, #2097152
201 00a0 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;
202 .loc 1 261 11 is_stmt 1 view .LVU75
203 .loc 1 261 16 is_stmt 0 view .LVU76
204 00a2 4CEA0405 orr r5, ip, r4
205 .LVL22:
206 .L9:
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->FTSR = temp;
207 .loc 1 263 9 is_stmt 1 view .LVU77
208 .loc 1 263 20 is_stmt 0 view .LVU78
209 00a6 554C ldr r4, .L31+4
210 00a8 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;
211 .loc 1 265 9 is_stmt 1 view .LVU79
212 .loc 1 265 14 is_stmt 0 view .LVU80
213 00aa 6468 ldr r4, [r4, #4]
214 .LVL23:
266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
215 .loc 1 266 9 is_stmt 1 view .LVU81
216 .loc 1 266 14 is_stmt 0 view .LVU82
217 00ac 02EA0405 and r5, r2, r4
218 .LVL24:
267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_EVT) != 0x00U)
219 .loc 1 267 9 is_stmt 1 view .LVU83
220 .loc 1 267 11 is_stmt 0 view .LVU84
221 00b0 4E68 ldr r6, [r1, #4]
222 00b2 16F4003F tst r6, #131072
223 00b6 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;
224 .loc 1 269 11 is_stmt 1 view .LVU85
225 .loc 1 269 16 is_stmt 0 view .LVU86
226 00b8 4CEA0405 orr r5, ip, r4
227 .LVL25:
228 .L10:
270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR = temp;
229 .loc 1 271 9 is_stmt 1 view .LVU87
230 .loc 1 271 19 is_stmt 0 view .LVU88
231 00bc 4F4C ldr r4, .L31+4
232 00be 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;
233 .loc 1 274 9 is_stmt 1 view .LVU89
234 .loc 1 274 14 is_stmt 0 view .LVU90
235 00c0 2468 ldr r4, [r4]
236 .LVL26:
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
237 .loc 1 275 9 is_stmt 1 view .LVU91
238 .loc 1 275 14 is_stmt 0 view .LVU92
ARM GAS /tmp/cc1esYfs.s page 10
239 00c2 2240 ands r2, r2, r4
240 .LVL27:
276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_IT) != 0x00U)
241 .loc 1 276 9 is_stmt 1 view .LVU93
242 .loc 1 276 22 is_stmt 0 view .LVU94
243 00c4 4D68 ldr r5, [r1, #4]
244 .loc 1 276 11 view .LVU95
245 00c6 15F4803F tst r5, #65536
246 00ca 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;
247 .loc 1 278 11 is_stmt 1 view .LVU96
248 .loc 1 278 16 is_stmt 0 view .LVU97
249 00cc 4CEA0402 orr r2, ip, r4
250 .LVL28:
251 .L11:
279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->IMR = temp;
252 .loc 1 280 9 is_stmt 1 view .LVU98
253 .loc 1 280 19 is_stmt 0 view .LVU99
254 00d0 4A4C ldr r4, .L31+4
255 00d2 2260 str r2, [r4]
256 .LVL29:
257 .L3:
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
258 .loc 1 177 54 is_stmt 1 discriminator 2 view .LVU100
259 00d4 0133 adds r3, r3, #1
260 .LVL30:
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
261 .loc 1 177 31 discriminator 1 view .LVU101
262 00d6 0F2B cmp r3, #15
263 00d8 00F28A80 bhi .L27
264 .LVL31:
265 .L12:
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
266 .loc 1 180 5 view .LVU102
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
267 .loc 1 180 16 is_stmt 0 view .LVU103
268 00dc 0122 movs r2, #1
269 00de 9A40 lsls r2, r2, r3
270 .LVL32:
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
271 .loc 1 182 5 is_stmt 1 view .LVU104
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
272 .loc 1 182 37 is_stmt 0 view .LVU105
273 00e0 0C68 ldr r4, [r1]
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
274 .loc 1 182 15 view .LVU106
275 00e2 04EA020C and ip, r4, r2
276 .LVL33:
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
277 .loc 1 184 5 is_stmt 1 view .LVU107
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
278 .loc 1 184 7 is_stmt 0 view .LVU108
279 00e6 32EA0404 bics r4, r2, r4
280 00ea F3D1 bne .L3
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
ARM GAS /tmp/cc1esYfs.s page 11
281 .loc 1 188 7 is_stmt 1 view .LVU109
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
282 .loc 1 188 21 is_stmt 0 view .LVU110
283 00ec 4C68 ldr r4, [r1, #4]
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
284 .loc 1 188 28 view .LVU111
285 00ee 04F00304 and r4, r4, #3
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
286 .loc 1 188 57 view .LVU112
287 00f2 013C subs r4, r4, #1
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
288 .loc 1 188 9 view .LVU113
289 00f4 012C cmp r4, #1
290 00f6 8AD9 bls .L28
291 .LVL34:
292 .L4:
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
293 .loc 1 206 7 is_stmt 1 view .LVU114
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
294 .loc 1 206 20 is_stmt 0 view .LVU115
295 00f8 4A68 ldr r2, [r1, #4]
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
296 .loc 1 206 27 view .LVU116
297 00fa 02F00302 and r2, r2, #3
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
298 .loc 1 206 9 view .LVU117
299 00fe 032A cmp r2, #3
300 0100 09D0 beq .L5
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
301 .loc 1 209 9 is_stmt 1 view .LVU118
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
302 .loc 1 212 9 view .LVU119
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
303 .loc 1 212 14 is_stmt 0 view .LVU120
304 0102 C468 ldr r4, [r0, #12]
305 .LVL35:
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
306 .loc 1 213 9 is_stmt 1 view .LVU121
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
307 .loc 1 213 50 is_stmt 0 view .LVU122
308 0104 5D00 lsls r5, r3, #1
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
309 .loc 1 213 37 view .LVU123
310 0106 0322 movs r2, #3
311 0108 AA40 lsls r2, r2, r5
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
312 .loc 1 213 14 view .LVU124
313 010a 24EA0204 bic r4, r4, r2
314 .LVL36:
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
315 .loc 1 214 9 is_stmt 1 view .LVU125
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
316 .loc 1 214 28 is_stmt 0 view .LVU126
317 010e 8A68 ldr r2, [r1, #8]
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
318 .loc 1 214 36 view .LVU127
319 0110 AA40 lsls r2, r2, r5
ARM GAS /tmp/cc1esYfs.s page 12
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
320 .loc 1 214 14 view .LVU128
321 0112 2243 orrs r2, r2, r4
322 .LVL37:
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
323 .loc 1 215 9 is_stmt 1 view .LVU129
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
324 .loc 1 215 22 is_stmt 0 view .LVU130
325 0114 C260 str r2, [r0, #12]
326 .LVL38:
327 .L5:
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
328 .loc 1 219 7 is_stmt 1 view .LVU131
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
329 .loc 1 219 20 is_stmt 0 view .LVU132
330 0116 4A68 ldr r2, [r1, #4]
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
331 .loc 1 219 27 view .LVU133
332 0118 02F00302 and r2, r2, #3
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
333 .loc 1 219 9 view .LVU134
334 011c 022A cmp r2, #2
335 011e 8DD0 beq .L29
336 .L6:
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2U));
337 .loc 1 231 7 is_stmt 1 view .LVU135
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2U));
338 .loc 1 231 12 is_stmt 0 view .LVU136
339 0120 0468 ldr r4, [r0]
340 .LVL39:
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
341 .loc 1 232 7 is_stmt 1 view .LVU137
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
342 .loc 1 232 48 is_stmt 0 view .LVU138
343 0122 4FEA430E lsl lr, r3, #1
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
344 .loc 1 232 35 view .LVU139
345 0126 0322 movs r2, #3
346 0128 02FA0EF2 lsl r2, r2, lr
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
347 .loc 1 232 12 view .LVU140
348 012c 24EA0204 bic r4, r4, r2
349 .LVL40:
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
350 .loc 1 233 7 is_stmt 1 view .LVU141
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
351 .loc 1 233 26 is_stmt 0 view .LVU142
352 0130 4A68 ldr r2, [r1, #4]
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
353 .loc 1 233 33 view .LVU143
354 0132 02F00302 and r2, r2, #3
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
355 .loc 1 233 46 view .LVU144
356 0136 02FA0EF2 lsl r2, r2, lr
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
357 .loc 1 233 12 view .LVU145
358 013a 2243 orrs r2, r2, r4
ARM GAS /tmp/cc1esYfs.s page 13
359 .LVL41:
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
360 .loc 1 234 7 is_stmt 1 view .LVU146
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
361 .loc 1 234 20 is_stmt 0 view .LVU147
362 013c 0260 str r2, [r0]
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
363 .loc 1 238 7 is_stmt 1 view .LVU148
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
364 .loc 1 238 20 is_stmt 0 view .LVU149
365 013e 4A68 ldr r2, [r1, #4]
366 .LVL42:
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
367 .loc 1 238 9 view .LVU150
368 0140 12F4403F tst r2, #196608
369 0144 C6D0 beq .L3
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
370 .loc 1 241 9 is_stmt 1 view .LVU151
371 .LBB2:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
372 .loc 1 241 9 view .LVU152
373 0146 0022 movs r2, #0
374 0148 0192 str r2, [sp, #4]
375 .LVL43:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
376 .loc 1 241 9 view .LVU153
377 014a 2D4A ldr r2, .L31+8
378 014c 546C ldr r4, [r2, #68]
379 014e 44F48044 orr r4, r4, #16384
380 0152 5464 str r4, [r2, #68]
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
381 .loc 1 241 9 view .LVU154
382 0154 526C ldr r2, [r2, #68]
383 0156 02F48042 and r2, r2, #16384
384 015a 0192 str r2, [sp, #4]
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
385 .loc 1 241 9 view .LVU155
386 015c 019A ldr r2, [sp, #4]
387 .LBE2:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
388 .loc 1 241 9 view .LVU156
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
389 .loc 1 243 9 view .LVU157
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
390 .loc 1 243 40 is_stmt 0 view .LVU158
391 015e 9C08 lsrs r4, r3, #2
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
392 .loc 1 243 14 view .LVU159
393 0160 A51C adds r5, r4, #2
394 0162 254A ldr r2, .L31
395 0164 52F82550 ldr r5, [r2, r5, lsl #2]
396 .LVL44:
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
397 .loc 1 244 9 is_stmt 1 view .LVU160
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
398 .loc 1 244 44 is_stmt 0 view .LVU161
399 0168 03F0030E and lr, r3, #3
ARM GAS /tmp/cc1esYfs.s page 14
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
400 .loc 1 244 32 view .LVU162
401 016c 4FEA8E0E lsl lr, lr, #2
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
402 .loc 1 244 25 view .LVU163
403 0170 0F22 movs r2, #15
404 0172 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)));
405 .loc 1 244 14 view .LVU164
406 0176 25EA0205 bic r5, r5, r2
407 .LVL45:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
408 .loc 1 245 9 is_stmt 1 view .LVU165
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
409 .loc 1 245 18 is_stmt 0 view .LVU166
410 017a 224A ldr r2, .L31+12
411 017c 9042 cmp r0, r2
412 017e 3FF473AF beq .L13
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
413 .loc 1 245 29 discriminator 1 view .LVU167
414 0182 02F58062 add r2, r2, #1024
415 0186 9042 cmp r0, r2
416 0188 22D0 beq .L14
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
417 .loc 1 245 29 discriminator 3 view .LVU168
418 018a 02F58062 add r2, r2, #1024
419 018e 9042 cmp r0, r2
420 0190 20D0 beq .L15
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
421 .loc 1 245 29 discriminator 5 view .LVU169
422 0192 02F58062 add r2, r2, #1024
423 0196 9042 cmp r0, r2
424 0198 1ED0 beq .L16
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
425 .loc 1 245 29 discriminator 7 view .LVU170
426 019a 02F58062 add r2, r2, #1024
427 019e 9042 cmp r0, r2
428 01a0 1CD0 beq .L17
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
429 .loc 1 245 29 discriminator 9 view .LVU171
430 01a2 02F58062 add r2, r2, #1024
431 01a6 9042 cmp r0, r2
432 01a8 1AD0 beq .L18
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
433 .loc 1 245 29 discriminator 11 view .LVU172
434 01aa 02F58062 add r2, r2, #1024
435 01ae 9042 cmp r0, r2
436 01b0 18D0 beq .L19
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
437 .loc 1 245 29 discriminator 13 view .LVU173
438 01b2 02F58062 add r2, r2, #1024
439 01b6 9042 cmp r0, r2
440 01b8 16D0 beq .L20
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
441 .loc 1 245 29 discriminator 15 view .LVU174
442 01ba 02F58062 add r2, r2, #1024
443 01be 9042 cmp r0, r2
ARM GAS /tmp/cc1esYfs.s page 15
444 01c0 14D0 beq .L21
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
445 .loc 1 245 29 discriminator 17 view .LVU175
446 01c2 02F58062 add r2, r2, #1024
447 01c6 9042 cmp r0, r2
448 01c8 3FF44CAF beq .L30
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
449 .loc 1 245 29 discriminator 20 view .LVU176
450 01cc 0A22 movs r2, #10
451 01ce 4CE7 b .L7
452 .L14:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
453 .loc 1 245 29 discriminator 4 view .LVU177
454 01d0 0122 movs r2, #1
455 .LVL46:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
456 .loc 1 245 29 discriminator 4 view .LVU178
457 01d2 4AE7 b .L7
458 .LVL47:
459 .L15:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
460 .loc 1 245 29 discriminator 6 view .LVU179
461 01d4 0222 movs r2, #2
462 01d6 48E7 b .L7
463 .L16:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
464 .loc 1 245 29 discriminator 8 view .LVU180
465 01d8 0322 movs r2, #3
466 01da 46E7 b .L7
467 .L17:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
468 .loc 1 245 29 discriminator 10 view .LVU181
469 01dc 0422 movs r2, #4
470 01de 44E7 b .L7
471 .L18:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
472 .loc 1 245 29 discriminator 12 view .LVU182
473 01e0 0522 movs r2, #5
474 01e2 42E7 b .L7
475 .L19:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
476 .loc 1 245 29 discriminator 14 view .LVU183
477 01e4 0622 movs r2, #6
478 01e6 40E7 b .L7
479 .L20:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
480 .loc 1 245 29 discriminator 16 view .LVU184
481 01e8 0722 movs r2, #7
482 01ea 3EE7 b .L7
483 .L21:
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
484 .loc 1 245 29 discriminator 18 view .LVU185
485 01ec 0822 movs r2, #8
486 01ee 3CE7 b .L7
487 .LVL48:
488 .L27:
281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
ARM GAS /tmp/cc1esYfs.s page 16
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 **** }
489 .loc 1 284 1 view .LVU186
490 01f0 02B0 add sp, sp, #8
491 .LCFI2:
492 .cfi_def_cfa_offset 16
493 @ sp needed
494 01f2 70BD pop {r4, r5, r6, pc}
495 .LVL49:
496 .L26:
497 .LCFI3:
498 .cfi_def_cfa_offset 0
499 .cfi_restore 4
500 .cfi_restore 5
501 .cfi_restore 6
502 .cfi_restore 14
503 .loc 1 284 1 view .LVU187
504 01f4 7047 bx lr
505 .L32:
506 01f6 00BF .align 2
507 .L31:
508 01f8 00380140 .word 1073821696
509 01fc 003C0140 .word 1073822720
510 0200 00380240 .word 1073887232
511 0204 00000240 .word 1073872896
512 .cfi_endproc
513 .LFE239:
515 .section .text.HAL_GPIO_DeInit,"ax",%progbits
516 .align 1
517 .global HAL_GPIO_DeInit
518 .syntax unified
519 .thumb
520 .thumb_func
522 HAL_GPIO_DeInit:
523 .LVL50:
524 .LFB240:
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 **** {
525 .loc 1 295 1 is_stmt 1 view -0
526 .cfi_startproc
527 @ args = 0, pretend = 0, frame = 0
528 @ frame_needed = 0, uses_anonymous_args = 0
296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
529 .loc 1 296 3 view .LVU189
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t ioposition = 0x00U;
530 .loc 1 297 3 view .LVU190
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t iocurrent = 0x00U;
ARM GAS /tmp/cc1esYfs.s page 17
531 .loc 1 298 3 view .LVU191
299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t tmp = 0x00U;
532 .loc 1 299 3 view .LVU192
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));
533 .loc 1 302 3 view .LVU193
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++)
534 .loc 1 305 3 view .LVU194
535 .loc 1 305 16 is_stmt 0 view .LVU195
536 0000 0023 movs r3, #0
537 .LVL51:
538 .loc 1 305 31 is_stmt 1 discriminator 1 view .LVU196
539 0002 0F2B cmp r3, #15
540 0004 00F29B80 bhi .L52
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
541 .loc 1 295 1 is_stmt 0 view .LVU197
542 0008 F0B5 push {r4, r5, r6, r7, lr}
543 .LCFI4:
544 .cfi_def_cfa_offset 20
545 .cfi_offset 4, -20
546 .cfi_offset 5, -16
547 .cfi_offset 6, -12
548 .cfi_offset 7, -8
549 .cfi_offset 14, -4
550 000a 2DE0 b .L38
551 .LVL52:
552 .L55:
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))))
553 .loc 1 317 29 discriminator 19 view .LVU198
554 000c 0925 movs r5, #9
555 000e 00E0 b .L36
556 .L39:
557 .loc 1 317 18 discriminator 2 view .LVU199
558 0010 0025 movs r5, #0
559 .L36:
560 .loc 1 317 52 discriminator 40 view .LVU200
561 0012 05FA0CF5 lsl r5, r5, ip
562 .loc 1 317 9 discriminator 40 view .LVU201
563 0016 A542 cmp r5, r4
564 0018 75D0 beq .L53
565 .LVL53:
566 .L37:
318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
ARM GAS /tmp/cc1esYfs.s page 18
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));
567 .loc 1 334 7 is_stmt 1 view .LVU202
568 .loc 1 334 12 is_stmt 0 view .LVU203
569 001a 0468 ldr r4, [r0]
570 .loc 1 334 56 view .LVU204
571 001c 5D00 lsls r5, r3, #1
572 .loc 1 334 43 view .LVU205
573 001e 4FF0030C mov ip, #3
574 0022 0CFA05FC lsl ip, ip, r5
575 .loc 1 334 20 view .LVU206
576 0026 24EA0C04 bic r4, r4, ip
577 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)) ;
578 .loc 1 337 7 is_stmt 1 view .LVU207
579 .loc 1 337 17 is_stmt 0 view .LVU208
580 002c 4FEAD30E lsr lr, r3, #3
581 0030 0EF1080E add lr, lr, #8
582 0034 50F82E40 ldr r4, [r0, lr, lsl #2]
583 .loc 1 337 48 view .LVU209
584 0038 03F00706 and r6, r3, #7
585 .loc 1 337 77 view .LVU210
586 003c B600 lsls r6, r6, #2
587 .loc 1 337 44 view .LVU211
588 003e 0F25 movs r5, #15
589 0040 B540 lsls r5, r5, r6
590 .loc 1 337 34 view .LVU212
591 0042 24EA0504 bic r4, r4, r5
592 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));
593 .loc 1 340 7 is_stmt 1 view .LVU213
594 .loc 1 340 12 is_stmt 0 view .LVU214
595 004a C468 ldr r4, [r0, #12]
596 .loc 1 340 20 view .LVU215
597 004c 24EA0C04 bic r4, r4, ip
598 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) ;
ARM GAS /tmp/cc1esYfs.s page 19
599 .loc 1 343 7 is_stmt 1 view .LVU216
600 .loc 1 343 12 is_stmt 0 view .LVU217
601 0052 4468 ldr r4, [r0, #4]
602 .loc 1 343 22 view .LVU218
603 0054 24EA0202 bic r2, r4, r2
604 .LVL54:
605 .loc 1 343 22 view .LVU219
606 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));
607 .loc 1 346 7 is_stmt 1 view .LVU220
608 .loc 1 346 12 is_stmt 0 view .LVU221
609 005a 8268 ldr r2, [r0, #8]
610 .loc 1 346 22 view .LVU222
611 005c 22EA0C02 bic r2, r2, ip
612 0060 8260 str r2, [r0, #8]
613 .L35:
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
614 .loc 1 305 54 is_stmt 1 discriminator 2 view .LVU223
615 0062 0133 adds r3, r3, #1
616 .LVL55:
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
617 .loc 1 305 31 discriminator 1 view .LVU224
618 0064 0F2B cmp r3, #15
619 0066 69D8 bhi .L54
620 .LVL56:
621 .L38:
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
622 .loc 1 308 5 view .LVU225
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
623 .loc 1 308 16 is_stmt 0 view .LVU226
624 0068 0122 movs r2, #1
625 006a 9A40 lsls r2, r2, r3
626 .LVL57:
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
627 .loc 1 310 5 is_stmt 1 view .LVU227
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
628 .loc 1 310 15 is_stmt 0 view .LVU228
629 006c 02EA0106 and r6, r2, r1
630 .LVL58:
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
631 .loc 1 312 5 is_stmt 1 view .LVU229
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
632 .loc 1 312 7 is_stmt 0 view .LVU230
633 0070 32EA0104 bics r4, r2, r1
634 0074 F5D1 bne .L35
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
635 .loc 1 315 7 is_stmt 1 view .LVU231
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
636 .loc 1 315 37 is_stmt 0 view .LVU232
637 0076 4FEA930E lsr lr, r3, #2
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
638 .loc 1 315 11 view .LVU233
639 007a 0EF10205 add r5, lr, #2
640 007e 304C ldr r4, .L56
641 0080 54F82540 ldr r4, [r4, r5, lsl #2]
ARM GAS /tmp/cc1esYfs.s page 20
642 .LVL59:
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
643 .loc 1 316 7 is_stmt 1 view .LVU234
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
644 .loc 1 316 40 is_stmt 0 view .LVU235
645 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))))
646 .loc 1 316 28 view .LVU236
647 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))))
648 .loc 1 316 21 view .LVU237
649 008c 0F25 movs r5, #15
650 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))))
651 .loc 1 316 11 view .LVU238
652 0092 3C40 ands r4, r4, r7
653 .LVL60:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
654 .loc 1 317 7 is_stmt 1 view .LVU239
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
655 .loc 1 317 18 is_stmt 0 view .LVU240
656 0094 2B4D ldr r5, .L56+4
657 0096 A842 cmp r0, r5
658 0098 BAD0 beq .L39
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
659 .loc 1 317 29 discriminator 1 view .LVU241
660 009a 05F58065 add r5, r5, #1024
661 009e A842 cmp r0, r5
662 00a0 21D0 beq .L40
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
663 .loc 1 317 29 discriminator 3 view .LVU242
664 00a2 05F58065 add r5, r5, #1024
665 00a6 A842 cmp r0, r5
666 00a8 1FD0 beq .L41
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
667 .loc 1 317 29 discriminator 5 view .LVU243
668 00aa 05F58065 add r5, r5, #1024
669 00ae A842 cmp r0, r5
670 00b0 1DD0 beq .L42
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
671 .loc 1 317 29 discriminator 7 view .LVU244
672 00b2 05F58065 add r5, r5, #1024
673 00b6 A842 cmp r0, r5
674 00b8 1BD0 beq .L43
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
675 .loc 1 317 29 discriminator 9 view .LVU245
676 00ba 05F58065 add r5, r5, #1024
677 00be A842 cmp r0, r5
678 00c0 19D0 beq .L44
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
679 .loc 1 317 29 discriminator 11 view .LVU246
680 00c2 05F58065 add r5, r5, #1024
681 00c6 A842 cmp r0, r5
682 00c8 17D0 beq .L45
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
683 .loc 1 317 29 discriminator 13 view .LVU247
684 00ca 05F58065 add r5, r5, #1024
ARM GAS /tmp/cc1esYfs.s page 21
685 00ce A842 cmp r0, r5
686 00d0 15D0 beq .L46
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
687 .loc 1 317 29 discriminator 15 view .LVU248
688 00d2 05F58065 add r5, r5, #1024
689 00d6 A842 cmp r0, r5
690 00d8 13D0 beq .L47
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
691 .loc 1 317 29 discriminator 17 view .LVU249
692 00da 05F58065 add r5, r5, #1024
693 00de A842 cmp r0, r5
694 00e0 94D0 beq .L55
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
695 .loc 1 317 29 discriminator 20 view .LVU250
696 00e2 0A25 movs r5, #10
697 00e4 95E7 b .L36
698 .L40:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
699 .loc 1 317 29 discriminator 4 view .LVU251
700 00e6 0125 movs r5, #1
701 00e8 93E7 b .L36
702 .L41:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
703 .loc 1 317 29 discriminator 6 view .LVU252
704 00ea 0225 movs r5, #2
705 00ec 91E7 b .L36
706 .L42:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
707 .loc 1 317 29 discriminator 8 view .LVU253
708 00ee 0325 movs r5, #3
709 00f0 8FE7 b .L36
710 .L43:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
711 .loc 1 317 29 discriminator 10 view .LVU254
712 00f2 0425 movs r5, #4
713 00f4 8DE7 b .L36
714 .L44:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
715 .loc 1 317 29 discriminator 12 view .LVU255
716 00f6 0525 movs r5, #5
717 00f8 8BE7 b .L36
718 .L45:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
719 .loc 1 317 29 discriminator 14 view .LVU256
720 00fa 0625 movs r5, #6
721 00fc 89E7 b .L36
722 .L46:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
723 .loc 1 317 29 discriminator 16 view .LVU257
724 00fe 0725 movs r5, #7
725 0100 87E7 b .L36
726 .L47:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
727 .loc 1 317 29 discriminator 18 view .LVU258
728 0102 0825 movs r5, #8
729 0104 85E7 b .L36
730 .L53:
ARM GAS /tmp/cc1esYfs.s page 22
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
731 .loc 1 320 9 is_stmt 1 view .LVU259
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
732 .loc 1 320 13 is_stmt 0 view .LVU260
733 0106 104C ldr r4, .L56+8
734 .LVL61:
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
735 .loc 1 320 13 view .LVU261
736 0108 2568 ldr r5, [r4]
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
737 .loc 1 320 19 view .LVU262
738 010a 25EA0605 bic r5, r5, r6
739 010e 2560 str r5, [r4]
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
740 .loc 1 321 9 is_stmt 1 view .LVU263
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
741 .loc 1 321 13 is_stmt 0 view .LVU264
742 0110 6568 ldr r5, [r4, #4]
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
743 .loc 1 321 19 view .LVU265
744 0112 25EA0605 bic r5, r5, r6
745 0116 6560 str r5, [r4, #4]
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
746 .loc 1 324 9 is_stmt 1 view .LVU266
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
747 .loc 1 324 13 is_stmt 0 view .LVU267
748 0118 E568 ldr r5, [r4, #12]
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
749 .loc 1 324 20 view .LVU268
750 011a 25EA0605 bic r5, r5, r6
751 011e E560 str r5, [r4, #12]
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
752 .loc 1 325 9 is_stmt 1 view .LVU269
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
753 .loc 1 325 13 is_stmt 0 view .LVU270
754 0120 A568 ldr r5, [r4, #8]
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
755 .loc 1 325 20 view .LVU271
756 0122 25EA0605 bic r5, r5, r6
757 0126 A560 str r5, [r4, #8]
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp;
758 .loc 1 328 9 is_stmt 1 view .LVU272
759 .LVL62:
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
760 .loc 1 329 9 view .LVU273
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
761 .loc 1 329 23 is_stmt 0 view .LVU274
762 0128 054E ldr r6, .L56
763 .LVL63:
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
764 .loc 1 329 23 view .LVU275
765 012a 0EF10204 add r4, lr, #2
766 012e 56F82450 ldr r5, [r6, r4, lsl #2]
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
767 .loc 1 329 40 view .LVU276
768 0132 25EA0705 bic r5, r5, r7
769 0136 46F82450 str r5, [r6, r4, lsl #2]
ARM GAS /tmp/cc1esYfs.s page 23
770 013a 6EE7 b .L37
771 .LVL64:
772 .L54:
347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
773 .loc 1 349 1 view .LVU277
774 013c F0BD pop {r4, r5, r6, r7, pc}
775 .LVL65:
776 .L52:
777 .LCFI5:
778 .cfi_def_cfa_offset 0
779 .cfi_restore 4
780 .cfi_restore 5
781 .cfi_restore 6
782 .cfi_restore 7
783 .cfi_restore 14
784 .loc 1 349 1 view .LVU278
785 013e 7047 bx lr
786 .L57:
787 .align 2
788 .L56:
789 0140 00380140 .word 1073821696
790 0144 00000240 .word 1073872896
791 0148 003C0140 .word 1073822720
792 .cfi_endproc
793 .LFE240:
795 .section .text.HAL_GPIO_ReadPin,"ax",%progbits
796 .align 1
797 .global HAL_GPIO_ReadPin
798 .syntax unified
799 .thumb
800 .thumb_func
802 HAL_GPIO_ReadPin:
803 .LVL66:
804 .LFB241:
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
ARM GAS /tmp/cc1esYfs.s page 24
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)
376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
805 .loc 1 376 1 is_stmt 1 view -0
806 .cfi_startproc
807 @ args = 0, pretend = 0, frame = 0
808 @ frame_needed = 0, uses_anonymous_args = 0
809 @ link register save eliminated.
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIO_PinState bitstatus;
810 .loc 1 377 3 view .LVU280
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));
811 .loc 1 380 3 view .LVU281
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)
812 .loc 1 382 3 view .LVU282
813 .loc 1 382 12 is_stmt 0 view .LVU283
814 0000 0369 ldr r3, [r0, #16]
815 .loc 1 382 5 view .LVU284
816 0002 1942 tst r1, r3
817 0004 01D0 beq .L60
383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET;
818 .loc 1 384 15 view .LVU285
819 0006 0120 movs r0, #1
820 .LVL67:
821 .loc 1 384 15 view .LVU286
822 0008 7047 bx lr
823 .LVL68:
824 .L60:
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;
825 .loc 1 388 15 view .LVU287
826 000a 0020 movs r0, #0
827 .LVL69:
389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return bitstatus;
828 .loc 1 390 3 is_stmt 1 view .LVU288
391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
829 .loc 1 391 1 is_stmt 0 view .LVU289
830 000c 7047 bx lr
831 .cfi_endproc
832 .LFE241:
834 .section .text.HAL_GPIO_WritePin,"ax",%progbits
835 .align 1
836 .global HAL_GPIO_WritePin
837 .syntax unified
838 .thumb
839 .thumb_func
841 HAL_GPIO_WritePin:
842 .LVL70:
ARM GAS /tmp/cc1esYfs.s page 25
843 .LFB242:
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 **** *
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 **** {
844 .loc 1 411 1 is_stmt 1 view -0
845 .cfi_startproc
846 @ args = 0, pretend = 0, frame = 0
847 @ frame_needed = 0, uses_anonymous_args = 0
848 @ 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));
849 .loc 1 413 3 view .LVU291
414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState));
850 .loc 1 414 3 view .LVU292
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)
851 .loc 1 416 3 view .LVU293
852 .loc 1 416 5 is_stmt 0 view .LVU294
853 0000 0AB1 cbz r2, .L62
417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = GPIO_Pin;
854 .loc 1 418 5 is_stmt 1 view .LVU295
855 .loc 1 418 17 is_stmt 0 view .LVU296
856 0002 8161 str r1, [r0, #24]
857 0004 7047 bx lr
858 .L62:
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;
859 .loc 1 422 5 is_stmt 1 view .LVU297
860 .loc 1 422 38 is_stmt 0 view .LVU298
861 0006 0904 lsls r1, r1, #16
862 .LVL71:
863 .loc 1 422 17 view .LVU299
864 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 **** }
865 .loc 1 424 1 view .LVU300
866 000a 7047 bx lr
ARM GAS /tmp/cc1esYfs.s page 26
867 .cfi_endproc
868 .LFE242:
870 .section .text.HAL_GPIO_TogglePin,"ax",%progbits
871 .align 1
872 .global HAL_GPIO_TogglePin
873 .syntax unified
874 .thumb
875 .thumb_func
877 HAL_GPIO_TogglePin:
878 .LVL72:
879 .LFB243:
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 **** {
880 .loc 1 434 1 is_stmt 1 view -0
881 .cfi_startproc
882 @ args = 0, pretend = 0, frame = 0
883 @ frame_needed = 0, uses_anonymous_args = 0
884 @ link register save eliminated.
435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t odr;
885 .loc 1 435 3 view .LVU302
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));
886 .loc 1 438 3 view .LVU303
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;
887 .loc 1 441 3 view .LVU304
888 .loc 1 441 7 is_stmt 0 view .LVU305
889 0000 4369 ldr r3, [r0, #20]
890 .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);
891 .loc 1 444 3 is_stmt 1 view .LVU306
892 .loc 1 444 23 is_stmt 0 view .LVU307
893 0002 01EA0302 and r2, r1, r3
894 .loc 1 444 59 view .LVU308
895 0006 21EA0301 bic r1, r1, r3
896 .LVL74:
897 .loc 1 444 51 view .LVU309
898 000a 41EA0241 orr r1, r1, r2, lsl #16
899 .loc 1 444 15 view .LVU310
900 000e 8161 str r1, [r0, #24]
445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
901 .loc 1 445 1 view .LVU311
902 0010 7047 bx lr
903 .cfi_endproc
904 .LFE243:
ARM GAS /tmp/cc1esYfs.s page 27
906 .section .text.HAL_GPIO_LockPin,"ax",%progbits
907 .align 1
908 .global HAL_GPIO_LockPin
909 .syntax unified
910 .thumb
911 .thumb_func
913 HAL_GPIO_LockPin:
914 .LVL75:
915 .LFB244:
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 **** {
916 .loc 1 459 1 is_stmt 1 view -0
917 .cfi_startproc
918 @ args = 0, pretend = 0, frame = 8
919 @ frame_needed = 0, uses_anonymous_args = 0
920 @ link register save eliminated.
921 .loc 1 459 1 is_stmt 0 view .LVU313
922 0000 82B0 sub sp, sp, #8
923 .LCFI6:
924 .cfi_def_cfa_offset 8
460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK;
925 .loc 1 460 3 is_stmt 1 view .LVU314
926 .loc 1 460 17 is_stmt 0 view .LVU315
927 0002 4FF48033 mov r3, #65536
928 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));
929 .loc 1 463 3 is_stmt 1 view .LVU316
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;
930 .loc 1 466 3 view .LVU317
931 .loc 1 466 7 is_stmt 0 view .LVU318
932 0008 019B ldr r3, [sp, #4]
933 000a 0B43 orrs r3, r3, r1
934 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;
935 .loc 1 468 3 is_stmt 1 view .LVU319
936 .loc 1 468 15 is_stmt 0 view .LVU320
937 000e 019B ldr r3, [sp, #4]
938 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;
ARM GAS /tmp/cc1esYfs.s page 28
939 .loc 1 470 3 is_stmt 1 view .LVU321
940 .loc 1 470 15 is_stmt 0 view .LVU322
941 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;
942 .loc 1 472 3 is_stmt 1 view .LVU323
943 .loc 1 472 15 is_stmt 0 view .LVU324
944 0014 019B ldr r3, [sp, #4]
945 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;
946 .loc 1 474 3 is_stmt 1 view .LVU325
947 .loc 1 474 14 is_stmt 0 view .LVU326
948 0018 C369 ldr r3, [r0, #28]
949 .loc 1 474 7 view .LVU327
950 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)
951 .loc 1 477 2 is_stmt 1 view .LVU328
952 .loc 1 477 11 is_stmt 0 view .LVU329
953 001c C369 ldr r3, [r0, #28]
954 .loc 1 477 4 view .LVU330
955 001e 13F4803F tst r3, #65536
956 0022 02D0 beq .L67
478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return HAL_OK;
957 .loc 1 479 12 view .LVU331
958 0024 0020 movs r0, #0
959 .LVL76:
960 .L66:
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 **** }
961 .loc 1 485 1 view .LVU332
962 0026 02B0 add sp, sp, #8
963 .LCFI7:
964 .cfi_remember_state
965 .cfi_def_cfa_offset 0
966 @ sp needed
967 0028 7047 bx lr
968 .LVL77:
969 .L67:
970 .LCFI8:
971 .cfi_restore_state
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
972 .loc 1 483 12 view .LVU333
973 002a 0120 movs r0, #1
974 .LVL78:
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
975 .loc 1 483 12 view .LVU334
976 002c FBE7 b .L66
977 .cfi_endproc
978 .LFE244:
ARM GAS /tmp/cc1esYfs.s page 29
980 .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits
981 .align 1
982 .weak HAL_GPIO_EXTI_Callback
983 .syntax unified
984 .thumb
985 .thumb_func
987 HAL_GPIO_EXTI_Callback:
988 .LVL79:
989 .LFB246:
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 **** {
990 .loc 1 508 1 is_stmt 1 view -0
991 .cfi_startproc
992 @ args = 0, pretend = 0, frame = 0
993 @ frame_needed = 0, uses_anonymous_args = 0
994 @ 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);
995 .loc 1 510 3 view .LVU336
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 **** }
996 .loc 1 514 1 is_stmt 0 view .LVU337
997 0000 7047 bx lr
998 .cfi_endproc
999 .LFE246:
1001 .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits
1002 .align 1
1003 .global HAL_GPIO_EXTI_IRQHandler
1004 .syntax unified
1005 .thumb
1006 .thumb_func
1008 HAL_GPIO_EXTI_IRQHandler:
1009 .LVL80:
1010 .LFB245:
ARM GAS /tmp/cc1esYfs.s page 30
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
1011 .loc 1 493 1 is_stmt 1 view -0
1012 .cfi_startproc
1013 @ args = 0, pretend = 0, frame = 0
1014 @ frame_needed = 0, uses_anonymous_args = 0
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
1015 .loc 1 493 1 is_stmt 0 view .LVU339
1016 0000 08B5 push {r3, lr}
1017 .LCFI9:
1018 .cfi_def_cfa_offset 8
1019 .cfi_offset 3, -8
1020 .cfi_offset 14, -4
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
1021 .loc 1 495 3 is_stmt 1 view .LVU340
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
1022 .loc 1 495 6 is_stmt 0 view .LVU341
1023 0002 054B ldr r3, .L74
1024 0004 5B69 ldr r3, [r3, #20]
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
1025 .loc 1 495 5 view .LVU342
1026 0006 0342 tst r3, r0
1027 0008 00D1 bne .L73
1028 .LVL81:
1029 .L70:
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
1030 .loc 1 500 1 view .LVU343
1031 000a 08BD pop {r3, pc}
1032 .LVL82:
1033 .L73:
497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
1034 .loc 1 497 5 is_stmt 1 view .LVU344
1035 000c 024B ldr r3, .L74
1036 000e 5861 str r0, [r3, #20]
498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
1037 .loc 1 498 5 view .LVU345
1038 0010 FFF7FEFF bl HAL_GPIO_EXTI_Callback
1039 .LVL83:
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
1040 .loc 1 500 1 is_stmt 0 view .LVU346
1041 0014 F9E7 b .L70
1042 .L75:
1043 0016 00BF .align 2
1044 .L74:
1045 0018 003C0140 .word 1073822720
1046 .cfi_endproc
1047 .LFE245:
1049 .text
1050 .Letext0:
1051 .file 2 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h"
1052 .file 3 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f429xx.h"
1053 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
1054 .file 5 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
1055 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h"
ARM GAS /tmp/cc1esYfs.s page 31
DEFINED SYMBOLS
*ABS*:00000000 stm32f4xx_hal_gpio.c
/tmp/cc1esYfs.s:21 .text.HAL_GPIO_Init:00000000 $t
/tmp/cc1esYfs.s:27 .text.HAL_GPIO_Init:00000000 HAL_GPIO_Init
/tmp/cc1esYfs.s:508 .text.HAL_GPIO_Init:000001f8 $d
/tmp/cc1esYfs.s:516 .text.HAL_GPIO_DeInit:00000000 $t
/tmp/cc1esYfs.s:522 .text.HAL_GPIO_DeInit:00000000 HAL_GPIO_DeInit
/tmp/cc1esYfs.s:789 .text.HAL_GPIO_DeInit:00000140 $d
/tmp/cc1esYfs.s:796 .text.HAL_GPIO_ReadPin:00000000 $t
/tmp/cc1esYfs.s:802 .text.HAL_GPIO_ReadPin:00000000 HAL_GPIO_ReadPin
/tmp/cc1esYfs.s:835 .text.HAL_GPIO_WritePin:00000000 $t
/tmp/cc1esYfs.s:841 .text.HAL_GPIO_WritePin:00000000 HAL_GPIO_WritePin
/tmp/cc1esYfs.s:871 .text.HAL_GPIO_TogglePin:00000000 $t
/tmp/cc1esYfs.s:877 .text.HAL_GPIO_TogglePin:00000000 HAL_GPIO_TogglePin
/tmp/cc1esYfs.s:907 .text.HAL_GPIO_LockPin:00000000 $t
/tmp/cc1esYfs.s:913 .text.HAL_GPIO_LockPin:00000000 HAL_GPIO_LockPin
/tmp/cc1esYfs.s:981 .text.HAL_GPIO_EXTI_Callback:00000000 $t
/tmp/cc1esYfs.s:987 .text.HAL_GPIO_EXTI_Callback:00000000 HAL_GPIO_EXTI_Callback
/tmp/cc1esYfs.s:1002 .text.HAL_GPIO_EXTI_IRQHandler:00000000 $t
/tmp/cc1esYfs.s:1008 .text.HAL_GPIO_EXTI_IRQHandler:00000000 HAL_GPIO_EXTI_IRQHandler
/tmp/cc1esYfs.s:1045 .text.HAL_GPIO_EXTI_IRQHandler:00000018 $d
NO UNDEFINED SYMBOLS