2023-05-30 18:57:16 +02:00

1820 lines
106 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/ccQLKAuM.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 "stm32f3xx_hal_exti.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c"
20 .section .text.HAL_EXTI_SetConfigLine,"ax",%progbits
21 .align 1
22 .global HAL_EXTI_SetConfigLine
23 .syntax unified
24 .thumb
25 .thumb_func
27 HAL_EXTI_SetConfigLine:
28 .LVL0:
29 .LFB130:
1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ******************************************************************************
3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @file stm32f3xx_hal_exti.c
4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @author MCD Application Team
5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief EXTI HAL module driver.
6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * functionalities of the Extended Interrupts and events controller (EXTI) peripheral:
8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * + Initialization and de-initialization functions
9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * + IO operation functions
10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *
11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim
12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ==============================================================================
13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### EXTI Peripheral features #####
14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ==============================================================================
15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** [..]
16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Each Exti line can be configured within this driver.
17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Exti line can be configured in 3 different modes
19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Interrupt
20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Event
21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Both of them
22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Configurable Exti lines can be configured with 3 different triggers
24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Rising
25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Falling
26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Both of them
27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) When set in interrupt mode, configurable Exti lines have two different
29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** interrupts pending registers which allow to distinguish which transition
ARM GAS /tmp/ccQLKAuM.s page 2
30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** occurs:
31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Rising edge pending interrupt
32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Falling
33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (+) Exti lines 0 to 15 are linked to gpio pin number 0 to 15. Gpio port can
35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** be selected through multiplexer.
36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### How to use this driver #####
38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ==============================================================================
39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** [..]
40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Configure the EXTI line using HAL_EXTI_SetConfigLine().
42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Choose the interrupt line number by setting "Line" member from
43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_ConfigTypeDef structure.
44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Configure the interrupt and/or event mode using "Mode" member from
45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_ConfigTypeDef structure.
46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) For configurable lines, configure rising and/or falling trigger
47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** "Trigger" member from EXTI_ConfigTypeDef structure.
48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) For Exti lines linked to gpio, choose gpio port using "GPIOSel"
49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** member from GPIO_InitTypeDef structure.
50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Get current Exti configuration of a dedicated line using
52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_EXTI_GetConfigLine().
53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as parameter.
54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide pointer on EXTI_ConfigTypeDef structure as second parameter.
55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Clear Exti configuration of a dedicated line using HAL_EXTI_GetConfigLine().
57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as parameter.
58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Register callback to treat Exti interrupts using HAL_EXTI_RegisterCallback().
60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide exiting handle as first parameter.
61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide which callback will be registered using one value from
62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI_CallbackIDTypeDef.
63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (++) Provide callback function pointer.
64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Get interrupt pending bit using HAL_EXTI_GetPending().
66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Clear interrupt pending bit using HAL_EXTI_GetPending().
68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** (#) Generate software interrupt using HAL_EXTI_GenerateSWI().
70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim
72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ******************************************************************************
73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @attention
74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *
75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * All rights reserved.</center></h2>
77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *
78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This software component is licensed by ST under BSD 3-Clause license,
79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * the "License"; You may not use this file except in compliance with the
80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * License. You may obtain a copy of the License at:
81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * opensource.org/licenses/BSD-3-Clause
82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *
83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ******************************************************************************
84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Includes ------------------------------------------------------------------*/
ARM GAS /tmp/ccQLKAuM.s page 3
87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #include "stm32f3xx_hal.h"
88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup STM32F3xx_HAL_Driver
90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{
91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI
94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{
95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** MISRA C:2012 deviation rule has been granted for following rule:
97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * Rule-18.1_b - Medium: Array `EXTICR' 1st subscript interval [0,7] may be out
98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * of bounds [0,3] in following API :
99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_SetConfigLine
100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_GetConfigLine
101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * HAL_EXTI_ClearConfigLine
102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #ifdef HAL_EXTI_MODULE_ENABLED
105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private typedef -----------------------------------------------------------*/
107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private defines -----------------------------------------------------------*/
108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @defgroup EXTI_Private_Constants EXTI Private Constants
109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{
110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #define EXTI_MODE_OFFSET 0x08u /* 0x20: offset between CPU IMR/EMR registers *
112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** #define EXTI_CONFIG_OFFSET 0x08u /* 0x20: offset between CPU Rising/Falling conf
113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @}
115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private macros ------------------------------------------------------------*/
118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private variables ---------------------------------------------------------*/
119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Private function prototypes -----------------------------------------------*/
120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Exported functions --------------------------------------------------------*/
121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions
123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{
124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group1
127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Configuration functions
128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *
129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim
130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ===============================================================================
131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### Configuration functions #####
132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ===============================================================================
133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim
135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{
136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Set configuration of a dedicated Exti line.
140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pExtiConfig Pointer on EXTI configuration to be set.
142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status.
143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
ARM GAS /tmp/ccQLKAuM.s page 4
144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig
145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
30 .loc 1 145 1 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 @ link register save eliminated.
146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
35 .loc 1 146 3 view .LVU1
147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval;
36 .loc 1 147 3 view .LVU2
148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos;
37 .loc 1 148 3 view .LVU3
149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline;
38 .loc 1 149 3 view .LVU4
150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset;
39 .loc 1 150 3 view .LVU5
151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */
153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL))
40 .loc 1 153 3 view .LVU6
41 .loc 1 153 6 is_stmt 0 view .LVU7
42 0000 0028 cmp r0, #0
43 0002 5ED0 beq .L12
44 .loc 1 153 23 discriminator 1 view .LVU8
45 0004 0029 cmp r1, #0
46 0006 5ED0 beq .L13
145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
47 .loc 1 145 1 view .LVU9
48 0008 F0B4 push {r4, r5, r6, r7}
49 .cfi_def_cfa_offset 16
50 .cfi_offset 4, -16
51 .cfi_offset 5, -12
52 .cfi_offset 6, -8
53 .cfi_offset 7, -4
154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR;
156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */
159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(pExtiConfig->Line));
54 .loc 1 159 3 is_stmt 1 view .LVU10
160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_MODE(pExtiConfig->Mode));
55 .loc 1 160 3 view .LVU11
161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Assign line number to handle */
163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->Line = pExtiConfig->Line;
56 .loc 1 163 3 view .LVU12
57 .loc 1 163 28 is_stmt 0 view .LVU13
58 000a 0A68 ldr r2, [r1]
59 .loc 1 163 15 view .LVU14
60 000c 0260 str r2, [r0]
164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Compute line register offset and line mask */
166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
61 .loc 1 166 3 is_stmt 1 view .LVU15
62 .loc 1 166 10 is_stmt 0 view .LVU16
ARM GAS /tmp/ccQLKAuM.s page 5
63 000e C2F30043 ubfx r3, r2, #16, #1
64 .LVL1:
167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK);
65 .loc 1 167 3 is_stmt 1 view .LVU17
66 .loc 1 167 11 is_stmt 0 view .LVU18
67 0012 02F01F04 and r4, r2, #31
68 .LVL2:
168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos);
69 .loc 1 168 3 is_stmt 1 view .LVU19
70 .loc 1 168 12 is_stmt 0 view .LVU20
71 0016 0120 movs r0, #1
72 .LVL3:
73 .loc 1 168 12 view .LVU21
74 0018 A040 lsls r0, r0, r4
75 .LVL4:
169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure triggers for configurable lines */
171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u)
76 .loc 1 171 3 is_stmt 1 view .LVU22
77 .loc 1 171 6 is_stmt 0 view .LVU23
78 001a 12F0007F tst r2, #33554432
79 001e 1BD0 beq .L3
172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_TRIGGER(pExtiConfig->Trigger));
80 .loc 1 173 5 is_stmt 1 view .LVU24
174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure rising trigger */
176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset));
81 .loc 1 176 5 view .LVU25
82 .loc 1 176 28 is_stmt 0 view .LVU26
83 0020 4FEA431C lsl ip, r3, #5
84 .loc 1 176 13 view .LVU27
85 0024 294F ldr r7, .L19
86 .LVL5:
177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
87 .loc 1 177 5 is_stmt 1 view .LVU28
88 .loc 1 177 12 is_stmt 0 view .LVU29
89 0026 5CF80750 ldr r5, [ip, r7]
90 .LVL6:
178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */
180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_RISING) != 0x00u)
91 .loc 1 180 5 is_stmt 1 view .LVU30
92 .loc 1 180 21 is_stmt 0 view .LVU31
93 002a 8E68 ldr r6, [r1, #8]
94 .loc 1 180 8 view .LVU32
95 002c 16F0010F tst r6, #1
96 0030 29D0 beq .L4
181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline;
97 .loc 1 182 7 is_stmt 1 view .LVU33
98 .loc 1 182 14 is_stmt 0 view .LVU34
99 0032 0543 orrs r5, r5, r0
100 .LVL7:
101 .L5:
183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else
ARM GAS /tmp/ccQLKAuM.s page 6
185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline;
187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store rising trigger mode */
190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
102 .loc 1 190 5 is_stmt 1 view .LVU35
103 .loc 1 190 14 is_stmt 0 view .LVU36
104 0034 4CF80750 str r5, [ip, r7]
191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure falling trigger */
193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset));
105 .loc 1 193 5 is_stmt 1 view .LVU37
106 .loc 1 193 13 is_stmt 0 view .LVU38
107 0038 254E ldr r6, .L19+4
108 .LVL8:
194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
109 .loc 1 194 5 is_stmt 1 view .LVU39
110 .loc 1 194 12 is_stmt 0 view .LVU40
111 003a 5CF80650 ldr r5, [ip, r6]
112 .LVL9:
195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */
197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Trigger & EXTI_TRIGGER_FALLING) != 0x00u)
113 .loc 1 197 5 is_stmt 1 view .LVU41
114 .loc 1 197 8 is_stmt 0 view .LVU42
115 003e 8F68 ldr r7, [r1, #8]
116 0040 17F0020F tst r7, #2
117 0044 22D0 beq .L6
198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline;
118 .loc 1 199 7 is_stmt 1 view .LVU43
119 .loc 1 199 14 is_stmt 0 view .LVU44
120 0046 0543 orrs r5, r5, r0
121 .LVL10:
122 .L7:
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else
202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline;
204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store falling trigger mode */
207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
123 .loc 1 207 5 is_stmt 1 view .LVU45
124 .loc 1 207 14 is_stmt 0 view .LVU46
125 0048 4CF80650 str r5, [ip, r6]
208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure gpio port selection in case of gpio exti line */
210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO)
126 .loc 1 210 5 is_stmt 1 view .LVU47
127 .loc 1 210 28 is_stmt 0 view .LVU48
128 004c 0D68 ldr r5, [r1]
129 .LVL11:
130 .loc 1 210 28 view .LVU49
131 004e 05F0C06C and ip, r5, #100663296
132 .LVL12:
ARM GAS /tmp/ccQLKAuM.s page 7
133 .loc 1 210 8 view .LVU50
134 0052 BCF1C06F cmp ip, #100663296
135 0056 1CD0 beq .L18
136 .LVL13:
137 .L3:
211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PORT(pExtiConfig->GPIOSel));
213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos));
214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u];
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure interrupt mode : read current mode */
223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset));
138 .loc 1 223 3 is_stmt 1 view .LVU51
139 .loc 1 223 25 is_stmt 0 view .LVU52
140 0058 5B01 lsls r3, r3, #5
141 .LVL14:
142 .loc 1 223 11 view .LVU53
143 005a 03F18042 add r2, r3, #1073741824
144 005e 02F58232 add r2, r2, #66560
145 .LVL15:
224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
146 .loc 1 224 3 is_stmt 1 view .LVU54
147 .loc 1 224 10 is_stmt 0 view .LVU55
148 0062 1468 ldr r4, [r2]
149 .LVL16:
225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */
227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_INTERRUPT) != 0x00u)
150 .loc 1 227 3 is_stmt 1 view .LVU56
151 .loc 1 227 6 is_stmt 0 view .LVU57
152 0064 4D68 ldr r5, [r1, #4]
153 0066 15F0010F tst r5, #1
154 006a 24D0 beq .L8
228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline;
155 .loc 1 229 5 is_stmt 1 view .LVU58
156 .loc 1 229 12 is_stmt 0 view .LVU59
157 006c 0443 orrs r4, r4, r0
158 .LVL17:
159 .L9:
230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else
232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline;
234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store interrupt mode */
237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
160 .loc 1 237 3 is_stmt 1 view .LVU60
161 .loc 1 237 12 is_stmt 0 view .LVU61
162 006e 1460 str r4, [r2]
ARM GAS /tmp/ccQLKAuM.s page 8
238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Configure event mode : read current mode */
240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset));
163 .loc 1 240 3 is_stmt 1 view .LVU62
164 .loc 1 240 11 is_stmt 0 view .LVU63
165 0070 184C ldr r4, .L19+8
166 .LVL18:
241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
167 .loc 1 241 3 is_stmt 1 view .LVU64
168 .loc 1 241 10 is_stmt 0 view .LVU65
169 0072 1A59 ldr r2, [r3, r4]
170 .LVL19:
242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Mask or set line */
244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Mode & EXTI_MODE_EVENT) != 0x00u)
171 .loc 1 244 3 is_stmt 1 view .LVU66
172 .loc 1 244 19 is_stmt 0 view .LVU67
173 0074 4968 ldr r1, [r1, #4]
174 .LVL20:
175 .loc 1 244 6 view .LVU68
176 0076 11F0020F tst r1, #2
177 007a 1FD0 beq .L10
245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= maskline;
178 .loc 1 246 5 is_stmt 1 view .LVU69
179 .loc 1 246 12 is_stmt 0 view .LVU70
180 007c 0243 orrs r2, r2, r0
181 .LVL21:
182 .L11:
247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else
249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~maskline;
251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store event mode */
254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
183 .loc 1 254 3 is_stmt 1 view .LVU71
184 .loc 1 254 12 is_stmt 0 view .LVU72
185 007e 1A51 str r2, [r3, r4]
255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK;
186 .loc 1 256 3 is_stmt 1 view .LVU73
187 .loc 1 256 10 is_stmt 0 view .LVU74
188 0080 0020 movs r0, #0
189 .LVL22:
257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
190 .loc 1 257 1 view .LVU75
191 0082 F0BC pop {r4, r5, r6, r7}
192 .cfi_remember_state
193 .cfi_restore 7
194 .cfi_restore 6
195 .cfi_restore 5
196 .cfi_restore 4
197 .cfi_def_cfa_offset 0
198 .LVL23:
199 .loc 1 257 1 view .LVU76
ARM GAS /tmp/ccQLKAuM.s page 9
200 0084 7047 bx lr
201 .LVL24:
202 .L4:
203 .cfi_restore_state
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
204 .loc 1 186 7 is_stmt 1 view .LVU77
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
205 .loc 1 186 14 is_stmt 0 view .LVU78
206 0086 25EA0005 bic r5, r5, r0
207 .LVL25:
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
208 .loc 1 186 14 view .LVU79
209 008a D3E7 b .L5
210 .LVL26:
211 .L6:
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
212 .loc 1 203 7 is_stmt 1 view .LVU80
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
213 .loc 1 203 14 is_stmt 0 view .LVU81
214 008c 25EA0005 bic r5, r5, r0
215 .LVL27:
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
216 .loc 1 203 14 view .LVU82
217 0090 DAE7 b .L7
218 .LVL28:
219 .L18:
212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos));
220 .loc 1 212 7 is_stmt 1 view .LVU83
213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
221 .loc 1 213 7 view .LVU84
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
222 .loc 1 215 7 view .LVU85
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
223 .loc 1 215 39 is_stmt 0 view .LVU86
224 0092 A408 lsrs r4, r4, #2
225 .LVL29:
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
226 .loc 1 215 14 view .LVU87
227 0094 104F ldr r7, .L19+12
228 0096 0234 adds r4, r4, #2
229 0098 57F82460 ldr r6, [r7, r4, lsl #2]
230 .LVL30:
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
231 .loc 1 216 7 is_stmt 1 view .LVU88
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
232 .loc 1 216 80 is_stmt 0 view .LVU89
233 009c 02F00302 and r2, r2, #3
234 .LVL31:
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
235 .loc 1 216 69 view .LVU90
236 00a0 9200 lsls r2, r2, #2
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
237 .loc 1 216 40 view .LVU91
238 00a2 0F25 movs r5, #15
239 00a4 9540 lsls r5, r5, r2
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval |= (pExtiConfig->GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
240 .loc 1 216 14 view .LVU92
ARM GAS /tmp/ccQLKAuM.s page 10
241 00a6 26EA0506 bic r6, r6, r5
242 .LVL32:
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
243 .loc 1 217 7 is_stmt 1 view .LVU93
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
244 .loc 1 217 29 is_stmt 0 view .LVU94
245 00aa CD68 ldr r5, [r1, #12]
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
246 .loc 1 217 39 view .LVU95
247 00ac 9540 lsls r5, r5, r2
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
248 .loc 1 217 14 view .LVU96
249 00ae 3543 orrs r5, r5, r6
250 .LVL33:
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
251 .loc 1 218 7 is_stmt 1 view .LVU97
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
252 .loc 1 218 37 is_stmt 0 view .LVU98
253 00b0 47F82450 str r5, [r7, r4, lsl #2]
254 00b4 D0E7 b .L3
255 .LVL34:
256 .L8:
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
257 .loc 1 233 5 is_stmt 1 view .LVU99
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
258 .loc 1 233 12 is_stmt 0 view .LVU100
259 00b6 24EA0004 bic r4, r4, r0
260 .LVL35:
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
261 .loc 1 233 12 view .LVU101
262 00ba D8E7 b .L9
263 .LVL36:
264 .L10:
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
265 .loc 1 250 5 is_stmt 1 view .LVU102
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
266 .loc 1 250 12 is_stmt 0 view .LVU103
267 00bc 22EA0002 bic r2, r2, r0
268 .LVL37:
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
269 .loc 1 250 12 view .LVU104
270 00c0 DDE7 b .L11
271 .LVL38:
272 .L12:
273 .cfi_def_cfa_offset 0
274 .cfi_restore 4
275 .cfi_restore 5
276 .cfi_restore 6
277 .cfi_restore 7
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
278 .loc 1 155 12 view .LVU105
279 00c2 0120 movs r0, #1
280 .LVL39:
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
281 .loc 1 155 12 view .LVU106
282 00c4 7047 bx lr
283 .LVL40:
ARM GAS /tmp/ccQLKAuM.s page 11
284 .L13:
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
285 .loc 1 155 12 view .LVU107
286 00c6 0120 movs r0, #1
287 .LVL41:
288 .loc 1 257 1 view .LVU108
289 00c8 7047 bx lr
290 .L20:
291 00ca 00BF .align 2
292 .L19:
293 00cc 08040140 .word 1073808392
294 00d0 0C040140 .word 1073808396
295 00d4 04040140 .word 1073808388
296 00d8 00000140 .word 1073807360
297 .cfi_endproc
298 .LFE130:
300 .section .text.HAL_EXTI_GetConfigLine,"ax",%progbits
301 .align 1
302 .global HAL_EXTI_GetConfigLine
303 .syntax unified
304 .thumb
305 .thumb_func
307 HAL_EXTI_GetConfigLine:
308 .LVL42:
309 .LFB131:
258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Get configuration of a dedicated Exti line.
261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pExtiConfig Pointer on structure to store Exti configuration.
263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status.
264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig
266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
310 .loc 1 266 1 is_stmt 1 view -0
311 .cfi_startproc
312 @ args = 0, pretend = 0, frame = 0
313 @ frame_needed = 0, uses_anonymous_args = 0
267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
314 .loc 1 267 3 view .LVU110
268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval;
315 .loc 1 268 3 view .LVU111
269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos;
316 .loc 1 269 3 view .LVU112
270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline;
317 .loc 1 270 3 view .LVU113
271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset;
318 .loc 1 271 3 view .LVU114
272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */
274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti == NULL) || (pExtiConfig == NULL))
319 .loc 1 274 3 view .LVU115
320 .loc 1 274 6 is_stmt 0 view .LVU116
321 0000 0028 cmp r0, #0
322 0002 4DD0 beq .L28
323 .loc 1 274 23 discriminator 1 view .LVU117
324 0004 0029 cmp r1, #0
ARM GAS /tmp/ccQLKAuM.s page 12
325 0006 4DD0 beq .L29
266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
326 .loc 1 266 1 view .LVU118
327 0008 10B5 push {r4, lr}
328 .cfi_def_cfa_offset 8
329 .cfi_offset 4, -8
330 .cfi_offset 14, -4
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR;
277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameter */
280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line));
331 .loc 1 280 3 is_stmt 1 view .LVU119
281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store handle line number to configuration structure */
283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Line = hexti->Line;
332 .loc 1 283 3 view .LVU120
333 .loc 1 283 28 is_stmt 0 view .LVU121
334 000a 0368 ldr r3, [r0]
335 .loc 1 283 21 view .LVU122
336 000c 0B60 str r3, [r1]
284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */
286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((pExtiConfig->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
337 .loc 1 286 3 is_stmt 1 view .LVU123
338 .loc 1 286 10 is_stmt 0 view .LVU124
339 000e C3F30040 ubfx r0, r3, #16, #1
340 .LVL43:
287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (pExtiConfig->Line & EXTI_PIN_MASK);
341 .loc 1 287 3 is_stmt 1 view .LVU125
342 .loc 1 287 11 is_stmt 0 view .LVU126
343 0012 03F01F0E and lr, r3, #31
344 .LVL44:
288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos);
345 .loc 1 288 3 is_stmt 1 view .LVU127
346 .loc 1 288 12 is_stmt 0 view .LVU128
347 0016 0122 movs r2, #1
348 0018 02FA0EF2 lsl r2, r2, lr
349 .LVL45:
289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 1] Get core mode : interrupt */
291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset));
350 .loc 1 291 3 is_stmt 1 view .LVU129
351 .loc 1 291 25 is_stmt 0 view .LVU130
352 001c 4001 lsls r0, r0, #5
353 .LVL46:
354 .loc 1 291 11 view .LVU131
355 001e 00F1804C add ip, r0, #1073741824
356 0022 0CF5823C add ip, ip, #66560
357 .LVL47:
292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
358 .loc 1 292 3 is_stmt 1 view .LVU132
359 .loc 1 292 10 is_stmt 0 view .LVU133
360 0026 DCF80040 ldr r4, [ip]
361 .LVL48:
293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
ARM GAS /tmp/ccQLKAuM.s page 13
294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if selected line is enable */
295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u)
362 .loc 1 295 3 is_stmt 1 view .LVU134
363 .loc 1 295 6 is_stmt 0 view .LVU135
364 002a 2242 tst r2, r4
365 002c 24D0 beq .L23
296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_INTERRUPT;
366 .loc 1 297 5 is_stmt 1 view .LVU136
367 .loc 1 297 23 is_stmt 0 view .LVU137
368 002e 0124 movs r4, #1
369 .LVL49:
370 .loc 1 297 23 view .LVU138
371 0030 4C60 str r4, [r1, #4]
372 .L24:
298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else
300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode = EXTI_MODE_NONE;
302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get event mode */
305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset));
373 .loc 1 305 3 is_stmt 1 view .LVU139
374 .loc 1 305 11 is_stmt 0 view .LVU140
375 0032 1E4C ldr r4, .L37
376 .LVL50:
306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
377 .loc 1 306 3 is_stmt 1 view .LVU141
378 .loc 1 306 10 is_stmt 0 view .LVU142
379 0034 0459 ldr r4, [r0, r4]
380 .LVL51:
307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if selected line is enable */
309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u)
381 .loc 1 309 3 is_stmt 1 view .LVU143
382 .loc 1 309 6 is_stmt 0 view .LVU144
383 0036 2242 tst r2, r4
384 0038 03D0 beq .L25
310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Mode |= EXTI_MODE_EVENT;
385 .loc 1 311 5 is_stmt 1 view .LVU145
386 .loc 1 311 16 is_stmt 0 view .LVU146
387 003a 4C68 ldr r4, [r1, #4]
388 .LVL52:
389 .loc 1 311 23 view .LVU147
390 003c 44F00204 orr r4, r4, #2
391 0040 4C60 str r4, [r1, #4]
392 .L25:
312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get default Trigger and GPIOSel configuration */
315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_NONE;
393 .loc 1 315 3 is_stmt 1 view .LVU148
394 .loc 1 315 24 is_stmt 0 view .LVU149
395 0042 0024 movs r4, #0
396 0044 8C60 str r4, [r1, #8]
ARM GAS /tmp/ccQLKAuM.s page 14
316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = 0x00u;
397 .loc 1 316 3 is_stmt 1 view .LVU150
398 .loc 1 316 24 is_stmt 0 view .LVU151
399 0046 CC60 str r4, [r1, #12]
317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 2] Get trigger for configurable lines : rising */
319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_CONFIG) != 0x00u)
400 .loc 1 319 3 is_stmt 1 view .LVU152
401 .loc 1 319 6 is_stmt 0 view .LVU153
402 0048 13F0007F tst r3, #33554432
403 004c 2CD0 beq .L30
320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset));
404 .loc 1 321 5 is_stmt 1 view .LVU154
405 .loc 1 321 13 is_stmt 0 view .LVU155
406 004e 184C ldr r4, .L37+4
407 .LVL53:
322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
408 .loc 1 322 5 is_stmt 1 view .LVU156
409 .loc 1 322 12 is_stmt 0 view .LVU157
410 0050 0459 ldr r4, [r0, r4]
411 .LVL54:
323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if configuration of selected line is enable */
325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u)
412 .loc 1 325 5 is_stmt 1 view .LVU158
413 .loc 1 325 8 is_stmt 0 view .LVU159
414 0052 2242 tst r2, r4
415 0054 01D0 beq .L26
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger = EXTI_TRIGGER_RISING;
416 .loc 1 327 7 is_stmt 1 view .LVU160
417 .loc 1 327 28 is_stmt 0 view .LVU161
418 0056 0124 movs r4, #1
419 .LVL55:
420 .loc 1 327 28 view .LVU162
421 0058 8C60 str r4, [r1, #8]
422 .L26:
328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get falling configuration */
331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset));
423 .loc 1 331 5 is_stmt 1 view .LVU163
424 .loc 1 331 13 is_stmt 0 view .LVU164
425 005a 164C ldr r4, .L37+8
426 .LVL56:
332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = *regaddr;
427 .loc 1 332 5 is_stmt 1 view .LVU165
428 .loc 1 332 12 is_stmt 0 view .LVU166
429 005c 0059 ldr r0, [r0, r4]
430 .LVL57:
333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check if configuration of selected line is enable */
335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((regval & maskline) != 0x00u)
431 .loc 1 335 5 is_stmt 1 view .LVU167
432 .loc 1 335 8 is_stmt 0 view .LVU168
433 005e 0242 tst r2, r0
ARM GAS /tmp/ccQLKAuM.s page 15
434 0060 03D0 beq .L27
336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->Trigger |= EXTI_TRIGGER_FALLING;
435 .loc 1 337 7 is_stmt 1 view .LVU169
436 .loc 1 337 18 is_stmt 0 view .LVU170
437 0062 8A68 ldr r2, [r1, #8]
438 .LVL58:
439 .loc 1 337 28 view .LVU171
440 0064 42F00202 orr r2, r2, #2
441 0068 8A60 str r2, [r1, #8]
442 .L27:
338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */
341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((pExtiConfig->Line & EXTI_GPIO) == EXTI_GPIO)
443 .loc 1 341 5 is_stmt 1 view .LVU172
444 .loc 1 341 28 is_stmt 0 view .LVU173
445 006a 03F0C063 and r3, r3, #100663296
446 .LVL59:
447 .loc 1 341 8 view .LVU174
448 006e B3F1C06F cmp r3, #100663296
449 0072 04D0 beq .L36
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos));
344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u];
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >>
347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK;
450 .loc 1 350 10 view .LVU175
451 0074 0020 movs r0, #0
452 .LVL60:
453 .loc 1 350 10 view .LVU176
454 0076 18E0 b .L22
455 .LVL61:
456 .L23:
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
457 .loc 1 301 5 is_stmt 1 view .LVU177
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
458 .loc 1 301 23 is_stmt 0 view .LVU178
459 0078 0024 movs r4, #0
460 .LVL62:
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
461 .loc 1 301 23 view .LVU179
462 007a 4C60 str r4, [r1, #4]
463 007c D9E7 b .L24
464 .LVL63:
465 .L36:
343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
466 .loc 1 343 7 is_stmt 1 view .LVU180
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >>
467 .loc 1 345 7 view .LVU181
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >>
468 .loc 1 345 39 is_stmt 0 view .LVU182
469 007e 4FEA9E03 lsr r3, lr, #2
ARM GAS /tmp/ccQLKAuM.s page 16
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >>
470 .loc 1 345 14 view .LVU183
471 0082 0233 adds r3, r3, #2
472 0084 0C4A ldr r2, .L37+12
473 0086 52F82320 ldr r2, [r2, r3, lsl #2]
474 .LVL64:
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
475 .loc 1 346 7 is_stmt 1 view .LVU184
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
476 .loc 1 346 75 is_stmt 0 view .LVU185
477 008a 6FEA0E03 mvn r3, lr
478 008e 03F00303 and r3, r3, #3
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
479 .loc 1 346 68 view .LVU186
480 0092 9B00 lsls r3, r3, #2
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
481 .loc 1 346 39 view .LVU187
482 0094 02FA03F3 lsl r3, r2, r3
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
483 .loc 1 346 98 view .LVU188
484 0098 1B0E lsrs r3, r3, #24
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
485 .loc 1 346 28 view .LVU189
486 009a CB60 str r3, [r1, #12]
487 .loc 1 350 10 view .LVU190
488 009c 0020 movs r0, #0
489 009e 04E0 b .L22
490 .LVL65:
491 .L28:
492 .cfi_def_cfa_offset 0
493 .cfi_restore 4
494 .cfi_restore 14
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
495 .loc 1 276 12 view .LVU191
496 00a0 0120 movs r0, #1
497 .LVL66:
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
498 .loc 1 276 12 view .LVU192
499 00a2 7047 bx lr
500 .LVL67:
501 .L29:
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
502 .loc 1 276 12 view .LVU193
503 00a4 0120 movs r0, #1
504 .LVL68:
351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
505 .loc 1 351 1 view .LVU194
506 00a6 7047 bx lr
507 .LVL69:
508 .L30:
509 .cfi_def_cfa_offset 8
510 .cfi_offset 4, -8
511 .cfi_offset 14, -4
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
512 .loc 1 350 10 view .LVU195
513 00a8 0020 movs r0, #0
514 .LVL70:
ARM GAS /tmp/ccQLKAuM.s page 17
515 .L22:
516 .loc 1 351 1 view .LVU196
517 00aa 10BD pop {r4, pc}
518 .L38:
519 .align 2
520 .L37:
521 00ac 04040140 .word 1073808388
522 00b0 08040140 .word 1073808392
523 00b4 0C040140 .word 1073808396
524 00b8 00000140 .word 1073807360
525 .cfi_endproc
526 .LFE131:
528 .section .text.HAL_EXTI_ClearConfigLine,"ax",%progbits
529 .align 1
530 .global HAL_EXTI_ClearConfigLine
531 .syntax unified
532 .thumb
533 .thumb_func
535 HAL_EXTI_ClearConfigLine:
536 .LVL71:
537 .LFB132:
352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Clear whole configuration of a dedicated Exti line.
355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status.
357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti)
359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
538 .loc 1 359 1 is_stmt 1 view -0
539 .cfi_startproc
540 @ args = 0, pretend = 0, frame = 0
541 @ frame_needed = 0, uses_anonymous_args = 0
360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
542 .loc 1 360 3 view .LVU198
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval;
543 .loc 1 361 3 view .LVU199
362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos;
544 .loc 1 362 3 view .LVU200
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline;
545 .loc 1 363 3 view .LVU201
364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset;
546 .loc 1 364 3 view .LVU202
365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */
367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti == NULL)
547 .loc 1 367 3 view .LVU203
548 .loc 1 367 6 is_stmt 0 view .LVU204
549 0000 0028 cmp r0, #0
550 0002 40D0 beq .L41
359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
551 .loc 1 359 1 view .LVU205
552 0004 30B5 push {r4, r5, lr}
553 .cfi_def_cfa_offset 12
554 .cfi_offset 4, -12
555 .cfi_offset 5, -8
556 .cfi_offset 14, -4
ARM GAS /tmp/ccQLKAuM.s page 18
557 0006 8446 mov ip, r0
368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR;
370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameter */
373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line));
558 .loc 1 373 3 is_stmt 1 view .LVU206
374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
559 .loc 1 376 3 view .LVU207
560 .loc 1 376 19 is_stmt 0 view .LVU208
561 0008 0468 ldr r4, [r0]
562 .loc 1 376 10 view .LVU209
563 000a C4F30043 ubfx r3, r4, #16, #1
564 .LVL72:
377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK);
565 .loc 1 377 3 is_stmt 1 view .LVU210
566 .loc 1 377 11 is_stmt 0 view .LVU211
567 000e 04F01F0E and lr, r4, #31
568 .LVL73:
378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos);
569 .loc 1 378 3 is_stmt 1 view .LVU212
570 .loc 1 378 12 is_stmt 0 view .LVU213
571 0012 0122 movs r2, #1
572 0014 02FA0EF2 lsl r2, r2, lr
573 .LVL74:
379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 1] Clear interrupt mode */
381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->IMR + (EXTI_MODE_OFFSET * offset));
574 .loc 1 381 3 is_stmt 1 view .LVU214
575 .loc 1 381 25 is_stmt 0 view .LVU215
576 0018 5B01 lsls r3, r3, #5
577 .LVL75:
578 .loc 1 381 11 view .LVU216
579 001a 03F18041 add r1, r3, #1073741824
580 001e 01F58231 add r1, r1, #66560
581 .LVL76:
382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline);
582 .loc 1 382 3 is_stmt 1 view .LVU217
583 .loc 1 382 13 is_stmt 0 view .LVU218
584 0022 0868 ldr r0, [r1]
585 .LVL77:
586 .loc 1 382 24 view .LVU219
587 0024 D543 mvns r5, r2
588 .loc 1 382 10 view .LVU220
589 0026 20EA0200 bic r0, r0, r2
590 .LVL78:
383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
591 .loc 1 383 3 is_stmt 1 view .LVU221
592 .loc 1 383 12 is_stmt 0 view .LVU222
593 002a 0860 str r0, [r1]
384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 2] Clear event mode */
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->EMR + (EXTI_MODE_OFFSET * offset));
594 .loc 1 386 3 is_stmt 1 view .LVU223
ARM GAS /tmp/ccQLKAuM.s page 19
595 .loc 1 386 11 is_stmt 0 view .LVU224
596 002c 1848 ldr r0, .L49
597 .LVL79:
387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline);
598 .loc 1 387 3 is_stmt 1 view .LVU225
599 .loc 1 387 13 is_stmt 0 view .LVU226
600 002e 1958 ldr r1, [r3, r0]
601 .LVL80:
602 .loc 1 387 10 view .LVU227
603 0030 21EA0202 bic r2, r1, r2
604 .LVL81:
388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
605 .loc 1 388 3 is_stmt 1 view .LVU228
606 .loc 1 388 12 is_stmt 0 view .LVU229
607 0034 1A50 str r2, [r3, r0]
389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* 3] Clear triggers in case of configurable lines */
391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti->Line & EXTI_CONFIG) != 0x00u)
608 .loc 1 391 3 is_stmt 1 view .LVU230
609 .loc 1 391 13 is_stmt 0 view .LVU231
610 0036 DCF80020 ldr r2, [ip]
611 .LVL82:
612 .loc 1 391 6 view .LVU232
613 003a 12F0007F tst r2, #33554432
614 003e 24D0 beq .L42
392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->RTSR + (EXTI_CONFIG_OFFSET * offset));
615 .loc 1 393 5 is_stmt 1 view .LVU233
616 .loc 1 393 13 is_stmt 0 view .LVU234
617 0040 1449 ldr r1, .L49+4
618 .LVL83:
394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline);
619 .loc 1 394 5 is_stmt 1 view .LVU235
620 .loc 1 394 15 is_stmt 0 view .LVU236
621 0042 5A58 ldr r2, [r3, r1]
622 .loc 1 394 12 view .LVU237
623 0044 2A40 ands r2, r2, r5
624 .LVL84:
395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
625 .loc 1 395 5 is_stmt 1 view .LVU238
626 .loc 1 395 14 is_stmt 0 view .LVU239
627 0046 5A50 str r2, [r3, r1]
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->FTSR + (EXTI_CONFIG_OFFSET * offset));
628 .loc 1 397 5 is_stmt 1 view .LVU240
629 .loc 1 397 13 is_stmt 0 view .LVU241
630 0048 134A ldr r2, .L49+8
631 .LVL85:
398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & ~maskline);
632 .loc 1 398 5 is_stmt 1 view .LVU242
633 .loc 1 398 15 is_stmt 0 view .LVU243
634 004a 9958 ldr r1, [r3, r2]
635 .LVL86:
636 .loc 1 398 12 view .LVU244
637 004c 0D40 ands r5, r5, r1
638 .LVL87:
399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = regval;
ARM GAS /tmp/ccQLKAuM.s page 20
639 .loc 1 399 5 is_stmt 1 view .LVU245
640 .loc 1 399 14 is_stmt 0 view .LVU246
641 004e 9D50 str r5, [r3, r2]
400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get Gpio port selection for gpio lines */
402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if ((hexti->Line & EXTI_GPIO) == EXTI_GPIO)
642 .loc 1 402 5 is_stmt 1 view .LVU247
643 .loc 1 402 15 is_stmt 0 view .LVU248
644 0050 DCF80030 ldr r3, [ip]
645 .LVL88:
646 .loc 1 402 22 view .LVU249
647 0054 03F0C063 and r3, r3, #100663296
648 .loc 1 402 8 view .LVU250
649 0058 B3F1C06F cmp r3, #100663296
650 005c 01D0 beq .L48
403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_GPIO_PIN(linepos));
405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = SYSCFG->EXTICR[linepos >> 2u];
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK;
651 .loc 1 412 10 view .LVU251
652 005e 0020 movs r0, #0
653 0060 14E0 b .L40
654 .L48:
404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
655 .loc 1 404 7 is_stmt 1 view .LVU252
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
656 .loc 1 406 7 view .LVU253
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
657 .loc 1 406 39 is_stmt 0 view .LVU254
658 0062 4FEA9E0E lsr lr, lr, #2
659 .LVL89:
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
660 .loc 1 406 14 view .LVU255
661 0066 0D49 ldr r1, .L49+12
662 0068 0EF1020E add lr, lr, #2
663 006c 51F82E30 ldr r3, [r1, lr, lsl #2]
664 .LVL90:
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
665 .loc 1 407 7 is_stmt 1 view .LVU256
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
666 .loc 1 407 80 is_stmt 0 view .LVU257
667 0070 04F00304 and r4, r4, #3
668 .LVL91:
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
669 .loc 1 407 69 view .LVU258
670 0074 A400 lsls r4, r4, #2
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
671 .loc 1 407 40 view .LVU259
672 0076 0F22 movs r2, #15
673 0078 A240 lsls r2, r2, r4
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** SYSCFG->EXTICR[linepos >> 2u] = regval;
ARM GAS /tmp/ccQLKAuM.s page 21
674 .loc 1 407 14 view .LVU260
675 007a 23EA0203 bic r3, r3, r2
676 .LVL92:
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
677 .loc 1 408 7 is_stmt 1 view .LVU261
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
678 .loc 1 408 37 is_stmt 0 view .LVU262
679 007e 41F82E30 str r3, [r1, lr, lsl #2]
680 .loc 1 412 10 view .LVU263
681 0082 0020 movs r0, #0
682 0084 02E0 b .L40
683 .LVL93:
684 .L41:
685 .cfi_def_cfa_offset 0
686 .cfi_restore 4
687 .cfi_restore 5
688 .cfi_restore 14
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
689 .loc 1 369 12 view .LVU264
690 0086 0120 movs r0, #1
691 .LVL94:
413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
692 .loc 1 413 1 view .LVU265
693 0088 7047 bx lr
694 .LVL95:
695 .L42:
696 .cfi_def_cfa_offset 12
697 .cfi_offset 4, -12
698 .cfi_offset 5, -8
699 .cfi_offset 14, -4
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
700 .loc 1 412 10 view .LVU266
701 008a 0020 movs r0, #0
702 .LVL96:
703 .L40:
704 .loc 1 413 1 view .LVU267
705 008c 30BD pop {r4, r5, pc}
706 .L50:
707 008e 00BF .align 2
708 .L49:
709 0090 04040140 .word 1073808388
710 0094 08040140 .word 1073808392
711 0098 0C040140 .word 1073808396
712 009c 00000140 .word 1073807360
713 .cfi_endproc
714 .LFE132:
716 .section .text.HAL_EXTI_RegisterCallback,"ax",%progbits
717 .align 1
718 .global HAL_EXTI_RegisterCallback
719 .syntax unified
720 .thumb
721 .thumb_func
723 HAL_EXTI_RegisterCallback:
724 .LVL97:
725 .LFB133:
414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
ARM GAS /tmp/ccQLKAuM.s page 22
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Register callback for a dedicated Exti line.
417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param CallbackID User callback identifier.
419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of @arg @ref EXTI_CallbackIDTypeDef values.
420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param pPendingCbfn function pointer to be stored as callback.
421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status.
422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef Callb
424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
726 .loc 1 424 1 is_stmt 1 view -0
727 .cfi_startproc
728 @ args = 0, pretend = 0, frame = 0
729 @ frame_needed = 0, uses_anonymous_args = 0
730 @ link register save eliminated.
731 .loc 1 424 1 is_stmt 0 view .LVU269
732 0000 0346 mov r3, r0
425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef status = HAL_OK;
733 .loc 1 425 3 is_stmt 1 view .LVU270
734 .LVL98:
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** switch (CallbackID)
735 .loc 1 427 3 view .LVU271
736 0002 0846 mov r0, r1
737 .LVL99:
738 .loc 1 427 3 is_stmt 0 view .LVU272
739 0004 09B9 cbnz r1, .L53
428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** case HAL_EXTI_COMMON_CB_ID:
430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->PendingCallback = pPendingCbfn;
740 .loc 1 430 7 is_stmt 1 view .LVU273
741 .loc 1 430 30 is_stmt 0 view .LVU274
742 0006 5A60 str r2, [r3, #4]
431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** break;
743 .loc 1 431 7 is_stmt 1 view .LVU275
744 0008 7047 bx lr
745 .L53:
432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** default:
434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** status = HAL_ERROR;
746 .loc 1 434 14 is_stmt 0 view .LVU276
747 000a 0120 movs r0, #1
748 .LVL100:
435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** break;
436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return status;
749 .loc 1 438 3 is_stmt 1 view .LVU277
439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
750 .loc 1 439 1 is_stmt 0 view .LVU278
751 000c 7047 bx lr
752 .cfi_endproc
753 .LFE133:
755 .section .text.HAL_EXTI_GetHandle,"ax",%progbits
756 .align 1
757 .global HAL_EXTI_GetHandle
758 .syntax unified
759 .thumb
ARM GAS /tmp/ccQLKAuM.s page 23
760 .thumb_func
762 HAL_EXTI_GetHandle:
763 .LVL101:
764 .LFB134:
440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Store line number as handle private field.
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param ExtiLine Exti line number.
445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be from 0 to @ref EXTI_LINE_NB.
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval HAL Status.
447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine)
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
765 .loc 1 449 1 is_stmt 1 view -0
766 .cfi_startproc
767 @ args = 0, pretend = 0, frame = 0
768 @ frame_needed = 0, uses_anonymous_args = 0
769 @ link register save eliminated.
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check the parameters */
451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(ExtiLine));
770 .loc 1 451 3 view .LVU280
452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check null pointer */
454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti == NULL)
771 .loc 1 454 3 view .LVU281
772 .loc 1 454 6 is_stmt 0 view .LVU282
773 0000 10B1 cbz r0, .L56
455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_ERROR;
457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** else
459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Store line number as handle private field */
461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->Line = ExtiLine;
774 .loc 1 461 5 is_stmt 1 view .LVU283
775 .loc 1 461 17 is_stmt 0 view .LVU284
776 0002 0160 str r1, [r0]
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return HAL_OK;
777 .loc 1 463 5 is_stmt 1 view .LVU285
778 .loc 1 463 12 is_stmt 0 view .LVU286
779 0004 0020 movs r0, #0
780 .LVL102:
781 .loc 1 463 12 view .LVU287
782 0006 7047 bx lr
783 .LVL103:
784 .L56:
456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
785 .loc 1 456 12 view .LVU288
786 0008 0120 movs r0, #1
787 .LVL104:
464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
788 .loc 1 465 1 view .LVU289
789 000a 7047 bx lr
790 .cfi_endproc
ARM GAS /tmp/ccQLKAuM.s page 24
791 .LFE134:
793 .section .text.HAL_EXTI_IRQHandler,"ax",%progbits
794 .align 1
795 .global HAL_EXTI_IRQHandler
796 .syntax unified
797 .thumb
798 .thumb_func
800 HAL_EXTI_IRQHandler:
801 .LVL105:
802 .LFB135:
466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @}
469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /** @addtogroup EXTI_Exported_Functions_Group2
472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief EXTI IO functions.
473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *
474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @verbatim
475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ===============================================================================
476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ##### IO operation functions #####
477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** ===============================================================================
478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** @endverbatim
480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @{
481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Handle EXTI interrupt request.
485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval none.
487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti)
489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
803 .loc 1 489 1 is_stmt 1 view -0
804 .cfi_startproc
805 @ args = 0, pretend = 0, frame = 0
806 @ frame_needed = 0, uses_anonymous_args = 0
807 .loc 1 489 1 is_stmt 0 view .LVU291
808 0000 08B5 push {r3, lr}
809 .cfi_def_cfa_offset 8
810 .cfi_offset 3, -8
811 .cfi_offset 14, -4
490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
812 .loc 1 490 3 is_stmt 1 view .LVU292
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval;
813 .loc 1 491 3 view .LVU293
492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline;
814 .loc 1 492 3 view .LVU294
493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset;
815 .loc 1 493 3 view .LVU295
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Compute line register offset and line mask */
496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
816 .loc 1 496 3 view .LVU296
817 .loc 1 496 19 is_stmt 0 view .LVU297
818 0002 0368 ldr r3, [r0]
ARM GAS /tmp/ccQLKAuM.s page 25
819 .loc 1 496 10 view .LVU298
820 0004 C3F30041 ubfx r1, r3, #16, #1
821 .LVL106:
497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK));
822 .loc 1 497 3 is_stmt 1 view .LVU299
823 .loc 1 497 35 is_stmt 0 view .LVU300
824 0008 03F01F03 and r3, r3, #31
825 .loc 1 497 12 view .LVU301
826 000c 0122 movs r2, #1
827 000e 02FA03F3 lsl r3, r2, r3
828 .LVL107:
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */
500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset));
829 .loc 1 500 3 is_stmt 1 view .LVU302
830 .loc 1 500 24 is_stmt 0 view .LVU303
831 0012 4A01 lsls r2, r1, #5
832 .loc 1 500 11 view .LVU304
833 0014 0449 ldr r1, .L60
834 .LVL108:
501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = (*regaddr & maskline);
835 .loc 1 501 3 is_stmt 1 view .LVU305
836 .loc 1 501 13 is_stmt 0 view .LVU306
837 0016 5258 ldr r2, [r2, r1]
838 .LVL109:
502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (regval != 0x00u)
839 .loc 1 503 3 is_stmt 1 view .LVU307
840 .loc 1 503 6 is_stmt 0 view .LVU308
841 0018 1A42 tst r2, r3
842 001a 04D0 beq .L57
504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Clear pending bit */
506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** EXTI->PR = maskline;
843 .loc 1 506 5 is_stmt 1 view .LVU309
844 .loc 1 506 14 is_stmt 0 view .LVU310
845 001c 034A ldr r2, .L60+4
846 .LVL110:
847 .loc 1 506 14 view .LVU311
848 001e 5361 str r3, [r2, #20]
849 .LVL111:
507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Call callback */
509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** if (hexti->PendingCallback != NULL)
850 .loc 1 509 5 is_stmt 1 view .LVU312
851 .loc 1 509 14 is_stmt 0 view .LVU313
852 0020 4368 ldr r3, [r0, #4]
853 .LVL112:
854 .loc 1 509 8 view .LVU314
855 0022 03B1 cbz r3, .L57
510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** hexti->PendingCallback();
856 .loc 1 511 7 is_stmt 1 view .LVU315
857 0024 9847 blx r3
858 .LVL113:
859 .L57:
512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
ARM GAS /tmp/ccQLKAuM.s page 26
513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
860 .loc 1 514 1 is_stmt 0 view .LVU316
861 0026 08BD pop {r3, pc}
862 .L61:
863 .align 2
864 .L60:
865 0028 14040140 .word 1073808404
866 002c 00040140 .word 1073808384
867 .cfi_endproc
868 .LFE135:
870 .section .text.HAL_EXTI_GetPending,"ax",%progbits
871 .align 1
872 .global HAL_EXTI_GetPending
873 .syntax unified
874 .thumb
875 .thumb_func
877 HAL_EXTI_GetPending:
878 .LVL114:
879 .LFB136:
515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Get interrupt pending bit of a dedicated line.
518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param Edge Specify which pending edge as to be checked.
520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of the following values:
521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING
522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter is kept for compatibility with other series.
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval 1 if interrupt is pending else 0.
524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge)
526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
880 .loc 1 526 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.
527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
885 .loc 1 527 3 view .LVU318
528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t regval;
886 .loc 1 528 3 view .LVU319
529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t linepos;
887 .loc 1 529 3 view .LVU320
530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline;
888 .loc 1 530 3 view .LVU321
531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset;
889 .loc 1 531 3 view .LVU322
532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */
534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line));
890 .loc 1 534 3 view .LVU323
535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line));
891 .loc 1 535 3 view .LVU324
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge));
892 .loc 1 536 3 view .LVU325
537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */
ARM GAS /tmp/ccQLKAuM.s page 27
539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
893 .loc 1 539 3 view .LVU326
894 .loc 1 539 19 is_stmt 0 view .LVU327
895 0000 0368 ldr r3, [r0]
896 .loc 1 539 10 view .LVU328
897 0002 C3F30041 ubfx r1, r3, #16, #1
898 .LVL115:
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** linepos = (hexti->Line & EXTI_PIN_MASK);
899 .loc 1 540 3 is_stmt 1 view .LVU329
900 .loc 1 540 11 is_stmt 0 view .LVU330
901 0006 03F01F03 and r3, r3, #31
902 .LVL116:
541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << linepos);
903 .loc 1 541 3 is_stmt 1 view .LVU331
904 .loc 1 541 12 is_stmt 0 view .LVU332
905 000a 0122 movs r2, #1
906 000c 9A40 lsls r2, r2, r3
907 .LVL117:
542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */
544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset));
908 .loc 1 544 3 is_stmt 1 view .LVU333
909 .loc 1 544 24 is_stmt 0 view .LVU334
910 000e 4901 lsls r1, r1, #5
911 .LVL118:
912 .loc 1 544 11 view .LVU335
913 0010 0248 ldr r0, .L63
914 .LVL119:
545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* return 1 if bit is set else 0 */
546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regval = ((*regaddr & maskline) >> linepos);
915 .loc 1 546 3 is_stmt 1 view .LVU336
916 .loc 1 546 14 is_stmt 0 view .LVU337
917 0012 0858 ldr r0, [r1, r0]
918 .LVL120:
919 .loc 1 546 23 view .LVU338
920 0014 1040 ands r0, r0, r2
921 .LVL121:
547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** return regval;
922 .loc 1 547 3 is_stmt 1 view .LVU339
548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
923 .loc 1 548 1 is_stmt 0 view .LVU340
924 0016 D840 lsrs r0, r0, r3
925 .LVL122:
926 .loc 1 548 1 view .LVU341
927 0018 7047 bx lr
928 .L64:
929 001a 00BF .align 2
930 .L63:
931 001c 14040140 .word 1073808404
932 .cfi_endproc
933 .LFE136:
935 .section .text.HAL_EXTI_ClearPending,"ax",%progbits
936 .align 1
937 .global HAL_EXTI_ClearPending
938 .syntax unified
939 .thumb
940 .thumb_func
ARM GAS /tmp/ccQLKAuM.s page 28
942 HAL_EXTI_ClearPending:
943 .LVL123:
944 .LFB137:
549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Clear interrupt pending bit of a dedicated line.
552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param Edge Specify which pending edge as to be clear.
554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter can be one of the following values:
555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @arg @ref EXTI_TRIGGER_RISING_FALLING
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * This parameter is kept for compatibility with other series.
557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval None.
558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge)
560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
945 .loc 1 560 1 is_stmt 1 view -0
946 .cfi_startproc
947 @ args = 0, pretend = 0, frame = 0
948 @ frame_needed = 0, uses_anonymous_args = 0
949 @ link register save eliminated.
561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
950 .loc 1 561 3 view .LVU343
562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline;
951 .loc 1 562 3 view .LVU344
563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset;
952 .loc 1 563 3 view .LVU345
564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */
566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line));
953 .loc 1 566 3 view .LVU346
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line));
954 .loc 1 567 3 view .LVU347
568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_PENDING_EDGE(Edge));
955 .loc 1 568 3 view .LVU348
569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
956 .loc 1 571 3 view .LVU349
957 .loc 1 571 19 is_stmt 0 view .LVU350
958 0000 0368 ldr r3, [r0]
959 .loc 1 571 10 view .LVU351
960 0002 C3F30042 ubfx r2, r3, #16, #1
961 .LVL124:
572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK));
962 .loc 1 572 3 is_stmt 1 view .LVU352
963 .loc 1 572 35 is_stmt 0 view .LVU353
964 0006 03F01F03 and r3, r3, #31
965 .loc 1 572 12 view .LVU354
966 000a 0121 movs r1, #1
967 .LVL125:
968 .loc 1 572 12 view .LVU355
969 000c 9940 lsls r1, r1, r3
970 .LVL126:
573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Get pending bit */
575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->PR + (EXTI_CONFIG_OFFSET * offset));
971 .loc 1 575 3 is_stmt 1 view .LVU356
ARM GAS /tmp/ccQLKAuM.s page 29
972 .loc 1 575 24 is_stmt 0 view .LVU357
973 000e 5301 lsls r3, r2, #5
974 .loc 1 575 11 view .LVU358
975 0010 014A ldr r2, .L66
976 .LVL127:
576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Clear Pending bit */
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = maskline;
977 .loc 1 578 3 is_stmt 1 view .LVU359
978 .loc 1 578 12 is_stmt 0 view .LVU360
979 0012 9950 str r1, [r3, r2]
980 .LVL128:
579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
981 .loc 1 579 1 view .LVU361
982 0014 7047 bx lr
983 .L67:
984 0016 00BF .align 2
985 .L66:
986 0018 14040140 .word 1073808404
987 .cfi_endproc
988 .LFE137:
990 .section .text.HAL_EXTI_GenerateSWI,"ax",%progbits
991 .align 1
992 .global HAL_EXTI_GenerateSWI
993 .syntax unified
994 .thumb
995 .thumb_func
997 HAL_EXTI_GenerateSWI:
998 .LVL129:
999 .LFB138:
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /**
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @brief Generate a software interrupt for a dedicated line.
583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @param hexti Exti handle.
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** * @retval None.
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** */
586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti)
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** {
1000 .loc 1 587 1 is_stmt 1 view -0
1001 .cfi_startproc
1002 @ args = 0, pretend = 0, frame = 0
1003 @ frame_needed = 0, uses_anonymous_args = 0
1004 @ link register save eliminated.
588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** __IO uint32_t *regaddr;
1005 .loc 1 588 3 view .LVU363
589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t maskline;
1006 .loc 1 589 3 view .LVU364
590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** uint32_t offset;
1007 .loc 1 590 3 view .LVU365
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* Check parameters */
593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_LINE(hexti->Line));
1008 .loc 1 593 3 view .LVU366
594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** assert_param(IS_EXTI_CONFIG_LINE(hexti->Line));
1009 .loc 1 594 3 view .LVU367
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** /* compute line register offset and line mask */
ARM GAS /tmp/ccQLKAuM.s page 30
597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** offset = ((hexti->Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
1010 .loc 1 597 3 view .LVU368
1011 .loc 1 597 19 is_stmt 0 view .LVU369
1012 0000 0368 ldr r3, [r0]
1013 .loc 1 597 10 view .LVU370
1014 0002 C3F30042 ubfx r2, r3, #16, #1
1015 .LVL130:
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** maskline = (1uL << (hexti->Line & EXTI_PIN_MASK));
1016 .loc 1 598 3 is_stmt 1 view .LVU371
1017 .loc 1 598 35 is_stmt 0 view .LVU372
1018 0006 03F01F03 and r3, r3, #31
1019 .loc 1 598 12 view .LVU373
1020 000a 0121 movs r1, #1
1021 000c 9940 lsls r1, r1, r3
1022 .LVL131:
599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c ****
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** regaddr = (&EXTI->SWIER + (EXTI_CONFIG_OFFSET * offset));
1023 .loc 1 600 3 is_stmt 1 view .LVU374
1024 .loc 1 600 27 is_stmt 0 view .LVU375
1025 000e 5301 lsls r3, r2, #5
1026 .loc 1 600 11 view .LVU376
1027 0010 014A ldr r2, .L69
1028 .LVL132:
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** *regaddr = maskline;
1029 .loc 1 601 3 is_stmt 1 view .LVU377
1030 .loc 1 601 12 is_stmt 0 view .LVU378
1031 0012 9950 str r1, [r3, r2]
1032 .LVL133:
602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_exti.c **** }
1033 .loc 1 602 1 view .LVU379
1034 0014 7047 bx lr
1035 .L70:
1036 0016 00BF .align 2
1037 .L69:
1038 0018 10040140 .word 1073808400
1039 .cfi_endproc
1040 .LFE138:
1042 .text
1043 .Letext0:
1044 .file 2 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
1045 .file 3 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
1046 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
1047 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
1048 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h"
ARM GAS /tmp/ccQLKAuM.s page 31
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f3xx_hal_exti.c
/tmp/ccQLKAuM.s:21 .text.HAL_EXTI_SetConfigLine:0000000000000000 $t
/tmp/ccQLKAuM.s:27 .text.HAL_EXTI_SetConfigLine:0000000000000000 HAL_EXTI_SetConfigLine
/tmp/ccQLKAuM.s:293 .text.HAL_EXTI_SetConfigLine:00000000000000cc $d
/tmp/ccQLKAuM.s:301 .text.HAL_EXTI_GetConfigLine:0000000000000000 $t
/tmp/ccQLKAuM.s:307 .text.HAL_EXTI_GetConfigLine:0000000000000000 HAL_EXTI_GetConfigLine
/tmp/ccQLKAuM.s:521 .text.HAL_EXTI_GetConfigLine:00000000000000ac $d
/tmp/ccQLKAuM.s:529 .text.HAL_EXTI_ClearConfigLine:0000000000000000 $t
/tmp/ccQLKAuM.s:535 .text.HAL_EXTI_ClearConfigLine:0000000000000000 HAL_EXTI_ClearConfigLine
/tmp/ccQLKAuM.s:709 .text.HAL_EXTI_ClearConfigLine:0000000000000090 $d
/tmp/ccQLKAuM.s:717 .text.HAL_EXTI_RegisterCallback:0000000000000000 $t
/tmp/ccQLKAuM.s:723 .text.HAL_EXTI_RegisterCallback:0000000000000000 HAL_EXTI_RegisterCallback
/tmp/ccQLKAuM.s:756 .text.HAL_EXTI_GetHandle:0000000000000000 $t
/tmp/ccQLKAuM.s:762 .text.HAL_EXTI_GetHandle:0000000000000000 HAL_EXTI_GetHandle
/tmp/ccQLKAuM.s:794 .text.HAL_EXTI_IRQHandler:0000000000000000 $t
/tmp/ccQLKAuM.s:800 .text.HAL_EXTI_IRQHandler:0000000000000000 HAL_EXTI_IRQHandler
/tmp/ccQLKAuM.s:865 .text.HAL_EXTI_IRQHandler:0000000000000028 $d
/tmp/ccQLKAuM.s:871 .text.HAL_EXTI_GetPending:0000000000000000 $t
/tmp/ccQLKAuM.s:877 .text.HAL_EXTI_GetPending:0000000000000000 HAL_EXTI_GetPending
/tmp/ccQLKAuM.s:931 .text.HAL_EXTI_GetPending:000000000000001c $d
/tmp/ccQLKAuM.s:936 .text.HAL_EXTI_ClearPending:0000000000000000 $t
/tmp/ccQLKAuM.s:942 .text.HAL_EXTI_ClearPending:0000000000000000 HAL_EXTI_ClearPending
/tmp/ccQLKAuM.s:986 .text.HAL_EXTI_ClearPending:0000000000000018 $d
/tmp/ccQLKAuM.s:991 .text.HAL_EXTI_GenerateSWI:0000000000000000 $t
/tmp/ccQLKAuM.s:997 .text.HAL_EXTI_GenerateSWI:0000000000000000 HAL_EXTI_GenerateSWI
/tmp/ccQLKAuM.s:1038 .text.HAL_EXTI_GenerateSWI:0000000000000018 $d
NO UNDEFINED SYMBOLS