stm32f4xx_hal_gpio.lst 86 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475
  1. ARM GAS /tmp/ccN5SJrP.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .eabi_attribute 27, 1
  4. 3 .eabi_attribute 28, 1
  5. 4 .eabi_attribute 20, 1
  6. 5 .eabi_attribute 21, 1
  7. 6 .eabi_attribute 23, 3
  8. 7 .eabi_attribute 24, 1
  9. 8 .eabi_attribute 25, 1
  10. 9 .eabi_attribute 26, 1
  11. 10 .eabi_attribute 30, 1
  12. 11 .eabi_attribute 34, 1
  13. 12 .eabi_attribute 18, 4
  14. 13 .file "stm32f4xx_hal_gpio.c"
  15. 14 .text
  16. 15 .Ltext0:
  17. 16 .cfi_sections .debug_frame
  18. 17 .section .text.HAL_GPIO_Init,"ax",%progbits
  19. 18 .align 1
  20. 19 .global HAL_GPIO_Init
  21. 20 .syntax unified
  22. 21 .thumb
  23. 22 .thumb_func
  24. 23 .fpu fpv4-sp-d16
  25. 25 HAL_GPIO_Init:
  26. 26 .LFB130:
  27. 27 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c"
  28. 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  29. 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ******************************************************************************
  30. 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @file stm32f4xx_hal_gpio.c
  31. 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @author MCD Application Team
  32. 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief GPIO HAL module driver.
  33. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This file provides firmware functions to manage the following
  34. 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * functionalities of the General Purpose Input/Output (GPIO) peripheral:
  35. 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * + Initialization and de-initialization functions
  36. 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * + IO operation functions
  37. 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  38. 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @verbatim
  39. 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ==============================================================================
  40. 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### GPIO Peripheral features #####
  41. 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ==============================================================================
  42. 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  43. 16: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
  44. 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** port bit of the General Purpose IO (GPIO) Ports, can be individually configured by software
  45. 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** in several modes:
  46. 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Input mode
  47. 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Analog mode
  48. 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Output mode
  49. 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) Alternate function mode
  50. 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (+) External interrupt/event lines
  51. 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  52. 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  53. 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** During and just after reset, the alternate functions and external interrupt
  54. 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** lines are not active and the I/O ports are configured in input floating mode.
  55. 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  56. 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  57. 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** All GPIO pins have weak internal pull-up and pull-down resistors, which can be
  58. 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** activated or not.
  59. ARM GAS /tmp/ccN5SJrP.s page 2
  60. 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  61. 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  62. 34: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
  63. 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** type and the IO speed can be selected depending on the VDD value.
  64. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  65. 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  66. 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** All ports have external interrupt/event capability. To use external interrupt
  67. 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** lines, the port must be configured in input mode. All available GPIO pins are
  68. 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** connected to the 16 external interrupt/event lines from EXTI0 to EXTI15.
  69. 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  70. 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  71. 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** The external interrupt/event controller consists of up to 23 edge detectors
  72. 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (16 lines are connected to GPIO) for generating event/interrupt requests (each
  73. 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** input line can be independently configured to select the type (interrupt or event)
  74. 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** and the corresponding trigger event (rising or falling or both). Each line can
  75. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** also be masked independently.
  76. 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  77. 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### How to use this driver #####
  78. 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ==============================================================================
  79. 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  80. 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) Enable the GPIO AHB clock using the following function: __HAL_RCC_GPIOx_CLK_ENABLE().
  81. 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  82. 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) Configure the GPIO pin(s) using HAL_GPIO_Init().
  83. 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) Configure the IO mode using "Mode" member from GPIO_InitTypeDef structure
  84. 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) Activate Pull-up, Pull-down resistor using "Pull" member from GPIO_InitTypeDef
  85. 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** structure.
  86. 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) In case of Output or alternate function mode selection: the speed is
  87. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** configured through "Speed" member from GPIO_InitTypeDef structure.
  88. 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) In alternate mode is selection, the alternate function connected to the IO
  89. 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** is configured through "Alternate" member from GPIO_InitTypeDef structure.
  90. 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) Analog mode is required when a pin is to be used as ADC channel
  91. 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** or DAC output.
  92. 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (++) In case of external interrupt/event selection the "Mode" member from
  93. 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIO_InitTypeDef structure select the type (interrupt or event) and
  94. 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** the corresponding trigger event (rising or falling or both).
  95. 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  96. 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) In case of external interrupt/event mode selection, configure NVIC IRQ priority
  97. 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** mapped to the EXTI line using HAL_NVIC_SetPriority() and enable it using
  98. 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_NVIC_EnableIRQ().
  99. 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  100. 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) To get the level of a pin configured in input mode use HAL_GPIO_ReadPin().
  101. 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  102. 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) To set/reset the level of a pin configured in output mode use
  103. 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_GPIO_WritePin()/HAL_GPIO_TogglePin().
  104. 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  105. 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) To lock pin configuration until next reset use HAL_GPIO_LockPin().
  106. 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  107. 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  108. 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) During and just after reset, the alternate functions are not
  109. 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** active and the GPIO pins are configured in input floating mode (except JTAG
  110. 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** pins).
  111. 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  112. 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) The LSE oscillator pins OSC32_IN and OSC32_OUT can be used as general purpose
  113. 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (PC14 and PC15, respectively) when the LSE oscillator is off. The LSE has
  114. 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** priority over the GPIO function.
  115. 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  116. 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (#) The HSE oscillator pins OSC_IN/OSC_OUT can be used as
  117. ARM GAS /tmp/ccN5SJrP.s page 3
  118. 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** general purpose PH0 and PH1, respectively, when the HSE oscillator is off.
  119. 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** The HSE has priority over the GPIO function.
  120. 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  121. 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @endverbatim
  122. 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ******************************************************************************
  123. 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @attention
  124. 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  125. 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
  126. 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * All rights reserved.</center></h2>
  127. 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  128. 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This software component is licensed by ST under BSD 3-Clause license,
  129. 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * the "License"; You may not use this file except in compliance with the
  130. 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * License. You may obtain a copy of the License at:
  131. 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * opensource.org/licenses/BSD-3-Clause
  132. 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  133. 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ******************************************************************************
  134. 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  135. 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  136. 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Includes ------------------------------------------------------------------*/
  137. 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #include "stm32f4xx_hal.h"
  138. 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  139. 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @addtogroup STM32F4xx_HAL_Driver
  140. 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
  141. 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  142. 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  143. 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO GPIO
  144. 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief GPIO HAL module driver
  145. 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
  146. 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  147. 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  148. 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #ifdef HAL_GPIO_MODULE_ENABLED
  149. 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  150. 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private typedef -----------------------------------------------------------*/
  151. 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private define ------------------------------------------------------------*/
  152. 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @addtogroup GPIO_Private_Constants GPIO Private Constants
  153. 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
  154. 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  155. 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define GPIO_MODE 0x00000003U
  156. 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define EXTI_MODE 0x10000000U
  157. 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define GPIO_MODE_IT 0x00010000U
  158. 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define GPIO_MODE_EVT 0x00020000U
  159. 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define RISING_EDGE 0x00100000U
  160. 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define FALLING_EDGE 0x00200000U
  161. 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define GPIO_OUTPUT_TYPE 0x00000010U
  162. 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  163. 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** #define GPIO_NUMBER 16U
  164. 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  165. 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @}
  166. 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  167. 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private macro -------------------------------------------------------------*/
  168. 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private variables ---------------------------------------------------------*/
  169. 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private function prototypes -----------------------------------------------*/
  170. 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Private functions ---------------------------------------------------------*/
  171. 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Exported functions --------------------------------------------------------*/
  172. 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions GPIO Exported Functions
  173. 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
  174. 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  175. ARM GAS /tmp/ccN5SJrP.s page 4
  176. 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  177. 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group1 Initialization and de-initialization functions
  178. 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Initialization and Configuration functions
  179. 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  180. 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @verbatim
  181. 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
  182. 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### Initialization and de-initialization functions #####
  183. 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
  184. 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** [..]
  185. 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** This section provides functions allowing to initialize and de-initialize the GPIOs
  186. 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** to be ready for use.
  187. 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  188. 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @endverbatim
  189. 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
  190. 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  191. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  192. 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  193. 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  194. 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Initializes the GPIOx peripheral according to the specified parameters in the GPIO_Init
  195. 165: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
  196. 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
  197. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains
  198. 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * the configuration information for the specified GPIO peripheral.
  199. 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
  200. 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  201. 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
  202. 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  203. 28 .loc 1 172 0
  204. 29 .cfi_startproc
  205. 30 @ args = 0, pretend = 0, frame = 8
  206. 31 @ frame_needed = 0, uses_anonymous_args = 0
  207. 32 .LVL0:
  208. 33 0000 F0B5 push {r4, r5, r6, r7, lr}
  209. 34 .LCFI0:
  210. 35 .cfi_def_cfa_offset 20
  211. 36 .cfi_offset 4, -20
  212. 37 .cfi_offset 5, -16
  213. 38 .cfi_offset 6, -12
  214. 39 .cfi_offset 7, -8
  215. 40 .cfi_offset 14, -4
  216. 41 0002 83B0 sub sp, sp, #12
  217. 42 .LCFI1:
  218. 43 .cfi_def_cfa_offset 32
  219. 44 .LVL1:
  220. 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
  221. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t ioposition = 0x00U;
  222. 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t iocurrent = 0x00U;
  223. 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t temp = 0x00U;
  224. 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  225. 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
  226. 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
  227. 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
  228. 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
  229. 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
  230. 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  231. 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the port pins */
  232. 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** for(position = 0U; position < GPIO_NUMBER; position++)
  233. ARM GAS /tmp/ccN5SJrP.s page 5
  234. 45 .loc 1 185 0
  235. 46 0004 0024 movs r4, #0
  236. 47 0006 4BE0 b .L2
  237. 48 .LVL2:
  238. 49 .L4:
  239. 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  240. 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the IO position */
  241. 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ioposition = 0x01U << position;
  242. 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
  243. 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
  244. 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  245. 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(iocurrent == ioposition)
  246. 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  247. 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*--------------------- GPIO Mode Configuration ------------------------*/
  248. 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* In case of Alternate function mode selection */
  249. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
  250. 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  251. 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the Alternate function parameter */
  252. 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
  253. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure Alternate function mapped with the current IO */
  254. 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->AFR[position >> 3U];
  255. 50 .loc 1 201 0
  256. 51 0008 4FEAD40E lsr lr, r4, #3
  257. 52 000c 0EF1080E add lr, lr, #8
  258. 53 0010 50F82E20 ldr r2, [r0, lr, lsl #2]
  259. 54 .LVL3:
  260. 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0xFU << ((uint32_t)(position & 0x07U) * 4U)) ;
  261. 55 .loc 1 202 0
  262. 56 0014 04F00706 and r6, r4, #7
  263. 57 0018 B600 lsls r6, r6, #2
  264. 58 001a 0F27 movs r7, #15
  265. 59 001c B740 lsls r7, r7, r6
  266. 60 001e 22EA0702 bic r2, r2, r7
  267. 61 .LVL4:
  268. 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4U));
  269. 62 .loc 1 203 0
  270. 63 0022 0F69 ldr r7, [r1, #16]
  271. 64 0024 07FA06F6 lsl r6, r7, r6
  272. 65 0028 3243 orrs r2, r2, r6
  273. 66 .LVL5:
  274. 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] = temp;
  275. 67 .loc 1 204 0
  276. 68 002a 40F82E20 str r2, [r0, lr, lsl #2]
  277. 69 002e 46E0 b .L5
  278. 70 .LVL6:
  279. 71 .L24:
  280. 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  281. 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  282. 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
  283. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->MODER;
  284. 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2U));
  285. 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
  286. 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
  287. 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  288. 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* In case of Output or Alternate function mode selection */
  289. 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) ||
  290. 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
  291. ARM GAS /tmp/ccN5SJrP.s page 6
  292. 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  293. 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the Speed parameter */
  294. 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
  295. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the IO Speed */
  296. 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->OSPEEDR;
  297. 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U));
  298. 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
  299. 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
  300. 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  301. 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the IO Output Type */
  302. 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->OTYPER;
  303. 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ;
  304. 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
  305. 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OTYPER = temp;
  306. 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  307. 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  308. 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Activate the Pull-up or Pull down resistor for the current IO */
  309. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = GPIOx->PUPDR;
  310. 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
  311. 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
  312. 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
  313. 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  314. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*--------------------- EXTI Mode Configuration ------------------------*/
  315. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
  316. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
  317. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  318. 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Enable SYSCFG Clock */
  319. 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __HAL_RCC_SYSCFG_CLK_ENABLE();
  320. 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  321. 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = SYSCFG->EXTICR[position >> 2U];
  322. 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
  323. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
  324. 72 .loc 1 247 0
  325. 73 0030 0726 movs r6, #7
  326. 74 0032 00E0 b .L8
  327. 75 .L14:
  328. 76 0034 0026 movs r6, #0
  329. 77 .L8:
  330. 78 .loc 1 247 0 is_stmt 0 discriminator 32
  331. 79 0036 06FA0EF6 lsl r6, r6, lr
  332. 80 003a 3243 orrs r2, r2, r6
  333. 81 .LVL7:
  334. 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  335. 82 .loc 1 248 0 is_stmt 1 discriminator 32
  336. 83 003c 0233 adds r3, r3, #2
  337. 84 003e 5E4E ldr r6, .L25
  338. 85 0040 46F82320 str r2, [r6, r3, lsl #2]
  339. 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  340. 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear EXTI line configuration */
  341. 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->IMR;
  342. 86 .loc 1 251 0 discriminator 32
  343. 87 0044 5D4B ldr r3, .L25+4
  344. 88 0046 1A68 ldr r2, [r3]
  345. 89 .LVL8:
  346. 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
  347. 90 .loc 1 252 0 discriminator 32
  348. 91 0048 EB43 mvns r3, r5
  349. ARM GAS /tmp/ccN5SJrP.s page 7
  350. 92 004a 02EA0306 and r6, r2, r3
  351. 93 .LVL9:
  352. 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
  353. 94 .loc 1 253 0 discriminator 32
  354. 95 004e 4F68 ldr r7, [r1, #4]
  355. 96 0050 17F4803F tst r7, #65536
  356. 97 0054 01D0 beq .L9
  357. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  358. 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
  359. 98 .loc 1 255 0
  360. 99 0056 45EA0206 orr r6, r5, r2
  361. 100 .LVL10:
  362. 101 .L9:
  363. 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  364. 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->IMR = temp;
  365. 102 .loc 1 257 0
  366. 103 005a 584A ldr r2, .L25+4
  367. 104 005c 1660 str r6, [r2]
  368. 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  369. 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->EMR;
  370. 105 .loc 1 259 0
  371. 106 005e 5268 ldr r2, [r2, #4]
  372. 107 .LVL11:
  373. 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
  374. 108 .loc 1 260 0
  375. 109 0060 03EA0206 and r6, r3, r2
  376. 110 .LVL12:
  377. 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
  378. 111 .loc 1 261 0
  379. 112 0064 4F68 ldr r7, [r1, #4]
  380. 113 0066 17F4003F tst r7, #131072
  381. 114 006a 01D0 beq .L10
  382. 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  383. 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
  384. 115 .loc 1 263 0
  385. 116 006c 45EA0206 orr r6, r5, r2
  386. 117 .LVL13:
  387. 118 .L10:
  388. 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  389. 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR = temp;
  390. 119 .loc 1 265 0
  391. 120 0070 524A ldr r2, .L25+4
  392. 121 0072 5660 str r6, [r2, #4]
  393. 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  394. 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
  395. 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->RTSR;
  396. 122 .loc 1 268 0
  397. 123 0074 9268 ldr r2, [r2, #8]
  398. 124 .LVL14:
  399. 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
  400. 125 .loc 1 269 0
  401. 126 0076 03EA0206 and r6, r3, r2
  402. 127 .LVL15:
  403. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
  404. 128 .loc 1 270 0
  405. 129 007a 4F68 ldr r7, [r1, #4]
  406. 130 007c 17F4801F tst r7, #1048576
  407. ARM GAS /tmp/ccN5SJrP.s page 8
  408. 131 0080 01D0 beq .L11
  409. 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  410. 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
  411. 132 .loc 1 272 0
  412. 133 0082 45EA0206 orr r6, r5, r2
  413. 134 .LVL16:
  414. 135 .L11:
  415. 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  416. 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR = temp;
  417. 136 .loc 1 274 0
  418. 137 0086 4D4A ldr r2, .L25+4
  419. 138 0088 9660 str r6, [r2, #8]
  420. 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  421. 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp = EXTI->FTSR;
  422. 139 .loc 1 276 0
  423. 140 008a D268 ldr r2, [r2, #12]
  424. 141 .LVL17:
  425. 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~((uint32_t)iocurrent);
  426. 142 .loc 1 277 0
  427. 143 008c 1340 ands r3, r3, r2
  428. 144 .LVL18:
  429. 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
  430. 145 .loc 1 278 0
  431. 146 008e 4E68 ldr r6, [r1, #4]
  432. 147 0090 16F4001F tst r6, #2097152
  433. 148 0094 01D0 beq .L12
  434. 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  435. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= iocurrent;
  436. 149 .loc 1 280 0
  437. 150 0096 45EA0203 orr r3, r5, r2
  438. 151 .LVL19:
  439. 152 .L12:
  440. 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  441. 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->FTSR = temp;
  442. 153 .loc 1 282 0
  443. 154 009a 484A ldr r2, .L25+4
  444. 155 009c D360 str r3, [r2, #12]
  445. 156 .LVL20:
  446. 157 .L3:
  447. 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  448. 158 .loc 1 185 0 discriminator 2
  449. 159 009e 0134 adds r4, r4, #1
  450. 160 .LVL21:
  451. 161 .L2:
  452. 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  453. 162 .loc 1 185 0 is_stmt 0 discriminator 1
  454. 163 00a0 0F2C cmp r4, #15
  455. 164 00a2 00F28680 bhi .L23
  456. 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
  457. 165 .loc 1 188 0 is_stmt 1
  458. 166 00a6 0123 movs r3, #1
  459. 167 00a8 A340 lsls r3, r3, r4
  460. 168 .LVL22:
  461. 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  462. 169 .loc 1 190 0
  463. 170 00aa 0A68 ldr r2, [r1]
  464. 171 00ac 03EA0205 and r5, r3, r2
  465. ARM GAS /tmp/ccN5SJrP.s page 9
  466. 172 .LVL23:
  467. 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  468. 173 .loc 1 192 0
  469. 174 00b0 AB42 cmp r3, r5
  470. 175 00b2 F4D1 bne .L3
  471. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  472. 176 .loc 1 196 0
  473. 177 00b4 4A68 ldr r2, [r1, #4]
  474. 178 00b6 022A cmp r2, #2
  475. 179 00b8 A6D0 beq .L4
  476. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  477. 180 .loc 1 196 0 is_stmt 0 discriminator 1
  478. 181 00ba 122A cmp r2, #18
  479. 182 00bc A4D0 beq .L4
  480. 183 .L5:
  481. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_MODER_MODER0 << (position * 2U));
  482. 184 .loc 1 208 0 is_stmt 1
  483. 185 00be 0668 ldr r6, [r0]
  484. 186 .LVL24:
  485. 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
  486. 187 .loc 1 209 0
  487. 188 00c0 4FEA440E lsl lr, r4, #1
  488. 189 00c4 0322 movs r2, #3
  489. 190 00c6 02FA0EF2 lsl r2, r2, lr
  490. 191 00ca D243 mvns r2, r2
  491. 192 00cc 1640 ands r6, r6, r2
  492. 193 .LVL25:
  493. 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER = temp;
  494. 194 .loc 1 210 0
  495. 195 00ce 4F68 ldr r7, [r1, #4]
  496. 196 00d0 07F00307 and r7, r7, #3
  497. 197 00d4 07FA0EF7 lsl r7, r7, lr
  498. 198 00d8 3E43 orrs r6, r6, r7
  499. 199 .LVL26:
  500. 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  501. 200 .loc 1 211 0
  502. 201 00da 0660 str r6, [r0]
  503. 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
  504. 202 .loc 1 214 0
  505. 203 00dc 4E68 ldr r6, [r1, #4]
  506. 204 .LVL27:
  507. 205 00de 771E subs r7, r6, #1
  508. 206 00e0 012F cmp r7, #1
  509. 207 00e2 03D9 bls .L6
  510. 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
  511. 208 .loc 1 214 0 is_stmt 0 discriminator 1
  512. 209 00e4 112E cmp r6, #17
  513. 210 00e6 01D0 beq .L6
  514. 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  515. 211 .loc 1 215 0 is_stmt 1
  516. 212 00e8 122E cmp r6, #18
  517. 213 00ea 0FD1 bne .L7
  518. 214 .L6:
  519. 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U));
  520. 215 .loc 1 220 0
  521. 216 00ec 8668 ldr r6, [r0, #8]
  522. 217 .LVL28:
  523. ARM GAS /tmp/ccN5SJrP.s page 10
  524. 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (GPIO_Init->Speed << (position * 2U));
  525. 218 .loc 1 221 0
  526. 219 00ee 1640 ands r6, r6, r2
  527. 220 .LVL29:
  528. 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OSPEEDR = temp;
  529. 221 .loc 1 222 0
  530. 222 00f0 CF68 ldr r7, [r1, #12]
  531. 223 00f2 07FA0EF7 lsl r7, r7, lr
  532. 224 00f6 3E43 orrs r6, r6, r7
  533. 225 .LVL30:
  534. 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  535. 226 .loc 1 223 0
  536. 227 00f8 8660 str r6, [r0, #8]
  537. 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_OTYPER_OT_0 << position) ;
  538. 228 .loc 1 226 0
  539. 229 00fa 4668 ldr r6, [r0, #4]
  540. 230 .LVL31:
  541. 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
  542. 231 .loc 1 227 0
  543. 232 00fc 26EA0303 bic r3, r6, r3
  544. 233 .LVL32:
  545. 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OTYPER = temp;
  546. 234 .loc 1 228 0
  547. 235 0100 4E68 ldr r6, [r1, #4]
  548. 236 0102 C6F30016 ubfx r6, r6, #4, #1
  549. 237 0106 A640 lsls r6, r6, r4
  550. 238 0108 3343 orrs r3, r3, r6
  551. 239 .LVL33:
  552. 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  553. 240 .loc 1 229 0
  554. 241 010a 4360 str r3, [r0, #4]
  555. 242 .LVL34:
  556. 243 .L7:
  557. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
  558. 244 .loc 1 233 0
  559. 245 010c C368 ldr r3, [r0, #12]
  560. 246 .LVL35:
  561. 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((GPIO_Init->Pull) << (position * 2U));
  562. 247 .loc 1 234 0
  563. 248 010e 1A40 ands r2, r2, r3
  564. 249 .LVL36:
  565. 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR = temp;
  566. 250 .loc 1 235 0
  567. 251 0110 8B68 ldr r3, [r1, #8]
  568. 252 0112 03FA0EF3 lsl r3, r3, lr
  569. 253 0116 1A43 orrs r2, r2, r3
  570. 254 .LVL37:
  571. 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  572. 255 .loc 1 236 0
  573. 256 0118 C260 str r2, [r0, #12]
  574. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  575. 257 .loc 1 240 0
  576. 258 011a 4B68 ldr r3, [r1, #4]
  577. 259 011c 13F0805F tst r3, #268435456
  578. 260 0120 BDD0 beq .L3
  579. 261 .LBB2:
  580. 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  581. ARM GAS /tmp/ccN5SJrP.s page 11
  582. 262 .loc 1 243 0
  583. 263 0122 0023 movs r3, #0
  584. 264 0124 0193 str r3, [sp, #4]
  585. 265 0126 264B ldr r3, .L25+8
  586. 266 0128 5A6C ldr r2, [r3, #68]
  587. 267 .LVL38:
  588. 268 012a 42F48042 orr r2, r2, #16384
  589. 269 012e 5A64 str r2, [r3, #68]
  590. 270 0130 5B6C ldr r3, [r3, #68]
  591. 271 0132 03F48043 and r3, r3, #16384
  592. 272 0136 0193 str r3, [sp, #4]
  593. 273 0138 019B ldr r3, [sp, #4]
  594. 274 .LBE2:
  595. 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp &= ~(0x0FU << (4U * (position & 0x03U)));
  596. 275 .loc 1 245 0
  597. 276 013a A308 lsrs r3, r4, #2
  598. 277 013c 9E1C adds r6, r3, #2
  599. 278 013e 1E4A ldr r2, .L25
  600. 279 0140 52F82620 ldr r2, [r2, r6, lsl #2]
  601. 280 .LVL39:
  602. 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
  603. 281 .loc 1 246 0
  604. 282 0144 04F00306 and r6, r4, #3
  605. 283 0148 4FEA860E lsl lr, r6, #2
  606. 284 014c 0F26 movs r6, #15
  607. 285 014e 06FA0EF6 lsl r6, r6, lr
  608. 286 0152 22EA0602 bic r2, r2, r6
  609. 287 .LVL40:
  610. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  611. 288 .loc 1 247 0
  612. 289 0156 1B4F ldr r7, .L25+12
  613. 290 0158 B842 cmp r0, r7
  614. 291 015a 3FF46BAF beq .L14
  615. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  616. 292 .loc 1 247 0 is_stmt 0 discriminator 1
  617. 293 015e 1A4E ldr r6, .L25+16
  618. 294 0160 B042 cmp r0, r6
  619. 295 0162 1AD0 beq .L15
  620. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  621. 296 .loc 1 247 0 discriminator 3
  622. 297 0164 06F58066 add r6, r6, #1024
  623. 298 0168 B042 cmp r0, r6
  624. 299 016a 18D0 beq .L16
  625. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  626. 300 .loc 1 247 0 discriminator 5
  627. 301 016c 06F58066 add r6, r6, #1024
  628. 302 0170 B042 cmp r0, r6
  629. 303 0172 16D0 beq .L17
  630. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  631. 304 .loc 1 247 0 discriminator 7
  632. 305 0174 06F58066 add r6, r6, #1024
  633. 306 0178 B042 cmp r0, r6
  634. 307 017a 14D0 beq .L18
  635. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  636. 308 .loc 1 247 0 discriminator 9
  637. 309 017c 06F58066 add r6, r6, #1024
  638. 310 0180 B042 cmp r0, r6
  639. ARM GAS /tmp/ccN5SJrP.s page 12
  640. 311 0182 12D0 beq .L19
  641. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  642. 312 .loc 1 247 0 discriminator 11
  643. 313 0184 06F58066 add r6, r6, #1024
  644. 314 0188 B042 cmp r0, r6
  645. 315 018a 10D0 beq .L20
  646. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  647. 316 .loc 1 247 0 discriminator 13
  648. 317 018c 06F58066 add r6, r6, #1024
  649. 318 0190 B042 cmp r0, r6
  650. 319 0192 3FF44DAF beq .L24
  651. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] = temp;
  652. 320 .loc 1 247 0
  653. 321 0196 0826 movs r6, #8
  654. 322 0198 4DE7 b .L8
  655. 323 .L15:
  656. 324 019a 0126 movs r6, #1
  657. 325 .LVL41:
  658. 326 019c 4BE7 b .L8
  659. 327 .LVL42:
  660. 328 .L16:
  661. 329 019e 0226 movs r6, #2
  662. 330 01a0 49E7 b .L8
  663. 331 .L17:
  664. 332 01a2 0326 movs r6, #3
  665. 333 01a4 47E7 b .L8
  666. 334 .L18:
  667. 335 01a6 0426 movs r6, #4
  668. 336 01a8 45E7 b .L8
  669. 337 .L19:
  670. 338 01aa 0526 movs r6, #5
  671. 339 01ac 43E7 b .L8
  672. 340 .L20:
  673. 341 01ae 0626 movs r6, #6
  674. 342 01b0 41E7 b .L8
  675. 343 .LVL43:
  676. 344 .L23:
  677. 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  678. 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  679. 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  680. 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  681. 345 .loc 1 286 0 is_stmt 1
  682. 346 01b2 03B0 add sp, sp, #12
  683. 347 .LCFI2:
  684. 348 .cfi_def_cfa_offset 20
  685. 349 @ sp needed
  686. 350 01b4 F0BD pop {r4, r5, r6, r7, pc}
  687. 351 .LVL44:
  688. 352 .L26:
  689. 353 01b6 00BF .align 2
  690. 354 .L25:
  691. 355 01b8 00380140 .word 1073821696
  692. 356 01bc 003C0140 .word 1073822720
  693. 357 01c0 00380240 .word 1073887232
  694. 358 01c4 00000240 .word 1073872896
  695. 359 01c8 00040240 .word 1073873920
  696. 360 .cfi_endproc
  697. ARM GAS /tmp/ccN5SJrP.s page 13
  698. 361 .LFE130:
  699. 363 .section .text.HAL_GPIO_DeInit,"ax",%progbits
  700. 364 .align 1
  701. 365 .global HAL_GPIO_DeInit
  702. 366 .syntax unified
  703. 367 .thumb
  704. 368 .thumb_func
  705. 369 .fpu fpv4-sp-d16
  706. 371 HAL_GPIO_DeInit:
  707. 372 .LFB131:
  708. 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  709. 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  710. 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief De-initializes the GPIOx peripheral registers to their default reset values.
  711. 290: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
  712. 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
  713. 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
  714. 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
  715. 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
  716. 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  717. 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
  718. 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  719. 373 .loc 1 297 0
  720. 374 .cfi_startproc
  721. 375 @ args = 0, pretend = 0, frame = 0
  722. 376 @ frame_needed = 0, uses_anonymous_args = 0
  723. 377 .LVL45:
  724. 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
  725. 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t ioposition = 0x00U;
  726. 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t iocurrent = 0x00U;
  727. 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t tmp = 0x00U;
  728. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  729. 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
  730. 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
  731. 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  732. 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the port pins */
  733. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** for(position = 0U; position < GPIO_NUMBER; position++)
  734. 378 .loc 1 307 0
  735. 379 0000 0023 movs r3, #0
  736. 380 .LVL46:
  737. 381 0002 0F2B cmp r3, #15
  738. 382 0004 00F28780 bhi .L44
  739. 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** uint32_t position;
  740. 383 .loc 1 297 0
  741. 384 0008 F0B5 push {r4, r5, r6, r7, lr}
  742. 385 .LCFI3:
  743. 386 .cfi_def_cfa_offset 20
  744. 387 .cfi_offset 4, -20
  745. 388 .cfi_offset 5, -16
  746. 389 .cfi_offset 6, -12
  747. 390 .cfi_offset 7, -8
  748. 391 .cfi_offset 14, -4
  749. 392 000a 29E0 b .L32
  750. 393 .LVL47:
  751. 394 .L47:
  752. 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  753. 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the IO position */
  754. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ioposition = 0x01U << position;
  755. ARM GAS /tmp/ccN5SJrP.s page 14
  756. 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
  757. 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** iocurrent = (GPIO_Pin) & ioposition;
  758. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  759. 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(iocurrent == ioposition)
  760. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  761. 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*------------------------- EXTI Mode Configuration --------------------*/
  762. 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp = SYSCFG->EXTICR[position >> 2U];
  763. 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
  764. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
  765. 395 .loc 1 319 0
  766. 396 000c 0727 movs r7, #7
  767. 397 000e 00E0 b .L30
  768. 398 .L33:
  769. 399 0010 0027 movs r7, #0
  770. 400 .L30:
  771. 401 .loc 1 319 0 is_stmt 0 discriminator 32
  772. 402 0012 07FA05F5 lsl r5, r7, r5
  773. 403 0016 AE42 cmp r6, r5
  774. 404 0018 64D0 beq .L45
  775. 405 .LVL48:
  776. 406 .L31:
  777. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  778. 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the External Interrupt or event for the current IO */
  779. 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp = 0x0FU << (4U * (position & 0x03U));
  780. 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** SYSCFG->EXTICR[position >> 2U] &= ~tmp;
  781. 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  782. 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear EXTI line configuration */
  783. 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->IMR &= ~((uint32_t)iocurrent);
  784. 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
  785. 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  786. 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Clear Rising Falling edge configuration */
  787. 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->RTSR &= ~((uint32_t)iocurrent);
  788. 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->FTSR &= ~((uint32_t)iocurrent);
  789. 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  790. 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  791. 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /*------------------------- GPIO Mode Configuration --------------------*/
  792. 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure IO Direction in Input Floating Mode */
  793. 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->MODER &= ~(GPIO_MODER_MODER0 << (position * 2U));
  794. 407 .loc 1 336 0 is_stmt 1
  795. 408 001a 0568 ldr r5, [r0]
  796. 409 001c 5E00 lsls r6, r3, #1
  797. 410 001e 0324 movs r4, #3
  798. 411 0020 B440 lsls r4, r4, r6
  799. 412 0022 E443 mvns r4, r4
  800. 413 0024 2540 ands r5, r5, r4
  801. 414 0026 0560 str r5, [r0]
  802. 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  803. 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the default Alternate Function in current IO */
  804. 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->AFR[position >> 3U] &= ~(0xFU << ((uint32_t)(position & 0x07U) * 4U)) ;
  805. 415 .loc 1 339 0
  806. 416 0028 DD08 lsrs r5, r3, #3
  807. 417 002a 0835 adds r5, r5, #8
  808. 418 002c 50F82560 ldr r6, [r0, r5, lsl #2]
  809. 419 0030 03F00707 and r7, r3, #7
  810. 420 0034 4FEA870E lsl lr, r7, #2
  811. 421 0038 0F27 movs r7, #15
  812. 422 003a 07FA0EF7 lsl r7, r7, lr
  813. ARM GAS /tmp/ccN5SJrP.s page 15
  814. 423 003e 26EA0706 bic r6, r6, r7
  815. 424 0042 40F82560 str r6, [r0, r5, lsl #2]
  816. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  817. 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the default value for IO Speed */
  818. 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OSPEEDR &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U));
  819. 425 .loc 1 342 0
  820. 426 0046 8568 ldr r5, [r0, #8]
  821. 427 0048 2540 ands r5, r5, r4
  822. 428 004a 8560 str r5, [r0, #8]
  823. 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  824. 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Configure the default value IO Output Type */
  825. 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->OTYPER &= ~(GPIO_OTYPER_OT_0 << position) ;
  826. 429 .loc 1 345 0
  827. 430 004c 4568 ldr r5, [r0, #4]
  828. 431 004e 25EA0202 bic r2, r5, r2
  829. 432 .LVL49:
  830. 433 0052 4260 str r2, [r0, #4]
  831. 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  832. 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Deactivate the Pull-up and Pull-down resistor for the current IO */
  833. 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U));
  834. 434 .loc 1 348 0
  835. 435 0054 C268 ldr r2, [r0, #12]
  836. 436 0056 1440 ands r4, r4, r2
  837. 437 0058 C460 str r4, [r0, #12]
  838. 438 .L29:
  839. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  840. 439 .loc 1 307 0 discriminator 2
  841. 440 005a 0133 adds r3, r3, #1
  842. 441 .LVL50:
  843. 442 005c 0F2B cmp r3, #15
  844. 443 005e 59D8 bhi .L46
  845. 444 .LVL51:
  846. 445 .L32:
  847. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Get the current IO position */
  848. 446 .loc 1 310 0
  849. 447 0060 0122 movs r2, #1
  850. 448 0062 9A40 lsls r2, r2, r3
  851. 449 .LVL52:
  852. 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  853. 450 .loc 1 312 0
  854. 451 0064 02EA0104 and r4, r2, r1
  855. 452 .LVL53:
  856. 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  857. 453 .loc 1 314 0
  858. 454 0068 A242 cmp r2, r4
  859. 455 006a F6D1 bne .L29
  860. 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp &= (0x0FU << (4U * (position & 0x03U)));
  861. 456 .loc 1 317 0
  862. 457 006c 4FEA930E lsr lr, r3, #2
  863. 458 0070 0EF10206 add r6, lr, #2
  864. 459 0074 284D ldr r5, .L48
  865. 460 0076 55F82660 ldr r6, [r5, r6, lsl #2]
  866. 461 .LVL54:
  867. 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(tmp == ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))))
  868. 462 .loc 1 318 0
  869. 463 007a 03F00305 and r5, r3, #3
  870. 464 007e AD00 lsls r5, r5, #2
  871. ARM GAS /tmp/ccN5SJrP.s page 16
  872. 465 0080 0F27 movs r7, #15
  873. 466 0082 07FA05FC lsl ip, r7, r5
  874. 467 0086 06EA0C06 and r6, r6, ip
  875. 468 .LVL55:
  876. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  877. 469 .loc 1 319 0
  878. 470 008a 244F ldr r7, .L48+4
  879. 471 008c B842 cmp r0, r7
  880. 472 008e BFD0 beq .L33
  881. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  882. 473 .loc 1 319 0 is_stmt 0 discriminator 1
  883. 474 0090 07F58067 add r7, r7, #1024
  884. 475 0094 B842 cmp r0, r7
  885. 476 0096 19D0 beq .L34
  886. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  887. 477 .loc 1 319 0 discriminator 3
  888. 478 0098 07F58067 add r7, r7, #1024
  889. 479 009c B842 cmp r0, r7
  890. 480 009e 17D0 beq .L35
  891. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  892. 481 .loc 1 319 0 discriminator 5
  893. 482 00a0 07F58067 add r7, r7, #1024
  894. 483 00a4 B842 cmp r0, r7
  895. 484 00a6 15D0 beq .L36
  896. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  897. 485 .loc 1 319 0 discriminator 7
  898. 486 00a8 07F58067 add r7, r7, #1024
  899. 487 00ac B842 cmp r0, r7
  900. 488 00ae 13D0 beq .L37
  901. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  902. 489 .loc 1 319 0 discriminator 9
  903. 490 00b0 07F58067 add r7, r7, #1024
  904. 491 00b4 B842 cmp r0, r7
  905. 492 00b6 11D0 beq .L38
  906. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  907. 493 .loc 1 319 0 discriminator 11
  908. 494 00b8 07F58067 add r7, r7, #1024
  909. 495 00bc B842 cmp r0, r7
  910. 496 00be 0FD0 beq .L39
  911. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  912. 497 .loc 1 319 0 discriminator 13
  913. 498 00c0 07F58067 add r7, r7, #1024
  914. 499 00c4 B842 cmp r0, r7
  915. 500 00c6 A1D0 beq .L47
  916. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  917. 501 .loc 1 319 0
  918. 502 00c8 0827 movs r7, #8
  919. 503 00ca A2E7 b .L30
  920. 504 .L34:
  921. 505 00cc 0127 movs r7, #1
  922. 506 00ce A0E7 b .L30
  923. 507 .L35:
  924. 508 00d0 0227 movs r7, #2
  925. 509 00d2 9EE7 b .L30
  926. 510 .L36:
  927. 511 00d4 0327 movs r7, #3
  928. 512 00d6 9CE7 b .L30
  929. ARM GAS /tmp/ccN5SJrP.s page 17
  930. 513 .L37:
  931. 514 00d8 0427 movs r7, #4
  932. 515 00da 9AE7 b .L30
  933. 516 .L38:
  934. 517 00dc 0527 movs r7, #5
  935. 518 00de 98E7 b .L30
  936. 519 .L39:
  937. 520 00e0 0627 movs r7, #6
  938. 521 00e2 96E7 b .L30
  939. 522 .L45:
  940. 523 .LVL56:
  941. 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  942. 524 .loc 1 323 0 is_stmt 1
  943. 525 00e4 0C4E ldr r6, .L48
  944. 526 00e6 0EF10205 add r5, lr, #2
  945. 527 00ea 56F82570 ldr r7, [r6, r5, lsl #2]
  946. 528 00ee 27EA0C07 bic r7, r7, ip
  947. 529 00f2 46F82570 str r7, [r6, r5, lsl #2]
  948. 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->EMR &= ~((uint32_t)iocurrent);
  949. 530 .loc 1 326 0
  950. 531 00f6 0A4D ldr r5, .L48+8
  951. 532 00f8 2E68 ldr r6, [r5]
  952. 533 00fa E443 mvns r4, r4
  953. 534 .LVL57:
  954. 535 00fc 2640 ands r6, r6, r4
  955. 536 00fe 2E60 str r6, [r5]
  956. 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  957. 537 .loc 1 327 0
  958. 538 0100 6E68 ldr r6, [r5, #4]
  959. 539 0102 2640 ands r6, r6, r4
  960. 540 0104 6E60 str r6, [r5, #4]
  961. 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** EXTI->FTSR &= ~((uint32_t)iocurrent);
  962. 541 .loc 1 330 0
  963. 542 0106 AE68 ldr r6, [r5, #8]
  964. 543 0108 2640 ands r6, r6, r4
  965. 544 010a AE60 str r6, [r5, #8]
  966. 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  967. 545 .loc 1 331 0
  968. 546 010c EE68 ldr r6, [r5, #12]
  969. 547 010e 3440 ands r4, r4, r6
  970. 548 .LVL58:
  971. 549 0110 EC60 str r4, [r5, #12]
  972. 550 0112 82E7 b .L31
  973. 551 .LVL59:
  974. 552 .L46:
  975. 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  976. 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  977. 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  978. 553 .loc 1 351 0
  979. 554 0114 F0BD pop {r4, r5, r6, r7, pc}
  980. 555 .LVL60:
  981. 556 .L44:
  982. 557 .LCFI4:
  983. 558 .cfi_def_cfa_offset 0
  984. 559 .cfi_restore 4
  985. 560 .cfi_restore 5
  986. 561 .cfi_restore 6
  987. ARM GAS /tmp/ccN5SJrP.s page 18
  988. 562 .cfi_restore 7
  989. 563 .cfi_restore 14
  990. 564 0116 7047 bx lr
  991. 565 .L49:
  992. 566 .align 2
  993. 567 .L48:
  994. 568 0118 00380140 .word 1073821696
  995. 569 011c 00000240 .word 1073872896
  996. 570 0120 003C0140 .word 1073822720
  997. 571 .cfi_endproc
  998. 572 .LFE131:
  999. 574 .section .text.HAL_GPIO_ReadPin,"ax",%progbits
  1000. 575 .align 1
  1001. 576 .global HAL_GPIO_ReadPin
  1002. 577 .syntax unified
  1003. 578 .thumb
  1004. 579 .thumb_func
  1005. 580 .fpu fpv4-sp-d16
  1006. 582 HAL_GPIO_ReadPin:
  1007. 583 .LFB132:
  1008. 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1009. 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  1010. 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @}
  1011. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1012. 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1013. 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /** @defgroup GPIO_Exported_Functions_Group2 IO operation functions
  1014. 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief GPIO Read and Write
  1015. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  1016. 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @verbatim
  1017. 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
  1018. 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ##### IO operation functions #####
  1019. 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** ===============================================================================
  1020. 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1021. 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** @endverbatim
  1022. 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @{
  1023. 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1024. 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1025. 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  1026. 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Reads the specified input port pin.
  1027. 371: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
  1028. 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
  1029. 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to read.
  1030. 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be GPIO_PIN_x where x can be (0..15).
  1031. 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval The input port pin value.
  1032. 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1033. 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  1034. 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1035. 584 .loc 1 378 0
  1036. 585 .cfi_startproc
  1037. 586 @ args = 0, pretend = 0, frame = 0
  1038. 587 @ frame_needed = 0, uses_anonymous_args = 0
  1039. 588 @ link register save eliminated.
  1040. 589 .LVL61:
  1041. 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIO_PinState bitstatus;
  1042. 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1043. 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
  1044. 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
  1045. ARM GAS /tmp/ccN5SJrP.s page 19
  1046. 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1047. 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
  1048. 590 .loc 1 384 0
  1049. 591 0000 0369 ldr r3, [r0, #16]
  1050. 592 0002 1942 tst r1, r3
  1051. 593 0004 01D1 bne .L53
  1052. 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1053. 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** bitstatus = GPIO_PIN_SET;
  1054. 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1055. 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** else
  1056. 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1057. 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** bitstatus = GPIO_PIN_RESET;
  1058. 594 .loc 1 390 0
  1059. 595 0006 0020 movs r0, #0
  1060. 596 .LVL62:
  1061. 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1062. 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return bitstatus;
  1063. 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1064. 597 .loc 1 393 0
  1065. 598 0008 7047 bx lr
  1066. 599 .LVL63:
  1067. 600 .L53:
  1068. 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1069. 601 .loc 1 386 0
  1070. 602 000a 0120 movs r0, #1
  1071. 603 .LVL64:
  1072. 604 000c 7047 bx lr
  1073. 605 .cfi_endproc
  1074. 606 .LFE132:
  1075. 608 .section .text.HAL_GPIO_WritePin,"ax",%progbits
  1076. 609 .align 1
  1077. 610 .global HAL_GPIO_WritePin
  1078. 611 .syntax unified
  1079. 612 .thumb
  1080. 613 .thumb_func
  1081. 614 .fpu fpv4-sp-d16
  1082. 616 HAL_GPIO_WritePin:
  1083. 617 .LFB133:
  1084. 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1085. 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  1086. 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Sets or clears the selected data port bit.
  1087. 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  1088. 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @note This function uses GPIOx_BSRR register to allow atomic read/modify
  1089. 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * accesses. In this way, there is no risk of an IRQ occurring between
  1090. 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * the read and the modify access.
  1091. 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** *
  1092. 402: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
  1093. 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
  1094. 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be written.
  1095. 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be one of GPIO_PIN_x where x can be (0..15).
  1096. 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param PinState specifies the value to be written to the selected bit.
  1097. 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * This parameter can be one of the GPIO_PinState enum values:
  1098. 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @arg GPIO_PIN_RESET: to clear the port pin
  1099. 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @arg GPIO_PIN_SET: to set the port pin
  1100. 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
  1101. 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1102. 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
  1103. ARM GAS /tmp/ccN5SJrP.s page 20
  1104. 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1105. 618 .loc 1 413 0
  1106. 619 .cfi_startproc
  1107. 620 @ args = 0, pretend = 0, frame = 0
  1108. 621 @ frame_needed = 0, uses_anonymous_args = 0
  1109. 622 @ link register save eliminated.
  1110. 623 .LVL65:
  1111. 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
  1112. 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
  1113. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN_ACTION(PinState));
  1114. 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1115. 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(PinState != GPIO_PIN_RESET)
  1116. 624 .loc 1 418 0
  1117. 625 0000 12B9 cbnz r2, .L57
  1118. 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1119. 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = GPIO_Pin;
  1120. 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1121. 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** else
  1122. 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1123. 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;
  1124. 626 .loc 1 424 0
  1125. 627 0002 0904 lsls r1, r1, #16
  1126. 628 .LVL66:
  1127. 629 0004 8161 str r1, [r0, #24]
  1128. 630 0006 7047 bx lr
  1129. 631 .LVL67:
  1130. 632 .L57:
  1131. 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1132. 633 .loc 1 420 0
  1133. 634 0008 8161 str r1, [r0, #24]
  1134. 635 000a 7047 bx lr
  1135. 636 .cfi_endproc
  1136. 637 .LFE133:
  1137. 639 .section .text.HAL_GPIO_TogglePin,"ax",%progbits
  1138. 640 .align 1
  1139. 641 .global HAL_GPIO_TogglePin
  1140. 642 .syntax unified
  1141. 643 .thumb
  1142. 644 .thumb_func
  1143. 645 .fpu fpv4-sp-d16
  1144. 647 HAL_GPIO_TogglePin:
  1145. 648 .LFB134:
  1146. 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1147. 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1148. 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1149. 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  1150. 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Toggles the specified GPIO pins.
  1151. 430: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
  1152. 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * x can be (A..I) to select the GPIO peripheral for STM32F40XX and STM32F427
  1153. 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the pins to be toggled.
  1154. 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
  1155. 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1156. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  1157. 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1158. 649 .loc 1 436 0
  1159. 650 .cfi_startproc
  1160. 651 @ args = 0, pretend = 0, frame = 0
  1161. ARM GAS /tmp/ccN5SJrP.s page 21
  1162. 652 @ frame_needed = 0, uses_anonymous_args = 0
  1163. 653 @ link register save eliminated.
  1164. 654 .LVL68:
  1165. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
  1166. 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
  1167. 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1168. 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if ((GPIOx->ODR & GPIO_Pin) == GPIO_Pin)
  1169. 655 .loc 1 440 0
  1170. 656 0000 4369 ldr r3, [r0, #20]
  1171. 657 0002 31EA0303 bics r3, r1, r3
  1172. 658 0006 01D0 beq .L61
  1173. 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1174. 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = (uint32_t)GPIO_Pin << GPIO_NUMBER;
  1175. 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1176. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** else
  1177. 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1178. 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->BSRR = GPIO_Pin;
  1179. 659 .loc 1 446 0
  1180. 660 0008 8161 str r1, [r0, #24]
  1181. 661 000a 7047 bx lr
  1182. 662 .L61:
  1183. 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1184. 663 .loc 1 442 0
  1185. 664 000c 0904 lsls r1, r1, #16
  1186. 665 .LVL69:
  1187. 666 000e 8161 str r1, [r0, #24]
  1188. 667 0010 7047 bx lr
  1189. 668 .cfi_endproc
  1190. 669 .LFE134:
  1191. 671 .section .text.HAL_GPIO_LockPin,"ax",%progbits
  1192. 672 .align 1
  1193. 673 .global HAL_GPIO_LockPin
  1194. 674 .syntax unified
  1195. 675 .thumb
  1196. 676 .thumb_func
  1197. 677 .fpu fpv4-sp-d16
  1198. 679 HAL_GPIO_LockPin:
  1199. 680 .LFB135:
  1200. 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1201. 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1202. 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1203. 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  1204. 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief Locks GPIO Pins configuration registers.
  1205. 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @note The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR,
  1206. 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH.
  1207. 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @note The configuration of the locked GPIO pins can no longer be modified
  1208. 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * until the next reset.
  1209. 456: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
  1210. 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin specifies the port bit to be locked.
  1211. 458: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).
  1212. 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
  1213. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1214. 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  1215. 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1216. 681 .loc 1 462 0
  1217. 682 .cfi_startproc
  1218. 683 @ args = 0, pretend = 0, frame = 8
  1219. ARM GAS /tmp/ccN5SJrP.s page 22
  1220. 684 @ frame_needed = 0, uses_anonymous_args = 0
  1221. 685 @ link register save eliminated.
  1222. 686 .LVL70:
  1223. 687 0000 82B0 sub sp, sp, #8
  1224. 688 .LCFI5:
  1225. 689 .cfi_def_cfa_offset 8
  1226. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __IO uint32_t tmp = GPIO_LCKR_LCKK;
  1227. 690 .loc 1 463 0
  1228. 691 0002 4FF48033 mov r3, #65536
  1229. 692 0006 0193 str r3, [sp, #4]
  1230. 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1231. 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Check the parameters */
  1232. 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** assert_param(IS_GPIO_PIN(GPIO_Pin));
  1233. 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1234. 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Apply lock key write sequence */
  1235. 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp |= GPIO_Pin;
  1236. 693 .loc 1 469 0
  1237. 694 0008 019B ldr r3, [sp, #4]
  1238. 695 000a 0B43 orrs r3, r3, r1
  1239. 696 000c 0193 str r3, [sp, #4]
  1240. 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
  1241. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->LCKR = tmp;
  1242. 697 .loc 1 471 0
  1243. 698 000e 019B ldr r3, [sp, #4]
  1244. 699 0010 C361 str r3, [r0, #28]
  1245. 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */
  1246. 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->LCKR = GPIO_Pin;
  1247. 700 .loc 1 473 0
  1248. 701 0012 C161 str r1, [r0, #28]
  1249. 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
  1250. 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** GPIOx->LCKR = tmp;
  1251. 702 .loc 1 475 0
  1252. 703 0014 019B ldr r3, [sp, #4]
  1253. 704 0016 C361 str r3, [r0, #28]
  1254. 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* Read LCKK bit*/
  1255. 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** tmp = GPIOx->LCKR;
  1256. 705 .loc 1 477 0
  1257. 706 0018 C369 ldr r3, [r0, #28]
  1258. 707 001a 0193 str r3, [sp, #4]
  1259. 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1260. 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if((GPIOx->LCKR & GPIO_LCKR_LCKK) != RESET)
  1261. 708 .loc 1 479 0
  1262. 709 001c C369 ldr r3, [r0, #28]
  1263. 710 001e 13F4803F tst r3, #65536
  1264. 711 0022 02D1 bne .L66
  1265. 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1266. 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return HAL_OK;
  1267. 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1268. 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** else
  1269. 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1270. 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** return HAL_ERROR;
  1271. 712 .loc 1 485 0
  1272. 713 0024 0120 movs r0, #1
  1273. 714 .LVL71:
  1274. 715 .L63:
  1275. 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1276. 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1277. ARM GAS /tmp/ccN5SJrP.s page 23
  1278. 716 .loc 1 487 0
  1279. 717 0026 02B0 add sp, sp, #8
  1280. 718 .LCFI6:
  1281. 719 .cfi_remember_state
  1282. 720 .cfi_def_cfa_offset 0
  1283. 721 @ sp needed
  1284. 722 0028 7047 bx lr
  1285. 723 .LVL72:
  1286. 724 .L66:
  1287. 725 .LCFI7:
  1288. 726 .cfi_restore_state
  1289. 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1290. 727 .loc 1 481 0
  1291. 728 002a 0020 movs r0, #0
  1292. 729 .LVL73:
  1293. 730 002c FBE7 b .L63
  1294. 731 .cfi_endproc
  1295. 732 .LFE135:
  1296. 734 .section .text.HAL_GPIO_EXTI_Callback,"ax",%progbits
  1297. 735 .align 1
  1298. 736 .weak HAL_GPIO_EXTI_Callback
  1299. 737 .syntax unified
  1300. 738 .thumb
  1301. 739 .thumb_func
  1302. 740 .fpu fpv4-sp-d16
  1303. 742 HAL_GPIO_EXTI_Callback:
  1304. 743 .LFB137:
  1305. 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1306. 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  1307. 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief This function handles EXTI interrupt request.
  1308. 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the pins connected EXTI line
  1309. 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
  1310. 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1311. 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
  1312. 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1313. 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
  1314. 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
  1315. 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1316. 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
  1317. 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
  1318. 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1319. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1320. 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1321. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /**
  1322. 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @brief EXTI line detection callbacks.
  1323. 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @param GPIO_Pin Specifies the pins connected EXTI line
  1324. 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** * @retval None
  1325. 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** */
  1326. 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  1327. 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1328. 744 .loc 1 510 0
  1329. 745 .cfi_startproc
  1330. 746 @ args = 0, pretend = 0, frame = 0
  1331. 747 @ frame_needed = 0, uses_anonymous_args = 0
  1332. 748 @ link register save eliminated.
  1333. 749 .LVL74:
  1334. 750 0000 7047 bx lr
  1335. ARM GAS /tmp/ccN5SJrP.s page 24
  1336. 751 .cfi_endproc
  1337. 752 .LFE137:
  1338. 754 .section .text.HAL_GPIO_EXTI_IRQHandler,"ax",%progbits
  1339. 755 .align 1
  1340. 756 .global HAL_GPIO_EXTI_IRQHandler
  1341. 757 .syntax unified
  1342. 758 .thumb
  1343. 759 .thumb_func
  1344. 760 .fpu fpv4-sp-d16
  1345. 762 HAL_GPIO_EXTI_IRQHandler:
  1346. 763 .LFB136:
  1347. 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
  1348. 764 .loc 1 495 0
  1349. 765 .cfi_startproc
  1350. 766 @ args = 0, pretend = 0, frame = 0
  1351. 767 @ frame_needed = 0, uses_anonymous_args = 0
  1352. 768 .LVL75:
  1353. 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** /* EXTI line interrupt detected */
  1354. 769 .loc 1 495 0
  1355. 770 0000 08B5 push {r3, lr}
  1356. 771 .LCFI8:
  1357. 772 .cfi_def_cfa_offset 8
  1358. 773 .cfi_offset 3, -8
  1359. 774 .cfi_offset 14, -4
  1360. 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** {
  1361. 775 .loc 1 497 0
  1362. 776 0002 054B ldr r3, .L72
  1363. 777 0004 5B69 ldr r3, [r3, #20]
  1364. 778 0006 0342 tst r3, r0
  1365. 779 0008 00D1 bne .L71
  1366. 780 .LVL76:
  1367. 781 .L68:
  1368. 782 000a 08BD pop {r3, pc}
  1369. 783 .LVL77:
  1370. 784 .L71:
  1371. 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** HAL_GPIO_EXTI_Callback(GPIO_Pin);
  1372. 785 .loc 1 499 0
  1373. 786 000c 024B ldr r3, .L72
  1374. 787 000e 5861 str r0, [r3, #20]
  1375. 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c **** }
  1376. 788 .loc 1 500 0
  1377. 789 0010 FFF7FEFF bl HAL_GPIO_EXTI_Callback
  1378. 790 .LVL78:
  1379. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ****
  1380. 791 .loc 1 502 0
  1381. 792 0014 F9E7 b .L68
  1382. 793 .L73:
  1383. 794 0016 00BF .align 2
  1384. 795 .L72:
  1385. 796 0018 003C0140 .word 1073822720
  1386. 797 .cfi_endproc
  1387. 798 .LFE136:
  1388. 800 .text
  1389. 801 .Letext0:
  1390. 802 .file 2 "/usr/include/newlib/machine/_default_types.h"
  1391. 803 .file 3 "/usr/include/newlib/sys/_stdint.h"
  1392. 804 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
  1393. ARM GAS /tmp/ccN5SJrP.s page 25
  1394. 805 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
  1395. 806 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
  1396. 807 .file 7 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
  1397. 808 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
  1398. 809 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h"
  1399. ARM GAS /tmp/ccN5SJrP.s page 26
  1400. DEFINED SYMBOLS
  1401. *ABS*:0000000000000000 stm32f4xx_hal_gpio.c
  1402. /tmp/ccN5SJrP.s:18 .text.HAL_GPIO_Init:0000000000000000 $t
  1403. /tmp/ccN5SJrP.s:25 .text.HAL_GPIO_Init:0000000000000000 HAL_GPIO_Init
  1404. /tmp/ccN5SJrP.s:355 .text.HAL_GPIO_Init:00000000000001b8 $d
  1405. /tmp/ccN5SJrP.s:364 .text.HAL_GPIO_DeInit:0000000000000000 $t
  1406. /tmp/ccN5SJrP.s:371 .text.HAL_GPIO_DeInit:0000000000000000 HAL_GPIO_DeInit
  1407. /tmp/ccN5SJrP.s:568 .text.HAL_GPIO_DeInit:0000000000000118 $d
  1408. /tmp/ccN5SJrP.s:575 .text.HAL_GPIO_ReadPin:0000000000000000 $t
  1409. /tmp/ccN5SJrP.s:582 .text.HAL_GPIO_ReadPin:0000000000000000 HAL_GPIO_ReadPin
  1410. /tmp/ccN5SJrP.s:609 .text.HAL_GPIO_WritePin:0000000000000000 $t
  1411. /tmp/ccN5SJrP.s:616 .text.HAL_GPIO_WritePin:0000000000000000 HAL_GPIO_WritePin
  1412. /tmp/ccN5SJrP.s:640 .text.HAL_GPIO_TogglePin:0000000000000000 $t
  1413. /tmp/ccN5SJrP.s:647 .text.HAL_GPIO_TogglePin:0000000000000000 HAL_GPIO_TogglePin
  1414. /tmp/ccN5SJrP.s:672 .text.HAL_GPIO_LockPin:0000000000000000 $t
  1415. /tmp/ccN5SJrP.s:679 .text.HAL_GPIO_LockPin:0000000000000000 HAL_GPIO_LockPin
  1416. /tmp/ccN5SJrP.s:735 .text.HAL_GPIO_EXTI_Callback:0000000000000000 $t
  1417. /tmp/ccN5SJrP.s:742 .text.HAL_GPIO_EXTI_Callback:0000000000000000 HAL_GPIO_EXTI_Callback
  1418. /tmp/ccN5SJrP.s:755 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 $t
  1419. /tmp/ccN5SJrP.s:762 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000000 HAL_GPIO_EXTI_IRQHandler
  1420. /tmp/ccN5SJrP.s:796 .text.HAL_GPIO_EXTI_IRQHandler:0000000000000018 $d
  1421. .debug_frame:0000000000000010 $d
  1422. NO UNDEFINED SYMBOLS