stm32f3xx_hal_flash.lst 120 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .arch armv7e-m
  4. 3 .fpu fpv4-sp-d16
  5. 4 .eabi_attribute 27, 1
  6. 5 .eabi_attribute 28, 1
  7. 6 .eabi_attribute 20, 1
  8. 7 .eabi_attribute 21, 1
  9. 8 .eabi_attribute 23, 3
  10. 9 .eabi_attribute 24, 1
  11. 10 .eabi_attribute 25, 1
  12. 11 .eabi_attribute 26, 1
  13. 12 .eabi_attribute 30, 6
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "stm32f3xx_hal_flash.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .global pFlash
  21. 20 .section .bss.pFlash,"aw",%nobits
  22. 21 .align 3
  23. 24 pFlash:
  24. 25 0000 00000000 .space 32
  25. 25 00000000
  26. 25 00000000
  27. 25 00000000
  28. 25 00000000
  29. 26 .section .rodata
  30. 27 .align 2
  31. 28 .LC0:
  32. 29 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flas"
  33. 29 6572732F
  34. 29 53544D33
  35. 29 32463378
  36. 29 785F4841
  37. 30 0033 682E6300 .ascii "h.c\000"
  38. 31 .section .text.HAL_FLASH_Program,"ax",%progbits
  39. 32 .align 1
  40. 33 .global HAL_FLASH_Program
  41. 34 .syntax unified
  42. 35 .thumb
  43. 36 .thumb_func
  44. 38 HAL_FLASH_Program:
  45. 39 .LFB130:
  46. 40 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c"
  47. 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  48. 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ******************************************************************************
  49. 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @file stm32f3xx_hal_flash.c
  50. 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @author MCD Application Team
  51. 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH HAL module driver.
  52. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This file provides firmware functions to manage the following
  53. 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * functionalities of the internal FLASH memory:
  54. 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * + Program operations functions
  55. 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * + Memory Control functions
  56. 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * + Peripheral State functions
  57. 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  58. 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 2
  60. 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ==============================================================================
  61. 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### FLASH peripheral features #####
  62. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ==============================================================================
  63. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses
  64. 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations
  65. 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** and the read and write protection mechanisms.
  66. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  67. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction
  68. 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** prefetch.
  69. 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  70. 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] The FLASH main features are:
  71. 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Flash memory read operations
  72. 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Flash memory program/erase operations
  73. 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Read / write protections
  74. 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Prefetch on I-Code
  75. 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Option Bytes programming
  76. 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  77. 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  78. 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### How to use this driver #####
  79. 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ==============================================================================
  80. 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..]
  81. 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH
  82. 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** memory of all STM32F3xx devices.
  83. 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  84. 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (#) FLASH Memory I/O Programming functions: this group includes all needed
  85. 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** functions to erase and program the main memory:
  86. 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface
  87. 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Erase function: Erase page, erase all pages
  88. 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Program functions: half word, word and doubleword
  89. 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (#) FLASH Option Bytes Programming functions: this group includes all needed
  90. 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** functions to manage the Option Bytes:
  91. 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Lock and Unlock the Option Bytes
  92. 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Set/Reset the write protection
  93. 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Set the Read protection Level
  94. 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Program the user Option Bytes
  95. 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Launch the Option Bytes loader
  96. 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Erase Option Bytes
  97. 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Program the data Option Bytes
  98. 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Get the Write protection.
  99. 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Get the user option bytes.
  100. 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  101. 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (#) Interrupts and flags management functions : this group
  102. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** includes all needed functions to:
  103. 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Handle FLASH interrupts
  104. 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Wait for last FLASH operation according to its status
  105. 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Get error flag status
  106. 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  107. 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] In addition to these function, this driver includes a set of macros allowing
  108. 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** to handle the following operations:
  109. 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  110. 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Set/Get the latency
  111. 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer
  112. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Enable/Disable the half cycle access
  113. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts
  114. 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Monitor the FLASH flags status
  115. 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  116. 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 3
  118. 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ******************************************************************************
  119. 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @attention
  120. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  121. 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * Copyright (c) 2016 STMicroelectronics.
  122. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * All rights reserved.
  123. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  124. 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This software is licensed under terms that can be found in the LICENSE file in
  125. 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * the root directory of this software component.
  126. 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
  127. 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ******************************************************************************
  128. 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  129. 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  130. 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
  131. 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** #include "stm32f3xx_hal.h"
  132. 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  133. 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @addtogroup STM32F3xx_HAL_Driver
  134. 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  135. 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  136. 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  137. 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
  138. 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  139. 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH FLASH
  140. 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH HAL module driver
  141. 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  142. 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  143. 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  144. 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
  145. 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/
  146. 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Constants FLASH Private Constants
  147. 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  148. 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  149. 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  150. 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  151. 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  152. 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  153. 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private macro ---------------------------- ---------------------------------*/
  154. 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Macros FLASH Private Macros
  155. 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  156. 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  157. 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  158. 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  159. 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  160. 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  161. 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  162. 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
  163. 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables
  164. 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  165. 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  166. 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Variables used for Erase pages under interruption*/
  167. 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash;
  168. 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  169. 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  170. 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  171. 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  172. 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
  173. 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions
  174. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 4
  176. 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  177. 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
  178. 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_SetErrorCode(void);
  179. 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** extern void FLASH_PageErase(uint32_t PageAddress);
  180. 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  181. 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  182. 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  183. 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  184. 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Exported functions ---------------------------------------------------------*/
  185. 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
  186. 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  187. 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  188. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  189. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
  190. 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Programming operation functions
  191. 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  192. 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
  193. 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
  194. 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  195. 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  196. 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  197. 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  198. 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address
  199. 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
  200. 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
  201. 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  202. 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
  203. 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * the erase operation is performed before the program one.
  204. 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  205. 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note FLASH should be previously erased before new programming (only exception to this
  206. 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * is when 0x0000 is programmed)
  207. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  208. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
  209. 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
  210. 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Address Specifie the address to be programmed.
  211. 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Data Specifie the data to be programmed
  212. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  213. 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
  214. 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  215. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
  216. 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  217. 41 .loc 1 167 1
  218. 42 .cfi_startproc
  219. 43 @ args = 0, pretend = 0, frame = 24
  220. 44 @ frame_needed = 1, uses_anonymous_args = 0
  221. 45 0000 F0B5 push {r4, r5, r6, r7, lr}
  222. 46 .LCFI0:
  223. 47 .cfi_def_cfa_offset 20
  224. 48 .cfi_offset 4, -20
  225. 49 .cfi_offset 5, -16
  226. 50 .cfi_offset 6, -12
  227. 51 .cfi_offset 7, -8
  228. 52 .cfi_offset 14, -4
  229. 53 0002 87B0 sub sp, sp, #28
  230. 54 .LCFI1:
  231. 55 .cfi_def_cfa_offset 48
  232. 56 0004 00AF add r7, sp, #0
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 5
  234. 57 .LCFI2:
  235. 58 .cfi_def_cfa_register 7
  236. 59 0006 F860 str r0, [r7, #12]
  237. 60 0008 B960 str r1, [r7, #8]
  238. 61 000a C7E90023 strd r2, [r7]
  239. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
  240. 62 .loc 1 168 21
  241. 63 000e 0123 movs r3, #1
  242. 64 0010 FB75 strb r3, [r7, #23]
  243. 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint8_t index = 0U;
  244. 65 .loc 1 169 11
  245. 66 0012 0023 movs r3, #0
  246. 67 0014 BB75 strb r3, [r7, #22]
  247. 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint8_t nbiterations = 0U;
  248. 68 .loc 1 170 11
  249. 69 0016 0023 movs r3, #0
  250. 70 0018 7B75 strb r3, [r7, #21]
  251. 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  252. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Locked */
  253. 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_LOCK(&pFlash);
  254. 71 .loc 1 173 3
  255. 72 001a 454B ldr r3, .L17
  256. 73 001c 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
  257. 74 001e 012B cmp r3, #1
  258. 75 0020 01D1 bne .L2
  259. 76 .loc 1 173 3 is_stmt 0 discriminator 1
  260. 77 0022 0223 movs r3, #2
  261. 78 0024 80E0 b .L3
  262. 79 .L2:
  263. 80 .loc 1 173 3 discriminator 2
  264. 81 0026 424B ldr r3, .L17
  265. 82 0028 0122 movs r2, #1
  266. 83 002a 1A76 strb r2, [r3, #24]
  267. 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  268. 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check the parameters */
  269. 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
  270. 84 .loc 1 176 3 is_stmt 1 discriminator 2
  271. 85 002c FB68 ldr r3, [r7, #12]
  272. 86 002e 012B cmp r3, #1
  273. 87 0030 09D0 beq .L4
  274. 88 .loc 1 176 3 is_stmt 0 discriminator 1
  275. 89 0032 FB68 ldr r3, [r7, #12]
  276. 90 0034 022B cmp r3, #2
  277. 91 0036 06D0 beq .L4
  278. 92 .loc 1 176 3 discriminator 2
  279. 93 0038 FB68 ldr r3, [r7, #12]
  280. 94 003a 032B cmp r3, #3
  281. 95 003c 03D0 beq .L4
  282. 96 .loc 1 176 3 discriminator 3
  283. 97 003e B021 movs r1, #176
  284. 98 0040 3C48 ldr r0, .L17+4
  285. 99 0042 FFF7FEFF bl assert_failed
  286. 100 .L4:
  287. 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
  288. 101 .loc 1 177 3 is_stmt 1
  289. 102 0046 BB68 ldr r3, [r7, #8]
  290. 103 0048 B3F1006F cmp r3, #134217728
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 6
  292. 104 004c 16D3 bcc .L5
  293. 105 .loc 1 177 3 is_stmt 0 discriminator 2
  294. 106 004e 3A4B ldr r3, .L17+8
  295. 107 0050 1B88 ldrh r3, [r3]
  296. 108 0052 B3F5807F cmp r3, #256
  297. 109 0056 04D1 bne .L6
  298. 110 .loc 1 177 3 discriminator 3
  299. 111 0058 BB68 ldr r3, [r7, #8]
  300. 112 005a 384A ldr r2, .L17+12
  301. 113 005c 9342 cmp r3, r2
  302. 114 005e 0DD8 bhi .L5
  303. 115 0060 10E0 b .L7
  304. 116 .L6:
  305. 117 .loc 1 177 3 discriminator 4
  306. 118 0062 354B ldr r3, .L17+8
  307. 119 0064 1B88 ldrh r3, [r3]
  308. 120 0066 802B cmp r3, #128
  309. 121 0068 04D1 bne .L8
  310. 122 .loc 1 177 3 discriminator 6
  311. 123 006a BB68 ldr r3, [r7, #8]
  312. 124 006c 344A ldr r2, .L17+16
  313. 125 006e 9342 cmp r3, r2
  314. 126 0070 04D8 bhi .L5
  315. 127 0072 07E0 b .L7
  316. 128 .L8:
  317. 129 .loc 1 177 3 discriminator 7
  318. 130 0074 BB68 ldr r3, [r7, #8]
  319. 131 0076 334A ldr r2, .L17+20
  320. 132 0078 9342 cmp r3, r2
  321. 133 007a 03D9 bls .L7
  322. 134 .L5:
  323. 135 .loc 1 177 3 discriminator 9
  324. 136 007c B121 movs r1, #177
  325. 137 007e 2D48 ldr r0, .L17+4
  326. 138 0080 FFF7FEFF bl assert_failed
  327. 139 .L7:
  328. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  329. 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for last operation to be completed */
  330. 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
  331. 140 .loc 1 180 14 is_stmt 1
  332. 141 0084 4CF25030 movw r0, #50000
  333. 142 0088 FFF7FEFF bl FLASH_WaitForLastOperation
  334. 143 008c 0346 mov r3, r0
  335. 144 008e FB75 strb r3, [r7, #23]
  336. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  337. 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(status == HAL_OK)
  338. 145 .loc 1 182 5
  339. 146 0090 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  340. 147 0092 002B cmp r3, #0
  341. 148 0094 44D1 bne .L9
  342. 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  343. 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
  344. 149 .loc 1 184 7
  345. 150 0096 FB68 ldr r3, [r7, #12]
  346. 151 0098 012B cmp r3, #1
  347. 152 009a 02D1 bne .L10
  348. 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 7
  350. 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
  351. 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** nbiterations = 1U;
  352. 153 .loc 1 187 20
  353. 154 009c 0123 movs r3, #1
  354. 155 009e 7B75 strb r3, [r7, #21]
  355. 156 00a0 07E0 b .L11
  356. 157 .L10:
  357. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  358. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
  359. 158 .loc 1 189 12
  360. 159 00a2 FB68 ldr r3, [r7, #12]
  361. 160 00a4 022B cmp r3, #2
  362. 161 00a6 02D1 bne .L12
  363. 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  364. 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program word (32-bit = 2*16-bit) at a specified address. */
  365. 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** nbiterations = 2U;
  366. 162 .loc 1 192 20
  367. 163 00a8 0223 movs r3, #2
  368. 164 00aa 7B75 strb r3, [r7, #21]
  369. 165 00ac 01E0 b .L11
  370. 166 .L12:
  371. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  372. 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
  373. 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  374. 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program double word (64-bit = 4*16-bit) at a specified address. */
  375. 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** nbiterations = 4U;
  376. 167 .loc 1 197 20
  377. 168 00ae 0423 movs r3, #4
  378. 169 00b0 7B75 strb r3, [r7, #21]
  379. 170 .L11:
  380. 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  381. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  382. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** for (index = 0U; index < nbiterations; index++)
  383. 171 .loc 1 200 16
  384. 172 00b2 0023 movs r3, #0
  385. 173 00b4 BB75 strb r3, [r7, #22]
  386. 174 .loc 1 200 5
  387. 175 00b6 2DE0 b .L13
  388. 176 .L15:
  389. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  390. 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index)));
  391. 177 .loc 1 202 44
  392. 178 00b8 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
  393. 179 00ba 5A00 lsls r2, r3, #1
  394. 180 .loc 1 202 7
  395. 181 00bc BB68 ldr r3, [r7, #8]
  396. 182 00be 02EB030C add ip, r2, r3
  397. 183 .loc 1 202 77
  398. 184 00c2 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
  399. 185 00c4 1901 lsls r1, r3, #4
  400. 186 .loc 1 202 70
  401. 187 00c6 D7E90023 ldrd r2, [r7]
  402. 188 00ca C1F12006 rsb r6, r1, #32
  403. 189 00ce A1F12000 sub r0, r1, #32
  404. 190 00d2 22FA01F4 lsr r4, r2, r1
  405. 191 00d6 03FA06F6 lsl r6, r3, r6
  406. 192 00da 3443 orrs r4, r4, r6
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 8
  408. 193 00dc 23FA00F0 lsr r0, r3, r0
  409. 194 00e0 0443 orrs r4, r4, r0
  410. 195 00e2 23FA01F5 lsr r5, r3, r1
  411. 196 .loc 1 202 7
  412. 197 00e6 A3B2 uxth r3, r4
  413. 198 00e8 1946 mov r1, r3
  414. 199 00ea 6046 mov r0, ip
  415. 200 00ec FFF7FEFF bl FLASH_Program_HalfWord
  416. 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  417. 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for last operation to be completed */
  418. 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
  419. 201 .loc 1 205 18
  420. 202 00f0 4CF25030 movw r0, #50000
  421. 203 00f4 FFF7FEFF bl FLASH_WaitForLastOperation
  422. 204 00f8 0346 mov r3, r0
  423. 205 00fa FB75 strb r3, [r7, #23]
  424. 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  425. 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* If the program operation is completed, disable the PG Bit */
  426. 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
  427. 206 .loc 1 208 9
  428. 207 00fc 124B ldr r3, .L17+24
  429. 208 00fe 1B69 ldr r3, [r3, #16]
  430. 209 0100 114A ldr r2, .L17+24
  431. 210 0102 23F00103 bic r3, r3, #1
  432. 211 0106 1361 str r3, [r2, #16]
  433. 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* In case of error, stop programming procedure */
  434. 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (status != HAL_OK)
  435. 212 .loc 1 210 10
  436. 213 0108 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  437. 214 010a 002B cmp r3, #0
  438. 215 010c 07D1 bne .L16
  439. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  440. 216 .loc 1 200 49 discriminator 2
  441. 217 010e BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
  442. 218 0110 0133 adds r3, r3, #1
  443. 219 0112 BB75 strb r3, [r7, #22]
  444. 220 .L13:
  445. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  446. 221 .loc 1 200 5 discriminator 1
  447. 222 0114 BA7D ldrb r2, [r7, #22] @ zero_extendqisi2
  448. 223 0116 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
  449. 224 0118 9A42 cmp r2, r3
  450. 225 011a CDD3 bcc .L15
  451. 226 011c 00E0 b .L9
  452. 227 .L16:
  453. 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  454. 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** break;
  455. 228 .loc 1 212 9
  456. 229 011e 00BF nop
  457. 230 .L9:
  458. 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  459. 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  460. 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  461. 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  462. 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Unlocked */
  463. 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
  464. 231 .loc 1 218 3
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 9
  466. 232 0120 034B ldr r3, .L17
  467. 233 0122 0022 movs r2, #0
  468. 234 0124 1A76 strb r2, [r3, #24]
  469. 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  470. 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return status;
  471. 235 .loc 1 220 10
  472. 236 0126 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  473. 237 .L3:
  474. 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  475. 238 .loc 1 221 1
  476. 239 0128 1846 mov r0, r3
  477. 240 012a 1C37 adds r7, r7, #28
  478. 241 .LCFI3:
  479. 242 .cfi_def_cfa_offset 20
  480. 243 012c BD46 mov sp, r7
  481. 244 .LCFI4:
  482. 245 .cfi_def_cfa_register 13
  483. 246 @ sp needed
  484. 247 012e F0BD pop {r4, r5, r6, r7, pc}
  485. 248 .L18:
  486. 249 .align 2
  487. 250 .L17:
  488. 251 0130 00000000 .word pFlash
  489. 252 0134 00000000 .word .LC0
  490. 253 0138 CCF7FF1F .word 536868812
  491. 254 013c FFFF0308 .word 134479871
  492. 255 0140 FFFF0108 .word 134348799
  493. 256 0144 FFFF0008 .word 134283263
  494. 257 0148 00200240 .word 1073881088
  495. 258 .cfi_endproc
  496. 259 .LFE130:
  497. 261 .section .text.HAL_FLASH_Program_IT,"ax",%progbits
  498. 262 .align 1
  499. 263 .global HAL_FLASH_Program_IT
  500. 264 .syntax unified
  501. 265 .thumb
  502. 266 .thumb_func
  503. 268 HAL_FLASH_Program_IT:
  504. 269 .LFB131:
  505. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  506. 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  507. 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address with interrupt enabled.
  508. 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
  509. 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
  510. 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  511. 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
  512. 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * the erase operation is performed before the program one.
  513. 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  514. 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
  515. 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
  516. 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Address Specifie the address to be programmed.
  517. 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Data Specifie the data to be programmed
  518. 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  519. 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
  520. 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  521. 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
  522. 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 10
  524. 270 .loc 1 239 1
  525. 271 .cfi_startproc
  526. 272 @ args = 0, pretend = 0, frame = 24
  527. 273 @ frame_needed = 1, uses_anonymous_args = 0
  528. 274 0000 80B5 push {r7, lr}
  529. 275 .LCFI5:
  530. 276 .cfi_def_cfa_offset 8
  531. 277 .cfi_offset 7, -8
  532. 278 .cfi_offset 14, -4
  533. 279 0002 86B0 sub sp, sp, #24
  534. 280 .LCFI6:
  535. 281 .cfi_def_cfa_offset 32
  536. 282 0004 00AF add r7, sp, #0
  537. 283 .LCFI7:
  538. 284 .cfi_def_cfa_register 7
  539. 285 0006 F860 str r0, [r7, #12]
  540. 286 0008 B960 str r1, [r7, #8]
  541. 287 000a C7E90023 strd r2, [r7]
  542. 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
  543. 288 .loc 1 240 21
  544. 289 000e 0023 movs r3, #0
  545. 290 0010 FB75 strb r3, [r7, #23]
  546. 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  547. 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Locked */
  548. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_LOCK(&pFlash);
  549. 291 .loc 1 243 3
  550. 292 0012 334B ldr r3, .L30
  551. 293 0014 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
  552. 294 0016 012B cmp r3, #1
  553. 295 0018 01D1 bne .L20
  554. 296 .loc 1 243 3 is_stmt 0 discriminator 1
  555. 297 001a 0223 movs r3, #2
  556. 298 001c 5CE0 b .L21
  557. 299 .L20:
  558. 300 .loc 1 243 3 discriminator 2
  559. 301 001e 304B ldr r3, .L30
  560. 302 0020 0122 movs r2, #1
  561. 303 0022 1A76 strb r2, [r3, #24]
  562. 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  563. 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check the parameters */
  564. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
  565. 304 .loc 1 246 3 is_stmt 1 discriminator 2
  566. 305 0024 FB68 ldr r3, [r7, #12]
  567. 306 0026 012B cmp r3, #1
  568. 307 0028 09D0 beq .L22
  569. 308 .loc 1 246 3 is_stmt 0 discriminator 1
  570. 309 002a FB68 ldr r3, [r7, #12]
  571. 310 002c 022B cmp r3, #2
  572. 311 002e 06D0 beq .L22
  573. 312 .loc 1 246 3 discriminator 2
  574. 313 0030 FB68 ldr r3, [r7, #12]
  575. 314 0032 032B cmp r3, #3
  576. 315 0034 03D0 beq .L22
  577. 316 .loc 1 246 3 discriminator 3
  578. 317 0036 F621 movs r1, #246
  579. 318 0038 2A48 ldr r0, .L30+4
  580. 319 003a FFF7FEFF bl assert_failed
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 11
  582. 320 .L22:
  583. 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
  584. 321 .loc 1 247 3 is_stmt 1
  585. 322 003e BB68 ldr r3, [r7, #8]
  586. 323 0040 B3F1006F cmp r3, #134217728
  587. 324 0044 16D3 bcc .L23
  588. 325 .loc 1 247 3 is_stmt 0 discriminator 2
  589. 326 0046 284B ldr r3, .L30+8
  590. 327 0048 1B88 ldrh r3, [r3]
  591. 328 004a B3F5807F cmp r3, #256
  592. 329 004e 04D1 bne .L24
  593. 330 .loc 1 247 3 discriminator 3
  594. 331 0050 BB68 ldr r3, [r7, #8]
  595. 332 0052 264A ldr r2, .L30+12
  596. 333 0054 9342 cmp r3, r2
  597. 334 0056 0DD8 bhi .L23
  598. 335 0058 10E0 b .L25
  599. 336 .L24:
  600. 337 .loc 1 247 3 discriminator 4
  601. 338 005a 234B ldr r3, .L30+8
  602. 339 005c 1B88 ldrh r3, [r3]
  603. 340 005e 802B cmp r3, #128
  604. 341 0060 04D1 bne .L26
  605. 342 .loc 1 247 3 discriminator 6
  606. 343 0062 BB68 ldr r3, [r7, #8]
  607. 344 0064 224A ldr r2, .L30+16
  608. 345 0066 9342 cmp r3, r2
  609. 346 0068 04D8 bhi .L23
  610. 347 006a 07E0 b .L25
  611. 348 .L26:
  612. 349 .loc 1 247 3 discriminator 7
  613. 350 006c BB68 ldr r3, [r7, #8]
  614. 351 006e 214A ldr r2, .L30+20
  615. 352 0070 9342 cmp r3, r2
  616. 353 0072 03D9 bls .L25
  617. 354 .L23:
  618. 355 .loc 1 247 3 discriminator 9
  619. 356 0074 F721 movs r1, #247
  620. 357 0076 1B48 ldr r0, .L30+4
  621. 358 0078 FFF7FEFF bl assert_failed
  622. 359 .L25:
  623. 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  624. 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Enable End of FLASH Operation and Error source interrupts */
  625. 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
  626. 360 .loc 1 250 3 is_stmt 1
  627. 361 007c 1E4B ldr r3, .L30+24
  628. 362 007e 1B69 ldr r3, [r3, #16]
  629. 363 0080 1D4A ldr r2, .L30+24
  630. 364 0082 43F4A053 orr r3, r3, #5120
  631. 365 0086 1361 str r3, [r2, #16]
  632. 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  633. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = Address;
  634. 366 .loc 1 252 18
  635. 367 0088 154A ldr r2, .L30
  636. 368 008a BB68 ldr r3, [r7, #8]
  637. 369 008c 9360 str r3, [r2, #8]
  638. 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Data = Data;
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 12
  640. 370 .loc 1 253 15
  641. 371 008e 1449 ldr r1, .L30
  642. 372 0090 D7E90023 ldrd r2, [r7]
  643. 373 0094 C1E90423 strd r2, [r1, #16]
  644. 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  645. 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
  646. 374 .loc 1 255 5
  647. 375 0098 FB68 ldr r3, [r7, #12]
  648. 376 009a 012B cmp r3, #1
  649. 377 009c 06D1 bne .L27
  650. 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  651. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMHALFWORD;
  652. 378 .loc 1 257 29
  653. 379 009e 104B ldr r3, .L30
  654. 380 00a0 0322 movs r2, #3
  655. 381 00a2 1A70 strb r2, [r3]
  656. 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
  657. 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining = 1U;
  658. 382 .loc 1 259 26
  659. 383 00a4 0E4B ldr r3, .L30
  660. 384 00a6 0122 movs r2, #1
  661. 385 00a8 5A60 str r2, [r3, #4]
  662. 386 00aa 0FE0 b .L28
  663. 387 .L27:
  664. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  665. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
  666. 388 .loc 1 261 10
  667. 389 00ac FB68 ldr r3, [r7, #12]
  668. 390 00ae 022B cmp r3, #2
  669. 391 00b0 06D1 bne .L29
  670. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  671. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMWORD;
  672. 392 .loc 1 263 29
  673. 393 00b2 0B4B ldr r3, .L30
  674. 394 00b4 0422 movs r2, #4
  675. 395 00b6 1A70 strb r2, [r3]
  676. 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */
  677. 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining = 2U;
  678. 396 .loc 1 265 26
  679. 397 00b8 094B ldr r3, .L30
  680. 398 00ba 0222 movs r2, #2
  681. 399 00bc 5A60 str r2, [r3, #4]
  682. 400 00be 05E0 b .L28
  683. 401 .L29:
  684. 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  685. 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
  686. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  687. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMDOUBLEWORD;
  688. 402 .loc 1 269 29
  689. 403 00c0 074B ldr r3, .L30
  690. 404 00c2 0522 movs r2, #5
  691. 405 00c4 1A70 strb r2, [r3]
  692. 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */
  693. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining = 4U;
  694. 406 .loc 1 271 26
  695. 407 00c6 064B ldr r3, .L30
  696. 408 00c8 0422 movs r2, #4
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 13
  698. 409 00ca 5A60 str r2, [r3, #4]
  699. 410 .L28:
  700. 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  701. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  702. 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
  703. 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t)Data);
  704. 411 .loc 1 275 3
  705. 412 00cc 3B88 ldrh r3, [r7]
  706. 413 00ce 1946 mov r1, r3
  707. 414 00d0 B868 ldr r0, [r7, #8]
  708. 415 00d2 FFF7FEFF bl FLASH_Program_HalfWord
  709. 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  710. 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return status;
  711. 416 .loc 1 277 10
  712. 417 00d6 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  713. 418 .L21:
  714. 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  715. 419 .loc 1 278 1
  716. 420 00d8 1846 mov r0, r3
  717. 421 00da 1837 adds r7, r7, #24
  718. 422 .LCFI8:
  719. 423 .cfi_def_cfa_offset 8
  720. 424 00dc BD46 mov sp, r7
  721. 425 .LCFI9:
  722. 426 .cfi_def_cfa_register 13
  723. 427 @ sp needed
  724. 428 00de 80BD pop {r7, pc}
  725. 429 .L31:
  726. 430 .align 2
  727. 431 .L30:
  728. 432 00e0 00000000 .word pFlash
  729. 433 00e4 00000000 .word .LC0
  730. 434 00e8 CCF7FF1F .word 536868812
  731. 435 00ec FFFF0308 .word 134479871
  732. 436 00f0 FFFF0108 .word 134348799
  733. 437 00f4 FFFF0008 .word 134283263
  734. 438 00f8 00200240 .word 1073881088
  735. 439 .cfi_endproc
  736. 440 .LFE131:
  737. 442 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits
  738. 443 .align 1
  739. 444 .global HAL_FLASH_IRQHandler
  740. 445 .syntax unified
  741. 446 .thumb
  742. 447 .thumb_func
  743. 449 HAL_FLASH_IRQHandler:
  744. 450 .LFB132:
  745. 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  746. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  747. 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief This function handles FLASH interrupt request.
  748. 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval None
  749. 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  750. 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
  751. 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  752. 451 .loc 1 285 1
  753. 452 .cfi_startproc
  754. 453 @ args = 0, pretend = 0, frame = 8
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 14
  756. 454 @ frame_needed = 1, uses_anonymous_args = 0
  757. 455 0000 80B5 push {r7, lr}
  758. 456 .LCFI10:
  759. 457 .cfi_def_cfa_offset 8
  760. 458 .cfi_offset 7, -8
  761. 459 .cfi_offset 14, -4
  762. 460 0002 82B0 sub sp, sp, #8
  763. 461 .LCFI11:
  764. 462 .cfi_def_cfa_offset 16
  765. 463 0004 00AF add r7, sp, #0
  766. 464 .LCFI12:
  767. 465 .cfi_def_cfa_register 7
  768. 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t addresstmp = 0U;
  769. 466 .loc 1 286 12
  770. 467 0006 0023 movs r3, #0
  771. 468 0008 7B60 str r3, [r7, #4]
  772. 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  773. 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check FLASH operation error flags */
  774. 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
  775. 469 .loc 1 289 6
  776. 470 000a 6D4B ldr r3, .L45
  777. 471 000c DB68 ldr r3, [r3, #12]
  778. 472 000e 03F01003 and r3, r3, #16
  779. 473 .loc 1 289 5
  780. 474 0012 102B cmp r3, #16
  781. 475 0014 05D0 beq .L33
  782. 476 .loc 1 289 48 discriminator 1
  783. 477 0016 6A4B ldr r3, .L45
  784. 478 0018 DB68 ldr r3, [r3, #12]
  785. 479 001a 03F00403 and r3, r3, #4
  786. 480 .loc 1 289 46 discriminator 1
  787. 481 001e 042B cmp r3, #4
  788. 482 0020 0ED1 bne .L34
  789. 483 .L33:
  790. 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  791. 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Return the faulty address */
  792. 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address;
  793. 484 .loc 1 292 16
  794. 485 0022 684B ldr r3, .L45+4
  795. 486 0024 9B68 ldr r3, [r3, #8]
  796. 487 0026 7B60 str r3, [r7, #4]
  797. 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Reset address */
  798. 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU;
  799. 488 .loc 1 294 20
  800. 489 0028 664B ldr r3, .L45+4
  801. 490 002a 4FF0FF32 mov r2, #-1
  802. 491 002e 9A60 str r2, [r3, #8]
  803. 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  804. 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Save the Error code */
  805. 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_SetErrorCode();
  806. 492 .loc 1 297 5
  807. 493 0030 FFF7FEFF bl FLASH_SetErrorCode
  808. 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  809. 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH error interrupt user callback */
  810. 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(addresstmp);
  811. 494 .loc 1 300 5
  812. 495 0034 7868 ldr r0, [r7, #4]
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 15
  814. 496 0036 FFF7FEFF bl HAL_FLASH_OperationErrorCallback
  815. 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  816. 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Stop the procedure ongoing */
  817. 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  818. 497 .loc 1 303 29
  819. 498 003a 624B ldr r3, .L45+4
  820. 499 003c 0022 movs r2, #0
  821. 500 003e 1A70 strb r2, [r3]
  822. 501 .L34:
  823. 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  824. 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  825. 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check FLASH End of Operation flag */
  826. 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
  827. 502 .loc 1 307 6
  828. 503 0040 5F4B ldr r3, .L45
  829. 504 0042 DB68 ldr r3, [r3, #12]
  830. 505 0044 03F02003 and r3, r3, #32
  831. 506 .loc 1 307 5
  832. 507 0048 202B cmp r3, #32
  833. 508 004a 40F0A080 bne .L35
  834. 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  835. 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
  836. 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
  837. 509 .loc 1 310 5
  838. 510 004e 5C4B ldr r3, .L45
  839. 511 0050 2022 movs r2, #32
  840. 512 0052 DA60 str r2, [r3, #12]
  841. 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  842. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process can continue only if no error detected */
  843. 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE)
  844. 513 .loc 1 313 14
  845. 514 0054 5B4B ldr r3, .L45+4
  846. 515 0056 1B78 ldrb r3, [r3]
  847. 516 0058 DBB2 uxtb r3, r3
  848. 517 .loc 1 313 7
  849. 518 005a 002B cmp r3, #0
  850. 519 005c 00F09780 beq .L35
  851. 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  852. 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE)
  853. 520 .loc 1 315 16
  854. 521 0060 584B ldr r3, .L45+4
  855. 522 0062 1B78 ldrb r3, [r3]
  856. 523 0064 DBB2 uxtb r3, r3
  857. 524 .loc 1 315 9
  858. 525 0066 012B cmp r3, #1
  859. 526 0068 2DD1 bne .L36
  860. 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  861. 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Nb of pages to erased can be decreased */
  862. 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining--;
  863. 527 .loc 1 318 15
  864. 528 006a 564B ldr r3, .L45+4
  865. 529 006c 5B68 ldr r3, [r3, #4]
  866. 530 .loc 1 318 29
  867. 531 006e 013B subs r3, r3, #1
  868. 532 0070 544A ldr r2, .L45+4
  869. 533 0072 5360 str r3, [r2, #4]
  870. 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 16
  872. 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check if there are still pages to erase */
  873. 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.DataRemaining != 0U)
  874. 534 .loc 1 321 18
  875. 535 0074 534B ldr r3, .L45+4
  876. 536 0076 5B68 ldr r3, [r3, #4]
  877. 537 .loc 1 321 11
  878. 538 0078 002B cmp r3, #0
  879. 539 007a 17D0 beq .L37
  880. 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  881. 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address;
  882. 540 .loc 1 323 22
  883. 541 007c 514B ldr r3, .L45+4
  884. 542 007e 9B68 ldr r3, [r3, #8]
  885. 543 0080 7B60 str r3, [r7, #4]
  886. 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Indicate user which sector has been erased */
  887. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
  888. 544 .loc 1 325 11
  889. 545 0082 7868 ldr r0, [r7, #4]
  890. 546 0084 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  891. 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  892. 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Increment sector number*/
  893. 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address + FLASH_PAGE_SIZE;
  894. 547 .loc 1 328 30
  895. 548 0088 4E4B ldr r3, .L45+4
  896. 549 008a 9B68 ldr r3, [r3, #8]
  897. 550 .loc 1 328 22
  898. 551 008c 03F50063 add r3, r3, #2048
  899. 552 0090 7B60 str r3, [r7, #4]
  900. 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = addresstmp;
  901. 553 .loc 1 329 26
  902. 554 0092 4C4A ldr r2, .L45+4
  903. 555 0094 7B68 ldr r3, [r7, #4]
  904. 556 0096 9360 str r3, [r2, #8]
  905. 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  906. 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* If the erase operation is completed, disable the PER Bit */
  907. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
  908. 557 .loc 1 332 11
  909. 558 0098 494B ldr r3, .L45
  910. 559 009a 1B69 ldr r3, [r3, #16]
  911. 560 009c 484A ldr r2, .L45
  912. 561 009e 23F00203 bic r3, r3, #2
  913. 562 00a2 1361 str r3, [r2, #16]
  914. 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  915. 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_PageErase(addresstmp);
  916. 563 .loc 1 334 11
  917. 564 00a4 7868 ldr r0, [r7, #4]
  918. 565 00a6 FFF7FEFF bl FLASH_PageErase
  919. 566 00aa 70E0 b .L35
  920. 567 .L37:
  921. 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  922. 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
  923. 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  924. 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* No more pages to Erase, user callback can be called. */
  925. 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Reset Sector and stop Erase pages procedure */
  926. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = addresstmp = 0xFFFFFFFFU;
  927. 568 .loc 1 340 39
  928. 569 00ac 4FF0FF33 mov r3, #-1
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 17
  930. 570 00b0 7B60 str r3, [r7, #4]
  931. 571 .loc 1 340 26
  932. 572 00b2 444A ldr r2, .L45+4
  933. 573 00b4 7B68 ldr r3, [r7, #4]
  934. 574 00b6 9360 str r3, [r2, #8]
  935. 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  936. 575 .loc 1 341 35
  937. 576 00b8 424B ldr r3, .L45+4
  938. 577 00ba 0022 movs r2, #0
  939. 578 00bc 1A70 strb r2, [r3]
  940. 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
  941. 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
  942. 579 .loc 1 343 11
  943. 580 00be 7868 ldr r0, [r7, #4]
  944. 581 00c0 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  945. 582 00c4 63E0 b .L35
  946. 583 .L36:
  947. 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  948. 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  949. 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
  950. 584 .loc 1 346 21
  951. 585 00c6 3F4B ldr r3, .L45+4
  952. 586 00c8 1B78 ldrb r3, [r3]
  953. 587 00ca DBB2 uxtb r3, r3
  954. 588 .loc 1 346 14
  955. 589 00cc 022B cmp r3, #2
  956. 590 00ce 0CD1 bne .L38
  957. 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  958. 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Operation is completed, disable the MER Bit */
  959. 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER);
  960. 591 .loc 1 349 9
  961. 592 00d0 3B4B ldr r3, .L45
  962. 593 00d2 1B69 ldr r3, [r3, #16]
  963. 594 00d4 3A4A ldr r2, .L45
  964. 595 00d6 23F00403 bic r3, r3, #4
  965. 596 00da 1361 str r3, [r2, #16]
  966. 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  967. 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* MassErase ended. Return the selected bank */
  968. 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
  969. 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(0U);
  970. 597 .loc 1 353 11
  971. 598 00dc 0020 movs r0, #0
  972. 599 00de FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  973. 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  974. 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Stop Mass Erase procedure*/
  975. 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  976. 600 .loc 1 356 35
  977. 601 00e2 384B ldr r3, .L45+4
  978. 602 00e4 0022 movs r2, #0
  979. 603 00e6 1A70 strb r2, [r3]
  980. 604 00e8 51E0 b .L35
  981. 605 .L38:
  982. 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  983. 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
  984. 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  985. 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Nb of 16-bit data to program can be decreased */
  986. 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining--;
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 18
  988. 606 .loc 1 361 15
  989. 607 00ea 364B ldr r3, .L45+4
  990. 608 00ec 5B68 ldr r3, [r3, #4]
  991. 609 .loc 1 361 29
  992. 610 00ee 013B subs r3, r3, #1
  993. 611 00f0 344A ldr r2, .L45+4
  994. 612 00f2 5360 str r3, [r2, #4]
  995. 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  996. 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check if there are still 16-bit data to program */
  997. 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.DataRemaining != 0U)
  998. 613 .loc 1 364 18
  999. 614 00f4 334B ldr r3, .L45+4
  1000. 615 00f6 5B68 ldr r3, [r3, #4]
  1001. 616 .loc 1 364 11
  1002. 617 00f8 002B cmp r3, #0
  1003. 618 00fa 24D0 beq .L39
  1004. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1005. 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Increment address to 16-bit */
  1006. 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address += 2U;
  1007. 619 .loc 1 367 26
  1008. 620 00fc 314B ldr r3, .L45+4
  1009. 621 00fe 9B68 ldr r3, [r3, #8]
  1010. 622 0100 0233 adds r3, r3, #2
  1011. 623 0102 304A ldr r2, .L45+4
  1012. 624 0104 9360 str r3, [r2, #8]
  1013. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address;
  1014. 625 .loc 1 368 22
  1015. 626 0106 2F4B ldr r3, .L45+4
  1016. 627 0108 9B68 ldr r3, [r3, #8]
  1017. 628 010a 7B60 str r3, [r7, #4]
  1018. 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1019. 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Shift to have next 16-bit data */
  1020. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Data = (pFlash.Data >> 16U);
  1021. 629 .loc 1 371 32
  1022. 630 010c 2D4B ldr r3, .L45+4
  1023. 631 010e D3E90401 ldrd r0, [r3, #16]
  1024. 632 .loc 1 371 38
  1025. 633 0112 4FF00002 mov r2, #0
  1026. 634 0116 4FF00003 mov r3, #0
  1027. 635 011a 020C lsrs r2, r0, #16
  1028. 636 011c 42EA0142 orr r2, r2, r1, lsl #16
  1029. 637 0120 0B0C lsrs r3, r1, #16
  1030. 638 .loc 1 371 23
  1031. 639 0122 2849 ldr r1, .L45+4
  1032. 640 0124 C1E90423 strd r2, [r1, #16]
  1033. 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1034. 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Operation is completed, disable the PG Bit */
  1035. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
  1036. 641 .loc 1 374 11
  1037. 642 0128 254B ldr r3, .L45
  1038. 643 012a 1B69 ldr r3, [r3, #16]
  1039. 644 012c 244A ldr r2, .L45
  1040. 645 012e 23F00103 bic r3, r3, #1
  1041. 646 0132 1361 str r3, [r2, #16]
  1042. 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1043. 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/
  1044. 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_Program_HalfWord(addresstmp, (uint16_t)pFlash.Data);
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 19
  1046. 647 .loc 1 377 62
  1047. 648 0134 234B ldr r3, .L45+4
  1048. 649 0136 D3E90423 ldrd r2, [r3, #16]
  1049. 650 .loc 1 377 11
  1050. 651 013a 93B2 uxth r3, r2
  1051. 652 013c 1946 mov r1, r3
  1052. 653 013e 7868 ldr r0, [r7, #4]
  1053. 654 0140 FFF7FEFF bl FLASH_Program_HalfWord
  1054. 655 0144 23E0 b .L35
  1055. 656 .L39:
  1056. 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1057. 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
  1058. 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1059. 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program ended. Return the selected address */
  1060. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
  1061. 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMHALFWORD)
  1062. 657 .loc 1 383 21
  1063. 658 0146 1F4B ldr r3, .L45+4
  1064. 659 0148 1B78 ldrb r3, [r3]
  1065. 660 014a DBB2 uxtb r3, r3
  1066. 661 .loc 1 383 14
  1067. 662 014c 032B cmp r3, #3
  1068. 663 014e 05D1 bne .L40
  1069. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1070. 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address);
  1071. 664 .loc 1 385 13
  1072. 665 0150 1C4B ldr r3, .L45+4
  1073. 666 0152 9B68 ldr r3, [r3, #8]
  1074. 667 0154 1846 mov r0, r3
  1075. 668 0156 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  1076. 669 015a 11E0 b .L41
  1077. 670 .L40:
  1078. 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1079. 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMWORD)
  1080. 671 .loc 1 387 26
  1081. 672 015c 194B ldr r3, .L45+4
  1082. 673 015e 1B78 ldrb r3, [r3]
  1083. 674 0160 DBB2 uxtb r3, r3
  1084. 675 .loc 1 387 19
  1085. 676 0162 042B cmp r3, #4
  1086. 677 0164 06D1 bne .L42
  1087. 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1088. 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 2U);
  1089. 678 .loc 1 389 52
  1090. 679 0166 174B ldr r3, .L45+4
  1091. 680 0168 9B68 ldr r3, [r3, #8]
  1092. 681 .loc 1 389 13
  1093. 682 016a 023B subs r3, r3, #2
  1094. 683 016c 1846 mov r0, r3
  1095. 684 016e FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  1096. 685 0172 05E0 b .L41
  1097. 686 .L42:
  1098. 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1099. 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
  1100. 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1101. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 6U);
  1102. 687 .loc 1 393 52
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 20
  1104. 688 0174 134B ldr r3, .L45+4
  1105. 689 0176 9B68 ldr r3, [r3, #8]
  1106. 690 .loc 1 393 13
  1107. 691 0178 063B subs r3, r3, #6
  1108. 692 017a 1846 mov r0, r3
  1109. 693 017c FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  1110. 694 .L41:
  1111. 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1112. 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1113. 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Reset Address and stop Program procedure */
  1114. 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU;
  1115. 695 .loc 1 397 26
  1116. 696 0180 104B ldr r3, .L45+4
  1117. 697 0182 4FF0FF32 mov r2, #-1
  1118. 698 0186 9A60 str r2, [r3, #8]
  1119. 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  1120. 699 .loc 1 398 35
  1121. 700 0188 0E4B ldr r3, .L45+4
  1122. 701 018a 0022 movs r2, #0
  1123. 702 018c 1A70 strb r2, [r3]
  1124. 703 .L35:
  1125. 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1126. 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1127. 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1128. 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1129. 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1130. 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1131. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
  1132. 704 .loc 1 405 12
  1133. 705 018e 0D4B ldr r3, .L45+4
  1134. 706 0190 1B78 ldrb r3, [r3]
  1135. 707 0192 DBB2 uxtb r3, r3
  1136. 708 .loc 1 405 5
  1137. 709 0194 002B cmp r3, #0
  1138. 710 0196 0ED1 bne .L44
  1139. 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1140. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Operation is completed, disable the PG, PER and MER Bits */
  1141. 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_PER | FLASH_CR_MER));
  1142. 711 .loc 1 408 5
  1143. 712 0198 094B ldr r3, .L45
  1144. 713 019a 1B69 ldr r3, [r3, #16]
  1145. 714 019c 084A ldr r2, .L45
  1146. 715 019e 23F00703 bic r3, r3, #7
  1147. 716 01a2 1361 str r3, [r2, #16]
  1148. 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1149. 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Disable End of FLASH Operation and Error source interrupts */
  1150. 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
  1151. 717 .loc 1 411 5
  1152. 718 01a4 064B ldr r3, .L45
  1153. 719 01a6 1B69 ldr r3, [r3, #16]
  1154. 720 01a8 054A ldr r2, .L45
  1155. 721 01aa 23F4A053 bic r3, r3, #5120
  1156. 722 01ae 1361 str r3, [r2, #16]
  1157. 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1158. 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Unlocked */
  1159. 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
  1160. 723 .loc 1 414 5
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 21
  1162. 724 01b0 044B ldr r3, .L45+4
  1163. 725 01b2 0022 movs r2, #0
  1164. 726 01b4 1A76 strb r2, [r3, #24]
  1165. 727 .L44:
  1166. 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1167. 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1168. 728 .loc 1 416 1
  1169. 729 01b6 00BF nop
  1170. 730 01b8 0837 adds r7, r7, #8
  1171. 731 .LCFI13:
  1172. 732 .cfi_def_cfa_offset 8
  1173. 733 01ba BD46 mov sp, r7
  1174. 734 .LCFI14:
  1175. 735 .cfi_def_cfa_register 13
  1176. 736 @ sp needed
  1177. 737 01bc 80BD pop {r7, pc}
  1178. 738 .L46:
  1179. 739 01be 00BF .align 2
  1180. 740 .L45:
  1181. 741 01c0 00200240 .word 1073881088
  1182. 742 01c4 00000000 .word pFlash
  1183. 743 .cfi_endproc
  1184. 744 .LFE132:
  1185. 746 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
  1186. 747 .align 1
  1187. 748 .weak HAL_FLASH_EndOfOperationCallback
  1188. 749 .syntax unified
  1189. 750 .thumb
  1190. 751 .thumb_func
  1191. 753 HAL_FLASH_EndOfOperationCallback:
  1192. 754 .LFB133:
  1193. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1194. 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1195. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback
  1196. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
  1197. 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Mass Erase: No return value expected
  1198. 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Pages Erase: Address of the page which has been erased
  1199. 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * (if 0xFFFFFFFF, it means that all the selected pages have been erased)
  1200. 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Program: Address which was selected for data program
  1201. 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval none
  1202. 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1203. 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
  1204. 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1205. 755 .loc 1 428 1
  1206. 756 .cfi_startproc
  1207. 757 @ args = 0, pretend = 0, frame = 8
  1208. 758 @ frame_needed = 1, uses_anonymous_args = 0
  1209. 759 @ link register save eliminated.
  1210. 760 0000 80B4 push {r7}
  1211. 761 .LCFI15:
  1212. 762 .cfi_def_cfa_offset 4
  1213. 763 .cfi_offset 7, -4
  1214. 764 0002 83B0 sub sp, sp, #12
  1215. 765 .LCFI16:
  1216. 766 .cfi_def_cfa_offset 16
  1217. 767 0004 00AF add r7, sp, #0
  1218. 768 .LCFI17:
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 22
  1220. 769 .cfi_def_cfa_register 7
  1221. 770 0006 7860 str r0, [r7, #4]
  1222. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
  1223. 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** UNUSED(ReturnValue);
  1224. 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1225. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
  1226. 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
  1227. 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1228. 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1229. 771 .loc 1 435 1
  1230. 772 0008 00BF nop
  1231. 773 000a 0C37 adds r7, r7, #12
  1232. 774 .LCFI18:
  1233. 775 .cfi_def_cfa_offset 4
  1234. 776 000c BD46 mov sp, r7
  1235. 777 .LCFI19:
  1236. 778 .cfi_def_cfa_register 13
  1237. 779 @ sp needed
  1238. 780 000e 5DF8047B ldr r7, [sp], #4
  1239. 781 .LCFI20:
  1240. 782 .cfi_restore 7
  1241. 783 .cfi_def_cfa_offset 0
  1242. 784 0012 7047 bx lr
  1243. 785 .cfi_endproc
  1244. 786 .LFE133:
  1245. 788 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
  1246. 789 .align 1
  1247. 790 .weak HAL_FLASH_OperationErrorCallback
  1248. 791 .syntax unified
  1249. 792 .thumb
  1250. 793 .thumb_func
  1251. 795 HAL_FLASH_OperationErrorCallback:
  1252. 796 .LFB134:
  1253. 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1254. 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1255. 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH operation error interrupt callback
  1256. 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
  1257. 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Mass Erase: No return value expected
  1258. 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Pages Erase: Address of the page which returned an error
  1259. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Program: Address which was selected for data program
  1260. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval none
  1261. 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1262. 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
  1263. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1264. 797 .loc 1 446 1
  1265. 798 .cfi_startproc
  1266. 799 @ args = 0, pretend = 0, frame = 8
  1267. 800 @ frame_needed = 1, uses_anonymous_args = 0
  1268. 801 @ link register save eliminated.
  1269. 802 0000 80B4 push {r7}
  1270. 803 .LCFI21:
  1271. 804 .cfi_def_cfa_offset 4
  1272. 805 .cfi_offset 7, -4
  1273. 806 0002 83B0 sub sp, sp, #12
  1274. 807 .LCFI22:
  1275. 808 .cfi_def_cfa_offset 16
  1276. 809 0004 00AF add r7, sp, #0
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 23
  1278. 810 .LCFI23:
  1279. 811 .cfi_def_cfa_register 7
  1280. 812 0006 7860 str r0, [r7, #4]
  1281. 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
  1282. 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** UNUSED(ReturnValue);
  1283. 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1284. 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
  1285. 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file
  1286. 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1287. 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1288. 813 .loc 1 453 1
  1289. 814 0008 00BF nop
  1290. 815 000a 0C37 adds r7, r7, #12
  1291. 816 .LCFI24:
  1292. 817 .cfi_def_cfa_offset 4
  1293. 818 000c BD46 mov sp, r7
  1294. 819 .LCFI25:
  1295. 820 .cfi_def_cfa_register 13
  1296. 821 @ sp needed
  1297. 822 000e 5DF8047B ldr r7, [sp], #4
  1298. 823 .LCFI26:
  1299. 824 .cfi_restore 7
  1300. 825 .cfi_def_cfa_offset 0
  1301. 826 0012 7047 bx lr
  1302. 827 .cfi_endproc
  1303. 828 .LFE134:
  1304. 830 .section .text.HAL_FLASH_Unlock,"ax",%progbits
  1305. 831 .align 1
  1306. 832 .global HAL_FLASH_Unlock
  1307. 833 .syntax unified
  1308. 834 .thumb
  1309. 835 .thumb_func
  1310. 837 HAL_FLASH_Unlock:
  1311. 838 .LFB135:
  1312. 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1313. 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1314. 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  1315. 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1316. 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1317. 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
  1318. 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief management functions
  1319. 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  1320. 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
  1321. 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
  1322. 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### Peripheral Control functions #####
  1323. 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
  1324. 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..]
  1325. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH
  1326. 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** memory operations.
  1327. 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1328. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
  1329. 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  1330. 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1331. 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1332. 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1333. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Unlock the FLASH control register access
  1334. 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 24
  1336. 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1337. 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
  1338. 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1339. 839 .loc 1 479 1
  1340. 840 .cfi_startproc
  1341. 841 @ args = 0, pretend = 0, frame = 8
  1342. 842 @ frame_needed = 1, uses_anonymous_args = 0
  1343. 843 @ link register save eliminated.
  1344. 844 0000 80B4 push {r7}
  1345. 845 .LCFI27:
  1346. 846 .cfi_def_cfa_offset 4
  1347. 847 .cfi_offset 7, -4
  1348. 848 0002 83B0 sub sp, sp, #12
  1349. 849 .LCFI28:
  1350. 850 .cfi_def_cfa_offset 16
  1351. 851 0004 00AF add r7, sp, #0
  1352. 852 .LCFI29:
  1353. 853 .cfi_def_cfa_register 7
  1354. 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
  1355. 854 .loc 1 480 21
  1356. 855 0006 0023 movs r3, #0
  1357. 856 0008 FB71 strb r3, [r7, #7]
  1358. 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1359. 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
  1360. 857 .loc 1 482 6
  1361. 858 000a 0D4B ldr r3, .L52
  1362. 859 000c 1B69 ldr r3, [r3, #16]
  1363. 860 000e 03F08003 and r3, r3, #128
  1364. 861 .loc 1 482 5
  1365. 862 0012 002B cmp r3, #0
  1366. 863 0014 0DD0 beq .L50
  1367. 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1368. 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Authorize the FLASH Registers access */
  1369. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1);
  1370. 864 .loc 1 485 5
  1371. 865 0016 0A4B ldr r3, .L52
  1372. 866 0018 0A4A ldr r2, .L52+4
  1373. 867 001a 5A60 str r2, [r3, #4]
  1374. 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
  1375. 868 .loc 1 486 5
  1376. 869 001c 084B ldr r3, .L52
  1377. 870 001e 0A4A ldr r2, .L52+8
  1378. 871 0020 5A60 str r2, [r3, #4]
  1379. 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1380. 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Verify Flash is unlocked */
  1381. 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
  1382. 872 .loc 1 489 8
  1383. 873 0022 074B ldr r3, .L52
  1384. 874 0024 1B69 ldr r3, [r3, #16]
  1385. 875 0026 03F08003 and r3, r3, #128
  1386. 876 .loc 1 489 7
  1387. 877 002a 002B cmp r3, #0
  1388. 878 002c 01D0 beq .L50
  1389. 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1390. 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** status = HAL_ERROR;
  1391. 879 .loc 1 491 14
  1392. 880 002e 0123 movs r3, #1
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 25
  1394. 881 0030 FB71 strb r3, [r7, #7]
  1395. 882 .L50:
  1396. 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1397. 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1398. 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1399. 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return status;
  1400. 883 .loc 1 495 10
  1401. 884 0032 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  1402. 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1403. 885 .loc 1 496 1
  1404. 886 0034 1846 mov r0, r3
  1405. 887 0036 0C37 adds r7, r7, #12
  1406. 888 .LCFI30:
  1407. 889 .cfi_def_cfa_offset 4
  1408. 890 0038 BD46 mov sp, r7
  1409. 891 .LCFI31:
  1410. 892 .cfi_def_cfa_register 13
  1411. 893 @ sp needed
  1412. 894 003a 5DF8047B ldr r7, [sp], #4
  1413. 895 .LCFI32:
  1414. 896 .cfi_restore 7
  1415. 897 .cfi_def_cfa_offset 0
  1416. 898 003e 7047 bx lr
  1417. 899 .L53:
  1418. 900 .align 2
  1419. 901 .L52:
  1420. 902 0040 00200240 .word 1073881088
  1421. 903 0044 23016745 .word 1164378403
  1422. 904 0048 AB89EFCD .word -839939669
  1423. 905 .cfi_endproc
  1424. 906 .LFE135:
  1425. 908 .section .text.HAL_FLASH_Lock,"ax",%progbits
  1426. 909 .align 1
  1427. 910 .global HAL_FLASH_Lock
  1428. 911 .syntax unified
  1429. 912 .thumb
  1430. 913 .thumb_func
  1431. 915 HAL_FLASH_Lock:
  1432. 916 .LFB136:
  1433. 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1434. 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1435. 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Locks the FLASH control register access
  1436. 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
  1437. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1438. 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
  1439. 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1440. 917 .loc 1 503 1
  1441. 918 .cfi_startproc
  1442. 919 @ args = 0, pretend = 0, frame = 0
  1443. 920 @ frame_needed = 1, uses_anonymous_args = 0
  1444. 921 @ link register save eliminated.
  1445. 922 0000 80B4 push {r7}
  1446. 923 .LCFI33:
  1447. 924 .cfi_def_cfa_offset 4
  1448. 925 .cfi_offset 7, -4
  1449. 926 0002 00AF add r7, sp, #0
  1450. 927 .LCFI34:
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 26
  1452. 928 .cfi_def_cfa_register 7
  1453. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
  1454. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_LOCK);
  1455. 929 .loc 1 505 3
  1456. 930 0004 054B ldr r3, .L56
  1457. 931 0006 1B69 ldr r3, [r3, #16]
  1458. 932 0008 044A ldr r2, .L56
  1459. 933 000a 43F08003 orr r3, r3, #128
  1460. 934 000e 1361 str r3, [r2, #16]
  1461. 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1462. 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
  1463. 935 .loc 1 507 10
  1464. 936 0010 0023 movs r3, #0
  1465. 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1466. 937 .loc 1 508 1
  1467. 938 0012 1846 mov r0, r3
  1468. 939 0014 BD46 mov sp, r7
  1469. 940 .LCFI35:
  1470. 941 .cfi_def_cfa_register 13
  1471. 942 @ sp needed
  1472. 943 0016 5DF8047B ldr r7, [sp], #4
  1473. 944 .LCFI36:
  1474. 945 .cfi_restore 7
  1475. 946 .cfi_def_cfa_offset 0
  1476. 947 001a 7047 bx lr
  1477. 948 .L57:
  1478. 949 .align 2
  1479. 950 .L56:
  1480. 951 001c 00200240 .word 1073881088
  1481. 952 .cfi_endproc
  1482. 953 .LFE136:
  1483. 955 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits
  1484. 956 .align 1
  1485. 957 .global HAL_FLASH_OB_Unlock
  1486. 958 .syntax unified
  1487. 959 .thumb
  1488. 960 .thumb_func
  1489. 962 HAL_FLASH_OB_Unlock:
  1490. 963 .LFB137:
  1491. 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1492. 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1493. 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access.
  1494. 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
  1495. 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1496. 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
  1497. 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1498. 964 .loc 1 515 1
  1499. 965 .cfi_startproc
  1500. 966 @ args = 0, pretend = 0, frame = 0
  1501. 967 @ frame_needed = 1, uses_anonymous_args = 0
  1502. 968 @ link register save eliminated.
  1503. 969 0000 80B4 push {r7}
  1504. 970 .LCFI37:
  1505. 971 .cfi_def_cfa_offset 4
  1506. 972 .cfi_offset 7, -4
  1507. 973 0002 00AF add r7, sp, #0
  1508. 974 .LCFI38:
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 27
  1510. 975 .cfi_def_cfa_register 7
  1511. 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE))
  1512. 976 .loc 1 516 7
  1513. 977 0004 094B ldr r3, .L62
  1514. 978 0006 1B69 ldr r3, [r3, #16]
  1515. 979 0008 03F40073 and r3, r3, #512
  1516. 980 .loc 1 516 6
  1517. 981 000c 002B cmp r3, #0
  1518. 982 000e 07D1 bne .L59
  1519. 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1520. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Authorizes the Option Byte register programming */
  1521. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1);
  1522. 983 .loc 1 519 5
  1523. 984 0010 064B ldr r3, .L62
  1524. 985 0012 074A ldr r2, .L62+4
  1525. 986 0014 9A60 str r2, [r3, #8]
  1526. 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
  1527. 987 .loc 1 520 5
  1528. 988 0016 054B ldr r3, .L62
  1529. 989 0018 064A ldr r2, .L62+8
  1530. 990 001a 9A60 str r2, [r3, #8]
  1531. 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1532. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
  1533. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1534. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_ERROR;
  1535. 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1536. 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1537. 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
  1538. 991 .loc 1 527 10
  1539. 992 001c 0023 movs r3, #0
  1540. 993 001e 00E0 b .L61
  1541. 994 .L59:
  1542. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1543. 995 .loc 1 524 12
  1544. 996 0020 0123 movs r3, #1
  1545. 997 .L61:
  1546. 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1547. 998 .loc 1 528 1
  1548. 999 0022 1846 mov r0, r3
  1549. 1000 0024 BD46 mov sp, r7
  1550. 1001 .LCFI39:
  1551. 1002 .cfi_def_cfa_register 13
  1552. 1003 @ sp needed
  1553. 1004 0026 5DF8047B ldr r7, [sp], #4
  1554. 1005 .LCFI40:
  1555. 1006 .cfi_restore 7
  1556. 1007 .cfi_def_cfa_offset 0
  1557. 1008 002a 7047 bx lr
  1558. 1009 .L63:
  1559. 1010 .align 2
  1560. 1011 .L62:
  1561. 1012 002c 00200240 .word 1073881088
  1562. 1013 0030 23016745 .word 1164378403
  1563. 1014 0034 AB89EFCD .word -839939669
  1564. 1015 .cfi_endproc
  1565. 1016 .LFE137:
  1566. 1018 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 28
  1568. 1019 .align 1
  1569. 1020 .global HAL_FLASH_OB_Lock
  1570. 1021 .syntax unified
  1571. 1022 .thumb
  1572. 1023 .thumb_func
  1573. 1025 HAL_FLASH_OB_Lock:
  1574. 1026 .LFB138:
  1575. 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1576. 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1577. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access.
  1578. 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
  1579. 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1580. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
  1581. 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1582. 1027 .loc 1 535 1
  1583. 1028 .cfi_startproc
  1584. 1029 @ args = 0, pretend = 0, frame = 0
  1585. 1030 @ frame_needed = 1, uses_anonymous_args = 0
  1586. 1031 @ link register save eliminated.
  1587. 1032 0000 80B4 push {r7}
  1588. 1033 .LCFI41:
  1589. 1034 .cfi_def_cfa_offset 4
  1590. 1035 .cfi_offset 7, -4
  1591. 1036 0002 00AF add r7, sp, #0
  1592. 1037 .LCFI42:
  1593. 1038 .cfi_def_cfa_register 7
  1594. 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */
  1595. 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTWRE);
  1596. 1039 .loc 1 537 3
  1597. 1040 0004 054B ldr r3, .L66
  1598. 1041 0006 1B69 ldr r3, [r3, #16]
  1599. 1042 0008 044A ldr r2, .L66
  1600. 1043 000a 23F40073 bic r3, r3, #512
  1601. 1044 000e 1361 str r3, [r2, #16]
  1602. 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1603. 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
  1604. 1045 .loc 1 539 10
  1605. 1046 0010 0023 movs r3, #0
  1606. 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1607. 1047 .loc 1 540 1
  1608. 1048 0012 1846 mov r0, r3
  1609. 1049 0014 BD46 mov sp, r7
  1610. 1050 .LCFI43:
  1611. 1051 .cfi_def_cfa_register 13
  1612. 1052 @ sp needed
  1613. 1053 0016 5DF8047B ldr r7, [sp], #4
  1614. 1054 .LCFI44:
  1615. 1055 .cfi_restore 7
  1616. 1056 .cfi_def_cfa_offset 0
  1617. 1057 001a 7047 bx lr
  1618. 1058 .L67:
  1619. 1059 .align 2
  1620. 1060 .L66:
  1621. 1061 001c 00200240 .word 1073881088
  1622. 1062 .cfi_endproc
  1623. 1063 .LFE138:
  1624. 1065 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits
  1625. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 29
  1626. 1066 .align 1
  1627. 1067 .global HAL_FLASH_OB_Launch
  1628. 1068 .syntax unified
  1629. 1069 .thumb
  1630. 1070 .thumb_func
  1631. 1072 HAL_FLASH_OB_Launch:
  1632. 1073 .LFB139:
  1633. 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1634. 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1635. 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Launch the option byte loading.
  1636. 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note This function will reset automatically the MCU.
  1637. 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
  1638. 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1639. 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
  1640. 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1641. 1074 .loc 1 548 1
  1642. 1075 .cfi_startproc
  1643. 1076 @ args = 0, pretend = 0, frame = 0
  1644. 1077 @ frame_needed = 1, uses_anonymous_args = 0
  1645. 1078 0000 80B5 push {r7, lr}
  1646. 1079 .LCFI45:
  1647. 1080 .cfi_def_cfa_offset 8
  1648. 1081 .cfi_offset 7, -8
  1649. 1082 .cfi_offset 14, -4
  1650. 1083 0002 00AF add r7, sp, #0
  1651. 1084 .LCFI46:
  1652. 1085 .cfi_def_cfa_register 7
  1653. 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Set the OBL_Launch bit to launch the option byte loading */
  1654. 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH);
  1655. 1086 .loc 1 550 3
  1656. 1087 0004 064B ldr r3, .L70
  1657. 1088 0006 1B69 ldr r3, [r3, #16]
  1658. 1089 0008 054A ldr r2, .L70
  1659. 1090 000a 43F40053 orr r3, r3, #8192
  1660. 1091 000e 1361 str r3, [r2, #16]
  1661. 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1662. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for last operation to be completed */
  1663. 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return(FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE));
  1664. 1092 .loc 1 553 10
  1665. 1093 0010 4CF25030 movw r0, #50000
  1666. 1094 0014 FFF7FEFF bl FLASH_WaitForLastOperation
  1667. 1095 0018 0346 mov r3, r0
  1668. 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1669. 1096 .loc 1 554 1
  1670. 1097 001a 1846 mov r0, r3
  1671. 1098 001c 80BD pop {r7, pc}
  1672. 1099 .L71:
  1673. 1100 001e 00BF .align 2
  1674. 1101 .L70:
  1675. 1102 0020 00200240 .word 1073881088
  1676. 1103 .cfi_endproc
  1677. 1104 .LFE139:
  1678. 1106 .section .text.HAL_FLASH_GetError,"ax",%progbits
  1679. 1107 .align 1
  1680. 1108 .global HAL_FLASH_GetError
  1681. 1109 .syntax unified
  1682. 1110 .thumb
  1683. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 30
  1684. 1111 .thumb_func
  1685. 1113 HAL_FLASH_GetError:
  1686. 1114 .LFB140:
  1687. 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1688. 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1689. 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  1690. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1691. 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1692. 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral errors functions
  1693. 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Peripheral errors functions
  1694. 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
  1695. 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
  1696. 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
  1697. 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### Peripheral Errors functions #####
  1698. 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
  1699. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..]
  1700. 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** This subsection permit to get in run-time errors of the FLASH peripheral.
  1701. 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1702. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
  1703. 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  1704. 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1705. 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1706. 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1707. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Get the specific FLASH error flag.
  1708. 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval FLASH_ErrorCode The returned value can be:
  1709. 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @ref FLASH_Error_Codes
  1710. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1711. 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
  1712. 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1713. 1115 .loc 1 580 1
  1714. 1116 .cfi_startproc
  1715. 1117 @ args = 0, pretend = 0, frame = 0
  1716. 1118 @ frame_needed = 1, uses_anonymous_args = 0
  1717. 1119 @ link register save eliminated.
  1718. 1120 0000 80B4 push {r7}
  1719. 1121 .LCFI47:
  1720. 1122 .cfi_def_cfa_offset 4
  1721. 1123 .cfi_offset 7, -4
  1722. 1124 0002 00AF add r7, sp, #0
  1723. 1125 .LCFI48:
  1724. 1126 .cfi_def_cfa_register 7
  1725. 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return pFlash.ErrorCode;
  1726. 1127 .loc 1 581 17
  1727. 1128 0004 034B ldr r3, .L74
  1728. 1129 0006 DB69 ldr r3, [r3, #28]
  1729. 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1730. 1130 .loc 1 582 1
  1731. 1131 0008 1846 mov r0, r3
  1732. 1132 000a BD46 mov sp, r7
  1733. 1133 .LCFI49:
  1734. 1134 .cfi_def_cfa_register 13
  1735. 1135 @ sp needed
  1736. 1136 000c 5DF8047B ldr r7, [sp], #4
  1737. 1137 .LCFI50:
  1738. 1138 .cfi_restore 7
  1739. 1139 .cfi_def_cfa_offset 0
  1740. 1140 0010 7047 bx lr
  1741. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 31
  1742. 1141 .L75:
  1743. 1142 0012 00BF .align 2
  1744. 1143 .L74:
  1745. 1144 0014 00000000 .word pFlash
  1746. 1145 .cfi_endproc
  1747. 1146 .LFE140:
  1748. 1148 .section .text.FLASH_Program_HalfWord,"ax",%progbits
  1749. 1149 .align 1
  1750. 1150 .syntax unified
  1751. 1151 .thumb
  1752. 1152 .thumb_func
  1753. 1154 FLASH_Program_HalfWord:
  1754. 1155 .LFB141:
  1755. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1756. 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1757. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  1758. 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1759. 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1760. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1761. 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
  1762. 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1763. 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1764. 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
  1765. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
  1766. 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1767. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1768. 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1769. 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Program a half-word (16-bit) at a specified address.
  1770. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Address specify the address to be programmed.
  1771. 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Data specify the data to be programmed.
  1772. 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval None
  1773. 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1774. 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
  1775. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1776. 1156 .loc 1 603 1
  1777. 1157 .cfi_startproc
  1778. 1158 @ args = 0, pretend = 0, frame = 8
  1779. 1159 @ frame_needed = 1, uses_anonymous_args = 0
  1780. 1160 @ link register save eliminated.
  1781. 1161 0000 80B4 push {r7}
  1782. 1162 .LCFI51:
  1783. 1163 .cfi_def_cfa_offset 4
  1784. 1164 .cfi_offset 7, -4
  1785. 1165 0002 83B0 sub sp, sp, #12
  1786. 1166 .LCFI52:
  1787. 1167 .cfi_def_cfa_offset 16
  1788. 1168 0004 00AF add r7, sp, #0
  1789. 1169 .LCFI53:
  1790. 1170 .cfi_def_cfa_register 7
  1791. 1171 0006 7860 str r0, [r7, #4]
  1792. 1172 0008 0B46 mov r3, r1
  1793. 1173 000a 7B80 strh r3, [r7, #2] @ movhi
  1794. 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clean the error context */
  1795. 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  1796. 1174 .loc 1 605 20
  1797. 1175 000c 084B ldr r3, .L77
  1798. 1176 000e 0022 movs r2, #0
  1799. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 32
  1800. 1177 0010 DA61 str r2, [r3, #28]
  1801. 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1802. 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Proceed to program the new data */
  1803. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_PG);
  1804. 1178 .loc 1 608 5
  1805. 1179 0012 084B ldr r3, .L77+4
  1806. 1180 0014 1B69 ldr r3, [r3, #16]
  1807. 1181 0016 074A ldr r2, .L77+4
  1808. 1182 0018 43F00103 orr r3, r3, #1
  1809. 1183 001c 1361 str r3, [r2, #16]
  1810. 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1811. 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Write data in the address */
  1812. 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *(__IO uint16_t*)Address = Data;
  1813. 1184 .loc 1 611 4
  1814. 1185 001e 7B68 ldr r3, [r7, #4]
  1815. 1186 .loc 1 611 28
  1816. 1187 0020 7A88 ldrh r2, [r7, #2] @ movhi
  1817. 1188 0022 1A80 strh r2, [r3] @ movhi
  1818. 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1819. 1189 .loc 1 612 1
  1820. 1190 0024 00BF nop
  1821. 1191 0026 0C37 adds r7, r7, #12
  1822. 1192 .LCFI54:
  1823. 1193 .cfi_def_cfa_offset 4
  1824. 1194 0028 BD46 mov sp, r7
  1825. 1195 .LCFI55:
  1826. 1196 .cfi_def_cfa_register 13
  1827. 1197 @ sp needed
  1828. 1198 002a 5DF8047B ldr r7, [sp], #4
  1829. 1199 .LCFI56:
  1830. 1200 .cfi_restore 7
  1831. 1201 .cfi_def_cfa_offset 0
  1832. 1202 002e 7047 bx lr
  1833. 1203 .L78:
  1834. 1204 .align 2
  1835. 1205 .L77:
  1836. 1206 0030 00000000 .word pFlash
  1837. 1207 0034 00200240 .word 1073881088
  1838. 1208 .cfi_endproc
  1839. 1209 .LFE141:
  1840. 1211 .section .text.FLASH_WaitForLastOperation,"ax",%progbits
  1841. 1212 .align 1
  1842. 1213 .global FLASH_WaitForLastOperation
  1843. 1214 .syntax unified
  1844. 1215 .thumb
  1845. 1216 .thumb_func
  1846. 1218 FLASH_WaitForLastOperation:
  1847. 1219 .LFB142:
  1848. 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1849. 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  1850. 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete.
  1851. 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Timeout maximum flash operation timeout
  1852. 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
  1853. 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  1854. 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
  1855. 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1856. 1220 .loc 1 620 1
  1857. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 33
  1858. 1221 .cfi_startproc
  1859. 1222 @ args = 0, pretend = 0, frame = 16
  1860. 1223 @ frame_needed = 1, uses_anonymous_args = 0
  1861. 1224 0000 80B5 push {r7, lr}
  1862. 1225 .LCFI57:
  1863. 1226 .cfi_def_cfa_offset 8
  1864. 1227 .cfi_offset 7, -8
  1865. 1228 .cfi_offset 14, -4
  1866. 1229 0002 84B0 sub sp, sp, #16
  1867. 1230 .LCFI58:
  1868. 1231 .cfi_def_cfa_offset 24
  1869. 1232 0004 00AF add r7, sp, #0
  1870. 1233 .LCFI59:
  1871. 1234 .cfi_def_cfa_register 7
  1872. 1235 0006 7860 str r0, [r7, #4]
  1873. 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
  1874. 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error
  1875. 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** flag will be set */
  1876. 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1877. 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick();
  1878. 1236 .loc 1 625 24
  1879. 1237 0008 FFF7FEFF bl HAL_GetTick
  1880. 1238 000c F860 str r0, [r7, #12]
  1881. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1882. 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
  1883. 1239 .loc 1 627 8
  1884. 1240 000e 10E0 b .L80
  1885. 1241 .L83:
  1886. 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1887. 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (Timeout != HAL_MAX_DELAY)
  1888. 1242 .loc 1 629 8
  1889. 1243 0010 7B68 ldr r3, [r7, #4]
  1890. 1244 0012 B3F1FF3F cmp r3, #-1
  1891. 1245 0016 0CD0 beq .L80
  1892. 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1893. 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout))
  1894. 1246 .loc 1 631 9
  1895. 1247 0018 7B68 ldr r3, [r7, #4]
  1896. 1248 001a 002B cmp r3, #0
  1897. 1249 001c 07D0 beq .L81
  1898. 1250 .loc 1 631 31 discriminator 1
  1899. 1251 001e FFF7FEFF bl HAL_GetTick
  1900. 1252 0022 0246 mov r2, r0
  1901. 1253 .loc 1 631 44 discriminator 1
  1902. 1254 0024 FB68 ldr r3, [r7, #12]
  1903. 1255 0026 D31A subs r3, r2, r3
  1904. 1256 .loc 1 631 26 discriminator 1
  1905. 1257 0028 7A68 ldr r2, [r7, #4]
  1906. 1258 002a 9A42 cmp r2, r3
  1907. 1259 002c 01D2 bcs .L80
  1908. 1260 .L81:
  1909. 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1910. 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_TIMEOUT;
  1911. 1261 .loc 1 633 16
  1912. 1262 002e 0323 movs r3, #3
  1913. 1263 0030 1FE0 b .L82
  1914. 1264 .L80:
  1915. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 34
  1916. 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1917. 1265 .loc 1 627 9
  1918. 1266 0032 124B ldr r3, .L87
  1919. 1267 0034 DB68 ldr r3, [r3, #12]
  1920. 1268 0036 03F00103 and r3, r3, #1
  1921. 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1922. 1269 .loc 1 627 8
  1923. 1270 003a 012B cmp r3, #1
  1924. 1271 003c E8D0 beq .L83
  1925. 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1926. 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1927. 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1928. 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1929. 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check FLASH End of Operation flag */
  1930. 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
  1931. 1272 .loc 1 639 7
  1932. 1273 003e 0F4B ldr r3, .L87
  1933. 1274 0040 DB68 ldr r3, [r3, #12]
  1934. 1275 0042 03F02003 and r3, r3, #32
  1935. 1276 .loc 1 639 6
  1936. 1277 0046 202B cmp r3, #32
  1937. 1278 0048 02D1 bne .L84
  1938. 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1939. 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
  1940. 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
  1941. 1279 .loc 1 642 5
  1942. 1280 004a 0C4B ldr r3, .L87
  1943. 1281 004c 2022 movs r2, #32
  1944. 1282 004e DA60 str r2, [r3, #12]
  1945. 1283 .L84:
  1946. 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1947. 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1948. 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||
  1949. 1284 .loc 1 645 6
  1950. 1285 0050 0A4B ldr r3, .L87
  1951. 1286 0052 DB68 ldr r3, [r3, #12]
  1952. 1287 0054 03F01003 and r3, r3, #16
  1953. 1288 .loc 1 645 5
  1954. 1289 0058 102B cmp r3, #16
  1955. 1290 005a 05D0 beq .L85
  1956. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
  1957. 1291 .loc 1 646 6 discriminator 1
  1958. 1292 005c 074B ldr r3, .L87
  1959. 1293 005e DB68 ldr r3, [r3, #12]
  1960. 1294 0060 03F00403 and r3, r3, #4
  1961. 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
  1962. 1295 .loc 1 645 47 discriminator 1
  1963. 1296 0064 042B cmp r3, #4
  1964. 1297 0066 03D1 bne .L86
  1965. 1298 .L85:
  1966. 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  1967. 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Save the error code*/
  1968. 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_SetErrorCode();
  1969. 1299 .loc 1 649 5
  1970. 1300 0068 FFF7FEFF bl FLASH_SetErrorCode
  1971. 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_ERROR;
  1972. 1301 .loc 1 650 12
  1973. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 35
  1974. 1302 006c 0123 movs r3, #1
  1975. 1303 006e 00E0 b .L82
  1976. 1304 .L86:
  1977. 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1978. 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  1979. 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* There is no error flag set */
  1980. 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
  1981. 1305 .loc 1 654 10
  1982. 1306 0070 0023 movs r3, #0
  1983. 1307 .L82:
  1984. 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  1985. 1308 .loc 1 655 1
  1986. 1309 0072 1846 mov r0, r3
  1987. 1310 0074 1037 adds r7, r7, #16
  1988. 1311 .LCFI60:
  1989. 1312 .cfi_def_cfa_offset 8
  1990. 1313 0076 BD46 mov sp, r7
  1991. 1314 .LCFI61:
  1992. 1315 .cfi_def_cfa_register 13
  1993. 1316 @ sp needed
  1994. 1317 0078 80BD pop {r7, pc}
  1995. 1318 .L88:
  1996. 1319 007a 00BF .align 2
  1997. 1320 .L87:
  1998. 1321 007c 00200240 .word 1073881088
  1999. 1322 .cfi_endproc
  2000. 1323 .LFE142:
  2001. 1325 .section .text.FLASH_SetErrorCode,"ax",%progbits
  2002. 1326 .align 1
  2003. 1327 .syntax unified
  2004. 1328 .thumb
  2005. 1329 .thumb_func
  2006. 1331 FLASH_SetErrorCode:
  2007. 1332 .LFB143:
  2008. 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  2009. 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  2010. 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
  2011. 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Set the specific FLASH error flag.
  2012. 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval None
  2013. 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
  2014. 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_SetErrorCode(void)
  2015. 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  2016. 1333 .loc 1 663 1
  2017. 1334 .cfi_startproc
  2018. 1335 @ args = 0, pretend = 0, frame = 8
  2019. 1336 @ frame_needed = 1, uses_anonymous_args = 0
  2020. 1337 @ link register save eliminated.
  2021. 1338 0000 80B4 push {r7}
  2022. 1339 .LCFI62:
  2023. 1340 .cfi_def_cfa_offset 4
  2024. 1341 .cfi_offset 7, -4
  2025. 1342 0002 83B0 sub sp, sp, #12
  2026. 1343 .LCFI63:
  2027. 1344 .cfi_def_cfa_offset 16
  2028. 1345 0004 00AF add r7, sp, #0
  2029. 1346 .LCFI64:
  2030. 1347 .cfi_def_cfa_register 7
  2031. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 36
  2032. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t flags = 0U;
  2033. 1348 .loc 1 664 12
  2034. 1349 0006 0023 movs r3, #0
  2035. 1350 0008 7B60 str r3, [r7, #4]
  2036. 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
  2037. 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR))
  2038. 1351 .loc 1 666 6
  2039. 1352 000a 144B ldr r3, .L92
  2040. 1353 000c DB68 ldr r3, [r3, #12]
  2041. 1354 000e 03F01003 and r3, r3, #16
  2042. 1355 .loc 1 666 5
  2043. 1356 0012 102B cmp r3, #16
  2044. 1357 0014 09D1 bne .L90
  2045. 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  2046. 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
  2047. 1358 .loc 1 668 22
  2048. 1359 0016 124B ldr r3, .L92+4
  2049. 1360 0018 DB69 ldr r3, [r3, #28]
  2050. 1361 001a 43F00203 orr r3, r3, #2
  2051. 1362 001e 104A ldr r2, .L92+4
  2052. 1363 0020 D361 str r3, [r2, #28]
  2053. 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** flags |= FLASH_FLAG_WRPERR;
  2054. 1364 .loc 1 669 11
  2055. 1365 0022 7B68 ldr r3, [r7, #4]
  2056. 1366 0024 43F01003 orr r3, r3, #16
  2057. 1367 0028 7B60 str r3, [r7, #4]
  2058. 1368 .L90:
  2059. 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  2060. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
  2061. 1369 .loc 1 671 6
  2062. 1370 002a 0C4B ldr r3, .L92
  2063. 1371 002c DB68 ldr r3, [r3, #12]
  2064. 1372 002e 03F00403 and r3, r3, #4
  2065. 1373 .loc 1 671 5
  2066. 1374 0032 042B cmp r3, #4
  2067. 1375 0034 09D1 bne .L91
  2068. 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  2069. 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG;
  2070. 1376 .loc 1 673 22
  2071. 1377 0036 0A4B ldr r3, .L92+4
  2072. 1378 0038 DB69 ldr r3, [r3, #28]
  2073. 1379 003a 43F00103 orr r3, r3, #1
  2074. 1380 003e 084A ldr r2, .L92+4
  2075. 1381 0040 D361 str r3, [r2, #28]
  2076. 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** flags |= FLASH_FLAG_PGERR;
  2077. 1382 .loc 1 674 11
  2078. 1383 0042 7B68 ldr r3, [r7, #4]
  2079. 1384 0044 43F00403 orr r3, r3, #4
  2080. 1385 0048 7B60 str r3, [r7, #4]
  2081. 1386 .L91:
  2082. 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  2083. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear FLASH error pending bits */
  2084. 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(flags);
  2085. 1387 .loc 1 677 3
  2086. 1388 004a 044A ldr r2, .L92
  2087. 1389 004c 7B68 ldr r3, [r7, #4]
  2088. 1390 004e D360 str r3, [r2, #12]
  2089. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 37
  2090. 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
  2091. 1391 .loc 1 678 1
  2092. 1392 0050 00BF nop
  2093. 1393 0052 0C37 adds r7, r7, #12
  2094. 1394 .LCFI65:
  2095. 1395 .cfi_def_cfa_offset 4
  2096. 1396 0054 BD46 mov sp, r7
  2097. 1397 .LCFI66:
  2098. 1398 .cfi_def_cfa_register 13
  2099. 1399 @ sp needed
  2100. 1400 0056 5DF8047B ldr r7, [sp], #4
  2101. 1401 .LCFI67:
  2102. 1402 .cfi_restore 7
  2103. 1403 .cfi_def_cfa_offset 0
  2104. 1404 005a 7047 bx lr
  2105. 1405 .L93:
  2106. 1406 .align 2
  2107. 1407 .L92:
  2108. 1408 005c 00200240 .word 1073881088
  2109. 1409 0060 00000000 .word pFlash
  2110. 1410 .cfi_endproc
  2111. 1411 .LFE143:
  2112. 1413 .text
  2113. 1414 .Letext0:
  2114. 1415 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  2115. 1416 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  2116. 1417 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
  2117. 1418 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
  2118. 1419 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
  2119. 1420 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h"
  2120. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s page 38
  2121. DEFINED SYMBOLS
  2122. *ABS*:00000000 stm32f3xx_hal_flash.c
  2123. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:24 .bss.pFlash:00000000 pFlash
  2124. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:21 .bss.pFlash:00000000 $d
  2125. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:27 .rodata:00000000 $d
  2126. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:32 .text.HAL_FLASH_Program:00000000 $t
  2127. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:38 .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program
  2128. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1218 .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation
  2129. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1154 .text.FLASH_Program_HalfWord:00000000 FLASH_Program_HalfWord
  2130. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:251 .text.HAL_FLASH_Program:00000130 $d
  2131. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:262 .text.HAL_FLASH_Program_IT:00000000 $t
  2132. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:268 .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT
  2133. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:432 .text.HAL_FLASH_Program_IT:000000e0 $d
  2134. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:443 .text.HAL_FLASH_IRQHandler:00000000 $t
  2135. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:449 .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler
  2136. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1331 .text.FLASH_SetErrorCode:00000000 FLASH_SetErrorCode
  2137. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:795 .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback
  2138. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:753 .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback
  2139. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:741 .text.HAL_FLASH_IRQHandler:000001c0 $d
  2140. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:747 .text.HAL_FLASH_EndOfOperationCallback:00000000 $t
  2141. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:789 .text.HAL_FLASH_OperationErrorCallback:00000000 $t
  2142. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:831 .text.HAL_FLASH_Unlock:00000000 $t
  2143. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:837 .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock
  2144. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:902 .text.HAL_FLASH_Unlock:00000040 $d
  2145. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:909 .text.HAL_FLASH_Lock:00000000 $t
  2146. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:915 .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock
  2147. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:951 .text.HAL_FLASH_Lock:0000001c $d
  2148. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:956 .text.HAL_FLASH_OB_Unlock:00000000 $t
  2149. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:962 .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock
  2150. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1012 .text.HAL_FLASH_OB_Unlock:0000002c $d
  2151. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1019 .text.HAL_FLASH_OB_Lock:00000000 $t
  2152. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1025 .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock
  2153. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1061 .text.HAL_FLASH_OB_Lock:0000001c $d
  2154. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1066 .text.HAL_FLASH_OB_Launch:00000000 $t
  2155. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1072 .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch
  2156. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1102 .text.HAL_FLASH_OB_Launch:00000020 $d
  2157. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1107 .text.HAL_FLASH_GetError:00000000 $t
  2158. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1113 .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError
  2159. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1144 .text.HAL_FLASH_GetError:00000014 $d
  2160. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1149 .text.FLASH_Program_HalfWord:00000000 $t
  2161. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1206 .text.FLASH_Program_HalfWord:00000030 $d
  2162. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1212 .text.FLASH_WaitForLastOperation:00000000 $t
  2163. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1321 .text.FLASH_WaitForLastOperation:0000007c $d
  2164. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1326 .text.FLASH_SetErrorCode:00000000 $t
  2165. C:\Users\zl835\AppData\Local\Temp\ccW07dMO.s:1408 .text.FLASH_SetErrorCode:0000005c $d
  2166. UNDEFINED SYMBOLS
  2167. assert_failed
  2168. FLASH_PageErase
  2169. HAL_GetTick