1
0

stm32f4xx_hal_flash.lst 141 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331
  1. ARM GAS /tmp/ccCfNgvn.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, 1
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "stm32f4xx_hal_flash.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .section .text.FLASH_Program_DoubleWord,"ax",%progbits
  21. 20 .align 1
  22. 21 .syntax unified
  23. 22 .thumb
  24. 23 .thumb_func
  25. 25 FLASH_Program_DoubleWord:
  26. 26 .LVL0:
  27. 27 .LFB142:
  28. 28 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c"
  29. 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  30. 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ******************************************************************************
  31. 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @file stm32f4xx_hal_flash.c
  32. 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @author MCD Application Team
  33. 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH HAL module driver.
  34. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This file provides firmware functions to manage the following
  35. 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * functionalities of the internal FLASH memory:
  36. 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Program operations functions
  37. 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Memory Control functions
  38. 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Peripheral Errors functions
  39. 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  40. 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
  41. 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ==============================================================================
  42. 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### FLASH peripheral features #####
  43. 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ==============================================================================
  44. 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  45. 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses
  46. 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations
  47. 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** and the read and write protection mechanisms.
  48. 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  49. 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction
  50. 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** prefetch and cache lines.
  51. 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  52. 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The FLASH main features are:
  53. 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Flash memory read operations
  54. 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Flash memory program/erase operations
  55. 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Read / write protections
  56. 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Prefetch on I-Code
  57. 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) 64 cache lines of 128 bits on I-Code
  58. 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) 8 cache lines of 128 bits on D-Code
  59. ARM GAS /tmp/ccCfNgvn.s page 2
  60. 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  61. 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  62. 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### How to use this driver #####
  63. 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ==============================================================================
  64. 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
  65. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH
  66. 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** memory of all STM32F4xx devices.
  67. 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  68. 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (#) FLASH Memory IO Programming functions:
  69. 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and
  70. 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_Lock() functions
  71. 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Program functions: byte, half word, word and double word
  72. 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) There Two modes of programming :
  73. 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+++) Polling mode using HAL_FLASH_Program() function
  74. 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+++) Interrupt mode using HAL_FLASH_Program_IT() function
  75. 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  76. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (#) Interrupts and flags management functions :
  77. 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler()
  78. 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Wait for last FLASH operation according to its status
  79. 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Get error flag status by calling HAL_SetErrorCode()
  80. 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  81. 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
  82. 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** In addition to these functions, this driver includes a set of macros allowing
  83. 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** to handle the following operations:
  84. 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Set the latency
  85. 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer
  86. 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the Instruction cache and the Data cache
  87. 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Reset the Instruction cache and the Data cache
  88. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts
  89. 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Monitor the FLASH flags status
  90. 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  91. 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
  92. 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ******************************************************************************
  93. 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @attention
  94. 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  95. 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
  96. 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * All rights reserved.</center></h2>
  97. 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  98. 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This software component is licensed by ST under BSD 3-Clause license,
  99. 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the "License"; You may not use this file except in compliance with the
  100. 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * License. You may obtain a copy of the License at:
  101. 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * opensource.org/licenses/BSD-3-Clause
  102. 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  103. 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ******************************************************************************
  104. 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  105. 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  106. 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
  107. 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #include "stm32f4xx_hal.h"
  108. 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  109. 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup STM32F4xx_HAL_Driver
  110. 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  111. 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  112. 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  113. 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH FLASH
  114. 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH HAL module driver
  115. 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  116. 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  117. ARM GAS /tmp/ccCfNgvn.s page 3
  118. 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  119. 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
  120. 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  121. 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
  122. 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/
  123. 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Constants
  124. 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  125. 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  126. 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #define FLASH_TIMEOUT_VALUE 50000U /* 50 s */
  127. 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  128. 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
  129. 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  130. 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private macro -------------------------------------------------------------*/
  131. 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
  132. 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Variables
  133. 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  134. 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  135. 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Variable used for Erase sectors under interruption */
  136. 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash;
  137. 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  138. 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
  139. 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  140. 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  141. 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
  142. 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
  143. 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  144. 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  145. 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program operations */
  146. 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data);
  147. 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Word(uint32_t Address, uint32_t Data);
  148. 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
  149. 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Byte(uint32_t Address, uint8_t Data);
  150. 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_SetErrorCode(void);
  151. 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  152. 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout);
  153. 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  154. 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
  155. 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  156. 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  157. 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Exported functions --------------------------------------------------------*/
  158. 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
  159. 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  160. 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  161. 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  162. 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
  163. 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Programming operation functions
  164. 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  165. 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
  166. 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
  167. 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Programming operation functions #####
  168. 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
  169. 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
  170. 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection provides a set of functions allowing to manage the FLASH
  171. 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** program operations.
  172. 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  173. 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
  174. 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  175. ARM GAS /tmp/ccCfNgvn.s page 4
  176. 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  177. 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  178. 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  179. 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte, halfword, word or double word at a specified address
  180. 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
  181. 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
  182. 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
  183. 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed
  184. 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  185. 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
  186. 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  187. 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
  188. 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  189. 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
  190. 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  191. 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Locked */
  192. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_LOCK(&pFlash);
  193. 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  194. 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
  195. 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
  196. 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  197. 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */
  198. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  199. 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  200. 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(status == HAL_OK)
  201. 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  202. 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_BYTE)
  203. 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  204. 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program byte (8-bit) at a specified address.*/
  205. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Byte(Address, (uint8_t) Data);
  206. 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  207. 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
  208. 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  209. 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/
  210. 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t) Data);
  211. 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  212. 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
  213. 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  214. 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program word (32-bit) at a specified address.*/
  215. 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Word(Address, (uint32_t) Data);
  216. 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  217. 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
  218. 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  219. 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program double word (64-bit) at a specified address.*/
  220. 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data);
  221. 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  222. 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  223. 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */
  224. 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  225. 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  226. 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the program operation is completed, disable the PG Bit */
  227. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR &= (~FLASH_CR_PG);
  228. 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  229. 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  230. 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Unlocked */
  231. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
  232. 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  233. ARM GAS /tmp/ccCfNgvn.s page 5
  234. 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status;
  235. 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  236. 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  237. 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  238. 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte, halfword, word or double word at a specified address with interrupt ena
  239. 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
  240. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
  241. 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
  242. 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed
  243. 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  244. 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
  245. 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  246. 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
  247. 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  248. 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
  249. 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  250. 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Locked */
  251. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_LOCK(&pFlash);
  252. 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  253. 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
  254. 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
  255. 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  256. 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Enable End of FLASH Operation interrupt */
  257. 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP);
  258. 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  259. 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Enable Error source interrupt */
  260. 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_ERR);
  261. 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  262. 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM;
  263. 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address;
  264. 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  265. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_BYTE)
  266. 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  267. 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program byte (8-bit) at a specified address.*/
  268. 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Byte(Address, (uint8_t) Data);
  269. 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  270. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
  271. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  272. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/
  273. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t) Data);
  274. 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  275. 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
  276. 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  277. 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program word (32-bit) at a specified address.*/
  278. 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Word(Address, (uint32_t) Data);
  279. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  280. 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
  281. 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  282. 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program double word (64-bit) at a specified address.*/
  283. 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data);
  284. 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  285. 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  286. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status;
  287. 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  288. 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  289. 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  290. 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief This function handles FLASH interrupt request.
  291. ARM GAS /tmp/ccCfNgvn.s page 6
  292. 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  293. 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  294. 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
  295. 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  296. 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t addresstmp = 0U;
  297. 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  298. 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH operation error flags */
  299. 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR)
  300. 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
  301. 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR | FLASH_FLAG_RDERR)) != RESET)
  302. 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #else
  303. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
  304. 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  305. 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */
  306. 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  307. 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE)
  308. 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  309. 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty sector*/
  310. 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
  311. 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU;
  312. 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  313. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
  314. 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  315. 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty bank*/
  316. 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Bank;
  317. 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  318. 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
  319. 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  320. 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty address*/
  321. 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Address;
  322. 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  323. 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  324. 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Save the Error code*/
  325. 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_SetErrorCode();
  326. 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  327. 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH error interrupt user callback */
  328. 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(addresstmp);
  329. 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  330. 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Stop the procedure ongoing*/
  331. 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  332. 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  333. 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  334. 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH End of Operation flag */
  335. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
  336. 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  337. 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
  338. 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
  339. 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  340. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE)
  341. 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  342. 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Nb of sector to erased can be decreased*/
  343. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.NbSectorsToErase--;
  344. 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  345. 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check if there are still sectors to erase*/
  346. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(pFlash.NbSectorsToErase != 0U)
  347. 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  348. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
  349. ARM GAS /tmp/ccCfNgvn.s page 7
  350. 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/
  351. 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
  352. 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  353. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Increment sector number*/
  354. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector++;
  355. 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
  356. 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase);
  357. 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  358. 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
  359. 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  360. 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*No more sectors to Erase, user callback can be called.*/
  361. 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Reset Sector and stop Erase sectors procedure*/
  362. 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = addresstmp = 0xFFFFFFFFU;
  363. 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  364. 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  365. 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */
  366. 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FlushCaches() ;
  367. 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  368. 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
  369. 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
  370. 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  371. 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  372. 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
  373. 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  374. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
  375. 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  376. 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* MassErase ended. Return the selected bank */
  377. 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */
  378. 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FlushCaches() ;
  379. 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  380. 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
  381. 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Bank);
  382. 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  383. 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
  384. 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  385. 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program ended. Return the selected address*/
  386. 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
  387. 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address);
  388. 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  389. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  390. 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  391. 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  392. 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  393. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
  394. 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  395. 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Operation is completed, disable the PG, SER, SNB and MER Bits */
  396. 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_SER | FLASH_CR_SNB | FLASH_MER_BIT));
  397. 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  398. 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Disable End of FLASH Operation interrupt */
  399. 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP);
  400. 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  401. 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Disable Error source interrupt */
  402. 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_ERR);
  403. 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  404. 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Unlocked */
  405. 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
  406. 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  407. ARM GAS /tmp/ccCfNgvn.s page 8
  408. 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  409. 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  410. 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  411. 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback
  412. 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
  413. 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase
  414. 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Sectors Erase: Sector which has been erased
  415. 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * (if 0xFFFFFFFFU, it means that all the selected sectors have been erased)
  416. 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Program: Address which was selected for data program
  417. 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  418. 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  419. 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
  420. 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  421. 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
  422. 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** UNUSED(ReturnValue);
  423. 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
  424. 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
  425. 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  426. 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  427. 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  428. 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  429. 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH operation error interrupt callback
  430. 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
  431. 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase
  432. 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Sectors Erase: Sector number which returned an error
  433. 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Program: Address which was selected for data program
  434. 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  435. 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  436. 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
  437. 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  438. 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
  439. 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** UNUSED(ReturnValue);
  440. 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
  441. 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file
  442. 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  443. 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  444. 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  445. 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  446. 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
  447. 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  448. 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  449. 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
  450. 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief management functions
  451. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  452. 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
  453. 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
  454. 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Peripheral Control functions #####
  455. 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
  456. 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
  457. 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH
  458. 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** memory operations.
  459. 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  460. 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
  461. 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  462. 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  463. 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  464. 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  465. ARM GAS /tmp/ccCfNgvn.s page 9
  466. 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Unlock the FLASH control register access
  467. 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
  468. 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  469. 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
  470. 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  471. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
  472. 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  473. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
  474. 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  475. 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Authorize the FLASH Registers access */
  476. 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1);
  477. 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
  478. 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  479. 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Verify Flash is unlocked */
  480. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
  481. 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  482. 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = HAL_ERROR;
  483. 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  484. 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  485. 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  486. 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status;
  487. 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  488. 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  489. 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  490. 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Locks the FLASH control register access
  491. 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
  492. 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  493. 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
  494. 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  495. 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
  496. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_LOCK;
  497. 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  498. 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
  499. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  500. 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  501. 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  502. 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access.
  503. 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
  504. 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  505. 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
  506. 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  507. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET)
  508. 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  509. 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Authorizes the Option Byte register programming */
  510. 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY1;
  511. 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2;
  512. 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  513. 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
  514. 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  515. 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR;
  516. 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  517. 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  518. 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
  519. 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  520. 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  521. 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  522. 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access.
  523. ARM GAS /tmp/ccCfNgvn.s page 10
  524. 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
  525. 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  526. 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
  527. 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  528. 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
  529. 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTCR |= FLASH_OPTCR_OPTLOCK;
  530. 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  531. 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
  532. 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  533. 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  534. 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  535. 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Launch the option byte loading.
  536. 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
  537. 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  538. 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
  539. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  540. 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTSTRT bit in OPTCR register */
  541. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS |= FLASH_OPTCR_OPTSTRT;
  542. 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  543. 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */
  544. 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE));
  545. 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  546. 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  547. 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  548. 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
  549. 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  550. 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  551. 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions
  552. 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Peripheral Errors functions
  553. 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  554. 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
  555. 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
  556. 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Peripheral Errors functions #####
  557. 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
  558. 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
  559. 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection permits to get in run-time Errors of the FLASH peripheral.
  560. 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  561. 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
  562. 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
  563. 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  564. 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  565. 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  566. 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Get the specific FLASH error flag.
  567. 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval FLASH_ErrorCode: The returned value can be a combination of:
  568. 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RD: FLASH Read Protection error flag (PCROP)
  569. 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGS: FLASH Programming Sequence error flag
  570. 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGP: FLASH Programming Parallelism error flag
  571. 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGA: FLASH Programming Alignment error flag
  572. 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_WRP: FLASH Write protected error flag
  573. 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OPERATION: FLASH operation Error flag
  574. 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  575. 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
  576. 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  577. 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return pFlash.ErrorCode;
  578. 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  579. 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  580. 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  581. ARM GAS /tmp/ccCfNgvn.s page 11
  582. 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
  583. 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  584. 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  585. 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  586. 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete.
  587. 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Timeout maximum flash operationtimeout
  588. 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
  589. 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  590. 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
  591. 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  592. 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U;
  593. 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  594. 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear Error Code */
  595. 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  596. 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  597. 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
  598. 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error
  599. 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** flag will be set */
  600. 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Get tick */
  601. 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** tickstart = HAL_GetTick();
  602. 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  603. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
  604. 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  605. 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(Timeout != HAL_MAX_DELAY)
  606. 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  607. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
  608. 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  609. 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_TIMEOUT;
  610. 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  611. 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  612. 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  613. 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  614. 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH End of Operation flag */
  615. 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
  616. 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  617. 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
  618. 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
  619. 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  620. 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR)
  621. 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
  622. 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR | FLASH_FLAG_RDERR)) != RESET)
  623. 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #else
  624. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
  625. 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  626. 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */
  627. 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  628. 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Save the error code*/
  629. 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_SetErrorCode();
  630. 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR;
  631. 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  632. 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  633. 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If there is no error flag set */
  634. 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
  635. 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  636. 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  637. 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  638. 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  639. ARM GAS /tmp/ccCfNgvn.s page 12
  640. 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program a double word (64-bit) at a specified address.
  641. 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
  642. 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.7V to 3.6V and Vpp in the range 7V to 9V.
  643. 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  644. 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
  645. 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
  646. 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  647. 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
  648. 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
  649. 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  650. 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  651. 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
  652. 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  653. 29 .loc 1 613 1 view -0
  654. 30 .cfi_startproc
  655. 31 @ args = 0, pretend = 0, frame = 0
  656. 32 @ frame_needed = 0, uses_anonymous_args = 0
  657. 33 @ link register save eliminated.
  658. 34 .loc 1 613 1 is_stmt 0 view .LVU1
  659. 35 0000 10B4 push {r4}
  660. 36 .LCFI0:
  661. 37 .cfi_def_cfa_offset 4
  662. 38 .cfi_offset 4, -4
  663. 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
  664. 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
  665. 39 .loc 1 615 3 is_stmt 1 view .LVU2
  666. 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  667. 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
  668. 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
  669. 40 .loc 1 618 3 view .LVU3
  670. 41 0002 0949 ldr r1, .L3
  671. 42 0004 0C69 ldr r4, [r1, #16]
  672. 43 0006 24F44074 bic r4, r4, #768
  673. 44 000a 0C61 str r4, [r1, #16]
  674. 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD;
  675. 45 .loc 1 619 3 view .LVU4
  676. 46 .loc 1 619 13 is_stmt 0 view .LVU5
  677. 47 000c 0C69 ldr r4, [r1, #16]
  678. 48 000e 44F44074 orr r4, r4, #768
  679. 49 0012 0C61 str r4, [r1, #16]
  680. 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
  681. 50 .loc 1 620 3 is_stmt 1 view .LVU6
  682. 51 .loc 1 620 13 is_stmt 0 view .LVU7
  683. 52 0014 0C69 ldr r4, [r1, #16]
  684. 53 0016 44F00104 orr r4, r4, #1
  685. 54 001a 0C61 str r4, [r1, #16]
  686. 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  687. 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program the double-word */
  688. 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t*)Address = (uint32_t)Data;
  689. 55 .loc 1 623 3 is_stmt 1 view .LVU8
  690. 56 .loc 1 623 28 is_stmt 0 view .LVU9
  691. 57 001c 0260 str r2, [r0]
  692. 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t*)(Address+4) = (uint32_t)(Data >> 32);
  693. 58 .loc 1 624 3 is_stmt 1 view .LVU10
  694. 59 .loc 1 624 32 is_stmt 0 view .LVU11
  695. 60 001e 4360 str r3, [r0, #4]
  696. 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  697. ARM GAS /tmp/ccCfNgvn.s page 13
  698. 61 .loc 1 625 1 view .LVU12
  699. 62 0020 5DF8044B ldr r4, [sp], #4
  700. 63 .LCFI1:
  701. 64 .cfi_restore 4
  702. 65 .cfi_def_cfa_offset 0
  703. 66 0024 7047 bx lr
  704. 67 .L4:
  705. 68 0026 00BF .align 2
  706. 69 .L3:
  707. 70 0028 003C0240 .word 1073888256
  708. 71 .cfi_endproc
  709. 72 .LFE142:
  710. 74 .section .text.FLASH_Program_Word,"ax",%progbits
  711. 75 .align 1
  712. 76 .syntax unified
  713. 77 .thumb
  714. 78 .thumb_func
  715. 80 FLASH_Program_Word:
  716. 81 .LVL1:
  717. 82 .LFB143:
  718. 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  719. 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  720. 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  721. 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program word (32-bit) at a specified address.
  722. 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
  723. 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.7V to 3.6V.
  724. 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  725. 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
  726. 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
  727. 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  728. 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
  729. 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
  730. 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  731. 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  732. 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Word(uint32_t Address, uint32_t Data)
  733. 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  734. 83 .loc 1 641 1 is_stmt 1 view -0
  735. 84 .cfi_startproc
  736. 85 @ args = 0, pretend = 0, frame = 0
  737. 86 @ frame_needed = 0, uses_anonymous_args = 0
  738. 87 @ link register save eliminated.
  739. 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
  740. 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
  741. 88 .loc 1 643 3 view .LVU14
  742. 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  743. 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
  744. 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
  745. 89 .loc 1 646 3 view .LVU15
  746. 90 0000 074B ldr r3, .L6
  747. 91 0002 1A69 ldr r2, [r3, #16]
  748. 92 0004 22F44072 bic r2, r2, #768
  749. 93 0008 1A61 str r2, [r3, #16]
  750. 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_WORD;
  751. 94 .loc 1 647 3 view .LVU16
  752. 95 .loc 1 647 13 is_stmt 0 view .LVU17
  753. 96 000a 1A69 ldr r2, [r3, #16]
  754. 97 000c 42F40072 orr r2, r2, #512
  755. ARM GAS /tmp/ccCfNgvn.s page 14
  756. 98 0010 1A61 str r2, [r3, #16]
  757. 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
  758. 99 .loc 1 648 3 is_stmt 1 view .LVU18
  759. 100 .loc 1 648 13 is_stmt 0 view .LVU19
  760. 101 0012 1A69 ldr r2, [r3, #16]
  761. 102 0014 42F00102 orr r2, r2, #1
  762. 103 0018 1A61 str r2, [r3, #16]
  763. 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  764. 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t*)Address = Data;
  765. 104 .loc 1 650 3 is_stmt 1 view .LVU20
  766. 105 .loc 1 650 28 is_stmt 0 view .LVU21
  767. 106 001a 0160 str r1, [r0]
  768. 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  769. 107 .loc 1 651 1 view .LVU22
  770. 108 001c 7047 bx lr
  771. 109 .L7:
  772. 110 001e 00BF .align 2
  773. 111 .L6:
  774. 112 0020 003C0240 .word 1073888256
  775. 113 .cfi_endproc
  776. 114 .LFE143:
  777. 116 .section .text.FLASH_Program_HalfWord,"ax",%progbits
  778. 117 .align 1
  779. 118 .syntax unified
  780. 119 .thumb
  781. 120 .thumb_func
  782. 122 FLASH_Program_HalfWord:
  783. 123 .LVL2:
  784. 124 .LFB144:
  785. 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  786. 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  787. 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program a half-word (16-bit) at a specified address.
  788. 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
  789. 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.1V to 3.6V.
  790. 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  791. 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
  792. 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
  793. 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  794. 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
  795. 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
  796. 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  797. 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  798. 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
  799. 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  800. 125 .loc 1 666 1 is_stmt 1 view -0
  801. 126 .cfi_startproc
  802. 127 @ args = 0, pretend = 0, frame = 0
  803. 128 @ frame_needed = 0, uses_anonymous_args = 0
  804. 129 @ link register save eliminated.
  805. 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
  806. 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
  807. 130 .loc 1 668 3 view .LVU24
  808. 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  809. 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
  810. 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
  811. 131 .loc 1 671 3 view .LVU25
  812. 132 0000 074B ldr r3, .L9
  813. ARM GAS /tmp/ccCfNgvn.s page 15
  814. 133 0002 1A69 ldr r2, [r3, #16]
  815. 134 0004 22F44072 bic r2, r2, #768
  816. 135 0008 1A61 str r2, [r3, #16]
  817. 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_HALF_WORD;
  818. 136 .loc 1 672 3 view .LVU26
  819. 137 .loc 1 672 13 is_stmt 0 view .LVU27
  820. 138 000a 1A69 ldr r2, [r3, #16]
  821. 139 000c 42F48072 orr r2, r2, #256
  822. 140 0010 1A61 str r2, [r3, #16]
  823. 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
  824. 141 .loc 1 673 3 is_stmt 1 view .LVU28
  825. 142 .loc 1 673 13 is_stmt 0 view .LVU29
  826. 143 0012 1A69 ldr r2, [r3, #16]
  827. 144 0014 42F00102 orr r2, r2, #1
  828. 145 0018 1A61 str r2, [r3, #16]
  829. 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  830. 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint16_t*)Address = Data;
  831. 146 .loc 1 675 3 is_stmt 1 view .LVU30
  832. 147 .loc 1 675 28 is_stmt 0 view .LVU31
  833. 148 001a 0180 strh r1, [r0] @ movhi
  834. 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  835. 149 .loc 1 676 1 view .LVU32
  836. 150 001c 7047 bx lr
  837. 151 .L10:
  838. 152 001e 00BF .align 2
  839. 153 .L9:
  840. 154 0020 003C0240 .word 1073888256
  841. 155 .cfi_endproc
  842. 156 .LFE144:
  843. 158 .section .text.FLASH_Program_Byte,"ax",%progbits
  844. 159 .align 1
  845. 160 .syntax unified
  846. 161 .thumb
  847. 162 .thumb_func
  848. 164 FLASH_Program_Byte:
  849. 165 .LVL3:
  850. 166 .LFB145:
  851. 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  852. 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  853. 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte (8-bit) at a specified address.
  854. 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
  855. 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 1.8V to 3.6V.
  856. 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  857. 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
  858. 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
  859. 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
  860. 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
  861. 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
  862. 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  863. 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  864. 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Byte(uint32_t Address, uint8_t Data)
  865. 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  866. 167 .loc 1 691 1 is_stmt 1 view -0
  867. 168 .cfi_startproc
  868. 169 @ args = 0, pretend = 0, frame = 0
  869. 170 @ frame_needed = 0, uses_anonymous_args = 0
  870. 171 @ link register save eliminated.
  871. ARM GAS /tmp/ccCfNgvn.s page 16
  872. 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
  873. 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
  874. 172 .loc 1 693 3 view .LVU34
  875. 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  876. 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
  877. 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
  878. 173 .loc 1 696 3 view .LVU35
  879. 174 0000 064B ldr r3, .L12
  880. 175 0002 1A69 ldr r2, [r3, #16]
  881. 176 0004 22F44072 bic r2, r2, #768
  882. 177 0008 1A61 str r2, [r3, #16]
  883. 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_BYTE;
  884. 178 .loc 1 697 3 view .LVU36
  885. 179 .loc 1 697 13 is_stmt 0 view .LVU37
  886. 180 000a 1A69 ldr r2, [r3, #16]
  887. 181 000c 1A61 str r2, [r3, #16]
  888. 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
  889. 182 .loc 1 698 3 is_stmt 1 view .LVU38
  890. 183 .loc 1 698 13 is_stmt 0 view .LVU39
  891. 184 000e 1A69 ldr r2, [r3, #16]
  892. 185 0010 42F00102 orr r2, r2, #1
  893. 186 0014 1A61 str r2, [r3, #16]
  894. 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  895. 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint8_t*)Address = Data;
  896. 187 .loc 1 700 3 is_stmt 1 view .LVU40
  897. 188 .loc 1 700 27 is_stmt 0 view .LVU41
  898. 189 0016 0170 strb r1, [r0]
  899. 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  900. 190 .loc 1 701 1 view .LVU42
  901. 191 0018 7047 bx lr
  902. 192 .L13:
  903. 193 001a 00BF .align 2
  904. 194 .L12:
  905. 195 001c 003C0240 .word 1073888256
  906. 196 .cfi_endproc
  907. 197 .LFE145:
  908. 199 .section .text.FLASH_SetErrorCode,"ax",%progbits
  909. 200 .align 1
  910. 201 .syntax unified
  911. 202 .thumb
  912. 203 .thumb_func
  913. 205 FLASH_SetErrorCode:
  914. 206 .LFB146:
  915. 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  916. 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
  917. 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Set the specific FLASH error flag.
  918. 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
  919. 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
  920. 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_SetErrorCode(void)
  921. 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  922. 207 .loc 1 708 1 is_stmt 1 view -0
  923. 208 .cfi_startproc
  924. 209 @ args = 0, pretend = 0, frame = 0
  925. 210 @ frame_needed = 0, uses_anonymous_args = 0
  926. 211 @ link register save eliminated.
  927. 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET)
  928. 212 .loc 1 709 3 view .LVU44
  929. ARM GAS /tmp/ccCfNgvn.s page 17
  930. 213 .loc 1 709 6 is_stmt 0 view .LVU45
  931. 214 0000 204B ldr r3, .L20
  932. 215 0002 DB68 ldr r3, [r3, #12]
  933. 216 .loc 1 709 5 view .LVU46
  934. 217 0004 13F0100F tst r3, #16
  935. 218 0008 07D0 beq .L15
  936. 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  937. 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
  938. 219 .loc 1 711 4 is_stmt 1 view .LVU47
  939. 220 .loc 1 711 21 is_stmt 0 view .LVU48
  940. 221 000a 1F4A ldr r2, .L20+4
  941. 222 000c D369 ldr r3, [r2, #28]
  942. 223 000e 43F01003 orr r3, r3, #16
  943. 224 0012 D361 str r3, [r2, #28]
  944. 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  945. 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH write protection error pending bit */
  946. 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_WRPERR);
  947. 225 .loc 1 714 4 is_stmt 1 view .LVU49
  948. 226 0014 1B4B ldr r3, .L20
  949. 227 0016 1022 movs r2, #16
  950. 228 0018 DA60 str r2, [r3, #12]
  951. 229 .L15:
  952. 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  953. 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  954. 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET)
  955. 230 .loc 1 717 3 view .LVU50
  956. 231 .loc 1 717 6 is_stmt 0 view .LVU51
  957. 232 001a 1A4B ldr r3, .L20
  958. 233 001c DB68 ldr r3, [r3, #12]
  959. 234 .loc 1 717 5 view .LVU52
  960. 235 001e 13F0200F tst r3, #32
  961. 236 0022 07D0 beq .L16
  962. 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  963. 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA;
  964. 237 .loc 1 719 4 is_stmt 1 view .LVU53
  965. 238 .loc 1 719 21 is_stmt 0 view .LVU54
  966. 239 0024 184A ldr r2, .L20+4
  967. 240 0026 D369 ldr r3, [r2, #28]
  968. 241 0028 43F00803 orr r3, r3, #8
  969. 242 002c D361 str r3, [r2, #28]
  970. 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  971. 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming alignment error pending bit */
  972. 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGAERR);
  973. 243 .loc 1 722 4 is_stmt 1 view .LVU55
  974. 244 002e 154B ldr r3, .L20
  975. 245 0030 2022 movs r2, #32
  976. 246 0032 DA60 str r2, [r3, #12]
  977. 247 .L16:
  978. 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  979. 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  980. 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET)
  981. 248 .loc 1 725 3 view .LVU56
  982. 249 .loc 1 725 6 is_stmt 0 view .LVU57
  983. 250 0034 134B ldr r3, .L20
  984. 251 0036 DB68 ldr r3, [r3, #12]
  985. 252 .loc 1 725 5 view .LVU58
  986. 253 0038 13F0400F tst r3, #64
  987. ARM GAS /tmp/ccCfNgvn.s page 18
  988. 254 003c 07D0 beq .L17
  989. 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  990. 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP;
  991. 255 .loc 1 727 5 is_stmt 1 view .LVU59
  992. 256 .loc 1 727 22 is_stmt 0 view .LVU60
  993. 257 003e 124A ldr r2, .L20+4
  994. 258 0040 D369 ldr r3, [r2, #28]
  995. 259 0042 43F00403 orr r3, r3, #4
  996. 260 0046 D361 str r3, [r2, #28]
  997. 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  998. 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming parallelism error pending bit */
  999. 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGPERR);
  1000. 261 .loc 1 730 5 is_stmt 1 view .LVU61
  1001. 262 0048 0E4B ldr r3, .L20
  1002. 263 004a 4022 movs r2, #64
  1003. 264 004c DA60 str r2, [r3, #12]
  1004. 265 .L17:
  1005. 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1006. 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1007. 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGSERR) != RESET)
  1008. 266 .loc 1 733 3 view .LVU62
  1009. 267 .loc 1 733 6 is_stmt 0 view .LVU63
  1010. 268 004e 0D4B ldr r3, .L20
  1011. 269 0050 DB68 ldr r3, [r3, #12]
  1012. 270 .loc 1 733 5 view .LVU64
  1013. 271 0052 13F0800F tst r3, #128
  1014. 272 0056 07D0 beq .L18
  1015. 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1016. 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGS;
  1017. 273 .loc 1 735 5 is_stmt 1 view .LVU65
  1018. 274 .loc 1 735 22 is_stmt 0 view .LVU66
  1019. 275 0058 0B4A ldr r2, .L20+4
  1020. 276 005a D369 ldr r3, [r2, #28]
  1021. 277 005c 43F00203 orr r3, r3, #2
  1022. 278 0060 D361 str r3, [r2, #28]
  1023. 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1024. 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming sequence error pending bit */
  1025. 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGSERR);
  1026. 279 .loc 1 738 5 is_stmt 1 view .LVU67
  1027. 280 0062 084B ldr r3, .L20
  1028. 281 0064 8022 movs r2, #128
  1029. 282 0066 DA60 str r2, [r3, #12]
  1030. 283 .L18:
  1031. 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1032. 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR)
  1033. 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) != RESET)
  1034. 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1035. 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_RD;
  1036. 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1037. 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Proprietary readout protection error pending bit */
  1038. 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_RDERR);
  1039. 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1040. 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */
  1041. 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET)
  1042. 284 .loc 1 749 3 view .LVU68
  1043. 285 .loc 1 749 6 is_stmt 0 view .LVU69
  1044. 286 0068 064B ldr r3, .L20
  1045. ARM GAS /tmp/ccCfNgvn.s page 19
  1046. 287 006a DB68 ldr r3, [r3, #12]
  1047. 288 .loc 1 749 5 view .LVU70
  1048. 289 006c 13F0020F tst r3, #2
  1049. 290 0070 07D0 beq .L14
  1050. 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1051. 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
  1052. 291 .loc 1 751 5 is_stmt 1 view .LVU71
  1053. 292 .loc 1 751 22 is_stmt 0 view .LVU72
  1054. 293 0072 054A ldr r2, .L20+4
  1055. 294 0074 D369 ldr r3, [r2, #28]
  1056. 295 0076 43F02003 orr r3, r3, #32
  1057. 296 007a D361 str r3, [r2, #28]
  1058. 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1059. 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Operation error pending bit */
  1060. 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPERR);
  1061. 297 .loc 1 754 5 is_stmt 1 view .LVU73
  1062. 298 007c 014B ldr r3, .L20
  1063. 299 007e 0222 movs r2, #2
  1064. 300 0080 DA60 str r2, [r3, #12]
  1065. 301 .L14:
  1066. 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1067. 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1068. 302 .loc 1 756 1 is_stmt 0 view .LVU74
  1069. 303 0082 7047 bx lr
  1070. 304 .L21:
  1071. 305 .align 2
  1072. 306 .L20:
  1073. 307 0084 003C0240 .word 1073888256
  1074. 308 0088 00000000 .word .LANCHOR0
  1075. 309 .cfi_endproc
  1076. 310 .LFE146:
  1077. 312 .section .text.HAL_FLASH_Program_IT,"ax",%progbits
  1078. 313 .align 1
  1079. 314 .global HAL_FLASH_Program_IT
  1080. 315 .syntax unified
  1081. 316 .thumb
  1082. 317 .thumb_func
  1083. 319 HAL_FLASH_Program_IT:
  1084. 320 .LVL4:
  1085. 321 .LFB131:
  1086. 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
  1087. 322 .loc 1 215 1 is_stmt 1 view -0
  1088. 323 .cfi_startproc
  1089. 324 @ args = 0, pretend = 0, frame = 0
  1090. 325 @ frame_needed = 0, uses_anonymous_args = 0
  1091. 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
  1092. 326 .loc 1 215 1 is_stmt 0 view .LVU76
  1093. 327 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
  1094. 328 .LCFI2:
  1095. 329 .cfi_def_cfa_offset 24
  1096. 330 .cfi_offset 3, -24
  1097. 331 .cfi_offset 4, -20
  1098. 332 .cfi_offset 5, -16
  1099. 333 .cfi_offset 6, -12
  1100. 334 .cfi_offset 7, -8
  1101. 335 .cfi_offset 14, -4
  1102. 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1103. ARM GAS /tmp/ccCfNgvn.s page 20
  1104. 336 .loc 1 216 3 is_stmt 1 view .LVU77
  1105. 337 .LVL5:
  1106. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1107. 338 .loc 1 219 3 view .LVU78
  1108. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1109. 339 .loc 1 219 3 view .LVU79
  1110. 340 0002 174D ldr r5, .L32
  1111. 341 0004 2D7E ldrb r5, [r5, #24] @ zero_extendqisi2
  1112. 342 0006 012D cmp r5, #1
  1113. 343 0008 28D0 beq .L27
  1114. 344 000a 0446 mov r4, r0
  1115. 345 000c 0846 mov r0, r1
  1116. 346 .LVL6:
  1117. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1118. 347 .loc 1 219 3 discriminator 2 view .LVU80
  1119. 348 000e 144E ldr r6, .L32
  1120. 349 0010 0121 movs r1, #1
  1121. 350 .LVL7:
  1122. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1123. 351 .loc 1 219 3 is_stmt 0 discriminator 2 view .LVU81
  1124. 352 0012 3176 strb r1, [r6, #24]
  1125. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1126. 353 .loc 1 219 3 is_stmt 1 discriminator 2 view .LVU82
  1127. 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1128. 354 .loc 1 222 3 discriminator 2 view .LVU83
  1129. 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1130. 355 .loc 1 225 3 discriminator 2 view .LVU84
  1131. 356 0014 134D ldr r5, .L32+4
  1132. 357 0016 2F69 ldr r7, [r5, #16]
  1133. 358 0018 47F08077 orr r7, r7, #16777216
  1134. 359 001c 2F61 str r7, [r5, #16]
  1135. 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1136. 360 .loc 1 228 3 discriminator 2 view .LVU85
  1137. 361 001e 2F69 ldr r7, [r5, #16]
  1138. 362 0020 47F00077 orr r7, r7, #33554432
  1139. 363 0024 2F61 str r7, [r5, #16]
  1140. 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address;
  1141. 364 .loc 1 230 3 discriminator 2 view .LVU86
  1142. 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address;
  1143. 365 .loc 1 230 27 is_stmt 0 discriminator 2 view .LVU87
  1144. 366 0026 0321 movs r1, #3
  1145. 367 0028 3170 strb r1, [r6]
  1146. 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1147. 368 .loc 1 231 3 is_stmt 1 discriminator 2 view .LVU88
  1148. 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1149. 369 .loc 1 231 18 is_stmt 0 discriminator 2 view .LVU89
  1150. 370 002a 7061 str r0, [r6, #20]
  1151. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1152. 371 .loc 1 233 3 is_stmt 1 discriminator 2 view .LVU90
  1153. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1154. 372 .loc 1 233 5 is_stmt 0 discriminator 2 view .LVU91
  1155. 373 002c 3CB1 cbz r4, .L29
  1156. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1157. 374 .loc 1 238 8 is_stmt 1 view .LVU92
  1158. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1159. 375 .loc 1 238 10 is_stmt 0 view .LVU93
  1160. 376 002e 012C cmp r4, #1
  1161. ARM GAS /tmp/ccCfNgvn.s page 21
  1162. 377 0030 0AD0 beq .L30
  1163. 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1164. 378 .loc 1 243 8 is_stmt 1 view .LVU94
  1165. 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1166. 379 .loc 1 243 10 is_stmt 0 view .LVU95
  1167. 380 0032 022C cmp r4, #2
  1168. 381 0034 0DD0 beq .L31
  1169. 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1170. 382 .loc 1 251 5 is_stmt 1 view .LVU96
  1171. 383 0036 FFF7FEFF bl FLASH_Program_DoubleWord
  1172. 384 .LVL8:
  1173. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1174. 385 .loc 1 254 10 is_stmt 0 view .LVU97
  1175. 386 003a 0020 movs r0, #0
  1176. 387 .LVL9:
  1177. 388 .L23:
  1178. 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1179. 389 .loc 1 255 1 view .LVU98
  1180. 390 003c F8BD pop {r3, r4, r5, r6, r7, pc}
  1181. 391 .LVL10:
  1182. 392 .L29:
  1183. 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1184. 393 .loc 1 236 7 is_stmt 1 view .LVU99
  1185. 394 003e D1B2 uxtb r1, r2
  1186. 395 0040 FFF7FEFF bl FLASH_Program_Byte
  1187. 396 .LVL11:
  1188. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1189. 397 .loc 1 254 10 is_stmt 0 view .LVU100
  1190. 398 0044 0020 movs r0, #0
  1191. 399 0046 F9E7 b .L23
  1192. 400 .LVL12:
  1193. 401 .L30:
  1194. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1195. 402 .loc 1 241 5 is_stmt 1 view .LVU101
  1196. 403 0048 91B2 uxth r1, r2
  1197. 404 004a FFF7FEFF bl FLASH_Program_HalfWord
  1198. 405 .LVL13:
  1199. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1200. 406 .loc 1 254 10 is_stmt 0 view .LVU102
  1201. 407 004e 0020 movs r0, #0
  1202. 408 0050 F4E7 b .L23
  1203. 409 .LVL14:
  1204. 410 .L31:
  1205. 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1206. 411 .loc 1 246 5 is_stmt 1 view .LVU103
  1207. 412 0052 1146 mov r1, r2
  1208. 413 0054 FFF7FEFF bl FLASH_Program_Word
  1209. 414 .LVL15:
  1210. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1211. 415 .loc 1 254 10 is_stmt 0 view .LVU104
  1212. 416 0058 0020 movs r0, #0
  1213. 417 005a EFE7 b .L23
  1214. 418 .LVL16:
  1215. 419 .L27:
  1216. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1217. 420 .loc 1 219 3 view .LVU105
  1218. 421 005c 0220 movs r0, #2
  1219. ARM GAS /tmp/ccCfNgvn.s page 22
  1220. 422 .LVL17:
  1221. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1222. 423 .loc 1 219 3 view .LVU106
  1223. 424 005e EDE7 b .L23
  1224. 425 .L33:
  1225. 426 .align 2
  1226. 427 .L32:
  1227. 428 0060 00000000 .word .LANCHOR0
  1228. 429 0064 003C0240 .word 1073888256
  1229. 430 .cfi_endproc
  1230. 431 .LFE131:
  1231. 433 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
  1232. 434 .align 1
  1233. 435 .weak HAL_FLASH_EndOfOperationCallback
  1234. 436 .syntax unified
  1235. 437 .thumb
  1236. 438 .thumb_func
  1237. 440 HAL_FLASH_EndOfOperationCallback:
  1238. 441 .LVL18:
  1239. 442 .LFB133:
  1240. 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
  1241. 443 .loc 1 385 1 is_stmt 1 view -0
  1242. 444 .cfi_startproc
  1243. 445 @ args = 0, pretend = 0, frame = 0
  1244. 446 @ frame_needed = 0, uses_anonymous_args = 0
  1245. 447 @ link register save eliminated.
  1246. 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
  1247. 448 .loc 1 387 3 view .LVU108
  1248. 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1249. 449 .loc 1 391 1 is_stmt 0 view .LVU109
  1250. 450 0000 7047 bx lr
  1251. 451 .cfi_endproc
  1252. 452 .LFE133:
  1253. 454 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
  1254. 455 .align 1
  1255. 456 .weak HAL_FLASH_OperationErrorCallback
  1256. 457 .syntax unified
  1257. 458 .thumb
  1258. 459 .thumb_func
  1259. 461 HAL_FLASH_OperationErrorCallback:
  1260. 462 .LVL19:
  1261. 463 .LFB134:
  1262. 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
  1263. 464 .loc 1 402 1 is_stmt 1 view -0
  1264. 465 .cfi_startproc
  1265. 466 @ args = 0, pretend = 0, frame = 0
  1266. 467 @ frame_needed = 0, uses_anonymous_args = 0
  1267. 468 @ link register save eliminated.
  1268. 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
  1269. 469 .loc 1 404 3 view .LVU111
  1270. 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1271. 470 .loc 1 408 1 is_stmt 0 view .LVU112
  1272. 471 0000 7047 bx lr
  1273. 472 .cfi_endproc
  1274. 473 .LFE134:
  1275. 475 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits
  1276. 476 .align 1
  1277. ARM GAS /tmp/ccCfNgvn.s page 23
  1278. 477 .global HAL_FLASH_IRQHandler
  1279. 478 .syntax unified
  1280. 479 .thumb
  1281. 480 .thumb_func
  1282. 482 HAL_FLASH_IRQHandler:
  1283. 483 .LFB132:
  1284. 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t addresstmp = 0U;
  1285. 484 .loc 1 262 1 is_stmt 1 view -0
  1286. 485 .cfi_startproc
  1287. 486 @ args = 0, pretend = 0, frame = 0
  1288. 487 @ frame_needed = 0, uses_anonymous_args = 0
  1289. 488 0000 10B5 push {r4, lr}
  1290. 489 .LCFI3:
  1291. 490 .cfi_def_cfa_offset 8
  1292. 491 .cfi_offset 4, -8
  1293. 492 .cfi_offset 14, -4
  1294. 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1295. 493 .loc 1 263 3 view .LVU114
  1296. 494 .LVL20:
  1297. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  1298. 495 .loc 1 270 3 view .LVU115
  1299. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  1300. 496 .loc 1 270 6 is_stmt 0 view .LVU116
  1301. 497 0002 3A4B ldr r3, .L52
  1302. 498 0004 DB68 ldr r3, [r3, #12]
  1303. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  1304. 499 .loc 1 270 5 view .LVU117
  1305. 500 0006 13F0F20F tst r3, #242
  1306. 501 000a 13D0 beq .L37
  1307. 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1308. 502 .loc 1 274 5 is_stmt 1 view .LVU118
  1309. 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1310. 503 .loc 1 274 14 is_stmt 0 view .LVU119
  1311. 504 000c 384B ldr r3, .L52+4
  1312. 505 000e 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1313. 506 0010 DBB2 uxtb r3, r3
  1314. 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1315. 507 .loc 1 274 7 view .LVU120
  1316. 508 0012 012B cmp r3, #1
  1317. 509 0014 3BD0 beq .L48
  1318. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1319. 510 .loc 1 280 10 is_stmt 1 view .LVU121
  1320. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1321. 511 .loc 1 280 19 is_stmt 0 view .LVU122
  1322. 512 0016 364B ldr r3, .L52+4
  1323. 513 0018 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1324. 514 001a DBB2 uxtb r3, r3
  1325. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1326. 515 .loc 1 280 12 view .LVU123
  1327. 516 001c 022B cmp r3, #2
  1328. 517 001e 3CD0 beq .L49
  1329. 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1330. 518 .loc 1 288 7 is_stmt 1 view .LVU124
  1331. 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1332. 519 .loc 1 288 18 is_stmt 0 view .LVU125
  1333. 520 0020 334B ldr r3, .L52+4
  1334. 521 0022 5C69 ldr r4, [r3, #20]
  1335. ARM GAS /tmp/ccCfNgvn.s page 24
  1336. 522 .LVL21:
  1337. 523 .L39:
  1338. 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1339. 524 .loc 1 292 5 is_stmt 1 view .LVU126
  1340. 525 0024 FFF7FEFF bl FLASH_SetErrorCode
  1341. 526 .LVL22:
  1342. 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1343. 527 .loc 1 295 5 view .LVU127
  1344. 528 0028 2046 mov r0, r4
  1345. 529 002a FFF7FEFF bl HAL_FLASH_OperationErrorCallback
  1346. 530 .LVL23:
  1347. 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1348. 531 .loc 1 298 5 view .LVU128
  1349. 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1350. 532 .loc 1 298 29 is_stmt 0 view .LVU129
  1351. 533 002e 304B ldr r3, .L52+4
  1352. 534 0030 0022 movs r2, #0
  1353. 535 0032 1A70 strb r2, [r3]
  1354. 536 .LVL24:
  1355. 537 .L37:
  1356. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1357. 538 .loc 1 302 3 is_stmt 1 view .LVU130
  1358. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1359. 539 .loc 1 302 6 is_stmt 0 view .LVU131
  1360. 540 0034 2D4B ldr r3, .L52
  1361. 541 0036 DB68 ldr r3, [r3, #12]
  1362. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1363. 542 .loc 1 302 5 view .LVU132
  1364. 543 0038 13F0010F tst r3, #1
  1365. 544 003c 13D0 beq .L41
  1366. 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1367. 545 .loc 1 305 5 is_stmt 1 view .LVU133
  1368. 546 003e 2B4B ldr r3, .L52
  1369. 547 0040 0122 movs r2, #1
  1370. 548 0042 DA60 str r2, [r3, #12]
  1371. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1372. 549 .loc 1 307 5 view .LVU134
  1373. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1374. 550 .loc 1 307 14 is_stmt 0 view .LVU135
  1375. 551 0044 2A4B ldr r3, .L52+4
  1376. 552 0046 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1377. 553 0048 DBB2 uxtb r3, r3
  1378. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1379. 554 .loc 1 307 7 view .LVU136
  1380. 555 004a 9342 cmp r3, r2
  1381. 556 004c 28D0 beq .L50
  1382. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1383. 557 .loc 1 340 7 is_stmt 1 view .LVU137
  1384. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1385. 558 .loc 1 340 16 is_stmt 0 view .LVU138
  1386. 559 004e 284B ldr r3, .L52+4
  1387. 560 0050 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1388. 561 0052 DBB2 uxtb r3, r3
  1389. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1390. 562 .loc 1 340 9 view .LVU139
  1391. 563 0054 022B cmp r3, #2
  1392. 564 0056 41D0 beq .L51
  1393. ARM GAS /tmp/ccCfNgvn.s page 25
  1394. 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1395. 565 .loc 1 353 9 is_stmt 1 view .LVU140
  1396. 566 0058 254B ldr r3, .L52+4
  1397. 567 005a 5869 ldr r0, [r3, #20]
  1398. 568 005c FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  1399. 569 .LVL25:
  1400. 570 .L45:
  1401. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1402. 571 .loc 1 355 7 view .LVU141
  1403. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1404. 572 .loc 1 355 31 is_stmt 0 view .LVU142
  1405. 573 0060 234B ldr r3, .L52+4
  1406. 574 0062 0022 movs r2, #0
  1407. 575 0064 1A70 strb r2, [r3]
  1408. 576 .L41:
  1409. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1410. 577 .loc 1 359 3 is_stmt 1 view .LVU143
  1411. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1412. 578 .loc 1 359 12 is_stmt 0 view .LVU144
  1413. 579 0066 224B ldr r3, .L52+4
  1414. 580 0068 1B78 ldrb r3, [r3] @ zero_extendqisi2
  1415. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1416. 581 .loc 1 359 5 view .LVU145
  1417. 582 006a 7BB9 cbnz r3, .L36
  1418. 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1419. 583 .loc 1 362 5 is_stmt 1 view .LVU146
  1420. 584 006c 1F4B ldr r3, .L52
  1421. 585 006e 1A69 ldr r2, [r3, #16]
  1422. 586 0070 22F0FF02 bic r2, r2, #255
  1423. 587 0074 1A61 str r2, [r3, #16]
  1424. 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1425. 588 .loc 1 365 5 view .LVU147
  1426. 589 0076 1A69 ldr r2, [r3, #16]
  1427. 590 0078 22F08072 bic r2, r2, #16777216
  1428. 591 007c 1A61 str r2, [r3, #16]
  1429. 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1430. 592 .loc 1 368 5 view .LVU148
  1431. 593 007e 1A69 ldr r2, [r3, #16]
  1432. 594 0080 22F00072 bic r2, r2, #33554432
  1433. 595 0084 1A61 str r2, [r3, #16]
  1434. 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1435. 596 .loc 1 371 5 view .LVU149
  1436. 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1437. 597 .loc 1 371 5 view .LVU150
  1438. 598 0086 1A4B ldr r3, .L52+4
  1439. 599 0088 0022 movs r2, #0
  1440. 600 008a 1A76 strb r2, [r3, #24]
  1441. 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1442. 601 .loc 1 371 5 view .LVU151
  1443. 602 .L36:
  1444. 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1445. 603 .loc 1 373 1 is_stmt 0 view .LVU152
  1446. 604 008c 10BD pop {r4, pc}
  1447. 605 .LVL26:
  1448. 606 .L48:
  1449. 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU;
  1450. 607 .loc 1 277 7 is_stmt 1 view .LVU153
  1451. ARM GAS /tmp/ccCfNgvn.s page 26
  1452. 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU;
  1453. 608 .loc 1 277 18 is_stmt 0 view .LVU154
  1454. 609 008e 184B ldr r3, .L52+4
  1455. 610 0090 DC68 ldr r4, [r3, #12]
  1456. 611 .LVL27:
  1457. 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1458. 612 .loc 1 278 7 is_stmt 1 view .LVU155
  1459. 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1460. 613 .loc 1 278 21 is_stmt 0 view .LVU156
  1461. 614 0092 4FF0FF32 mov r2, #-1
  1462. 615 0096 DA60 str r2, [r3, #12]
  1463. 616 0098 C4E7 b .L39
  1464. 617 .LVL28:
  1465. 618 .L49:
  1466. 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1467. 619 .loc 1 283 7 is_stmt 1 view .LVU157
  1468. 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1469. 620 .loc 1 283 18 is_stmt 0 view .LVU158
  1470. 621 009a 154B ldr r3, .L52+4
  1471. 622 009c 1C69 ldr r4, [r3, #16]
  1472. 623 .LVL29:
  1473. 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1474. 624 .loc 1 283 18 view .LVU159
  1475. 625 009e C1E7 b .L39
  1476. 626 .LVL30:
  1477. 627 .L50:
  1478. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1479. 628 .loc 1 310 7 is_stmt 1 view .LVU160
  1480. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1481. 629 .loc 1 310 13 is_stmt 0 view .LVU161
  1482. 630 00a0 134B ldr r3, .L52+4
  1483. 631 00a2 5A68 ldr r2, [r3, #4]
  1484. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1485. 632 .loc 1 310 30 view .LVU162
  1486. 633 00a4 013A subs r2, r2, #1
  1487. 634 00a6 5A60 str r2, [r3, #4]
  1488. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1489. 635 .loc 1 313 7 is_stmt 1 view .LVU163
  1490. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1491. 636 .loc 1 313 16 is_stmt 0 view .LVU164
  1492. 637 00a8 5B68 ldr r3, [r3, #4]
  1493. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1494. 638 .loc 1 313 9 view .LVU165
  1495. 639 00aa 5BB1 cbz r3, .L43
  1496. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/
  1497. 640 .loc 1 315 9 is_stmt 1 view .LVU166
  1498. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/
  1499. 641 .loc 1 315 20 is_stmt 0 view .LVU167
  1500. 642 00ac 104C ldr r4, .L52+4
  1501. 643 00ae E068 ldr r0, [r4, #12]
  1502. 644 .LVL31:
  1503. 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1504. 645 .loc 1 317 9 is_stmt 1 view .LVU168
  1505. 646 00b0 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  1506. 647 .LVL32:
  1507. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
  1508. 648 .loc 1 320 9 view .LVU169
  1509. ARM GAS /tmp/ccCfNgvn.s page 27
  1510. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
  1511. 649 .loc 1 320 15 is_stmt 0 view .LVU170
  1512. 650 00b4 E368 ldr r3, [r4, #12]
  1513. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
  1514. 651 .loc 1 320 22 view .LVU171
  1515. 652 00b6 0133 adds r3, r3, #1
  1516. 653 00b8 E360 str r3, [r4, #12]
  1517. 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase);
  1518. 654 .loc 1 321 9 is_stmt 1 view .LVU172
  1519. 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase);
  1520. 655 .loc 1 321 20 is_stmt 0 view .LVU173
  1521. 656 00ba E068 ldr r0, [r4, #12]
  1522. 657 .LVL33:
  1523. 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1524. 658 .loc 1 322 9 is_stmt 1 view .LVU174
  1525. 659 00bc 217A ldrb r1, [r4, #8] @ zero_extendqisi2
  1526. 660 00be FFF7FEFF bl FLASH_Erase_Sector
  1527. 661 .LVL34:
  1528. 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1529. 662 .loc 1 322 9 is_stmt 0 view .LVU175
  1530. 663 00c2 D0E7 b .L41
  1531. 664 .L43:
  1532. 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  1533. 665 .loc 1 328 9 is_stmt 1 view .LVU176
  1534. 666 .LVL35:
  1535. 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
  1536. 667 .loc 1 328 23 is_stmt 0 view .LVU177
  1537. 668 00c4 0A4B ldr r3, .L52+4
  1538. 669 00c6 4FF0FF34 mov r4, #-1
  1539. 670 00ca DC60 str r4, [r3, #12]
  1540. 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1541. 671 .loc 1 329 9 is_stmt 1 view .LVU178
  1542. 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1543. 672 .loc 1 329 33 is_stmt 0 view .LVU179
  1544. 673 00cc 0022 movs r2, #0
  1545. 674 00ce 1A70 strb r2, [r3]
  1546. 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1547. 675 .loc 1 332 9 is_stmt 1 view .LVU180
  1548. 676 00d0 FFF7FEFF bl FLASH_FlushCaches
  1549. 677 .LVL36:
  1550. 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1551. 678 .loc 1 335 9 view .LVU181
  1552. 679 00d4 2046 mov r0, r4
  1553. 680 00d6 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  1554. 681 .LVL37:
  1555. 682 00da C4E7 b .L41
  1556. 683 .LVL38:
  1557. 684 .L51:
  1558. 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1559. 685 .loc 1 344 9 view .LVU182
  1560. 686 00dc FFF7FEFF bl FLASH_FlushCaches
  1561. 687 .LVL39:
  1562. 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1563. 688 .loc 1 347 9 view .LVU183
  1564. 689 00e0 034B ldr r3, .L52+4
  1565. 690 00e2 1869 ldr r0, [r3, #16]
  1566. 691 00e4 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
  1567. ARM GAS /tmp/ccCfNgvn.s page 28
  1568. 692 .LVL40:
  1569. 693 00e8 BAE7 b .L45
  1570. 694 .L53:
  1571. 695 00ea 00BF .align 2
  1572. 696 .L52:
  1573. 697 00ec 003C0240 .word 1073888256
  1574. 698 00f0 00000000 .word .LANCHOR0
  1575. 699 .cfi_endproc
  1576. 700 .LFE132:
  1577. 702 .section .text.HAL_FLASH_Unlock,"ax",%progbits
  1578. 703 .align 1
  1579. 704 .global HAL_FLASH_Unlock
  1580. 705 .syntax unified
  1581. 706 .thumb
  1582. 707 .thumb_func
  1583. 709 HAL_FLASH_Unlock:
  1584. 710 .LFB135:
  1585. 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
  1586. 711 .loc 1 434 1 view -0
  1587. 712 .cfi_startproc
  1588. 713 @ args = 0, pretend = 0, frame = 0
  1589. 714 @ frame_needed = 0, uses_anonymous_args = 0
  1590. 715 @ link register save eliminated.
  1591. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1592. 716 .loc 1 435 3 view .LVU185
  1593. 717 .LVL41:
  1594. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1595. 718 .loc 1 437 3 view .LVU186
  1596. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1597. 719 .loc 1 437 6 is_stmt 0 view .LVU187
  1598. 720 0000 094B ldr r3, .L59
  1599. 721 0002 1B69 ldr r3, [r3, #16]
  1600. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1601. 722 .loc 1 437 5 view .LVU188
  1602. 723 0004 002B cmp r3, #0
  1603. 724 0006 01DB blt .L58
  1604. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1605. 725 .loc 1 435 21 view .LVU189
  1606. 726 0008 0020 movs r0, #0
  1607. 727 000a 7047 bx lr
  1608. 728 .L58:
  1609. 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
  1610. 729 .loc 1 440 5 is_stmt 1 view .LVU190
  1611. 730 000c 064B ldr r3, .L59
  1612. 731 000e 074A ldr r2, .L59+4
  1613. 732 0010 5A60 str r2, [r3, #4]
  1614. 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1615. 733 .loc 1 441 5 view .LVU191
  1616. 734 0012 02F18832 add r2, r2, #-2004318072
  1617. 735 0016 5A60 str r2, [r3, #4]
  1618. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1619. 736 .loc 1 444 5 view .LVU192
  1620. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1621. 737 .loc 1 444 8 is_stmt 0 view .LVU193
  1622. 738 0018 1B69 ldr r3, [r3, #16]
  1623. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1624. 739 .loc 1 444 7 view .LVU194
  1625. ARM GAS /tmp/ccCfNgvn.s page 29
  1626. 740 001a 002B cmp r3, #0
  1627. 741 001c 01DB blt .L57
  1628. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1629. 742 .loc 1 435 21 view .LVU195
  1630. 743 001e 0020 movs r0, #0
  1631. 744 0020 7047 bx lr
  1632. 745 .L57:
  1633. 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1634. 746 .loc 1 446 14 view .LVU196
  1635. 747 0022 0120 movs r0, #1
  1636. 748 .LVL42:
  1637. 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1638. 749 .loc 1 450 3 is_stmt 1 view .LVU197
  1639. 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1640. 750 .loc 1 451 1 is_stmt 0 view .LVU198
  1641. 751 0024 7047 bx lr
  1642. 752 .L60:
  1643. 753 0026 00BF .align 2
  1644. 754 .L59:
  1645. 755 0028 003C0240 .word 1073888256
  1646. 756 002c 23016745 .word 1164378403
  1647. 757 .cfi_endproc
  1648. 758 .LFE135:
  1649. 760 .section .text.HAL_FLASH_Lock,"ax",%progbits
  1650. 761 .align 1
  1651. 762 .global HAL_FLASH_Lock
  1652. 763 .syntax unified
  1653. 764 .thumb
  1654. 765 .thumb_func
  1655. 767 HAL_FLASH_Lock:
  1656. 768 .LFB136:
  1657. 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
  1658. 769 .loc 1 458 1 is_stmt 1 view -0
  1659. 770 .cfi_startproc
  1660. 771 @ args = 0, pretend = 0, frame = 0
  1661. 772 @ frame_needed = 0, uses_anonymous_args = 0
  1662. 773 @ link register save eliminated.
  1663. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1664. 774 .loc 1 460 3 view .LVU200
  1665. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1666. 775 .loc 1 460 13 is_stmt 0 view .LVU201
  1667. 776 0000 034A ldr r2, .L62
  1668. 777 0002 1369 ldr r3, [r2, #16]
  1669. 778 0004 43F00043 orr r3, r3, #-2147483648
  1670. 779 0008 1361 str r3, [r2, #16]
  1671. 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1672. 780 .loc 1 462 3 is_stmt 1 view .LVU202
  1673. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1674. 781 .loc 1 463 1 is_stmt 0 view .LVU203
  1675. 782 000a 0020 movs r0, #0
  1676. 783 000c 7047 bx lr
  1677. 784 .L63:
  1678. 785 000e 00BF .align 2
  1679. 786 .L62:
  1680. 787 0010 003C0240 .word 1073888256
  1681. 788 .cfi_endproc
  1682. 789 .LFE136:
  1683. ARM GAS /tmp/ccCfNgvn.s page 30
  1684. 791 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits
  1685. 792 .align 1
  1686. 793 .global HAL_FLASH_OB_Unlock
  1687. 794 .syntax unified
  1688. 795 .thumb
  1689. 796 .thumb_func
  1690. 798 HAL_FLASH_OB_Unlock:
  1691. 799 .LFB137:
  1692. 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET)
  1693. 800 .loc 1 470 1 is_stmt 1 view -0
  1694. 801 .cfi_startproc
  1695. 802 @ args = 0, pretend = 0, frame = 0
  1696. 803 @ frame_needed = 0, uses_anonymous_args = 0
  1697. 804 @ link register save eliminated.
  1698. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1699. 805 .loc 1 471 3 view .LVU205
  1700. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1701. 806 .loc 1 471 12 is_stmt 0 view .LVU206
  1702. 807 0000 074B ldr r3, .L67
  1703. 808 0002 5B69 ldr r3, [r3, #20]
  1704. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1705. 809 .loc 1 471 5 view .LVU207
  1706. 810 0004 13F0010F tst r3, #1
  1707. 811 0008 07D0 beq .L66
  1708. 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2;
  1709. 812 .loc 1 474 5 is_stmt 1 view .LVU208
  1710. 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2;
  1711. 813 .loc 1 474 20 is_stmt 0 view .LVU209
  1712. 814 000a 054B ldr r3, .L67
  1713. 815 000c 054A ldr r2, .L67+4
  1714. 816 000e 9A60 str r2, [r3, #8]
  1715. 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1716. 817 .loc 1 475 5 is_stmt 1 view .LVU210
  1717. 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1718. 818 .loc 1 475 20 is_stmt 0 view .LVU211
  1719. 819 0010 02F14432 add r2, r2, #1145324612
  1720. 820 0014 9A60 str r2, [r3, #8]
  1721. 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1722. 821 .loc 1 482 3 is_stmt 1 view .LVU212
  1723. 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1724. 822 .loc 1 482 10 is_stmt 0 view .LVU213
  1725. 823 0016 0020 movs r0, #0
  1726. 824 0018 7047 bx lr
  1727. 825 .L66:
  1728. 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1729. 826 .loc 1 479 12 view .LVU214
  1730. 827 001a 0120 movs r0, #1
  1731. 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1732. 828 .loc 1 483 1 view .LVU215
  1733. 829 001c 7047 bx lr
  1734. 830 .L68:
  1735. 831 001e 00BF .align 2
  1736. 832 .L67:
  1737. 833 0020 003C0240 .word 1073888256
  1738. 834 0024 3B2A1908 .word 135866939
  1739. 835 .cfi_endproc
  1740. 836 .LFE137:
  1741. ARM GAS /tmp/ccCfNgvn.s page 31
  1742. 838 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits
  1743. 839 .align 1
  1744. 840 .global HAL_FLASH_OB_Lock
  1745. 841 .syntax unified
  1746. 842 .thumb
  1747. 843 .thumb_func
  1748. 845 HAL_FLASH_OB_Lock:
  1749. 846 .LFB138:
  1750. 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
  1751. 847 .loc 1 490 1 is_stmt 1 view -0
  1752. 848 .cfi_startproc
  1753. 849 @ args = 0, pretend = 0, frame = 0
  1754. 850 @ frame_needed = 0, uses_anonymous_args = 0
  1755. 851 @ link register save eliminated.
  1756. 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1757. 852 .loc 1 492 3 view .LVU217
  1758. 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1759. 853 .loc 1 492 16 is_stmt 0 view .LVU218
  1760. 854 0000 034A ldr r2, .L70
  1761. 855 0002 5369 ldr r3, [r2, #20]
  1762. 856 0004 43F00103 orr r3, r3, #1
  1763. 857 0008 5361 str r3, [r2, #20]
  1764. 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1765. 858 .loc 1 494 3 is_stmt 1 view .LVU219
  1766. 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1767. 859 .loc 1 495 1 is_stmt 0 view .LVU220
  1768. 860 000a 0020 movs r0, #0
  1769. 861 000c 7047 bx lr
  1770. 862 .L71:
  1771. 863 000e 00BF .align 2
  1772. 864 .L70:
  1773. 865 0010 003C0240 .word 1073888256
  1774. 866 .cfi_endproc
  1775. 867 .LFE138:
  1776. 869 .section .text.HAL_FLASH_GetError,"ax",%progbits
  1777. 870 .align 1
  1778. 871 .global HAL_FLASH_GetError
  1779. 872 .syntax unified
  1780. 873 .thumb
  1781. 874 .thumb_func
  1782. 876 HAL_FLASH_GetError:
  1783. 877 .LFB140:
  1784. 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return pFlash.ErrorCode;
  1785. 878 .loc 1 539 1 is_stmt 1 view -0
  1786. 879 .cfi_startproc
  1787. 880 @ args = 0, pretend = 0, frame = 0
  1788. 881 @ frame_needed = 0, uses_anonymous_args = 0
  1789. 882 @ link register save eliminated.
  1790. 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1791. 883 .loc 1 540 4 view .LVU222
  1792. 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1793. 884 .loc 1 540 17 is_stmt 0 view .LVU223
  1794. 885 0000 014B ldr r3, .L73
  1795. 886 0002 D869 ldr r0, [r3, #28]
  1796. 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1797. 887 .loc 1 541 1 view .LVU224
  1798. 888 0004 7047 bx lr
  1799. ARM GAS /tmp/ccCfNgvn.s page 32
  1800. 889 .L74:
  1801. 890 0006 00BF .align 2
  1802. 891 .L73:
  1803. 892 0008 00000000 .word .LANCHOR0
  1804. 893 .cfi_endproc
  1805. 894 .LFE140:
  1806. 896 .section .text.FLASH_WaitForLastOperation,"ax",%progbits
  1807. 897 .align 1
  1808. 898 .global FLASH_WaitForLastOperation
  1809. 899 .syntax unified
  1810. 900 .thumb
  1811. 901 .thumb_func
  1812. 903 FLASH_WaitForLastOperation:
  1813. 904 .LVL43:
  1814. 905 .LFB141:
  1815. 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U;
  1816. 906 .loc 1 553 1 is_stmt 1 view -0
  1817. 907 .cfi_startproc
  1818. 908 @ args = 0, pretend = 0, frame = 0
  1819. 909 @ frame_needed = 0, uses_anonymous_args = 0
  1820. 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U;
  1821. 910 .loc 1 553 1 is_stmt 0 view .LVU226
  1822. 911 0000 38B5 push {r3, r4, r5, lr}
  1823. 912 .LCFI4:
  1824. 913 .cfi_def_cfa_offset 16
  1825. 914 .cfi_offset 3, -16
  1826. 915 .cfi_offset 4, -12
  1827. 916 .cfi_offset 5, -8
  1828. 917 .cfi_offset 14, -4
  1829. 918 0002 0446 mov r4, r0
  1830. 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1831. 919 .loc 1 554 3 is_stmt 1 view .LVU227
  1832. 920 .LVL44:
  1833. 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1834. 921 .loc 1 557 3 view .LVU228
  1835. 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1836. 922 .loc 1 557 20 is_stmt 0 view .LVU229
  1837. 923 0004 144B ldr r3, .L86
  1838. 924 0006 0022 movs r2, #0
  1839. 925 0008 DA61 str r2, [r3, #28]
  1840. 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1841. 926 .loc 1 563 3 is_stmt 1 view .LVU230
  1842. 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1843. 927 .loc 1 563 15 is_stmt 0 view .LVU231
  1844. 928 000a FFF7FEFF bl HAL_GetTick
  1845. 929 .LVL45:
  1846. 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1847. 930 .loc 1 563 15 view .LVU232
  1848. 931 000e 0546 mov r5, r0
  1849. 932 .LVL46:
  1850. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1851. 933 .loc 1 565 3 is_stmt 1 view .LVU233
  1852. 934 .L77:
  1853. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1854. 935 .loc 1 565 8 view .LVU234
  1855. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1856. 936 .loc 1 565 9 is_stmt 0 view .LVU235
  1857. ARM GAS /tmp/ccCfNgvn.s page 33
  1858. 937 0010 124B ldr r3, .L86+4
  1859. 938 0012 DB68 ldr r3, [r3, #12]
  1860. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1861. 939 .loc 1 565 8 view .LVU236
  1862. 940 0014 13F4803F tst r3, #65536
  1863. 941 0018 0AD0 beq .L84
  1864. 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1865. 942 .loc 1 567 5 is_stmt 1 view .LVU237
  1866. 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1867. 943 .loc 1 567 7 is_stmt 0 view .LVU238
  1868. 944 001a B4F1FF3F cmp r4, #-1
  1869. 945 001e F7D0 beq .L77
  1870. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1871. 946 .loc 1 569 7 is_stmt 1 view .LVU239
  1872. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1873. 947 .loc 1 569 9 is_stmt 0 view .LVU240
  1874. 948 0020 24B1 cbz r4, .L78
  1875. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1876. 949 .loc 1 569 29 discriminator 1 view .LVU241
  1877. 950 0022 FFF7FEFF bl HAL_GetTick
  1878. 951 .LVL47:
  1879. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1880. 952 .loc 1 569 43 discriminator 1 view .LVU242
  1881. 953 0026 401B subs r0, r0, r5
  1882. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1883. 954 .loc 1 569 25 discriminator 1 view .LVU243
  1884. 955 0028 A042 cmp r0, r4
  1885. 956 002a F1D9 bls .L77
  1886. 957 .L78:
  1887. 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1888. 958 .loc 1 571 9 is_stmt 1 view .LVU244
  1889. 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1890. 959 .loc 1 571 16 is_stmt 0 view .LVU245
  1891. 960 002c 0320 movs r0, #3
  1892. 961 002e 0DE0 b .L79
  1893. 962 .L84:
  1894. 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1895. 963 .loc 1 577 3 is_stmt 1 view .LVU246
  1896. 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1897. 964 .loc 1 577 7 is_stmt 0 view .LVU247
  1898. 965 0030 0A4B ldr r3, .L86+4
  1899. 966 0032 DB68 ldr r3, [r3, #12]
  1900. 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  1901. 967 .loc 1 577 6 view .LVU248
  1902. 968 0034 13F0010F tst r3, #1
  1903. 969 0038 02D0 beq .L81
  1904. 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1905. 970 .loc 1 580 5 is_stmt 1 view .LVU249
  1906. 971 003a 084B ldr r3, .L86+4
  1907. 972 003c 0122 movs r2, #1
  1908. 973 003e DA60 str r2, [r3, #12]
  1909. 974 .L81:
  1910. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  1911. 975 .loc 1 586 3 view .LVU250
  1912. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  1913. 976 .loc 1 586 6 is_stmt 0 view .LVU251
  1914. 977 0040 064B ldr r3, .L86+4
  1915. ARM GAS /tmp/ccCfNgvn.s page 34
  1916. 978 0042 DB68 ldr r3, [r3, #12]
  1917. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
  1918. 979 .loc 1 586 5 view .LVU252
  1919. 980 0044 13F0F20F tst r3, #242
  1920. 981 0048 01D1 bne .L85
  1921. 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1922. 982 .loc 1 596 10 view .LVU253
  1923. 983 004a 0020 movs r0, #0
  1924. 984 .L79:
  1925. 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1926. 985 .loc 1 598 1 view .LVU254
  1927. 986 004c 38BD pop {r3, r4, r5, pc}
  1928. 987 .LVL48:
  1929. 988 .L85:
  1930. 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR;
  1931. 989 .loc 1 591 5 is_stmt 1 view .LVU255
  1932. 990 004e FFF7FEFF bl FLASH_SetErrorCode
  1933. 991 .LVL49:
  1934. 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1935. 992 .loc 1 592 5 view .LVU256
  1936. 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  1937. 993 .loc 1 592 12 is_stmt 0 view .LVU257
  1938. 994 0052 0120 movs r0, #1
  1939. 995 0054 FAE7 b .L79
  1940. 996 .L87:
  1941. 997 0056 00BF .align 2
  1942. 998 .L86:
  1943. 999 0058 00000000 .word .LANCHOR0
  1944. 1000 005c 003C0240 .word 1073888256
  1945. 1001 .cfi_endproc
  1946. 1002 .LFE141:
  1947. 1004 .section .text.HAL_FLASH_Program,"ax",%progbits
  1948. 1005 .align 1
  1949. 1006 .global HAL_FLASH_Program
  1950. 1007 .syntax unified
  1951. 1008 .thumb
  1952. 1009 .thumb_func
  1953. 1011 HAL_FLASH_Program:
  1954. 1012 .LVL50:
  1955. 1013 .LFB130:
  1956. 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
  1957. 1014 .loc 1 157 1 is_stmt 1 view -0
  1958. 1015 .cfi_startproc
  1959. 1016 @ args = 0, pretend = 0, frame = 0
  1960. 1017 @ frame_needed = 0, uses_anonymous_args = 0
  1961. 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
  1962. 1018 .loc 1 157 1 is_stmt 0 view .LVU259
  1963. 1019 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
  1964. 1020 .LCFI5:
  1965. 1021 .cfi_def_cfa_offset 24
  1966. 1022 .cfi_offset 3, -24
  1967. 1023 .cfi_offset 4, -20
  1968. 1024 .cfi_offset 5, -16
  1969. 1025 .cfi_offset 6, -12
  1970. 1026 .cfi_offset 7, -8
  1971. 1027 .cfi_offset 14, -4
  1972. 1028 0002 1646 mov r6, r2
  1973. ARM GAS /tmp/ccCfNgvn.s page 35
  1974. 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1975. 1029 .loc 1 158 3 is_stmt 1 view .LVU260
  1976. 1030 .LVL51:
  1977. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1978. 1031 .loc 1 161 3 view .LVU261
  1979. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1980. 1032 .loc 1 161 3 view .LVU262
  1981. 1033 0004 1B4A ldr r2, .L100
  1982. 1034 .LVL52:
  1983. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1984. 1035 .loc 1 161 3 is_stmt 0 view .LVU263
  1985. 1036 0006 127E ldrb r2, [r2, #24] @ zero_extendqisi2
  1986. 1037 0008 012A cmp r2, #1
  1987. 1038 000a 30D0 beq .L95
  1988. 1039 000c 0446 mov r4, r0
  1989. 1040 000e 0D46 mov r5, r1
  1990. 1041 0010 1F46 mov r7, r3
  1991. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1992. 1042 .loc 1 161 3 is_stmt 1 discriminator 2 view .LVU264
  1993. 1043 0012 184B ldr r3, .L100
  1994. 1044 0014 0122 movs r2, #1
  1995. 1045 0016 1A76 strb r2, [r3, #24]
  1996. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1997. 1046 .loc 1 161 3 discriminator 2 view .LVU265
  1998. 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  1999. 1047 .loc 1 164 3 discriminator 2 view .LVU266
  2000. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2001. 1048 .loc 1 167 3 discriminator 2 view .LVU267
  2002. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2003. 1049 .loc 1 167 12 is_stmt 0 discriminator 2 view .LVU268
  2004. 1050 0018 4CF25030 movw r0, #50000
  2005. 1051 .LVL53:
  2006. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2007. 1052 .loc 1 167 12 discriminator 2 view .LVU269
  2008. 1053 001c FFF7FEFF bl FLASH_WaitForLastOperation
  2009. 1054 .LVL54:
  2010. 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2011. 1055 .loc 1 169 3 is_stmt 1 discriminator 2 view .LVU270
  2012. 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2013. 1056 .loc 1 169 5 is_stmt 0 discriminator 2 view .LVU271
  2014. 1057 0020 90B9 cbnz r0, .L90
  2015. 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2016. 1058 .loc 1 171 5 is_stmt 1 view .LVU272
  2017. 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2018. 1059 .loc 1 171 7 is_stmt 0 view .LVU273
  2019. 1060 0022 ACB1 cbz r4, .L97
  2020. 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2021. 1061 .loc 1 176 10 is_stmt 1 view .LVU274
  2022. 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2023. 1062 .loc 1 176 12 is_stmt 0 view .LVU275
  2024. 1063 0024 012C cmp r4, #1
  2025. 1064 0026 18D0 beq .L98
  2026. 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2027. 1065 .loc 1 181 10 is_stmt 1 view .LVU276
  2028. 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
  2029. 1066 .loc 1 181 12 is_stmt 0 view .LVU277
  2030. 1067 0028 022C cmp r4, #2
  2031. ARM GAS /tmp/ccCfNgvn.s page 36
  2032. 1068 002a 1BD0 beq .L99
  2033. 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2034. 1069 .loc 1 189 7 is_stmt 1 view .LVU278
  2035. 1070 002c 3246 mov r2, r6
  2036. 1071 002e 3B46 mov r3, r7
  2037. 1072 0030 2846 mov r0, r5
  2038. 1073 .LVL55:
  2039. 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2040. 1074 .loc 1 189 7 is_stmt 0 view .LVU279
  2041. 1075 0032 FFF7FEFF bl FLASH_Program_DoubleWord
  2042. 1076 .LVL56:
  2043. 1077 .L92:
  2044. 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2045. 1078 .loc 1 193 5 is_stmt 1 view .LVU280
  2046. 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2047. 1079 .loc 1 193 14 is_stmt 0 view .LVU281
  2048. 1080 0036 4CF25030 movw r0, #50000
  2049. 1081 003a FFF7FEFF bl FLASH_WaitForLastOperation
  2050. 1082 .LVL57:
  2051. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2052. 1083 .loc 1 196 5 is_stmt 1 view .LVU282
  2053. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2054. 1084 .loc 1 196 15 is_stmt 0 view .LVU283
  2055. 1085 003e 0E4A ldr r2, .L100+4
  2056. 1086 0040 1369 ldr r3, [r2, #16]
  2057. 1087 0042 23F00103 bic r3, r3, #1
  2058. 1088 0046 1361 str r3, [r2, #16]
  2059. 1089 .L90:
  2060. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2061. 1090 .loc 1 200 3 is_stmt 1 view .LVU284
  2062. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2063. 1091 .loc 1 200 3 view .LVU285
  2064. 1092 0048 0A4B ldr r3, .L100
  2065. 1093 004a 0022 movs r2, #0
  2066. 1094 004c 1A76 strb r2, [r3, #24]
  2067. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2068. 1095 .loc 1 200 3 view .LVU286
  2069. 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2070. 1096 .loc 1 202 3 view .LVU287
  2071. 1097 .LVL58:
  2072. 1098 .L89:
  2073. 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2074. 1099 .loc 1 203 1 is_stmt 0 view .LVU288
  2075. 1100 004e F8BD pop {r3, r4, r5, r6, r7, pc}
  2076. 1101 .LVL59:
  2077. 1102 .L97:
  2078. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2079. 1103 .loc 1 174 7 is_stmt 1 view .LVU289
  2080. 1104 0050 F1B2 uxtb r1, r6
  2081. 1105 0052 2846 mov r0, r5
  2082. 1106 .LVL60:
  2083. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2084. 1107 .loc 1 174 7 is_stmt 0 view .LVU290
  2085. 1108 0054 FFF7FEFF bl FLASH_Program_Byte
  2086. 1109 .LVL61:
  2087. 1110 0058 EDE7 b .L92
  2088. 1111 .LVL62:
  2089. ARM GAS /tmp/ccCfNgvn.s page 37
  2090. 1112 .L98:
  2091. 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2092. 1113 .loc 1 179 7 is_stmt 1 view .LVU291
  2093. 1114 005a B1B2 uxth r1, r6
  2094. 1115 005c 2846 mov r0, r5
  2095. 1116 .LVL63:
  2096. 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2097. 1117 .loc 1 179 7 is_stmt 0 view .LVU292
  2098. 1118 005e FFF7FEFF bl FLASH_Program_HalfWord
  2099. 1119 .LVL64:
  2100. 1120 0062 E8E7 b .L92
  2101. 1121 .LVL65:
  2102. 1122 .L99:
  2103. 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2104. 1123 .loc 1 184 7 is_stmt 1 view .LVU293
  2105. 1124 0064 3146 mov r1, r6
  2106. 1125 0066 2846 mov r0, r5
  2107. 1126 .LVL66:
  2108. 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2109. 1127 .loc 1 184 7 is_stmt 0 view .LVU294
  2110. 1128 0068 FFF7FEFF bl FLASH_Program_Word
  2111. 1129 .LVL67:
  2112. 1130 006c E3E7 b .L92
  2113. 1131 .LVL68:
  2114. 1132 .L95:
  2115. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2116. 1133 .loc 1 161 3 view .LVU295
  2117. 1134 006e 0220 movs r0, #2
  2118. 1135 .LVL69:
  2119. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2120. 1136 .loc 1 161 3 view .LVU296
  2121. 1137 0070 EDE7 b .L89
  2122. 1138 .L101:
  2123. 1139 0072 00BF .align 2
  2124. 1140 .L100:
  2125. 1141 0074 00000000 .word .LANCHOR0
  2126. 1142 0078 003C0240 .word 1073888256
  2127. 1143 .cfi_endproc
  2128. 1144 .LFE130:
  2129. 1146 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits
  2130. 1147 .align 1
  2131. 1148 .global HAL_FLASH_OB_Launch
  2132. 1149 .syntax unified
  2133. 1150 .thumb
  2134. 1151 .thumb_func
  2135. 1153 HAL_FLASH_OB_Launch:
  2136. 1154 .LFB139:
  2137. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTSTRT bit in OPTCR register */
  2138. 1155 .loc 1 502 1 is_stmt 1 view -0
  2139. 1156 .cfi_startproc
  2140. 1157 @ args = 0, pretend = 0, frame = 0
  2141. 1158 @ frame_needed = 0, uses_anonymous_args = 0
  2142. 1159 0000 08B5 push {r3, lr}
  2143. 1160 .LCFI6:
  2144. 1161 .cfi_def_cfa_offset 8
  2145. 1162 .cfi_offset 3, -8
  2146. 1163 .cfi_offset 14, -4
  2147. ARM GAS /tmp/ccCfNgvn.s page 38
  2148. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2149. 1164 .loc 1 504 3 view .LVU298
  2150. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2151. 1165 .loc 1 504 40 is_stmt 0 view .LVU299
  2152. 1166 0002 054A ldr r2, .L104
  2153. 1167 0004 137D ldrb r3, [r2, #20] @ zero_extendqisi2
  2154. 1168 0006 43F00203 orr r3, r3, #2
  2155. 1169 000a 1375 strb r3, [r2, #20]
  2156. 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2157. 1170 .loc 1 507 3 is_stmt 1 view .LVU300
  2158. 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
  2159. 1171 .loc 1 507 10 is_stmt 0 view .LVU301
  2160. 1172 000c 4CF25030 movw r0, #50000
  2161. 1173 0010 FFF7FEFF bl FLASH_WaitForLastOperation
  2162. 1174 .LVL70:
  2163. 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
  2164. 1175 .loc 1 508 1 view .LVU302
  2165. 1176 0014 08BD pop {r3, pc}
  2166. 1177 .L105:
  2167. 1178 0016 00BF .align 2
  2168. 1179 .L104:
  2169. 1180 0018 003C0240 .word 1073888256
  2170. 1181 .cfi_endproc
  2171. 1182 .LFE139:
  2172. 1184 .global pFlash
  2173. 1185 .section .bss.pFlash,"aw",%nobits
  2174. 1186 .align 2
  2175. 1187 .set .LANCHOR0,. + 0
  2176. 1190 pFlash:
  2177. 1191 0000 00000000 .space 32
  2178. 1191 00000000
  2179. 1191 00000000
  2180. 1191 00000000
  2181. 1191 00000000
  2182. 1192 .text
  2183. 1193 .Letext0:
  2184. 1194 .file 2 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/
  2185. 1195 .file 3 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/
  2186. 1196 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
  2187. 1197 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
  2188. 1198 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
  2189. 1199 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h"
  2190. 1200 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h"
  2191. 1201 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h"
  2192. ARM GAS /tmp/ccCfNgvn.s page 39
  2193. DEFINED SYMBOLS
  2194. *ABS*:0000000000000000 stm32f4xx_hal_flash.c
  2195. /tmp/ccCfNgvn.s:20 .text.FLASH_Program_DoubleWord:0000000000000000 $t
  2196. /tmp/ccCfNgvn.s:25 .text.FLASH_Program_DoubleWord:0000000000000000 FLASH_Program_DoubleWord
  2197. /tmp/ccCfNgvn.s:70 .text.FLASH_Program_DoubleWord:0000000000000028 $d
  2198. /tmp/ccCfNgvn.s:75 .text.FLASH_Program_Word:0000000000000000 $t
  2199. /tmp/ccCfNgvn.s:80 .text.FLASH_Program_Word:0000000000000000 FLASH_Program_Word
  2200. /tmp/ccCfNgvn.s:112 .text.FLASH_Program_Word:0000000000000020 $d
  2201. /tmp/ccCfNgvn.s:117 .text.FLASH_Program_HalfWord:0000000000000000 $t
  2202. /tmp/ccCfNgvn.s:122 .text.FLASH_Program_HalfWord:0000000000000000 FLASH_Program_HalfWord
  2203. /tmp/ccCfNgvn.s:154 .text.FLASH_Program_HalfWord:0000000000000020 $d
  2204. /tmp/ccCfNgvn.s:159 .text.FLASH_Program_Byte:0000000000000000 $t
  2205. /tmp/ccCfNgvn.s:164 .text.FLASH_Program_Byte:0000000000000000 FLASH_Program_Byte
  2206. /tmp/ccCfNgvn.s:195 .text.FLASH_Program_Byte:000000000000001c $d
  2207. /tmp/ccCfNgvn.s:200 .text.FLASH_SetErrorCode:0000000000000000 $t
  2208. /tmp/ccCfNgvn.s:205 .text.FLASH_SetErrorCode:0000000000000000 FLASH_SetErrorCode
  2209. /tmp/ccCfNgvn.s:307 .text.FLASH_SetErrorCode:0000000000000084 $d
  2210. /tmp/ccCfNgvn.s:313 .text.HAL_FLASH_Program_IT:0000000000000000 $t
  2211. /tmp/ccCfNgvn.s:319 .text.HAL_FLASH_Program_IT:0000000000000000 HAL_FLASH_Program_IT
  2212. /tmp/ccCfNgvn.s:428 .text.HAL_FLASH_Program_IT:0000000000000060 $d
  2213. /tmp/ccCfNgvn.s:434 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 $t
  2214. /tmp/ccCfNgvn.s:440 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 HAL_FLASH_EndOfOperationCallback
  2215. /tmp/ccCfNgvn.s:455 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 $t
  2216. /tmp/ccCfNgvn.s:461 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 HAL_FLASH_OperationErrorCallback
  2217. /tmp/ccCfNgvn.s:476 .text.HAL_FLASH_IRQHandler:0000000000000000 $t
  2218. /tmp/ccCfNgvn.s:482 .text.HAL_FLASH_IRQHandler:0000000000000000 HAL_FLASH_IRQHandler
  2219. /tmp/ccCfNgvn.s:697 .text.HAL_FLASH_IRQHandler:00000000000000ec $d
  2220. /tmp/ccCfNgvn.s:703 .text.HAL_FLASH_Unlock:0000000000000000 $t
  2221. /tmp/ccCfNgvn.s:709 .text.HAL_FLASH_Unlock:0000000000000000 HAL_FLASH_Unlock
  2222. /tmp/ccCfNgvn.s:755 .text.HAL_FLASH_Unlock:0000000000000028 $d
  2223. /tmp/ccCfNgvn.s:761 .text.HAL_FLASH_Lock:0000000000000000 $t
  2224. /tmp/ccCfNgvn.s:767 .text.HAL_FLASH_Lock:0000000000000000 HAL_FLASH_Lock
  2225. /tmp/ccCfNgvn.s:787 .text.HAL_FLASH_Lock:0000000000000010 $d
  2226. /tmp/ccCfNgvn.s:792 .text.HAL_FLASH_OB_Unlock:0000000000000000 $t
  2227. /tmp/ccCfNgvn.s:798 .text.HAL_FLASH_OB_Unlock:0000000000000000 HAL_FLASH_OB_Unlock
  2228. /tmp/ccCfNgvn.s:833 .text.HAL_FLASH_OB_Unlock:0000000000000020 $d
  2229. /tmp/ccCfNgvn.s:839 .text.HAL_FLASH_OB_Lock:0000000000000000 $t
  2230. /tmp/ccCfNgvn.s:845 .text.HAL_FLASH_OB_Lock:0000000000000000 HAL_FLASH_OB_Lock
  2231. /tmp/ccCfNgvn.s:865 .text.HAL_FLASH_OB_Lock:0000000000000010 $d
  2232. /tmp/ccCfNgvn.s:870 .text.HAL_FLASH_GetError:0000000000000000 $t
  2233. /tmp/ccCfNgvn.s:876 .text.HAL_FLASH_GetError:0000000000000000 HAL_FLASH_GetError
  2234. /tmp/ccCfNgvn.s:892 .text.HAL_FLASH_GetError:0000000000000008 $d
  2235. /tmp/ccCfNgvn.s:897 .text.FLASH_WaitForLastOperation:0000000000000000 $t
  2236. /tmp/ccCfNgvn.s:903 .text.FLASH_WaitForLastOperation:0000000000000000 FLASH_WaitForLastOperation
  2237. /tmp/ccCfNgvn.s:999 .text.FLASH_WaitForLastOperation:0000000000000058 $d
  2238. /tmp/ccCfNgvn.s:1005 .text.HAL_FLASH_Program:0000000000000000 $t
  2239. /tmp/ccCfNgvn.s:1011 .text.HAL_FLASH_Program:0000000000000000 HAL_FLASH_Program
  2240. /tmp/ccCfNgvn.s:1141 .text.HAL_FLASH_Program:0000000000000074 $d
  2241. /tmp/ccCfNgvn.s:1147 .text.HAL_FLASH_OB_Launch:0000000000000000 $t
  2242. /tmp/ccCfNgvn.s:1153 .text.HAL_FLASH_OB_Launch:0000000000000000 HAL_FLASH_OB_Launch
  2243. /tmp/ccCfNgvn.s:1180 .text.HAL_FLASH_OB_Launch:0000000000000018 $d
  2244. /tmp/ccCfNgvn.s:1190 .bss.pFlash:0000000000000000 pFlash
  2245. /tmp/ccCfNgvn.s:1186 .bss.pFlash:0000000000000000 $d
  2246. UNDEFINED SYMBOLS
  2247. FLASH_Erase_Sector
  2248. FLASH_FlushCaches
  2249. ARM GAS /tmp/ccCfNgvn.s page 40
  2250. HAL_GetTick