stm32f3xx_hal_flash_ex.lst 257 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .arch armv7e-m
  4. 3 .fpu fpv4-sp-d16
  5. 4 .eabi_attribute 27, 1
  6. 5 .eabi_attribute 28, 1
  7. 6 .eabi_attribute 20, 1
  8. 7 .eabi_attribute 21, 1
  9. 8 .eabi_attribute 23, 3
  10. 9 .eabi_attribute 24, 1
  11. 10 .eabi_attribute 25, 1
  12. 11 .eabi_attribute 26, 1
  13. 12 .eabi_attribute 30, 6
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "stm32f3xx_hal_flash_ex.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .section .rodata
  21. 20 .align 2
  22. 21 .LC0:
  23. 22 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flas"
  24. 22 6572732F
  25. 22 53544D33
  26. 22 32463378
  27. 22 785F4841
  28. 23 0033 685F6578 .ascii "h_ex.c\000"
  29. 23 2E6300
  30. 24 .section .text.HAL_FLASHEx_Erase,"ax",%progbits
  31. 25 .align 1
  32. 26 .global HAL_FLASHEx_Erase
  33. 27 .syntax unified
  34. 28 .thumb
  35. 29 .thumb_func
  36. 31 HAL_FLASHEx_Erase:
  37. 32 .LFB130:
  38. 33 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c"
  39. 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  40. 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ******************************************************************************
  41. 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @file stm32f3xx_hal_flash_ex.c
  42. 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @author MCD Application Team
  43. 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Extended FLASH HAL module driver.
  44. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  45. 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This file provides firmware functions to manage the following
  46. 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * functionalities of the FLASH peripheral:
  47. 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * + Extended Initialization/de-initialization functions
  48. 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * + Extended I/O operation functions
  49. 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * + Extended Peripheral Control functions
  50. 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  51. 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @verbatim
  52. 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  53. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### Flash peripheral extended features #####
  54. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  55. 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  56. 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### How to use this driver #####
  57. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  58. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..] This driver provides functions to configure and program the FLASH memory
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 2
  60. 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** of all STM32F3xxx devices. It includes
  61. 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  62. 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (++) Set/Reset the write protection
  63. 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (++) Program the user Option Bytes
  64. 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (++) Get the Read protection Level
  65. 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  66. 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @endverbatim
  67. 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ******************************************************************************
  68. 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @attention
  69. 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  70. 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * Copyright (c) 2016 STMicroelectronics.
  71. 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * All rights reserved.
  72. 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  73. 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This software is licensed under terms that can be found in the LICENSE file in
  74. 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * the root directory of this software component.
  75. 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
  76. 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ******************************************************************************
  77. 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  78. 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  79. 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/
  80. 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #include "stm32f3xx_hal.h"
  81. 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  82. 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup STM32F3xx_HAL_Driver
  83. 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  84. 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  85. 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED
  86. 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  87. 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH
  88. 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  89. 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  90. 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Variables
  91. 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  92. 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  93. 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Variables used for Erase pages under interruption*/
  94. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** extern FLASH_ProcessTypeDef pFlash;
  95. 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  96. 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  97. 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  98. 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  99. 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  100. 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  101. 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  102. 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  103. 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx FLASHEx
  104. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief FLASH HAL Extension module driver
  105. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  106. 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  107. 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  108. 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private typedef -----------------------------------------------------------*/
  109. 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/
  110. 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Constants FLASHEx Private Constants
  111. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  112. 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  113. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #define FLASH_POSITION_IWDGSW_BIT (uint32_t)POSITION_VAL(FLASH_OBR_IWDG_SW)
  114. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #define FLASH_POSITION_OB_USERDATA0_BIT (uint32_t)POSITION_VAL(FLASH_OBR_DATA0)
  115. 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #define FLASH_POSITION_OB_USERDATA1_BIT (uint32_t)POSITION_VAL(FLASH_OBR_DATA1)
  116. 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 3
  118. 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  119. 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  120. 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  121. 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/
  122. 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Macros FLASHEx Private Macros
  123. 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  124. 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  125. 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  126. 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  127. 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  128. 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  129. 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/
  130. 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/
  131. 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions
  132. 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  133. 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  134. 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Erase operations */
  135. 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static void FLASH_MassErase(void);
  136. 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress);
  137. 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  138. 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Option bytes control */
  139. 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage);
  140. 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage);
  141. 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel);
  142. 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig);
  143. 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data);
  144. 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void);
  145. 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void);
  146. 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void);
  147. 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  148. 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  149. 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  150. 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  151. 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  152. 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Exported functions ---------------------------------------------------------*/
  153. 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions
  154. 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  155. 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  156. 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  157. 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 FLASHEx Memory Erasing functions
  158. 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief FLASH Memory Erasing functions
  159. 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  160. 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @verbatim
  161. 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  162. 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### FLASH Erasing Programming functions #####
  163. 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  164. 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  165. 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..] The FLASH Memory Erasing functions, includes the following functions:
  166. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (+) HAL_FLASHEx_Erase: return only when erase has been done
  167. 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (+) HAL_FLASHEx_Erase_IT: end of erase is done when HAL_FLASH_EndOfOperationCallback
  168. 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** is called with parameter 0xFFFFFFFF
  169. 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  170. 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..] Any operation of erase should follow these steps:
  171. 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (#) Call the HAL_FLASH_Unlock() function to enable the flash control register and
  172. 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** program memory access.
  173. 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (#) Call the desired function to erase page.
  174. 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (#) Call the HAL_FLASH_Lock() to disable the flash program memory access
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 4
  176. 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (recommended to protect the FLASH memory against possible unwanted operation).
  177. 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  178. 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @endverbatim
  179. 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  180. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  181. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  182. 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  183. 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  184. 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages
  185. 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
  186. 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * must be called before.
  187. 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
  188. 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation)
  189. 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
  190. 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
  191. 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  192. 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param[out] PageError pointer to variable that
  193. 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information on faulty page in case of error
  194. 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (0xFFFFFFFF means that all the pages have been correctly erased)
  195. 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  196. 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
  197. 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  198. 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError)
  199. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  200. 34 .loc 1 158 1
  201. 35 .cfi_startproc
  202. 36 @ args = 0, pretend = 0, frame = 16
  203. 37 @ frame_needed = 1, uses_anonymous_args = 0
  204. 38 0000 80B5 push {r7, lr}
  205. 39 .LCFI0:
  206. 40 .cfi_def_cfa_offset 8
  207. 41 .cfi_offset 7, -8
  208. 42 .cfi_offset 14, -4
  209. 43 0002 84B0 sub sp, sp, #16
  210. 44 .LCFI1:
  211. 45 .cfi_def_cfa_offset 24
  212. 46 0004 00AF add r7, sp, #0
  213. 47 .LCFI2:
  214. 48 .cfi_def_cfa_register 7
  215. 49 0006 7860 str r0, [r7, #4]
  216. 50 0008 3960 str r1, [r7]
  217. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  218. 51 .loc 1 159 21
  219. 52 000a 0123 movs r3, #1
  220. 53 000c FB73 strb r3, [r7, #15]
  221. 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t address = 0U;
  222. 54 .loc 1 160 12
  223. 55 000e 0023 movs r3, #0
  224. 56 0010 BB60 str r3, [r7, #8]
  225. 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  226. 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Locked */
  227. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
  228. 57 .loc 1 163 3
  229. 58 0012 624B ldr r3, .L19
  230. 59 0014 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
  231. 60 0016 012B cmp r3, #1
  232. 61 0018 01D1 bne .L2
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 5
  234. 62 .loc 1 163 3 is_stmt 0 discriminator 1
  235. 63 001a 0223 movs r3, #2
  236. 64 001c BAE0 b .L3
  237. 65 .L2:
  238. 66 .loc 1 163 3 discriminator 2
  239. 67 001e 5F4B ldr r3, .L19
  240. 68 0020 0122 movs r2, #1
  241. 69 0022 1A76 strb r2, [r3, #24]
  242. 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  243. 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  244. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
  245. 70 .loc 1 166 3 is_stmt 1 discriminator 2
  246. 71 0024 7B68 ldr r3, [r7, #4]
  247. 72 0026 1B68 ldr r3, [r3]
  248. 73 0028 002B cmp r3, #0
  249. 74 002a 07D0 beq .L4
  250. 75 .loc 1 166 3 is_stmt 0 discriminator 1
  251. 76 002c 7B68 ldr r3, [r7, #4]
  252. 77 002e 1B68 ldr r3, [r3]
  253. 78 0030 012B cmp r3, #1
  254. 79 0032 03D0 beq .L4
  255. 80 .loc 1 166 3 discriminator 2
  256. 81 0034 A621 movs r1, #166
  257. 82 0036 5A48 ldr r0, .L19+4
  258. 83 0038 FFF7FEFF bl assert_failed
  259. 84 .L4:
  260. 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  261. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
  262. 85 .loc 1 168 17 is_stmt 1
  263. 86 003c 7B68 ldr r3, [r7, #4]
  264. 87 003e 1B68 ldr r3, [r3]
  265. 88 .loc 1 168 6
  266. 89 0040 012B cmp r3, #1
  267. 90 0042 16D1 bne .L5
  268. 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  269. 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Mass Erase requested for Bank1 */
  270. 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  271. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)
  272. 91 .loc 1 172 11
  273. 92 0044 4CF25030 movw r0, #50000
  274. 93 0048 FFF7FEFF bl FLASH_WaitForLastOperation
  275. 94 004c 0346 mov r3, r0
  276. 95 .loc 1 172 10
  277. 96 004e 002B cmp r3, #0
  278. 97 0050 40F09C80 bne .L6
  279. 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  280. 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Mass erase to be done*/
  281. 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_MassErase();
  282. 98 .loc 1 175 9
  283. 99 0054 FFF7FEFF bl FLASH_MassErase
  284. 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  285. 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  286. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  287. 100 .loc 1 178 18
  288. 101 0058 4CF25030 movw r0, #50000
  289. 102 005c FFF7FEFF bl FLASH_WaitForLastOperation
  290. 103 0060 0346 mov r3, r0
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 6
  292. 104 0062 FB73 strb r3, [r7, #15]
  293. 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  294. 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER Bit */
  295. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER);
  296. 105 .loc 1 181 9
  297. 106 0064 4F4B ldr r3, .L19+8
  298. 107 0066 1B69 ldr r3, [r3, #16]
  299. 108 0068 4E4A ldr r2, .L19+8
  300. 109 006a 23F00403 bic r3, r3, #4
  301. 110 006e 1361 str r3, [r2, #16]
  302. 111 0070 8CE0 b .L6
  303. 112 .L5:
  304. 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  305. 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  306. 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  307. 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  308. 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Page Erase is requested */
  309. 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  310. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress));
  311. 113 .loc 1 188 5
  312. 114 0072 7B68 ldr r3, [r7, #4]
  313. 115 0074 5B68 ldr r3, [r3, #4]
  314. 116 0076 B3F1006F cmp r3, #134217728
  315. 117 007a 19D3 bcc .L7
  316. 118 .loc 1 188 5 is_stmt 0 discriminator 2
  317. 119 007c 4A4B ldr r3, .L19+12
  318. 120 007e 1B88 ldrh r3, [r3]
  319. 121 0080 B3F5807F cmp r3, #256
  320. 122 0084 05D1 bne .L8
  321. 123 .loc 1 188 5 discriminator 3
  322. 124 0086 7B68 ldr r3, [r7, #4]
  323. 125 0088 5B68 ldr r3, [r3, #4]
  324. 126 008a 484A ldr r2, .L19+16
  325. 127 008c 9342 cmp r3, r2
  326. 128 008e 0FD8 bhi .L7
  327. 129 0090 12E0 b .L9
  328. 130 .L8:
  329. 131 .loc 1 188 5 discriminator 4
  330. 132 0092 454B ldr r3, .L19+12
  331. 133 0094 1B88 ldrh r3, [r3]
  332. 134 0096 802B cmp r3, #128
  333. 135 0098 05D1 bne .L10
  334. 136 .loc 1 188 5 discriminator 6
  335. 137 009a 7B68 ldr r3, [r7, #4]
  336. 138 009c 5B68 ldr r3, [r3, #4]
  337. 139 009e 444A ldr r2, .L19+20
  338. 140 00a0 9342 cmp r3, r2
  339. 141 00a2 05D8 bhi .L7
  340. 142 00a4 08E0 b .L9
  341. 143 .L10:
  342. 144 .loc 1 188 5 discriminator 7
  343. 145 00a6 7B68 ldr r3, [r7, #4]
  344. 146 00a8 5B68 ldr r3, [r3, #4]
  345. 147 00aa 424A ldr r2, .L19+24
  346. 148 00ac 9342 cmp r3, r2
  347. 149 00ae 03D9 bls .L9
  348. 150 .L7:
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 7
  350. 151 .loc 1 188 5 discriminator 9
  351. 152 00b0 BC21 movs r1, #188
  352. 153 00b2 3B48 ldr r0, .L19+4
  353. 154 00b4 FFF7FEFF bl assert_failed
  354. 155 .L9:
  355. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  356. 156 .loc 1 189 5 is_stmt 1
  357. 157 00b8 3B4B ldr r3, .L19+12
  358. 158 00ba 1B88 ldrh r3, [r3]
  359. 159 00bc B3F5807F cmp r3, #256
  360. 160 00c0 0DD1 bne .L11
  361. 161 .loc 1 189 5 is_stmt 0 discriminator 1
  362. 162 00c2 7B68 ldr r3, [r7, #4]
  363. 163 00c4 5A68 ldr r2, [r3, #4]
  364. 164 00c6 7B68 ldr r3, [r7, #4]
  365. 165 00c8 9B68 ldr r3, [r3, #8]
  366. 166 00ca DB02 lsls r3, r3, #11
  367. 167 00cc 1344 add r3, r3, r2
  368. 168 00ce 013B subs r3, r3, #1
  369. 169 00d0 364A ldr r2, .L19+16
  370. 170 00d2 9342 cmp r3, r2
  371. 171 00d4 94BF ite ls
  372. 172 00d6 0123 movls r3, #1
  373. 173 00d8 0023 movhi r3, #0
  374. 174 00da DBB2 uxtb r3, r3
  375. 175 00dc 1EE0 b .L12
  376. 176 .L11:
  377. 177 .loc 1 189 5 discriminator 2
  378. 178 00de 324B ldr r3, .L19+12
  379. 179 00e0 1B88 ldrh r3, [r3]
  380. 180 00e2 802B cmp r3, #128
  381. 181 00e4 0DD1 bne .L13
  382. 182 .loc 1 189 5 discriminator 4
  383. 183 00e6 7B68 ldr r3, [r7, #4]
  384. 184 00e8 5A68 ldr r2, [r3, #4]
  385. 185 00ea 7B68 ldr r3, [r7, #4]
  386. 186 00ec 9B68 ldr r3, [r3, #8]
  387. 187 00ee DB02 lsls r3, r3, #11
  388. 188 00f0 1344 add r3, r3, r2
  389. 189 00f2 013B subs r3, r3, #1
  390. 190 00f4 2E4A ldr r2, .L19+20
  391. 191 00f6 9342 cmp r3, r2
  392. 192 00f8 94BF ite ls
  393. 193 00fa 0123 movls r3, #1
  394. 194 00fc 0023 movhi r3, #0
  395. 195 00fe DBB2 uxtb r3, r3
  396. 196 0100 0CE0 b .L12
  397. 197 .L13:
  398. 198 .loc 1 189 5 discriminator 5
  399. 199 0102 7B68 ldr r3, [r7, #4]
  400. 200 0104 5A68 ldr r2, [r3, #4]
  401. 201 0106 7B68 ldr r3, [r7, #4]
  402. 202 0108 9B68 ldr r3, [r3, #8]
  403. 203 010a DB02 lsls r3, r3, #11
  404. 204 010c 1344 add r3, r3, r2
  405. 205 010e 013B subs r3, r3, #1
  406. 206 0110 284A ldr r2, .L19+24
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 8
  408. 207 0112 9342 cmp r3, r2
  409. 208 0114 94BF ite ls
  410. 209 0116 0123 movls r3, #1
  411. 210 0118 0023 movhi r3, #0
  412. 211 011a DBB2 uxtb r3, r3
  413. 212 .L12:
  414. 213 .loc 1 189 5 discriminator 8
  415. 214 011c 002B cmp r3, #0
  416. 215 011e 03D1 bne .L15
  417. 216 .loc 1 189 5 discriminator 9
  418. 217 0120 BD21 movs r1, #189
  419. 218 0122 1F48 ldr r0, .L19+4
  420. 219 0124 FFF7FEFF bl assert_failed
  421. 220 .L15:
  422. 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  423. 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Page Erase requested on address located on bank1 */
  424. 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  425. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)
  426. 221 .loc 1 193 11 is_stmt 1
  427. 222 0128 4CF25030 movw r0, #50000
  428. 223 012c FFF7FEFF bl FLASH_WaitForLastOperation
  429. 224 0130 0346 mov r3, r0
  430. 225 .loc 1 193 10
  431. 226 0132 002B cmp r3, #0
  432. 227 0134 2AD1 bne .L6
  433. 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  434. 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Initialization of PageError variable*/
  435. 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *PageError = 0xFFFFFFFFU;
  436. 228 .loc 1 196 20
  437. 229 0136 3B68 ldr r3, [r7]
  438. 230 0138 4FF0FF32 mov r2, #-1
  439. 231 013c 1A60 str r2, [r3]
  440. 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  441. 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Erase page by page to be done*/
  442. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** for(address = pEraseInit->PageAddress;
  443. 232 .loc 1 199 21
  444. 233 013e 7B68 ldr r3, [r7, #4]
  445. 234 0140 5B68 ldr r3, [r3, #4]
  446. 235 0142 BB60 str r3, [r7, #8]
  447. 236 .loc 1 199 9
  448. 237 0144 19E0 b .L16
  449. 238 .L18:
  450. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
  451. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  452. 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  453. 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_PageErase(address);
  454. 239 .loc 1 203 11
  455. 240 0146 B868 ldr r0, [r7, #8]
  456. 241 0148 FFF7FEFF bl FLASH_PageErase
  457. 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  458. 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  459. 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  460. 242 .loc 1 206 20
  461. 243 014c 4CF25030 movw r0, #50000
  462. 244 0150 FFF7FEFF bl FLASH_WaitForLastOperation
  463. 245 0154 0346 mov r3, r0
  464. 246 0156 FB73 strb r3, [r7, #15]
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 9
  466. 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  467. 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the PER Bit */
  468. 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
  469. 247 .loc 1 209 11
  470. 248 0158 124B ldr r3, .L19+8
  471. 249 015a 1B69 ldr r3, [r3, #16]
  472. 250 015c 114A ldr r2, .L19+8
  473. 251 015e 23F00203 bic r3, r3, #2
  474. 252 0162 1361 str r3, [r2, #16]
  475. 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  476. 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  477. 253 .loc 1 211 14
  478. 254 0164 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  479. 255 0166 002B cmp r3, #0
  480. 256 0168 03D0 beq .L17
  481. 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  482. 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty address */
  483. 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *PageError = address;
  484. 257 .loc 1 214 24
  485. 258 016a 3B68 ldr r3, [r7]
  486. 259 016c BA68 ldr r2, [r7, #8]
  487. 260 016e 1A60 str r2, [r3]
  488. 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** break;
  489. 261 .loc 1 215 13
  490. 262 0170 0CE0 b .L6
  491. 263 .L17:
  492. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  493. 264 .loc 1 201 21
  494. 265 0172 BB68 ldr r3, [r7, #8]
  495. 266 0174 03F50063 add r3, r3, #2048
  496. 267 0178 BB60 str r3, [r7, #8]
  497. 268 .L16:
  498. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  499. 269 .loc 1 200 35 discriminator 1
  500. 270 017a 7B68 ldr r3, [r7, #4]
  501. 271 017c 9B68 ldr r3, [r3, #8]
  502. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  503. 272 .loc 1 200 45 discriminator 1
  504. 273 017e DA02 lsls r2, r3, #11
  505. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  506. 274 .loc 1 200 76 discriminator 1
  507. 275 0180 7B68 ldr r3, [r7, #4]
  508. 276 0182 5B68 ldr r3, [r3, #4]
  509. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  510. 277 .loc 1 200 64 discriminator 1
  511. 278 0184 1344 add r3, r3, r2
  512. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
  513. 279 .loc 1 199 9 discriminator 1
  514. 280 0186 BA68 ldr r2, [r7, #8]
  515. 281 0188 9A42 cmp r2, r3
  516. 282 018a DCD3 bcc .L18
  517. 283 .L6:
  518. 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  519. 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  520. 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  521. 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  522. 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 10
  524. 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  525. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  526. 284 .loc 1 222 3
  527. 285 018c 034B ldr r3, .L19
  528. 286 018e 0022 movs r2, #0
  529. 287 0190 1A76 strb r2, [r3, #24]
  530. 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  531. 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  532. 288 .loc 1 224 10
  533. 289 0192 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  534. 290 .L3:
  535. 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  536. 291 .loc 1 225 1
  537. 292 0194 1846 mov r0, r3
  538. 293 0196 1037 adds r7, r7, #16
  539. 294 .LCFI3:
  540. 295 .cfi_def_cfa_offset 8
  541. 296 0198 BD46 mov sp, r7
  542. 297 .LCFI4:
  543. 298 .cfi_def_cfa_register 13
  544. 299 @ sp needed
  545. 300 019a 80BD pop {r7, pc}
  546. 301 .L20:
  547. 302 .align 2
  548. 303 .L19:
  549. 304 019c 00000000 .word pFlash
  550. 305 01a0 00000000 .word .LC0
  551. 306 01a4 00200240 .word 1073881088
  552. 307 01a8 CCF7FF1F .word 536868812
  553. 308 01ac FFFF0308 .word 134479871
  554. 309 01b0 FFFF0108 .word 134348799
  555. 310 01b4 FFFF0008 .word 134283263
  556. 311 .cfi_endproc
  557. 312 .LFE130:
  558. 314 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits
  559. 315 .align 1
  560. 316 .global HAL_FLASHEx_Erase_IT
  561. 317 .syntax unified
  562. 318 .thumb
  563. 319 .thumb_func
  564. 321 HAL_FLASHEx_Erase_IT:
  565. 322 .LFB131:
  566. 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  567. 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  568. 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages with interrupt enabled
  569. 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
  570. 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * must be called before.
  571. 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
  572. 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation)
  573. 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
  574. 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
  575. 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  576. 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
  577. 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  578. 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)
  579. 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  580. 323 .loc 1 239 1
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 11
  582. 324 .cfi_startproc
  583. 325 @ args = 0, pretend = 0, frame = 16
  584. 326 @ frame_needed = 1, uses_anonymous_args = 0
  585. 327 0000 80B5 push {r7, lr}
  586. 328 .LCFI5:
  587. 329 .cfi_def_cfa_offset 8
  588. 330 .cfi_offset 7, -8
  589. 331 .cfi_offset 14, -4
  590. 332 0002 84B0 sub sp, sp, #16
  591. 333 .LCFI6:
  592. 334 .cfi_def_cfa_offset 24
  593. 335 0004 00AF add r7, sp, #0
  594. 336 .LCFI7:
  595. 337 .cfi_def_cfa_register 7
  596. 338 0006 7860 str r0, [r7, #4]
  597. 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  598. 339 .loc 1 240 21
  599. 340 0008 0023 movs r3, #0
  600. 341 000a FB73 strb r3, [r7, #15]
  601. 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  602. 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Locked */
  603. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
  604. 342 .loc 1 243 3
  605. 343 000c 4E4B ldr r3, .L37
  606. 344 000e 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
  607. 345 0010 012B cmp r3, #1
  608. 346 0012 01D1 bne .L22
  609. 347 .loc 1 243 3 is_stmt 0 discriminator 1
  610. 348 0014 0223 movs r3, #2
  611. 349 0016 93E0 b .L23
  612. 350 .L22:
  613. 351 .loc 1 243 3 discriminator 2
  614. 352 0018 4B4B ldr r3, .L37
  615. 353 001a 0122 movs r2, #1
  616. 354 001c 1A76 strb r2, [r3, #24]
  617. 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  618. 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If procedure already ongoing, reject the next one */
  619. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pFlash.ProcedureOnGoing != FLASH_PROC_NONE)
  620. 355 .loc 1 246 13 is_stmt 1 discriminator 2
  621. 356 001e 4A4B ldr r3, .L37
  622. 357 0020 1B78 ldrb r3, [r3]
  623. 358 0022 DBB2 uxtb r3, r3
  624. 359 .loc 1 246 6 discriminator 2
  625. 360 0024 002B cmp r3, #0
  626. 361 0026 01D0 beq .L24
  627. 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  628. 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return HAL_ERROR;
  629. 362 .loc 1 248 12
  630. 363 0028 0123 movs r3, #1
  631. 364 002a 89E0 b .L23
  632. 365 .L24:
  633. 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  634. 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  635. 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  636. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
  637. 366 .loc 1 252 3
  638. 367 002c 7B68 ldr r3, [r7, #4]
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 12
  640. 368 002e 1B68 ldr r3, [r3]
  641. 369 0030 002B cmp r3, #0
  642. 370 0032 07D0 beq .L25
  643. 371 .loc 1 252 3 is_stmt 0 discriminator 1
  644. 372 0034 7B68 ldr r3, [r7, #4]
  645. 373 0036 1B68 ldr r3, [r3]
  646. 374 0038 012B cmp r3, #1
  647. 375 003a 03D0 beq .L25
  648. 376 .loc 1 252 3 discriminator 2
  649. 377 003c FC21 movs r1, #252
  650. 378 003e 4348 ldr r0, .L37+4
  651. 379 0040 FFF7FEFF bl assert_failed
  652. 380 .L25:
  653. 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  654. 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable End of FLASH Operation and Error source interrupts */
  655. 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
  656. 381 .loc 1 255 3 is_stmt 1
  657. 382 0044 424B ldr r3, .L37+8
  658. 383 0046 1B69 ldr r3, [r3, #16]
  659. 384 0048 414A ldr r2, .L37+8
  660. 385 004a 43F4A053 orr r3, r3, #5120
  661. 386 004e 1361 str r3, [r2, #16]
  662. 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  663. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
  664. 387 .loc 1 257 17
  665. 388 0050 7B68 ldr r3, [r7, #4]
  666. 389 0052 1B68 ldr r3, [r3]
  667. 390 .loc 1 257 6
  668. 391 0054 012B cmp r3, #1
  669. 392 0056 05D1 bne .L26
  670. 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  671. 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Mass erase to be done*/
  672. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE;
  673. 393 .loc 1 260 29
  674. 394 0058 3B4B ldr r3, .L37
  675. 395 005a 0222 movs r2, #2
  676. 396 005c 1A70 strb r2, [r3]
  677. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_MassErase();
  678. 397 .loc 1 261 9
  679. 398 005e FFF7FEFF bl FLASH_MassErase
  680. 399 0062 6CE0 b .L27
  681. 400 .L26:
  682. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  683. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  684. 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  685. 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Erase by page to be done*/
  686. 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  687. 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  688. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress));
  689. 401 .loc 1 268 5
  690. 402 0064 7B68 ldr r3, [r7, #4]
  691. 403 0066 5B68 ldr r3, [r3, #4]
  692. 404 0068 B3F1006F cmp r3, #134217728
  693. 405 006c 19D3 bcc .L28
  694. 406 .loc 1 268 5 is_stmt 0 discriminator 2
  695. 407 006e 394B ldr r3, .L37+12
  696. 408 0070 1B88 ldrh r3, [r3]
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 13
  698. 409 0072 B3F5807F cmp r3, #256
  699. 410 0076 05D1 bne .L29
  700. 411 .loc 1 268 5 discriminator 3
  701. 412 0078 7B68 ldr r3, [r7, #4]
  702. 413 007a 5B68 ldr r3, [r3, #4]
  703. 414 007c 364A ldr r2, .L37+16
  704. 415 007e 9342 cmp r3, r2
  705. 416 0080 0FD8 bhi .L28
  706. 417 0082 13E0 b .L30
  707. 418 .L29:
  708. 419 .loc 1 268 5 discriminator 4
  709. 420 0084 334B ldr r3, .L37+12
  710. 421 0086 1B88 ldrh r3, [r3]
  711. 422 0088 802B cmp r3, #128
  712. 423 008a 05D1 bne .L31
  713. 424 .loc 1 268 5 discriminator 6
  714. 425 008c 7B68 ldr r3, [r7, #4]
  715. 426 008e 5B68 ldr r3, [r3, #4]
  716. 427 0090 324A ldr r2, .L37+20
  717. 428 0092 9342 cmp r3, r2
  718. 429 0094 05D8 bhi .L28
  719. 430 0096 09E0 b .L30
  720. 431 .L31:
  721. 432 .loc 1 268 5 discriminator 7
  722. 433 0098 7B68 ldr r3, [r7, #4]
  723. 434 009a 5B68 ldr r3, [r3, #4]
  724. 435 009c 304A ldr r2, .L37+24
  725. 436 009e 9342 cmp r3, r2
  726. 437 00a0 04D9 bls .L30
  727. 438 .L28:
  728. 439 .loc 1 268 5 discriminator 9
  729. 440 00a2 4FF48671 mov r1, #268
  730. 441 00a6 2948 ldr r0, .L37+4
  731. 442 00a8 FFF7FEFF bl assert_failed
  732. 443 .L30:
  733. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  734. 444 .loc 1 269 5 is_stmt 1
  735. 445 00ac 294B ldr r3, .L37+12
  736. 446 00ae 1B88 ldrh r3, [r3]
  737. 447 00b0 B3F5807F cmp r3, #256
  738. 448 00b4 0DD1 bne .L32
  739. 449 .loc 1 269 5 is_stmt 0 discriminator 1
  740. 450 00b6 7B68 ldr r3, [r7, #4]
  741. 451 00b8 5A68 ldr r2, [r3, #4]
  742. 452 00ba 7B68 ldr r3, [r7, #4]
  743. 453 00bc 9B68 ldr r3, [r3, #8]
  744. 454 00be DB02 lsls r3, r3, #11
  745. 455 00c0 1344 add r3, r3, r2
  746. 456 00c2 013B subs r3, r3, #1
  747. 457 00c4 244A ldr r2, .L37+16
  748. 458 00c6 9342 cmp r3, r2
  749. 459 00c8 94BF ite ls
  750. 460 00ca 0123 movls r3, #1
  751. 461 00cc 0023 movhi r3, #0
  752. 462 00ce DBB2 uxtb r3, r3
  753. 463 00d0 1EE0 b .L33
  754. 464 .L32:
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 14
  756. 465 .loc 1 269 5 discriminator 2
  757. 466 00d2 204B ldr r3, .L37+12
  758. 467 00d4 1B88 ldrh r3, [r3]
  759. 468 00d6 802B cmp r3, #128
  760. 469 00d8 0DD1 bne .L34
  761. 470 .loc 1 269 5 discriminator 4
  762. 471 00da 7B68 ldr r3, [r7, #4]
  763. 472 00dc 5A68 ldr r2, [r3, #4]
  764. 473 00de 7B68 ldr r3, [r7, #4]
  765. 474 00e0 9B68 ldr r3, [r3, #8]
  766. 475 00e2 DB02 lsls r3, r3, #11
  767. 476 00e4 1344 add r3, r3, r2
  768. 477 00e6 013B subs r3, r3, #1
  769. 478 00e8 1C4A ldr r2, .L37+20
  770. 479 00ea 9342 cmp r3, r2
  771. 480 00ec 94BF ite ls
  772. 481 00ee 0123 movls r3, #1
  773. 482 00f0 0023 movhi r3, #0
  774. 483 00f2 DBB2 uxtb r3, r3
  775. 484 00f4 0CE0 b .L33
  776. 485 .L34:
  777. 486 .loc 1 269 5 discriminator 5
  778. 487 00f6 7B68 ldr r3, [r7, #4]
  779. 488 00f8 5A68 ldr r2, [r3, #4]
  780. 489 00fa 7B68 ldr r3, [r7, #4]
  781. 490 00fc 9B68 ldr r3, [r3, #8]
  782. 491 00fe DB02 lsls r3, r3, #11
  783. 492 0100 1344 add r3, r3, r2
  784. 493 0102 013B subs r3, r3, #1
  785. 494 0104 164A ldr r2, .L37+24
  786. 495 0106 9342 cmp r3, r2
  787. 496 0108 94BF ite ls
  788. 497 010a 0123 movls r3, #1
  789. 498 010c 0023 movhi r3, #0
  790. 499 010e DBB2 uxtb r3, r3
  791. 500 .L33:
  792. 501 .loc 1 269 5 discriminator 8
  793. 502 0110 002B cmp r3, #0
  794. 503 0112 04D1 bne .L36
  795. 504 .loc 1 269 5 discriminator 9
  796. 505 0114 40F20D11 movw r1, #269
  797. 506 0118 0C48 ldr r0, .L37+4
  798. 507 011a FFF7FEFF bl assert_failed
  799. 508 .L36:
  800. 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  801. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PAGEERASE;
  802. 509 .loc 1 271 29 is_stmt 1
  803. 510 011e 0A4B ldr r3, .L37
  804. 511 0120 0122 movs r2, #1
  805. 512 0122 1A70 strb r2, [r3]
  806. 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.DataRemaining = pEraseInit->NbPages;
  807. 513 .loc 1 272 38
  808. 514 0124 7B68 ldr r3, [r7, #4]
  809. 515 0126 9B68 ldr r3, [r3, #8]
  810. 516 .loc 1 272 26
  811. 517 0128 074A ldr r2, .L37
  812. 518 012a 5360 str r3, [r2, #4]
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 15
  814. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress;
  815. 519 .loc 1 273 32
  816. 520 012c 7B68 ldr r3, [r7, #4]
  817. 521 012e 5B68 ldr r3, [r3, #4]
  818. 522 .loc 1 273 20
  819. 523 0130 054A ldr r2, .L37
  820. 524 0132 9360 str r3, [r2, #8]
  821. 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  822. 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Erase 1st page and wait for IT*/
  823. 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_PageErase(pEraseInit->PageAddress);
  824. 525 .loc 1 276 5
  825. 526 0134 7B68 ldr r3, [r7, #4]
  826. 527 0136 5B68 ldr r3, [r3, #4]
  827. 528 0138 1846 mov r0, r3
  828. 529 013a FFF7FEFF bl FLASH_PageErase
  829. 530 .L27:
  830. 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  831. 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  832. 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  833. 531 .loc 1 279 10
  834. 532 013e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  835. 533 .L23:
  836. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  837. 534 .loc 1 280 1
  838. 535 0140 1846 mov r0, r3
  839. 536 0142 1037 adds r7, r7, #16
  840. 537 .LCFI8:
  841. 538 .cfi_def_cfa_offset 8
  842. 539 0144 BD46 mov sp, r7
  843. 540 .LCFI9:
  844. 541 .cfi_def_cfa_register 13
  845. 542 @ sp needed
  846. 543 0146 80BD pop {r7, pc}
  847. 544 .L38:
  848. 545 .align 2
  849. 546 .L37:
  850. 547 0148 00000000 .word pFlash
  851. 548 014c 00000000 .word .LC0
  852. 549 0150 00200240 .word 1073881088
  853. 550 0154 CCF7FF1F .word 536868812
  854. 551 0158 FFFF0308 .word 134479871
  855. 552 015c FFFF0108 .word 134348799
  856. 553 0160 FFFF0008 .word 134283263
  857. 554 .cfi_endproc
  858. 555 .LFE131:
  859. 557 .section .text.HAL_FLASHEx_OBErase,"ax",%progbits
  860. 558 .align 1
  861. 559 .global HAL_FLASHEx_OBErase
  862. 560 .syntax unified
  863. 561 .thumb
  864. 562 .thumb_func
  865. 564 HAL_FLASHEx_OBErase:
  866. 565 .LFB132:
  867. 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  868. 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  869. 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  870. 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 16
  872. 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  873. 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group2 Option Bytes Programming functions
  874. 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Option Bytes Programming functions
  875. 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  876. 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @verbatim
  877. 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  878. 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### Option Bytes Programming functions #####
  879. 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  880. 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..]
  881. 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** This subsection provides a set of functions allowing to control the FLASH
  882. 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** option bytes operations.
  883. 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  884. 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @endverbatim
  885. 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  886. 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  887. 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  888. 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  889. 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Erases the FLASH option bytes.
  890. 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note This functions erases all option bytes except the Read protection (RDP).
  891. 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interf
  892. 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options b
  893. 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of t
  894. 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (system reset will occur)
  895. 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  896. 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  897. 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  898. 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBErase(void)
  899. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  900. 566 .loc 1 312 1
  901. 567 .cfi_startproc
  902. 568 @ args = 0, pretend = 0, frame = 8
  903. 569 @ frame_needed = 1, uses_anonymous_args = 0
  904. 570 0000 80B5 push {r7, lr}
  905. 571 .LCFI10:
  906. 572 .cfi_def_cfa_offset 8
  907. 573 .cfi_offset 7, -8
  908. 574 .cfi_offset 14, -4
  909. 575 0002 82B0 sub sp, sp, #8
  910. 576 .LCFI11:
  911. 577 .cfi_def_cfa_offset 16
  912. 578 0004 00AF add r7, sp, #0
  913. 579 .LCFI12:
  914. 580 .cfi_def_cfa_register 7
  915. 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint8_t rdptmp = OB_RDP_LEVEL_0;
  916. 581 .loc 1 313 11
  917. 582 0006 AA23 movs r3, #170
  918. 583 0008 BB71 strb r3, [r7, #6]
  919. 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  920. 584 .loc 1 314 21
  921. 585 000a 0123 movs r3, #1
  922. 586 000c FB71 strb r3, [r7, #7]
  923. 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  924. 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get the actual read protection Option Byte value */
  925. 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** rdptmp = FLASH_OB_GetRDP();
  926. 587 .loc 1 317 12
  927. 588 000e FFF7FEFF bl FLASH_OB_GetRDP
  928. 589 0012 0346 mov r3, r0
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 17
  930. 590 .loc 1 317 10
  931. 591 0014 BB71 strb r3, [r7, #6]
  932. 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  933. 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  934. 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  935. 592 .loc 1 320 12
  936. 593 0016 4CF25030 movw r0, #50000
  937. 594 001a FFF7FEFF bl FLASH_WaitForLastOperation
  938. 595 001e 0346 mov r3, r0
  939. 596 0020 FB71 strb r3, [r7, #7]
  940. 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  941. 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  942. 597 .loc 1 322 5
  943. 598 0022 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  944. 599 0024 002B cmp r3, #0
  945. 600 0026 23D1 bne .L40
  946. 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  947. 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  948. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  949. 601 .loc 1 325 22
  950. 602 0028 144B ldr r3, .L42
  951. 603 002a 0022 movs r2, #0
  952. 604 002c DA61 str r2, [r3, #28]
  953. 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  954. 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the option bytes */
  955. 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTER);
  956. 605 .loc 1 328 5
  957. 606 002e 144B ldr r3, .L42+4
  958. 607 0030 1B69 ldr r3, [r3, #16]
  959. 608 0032 134A ldr r2, .L42+4
  960. 609 0034 43F02003 orr r3, r3, #32
  961. 610 0038 1361 str r3, [r2, #16]
  962. 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  963. 611 .loc 1 329 5
  964. 612 003a 114B ldr r3, .L42+4
  965. 613 003c 1B69 ldr r3, [r3, #16]
  966. 614 003e 104A ldr r2, .L42+4
  967. 615 0040 43F04003 orr r3, r3, #64
  968. 616 0044 1361 str r3, [r2, #16]
  969. 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  970. 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  971. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  972. 617 .loc 1 332 14
  973. 618 0046 4CF25030 movw r0, #50000
  974. 619 004a FFF7FEFF bl FLASH_WaitForLastOperation
  975. 620 004e 0346 mov r3, r0
  976. 621 0050 FB71 strb r3, [r7, #7]
  977. 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  978. 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the OPTER Bit */
  979. 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER);
  980. 622 .loc 1 335 5
  981. 623 0052 0B4B ldr r3, .L42+4
  982. 624 0054 1B69 ldr r3, [r3, #16]
  983. 625 0056 0A4A ldr r2, .L42+4
  984. 626 0058 23F02003 bic r3, r3, #32
  985. 627 005c 1361 str r3, [r2, #16]
  986. 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 18
  988. 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  989. 628 .loc 1 337 7
  990. 629 005e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  991. 630 0060 002B cmp r3, #0
  992. 631 0062 05D1 bne .L40
  993. 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  994. 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Restore the last read protection Option Byte value */
  995. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_RDP_LevelConfig(rdptmp);
  996. 632 .loc 1 340 16
  997. 633 0064 BB79 ldrb r3, [r7, #6] @ zero_extendqisi2
  998. 634 0066 1846 mov r0, r3
  999. 635 0068 FFF7FEFF bl FLASH_OB_RDP_LevelConfig
  1000. 636 006c 0346 mov r3, r0
  1001. 637 006e FB71 strb r3, [r7, #7]
  1002. 638 .L40:
  1003. 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1004. 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1005. 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1006. 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the erase status */
  1007. 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1008. 639 .loc 1 345 10
  1009. 640 0070 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  1010. 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1011. 641 .loc 1 346 1
  1012. 642 0072 1846 mov r0, r3
  1013. 643 0074 0837 adds r7, r7, #8
  1014. 644 .LCFI13:
  1015. 645 .cfi_def_cfa_offset 8
  1016. 646 0076 BD46 mov sp, r7
  1017. 647 .LCFI14:
  1018. 648 .cfi_def_cfa_register 13
  1019. 649 @ sp needed
  1020. 650 0078 80BD pop {r7, pc}
  1021. 651 .L43:
  1022. 652 007a 00BF .align 2
  1023. 653 .L42:
  1024. 654 007c 00000000 .word pFlash
  1025. 655 0080 00200240 .word 1073881088
  1026. 656 .cfi_endproc
  1027. 657 .LFE132:
  1028. 659 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits
  1029. 660 .align 1
  1030. 661 .global HAL_FLASHEx_OBProgram
  1031. 662 .syntax unified
  1032. 663 .thumb
  1033. 664 .thumb_func
  1034. 666 HAL_FLASHEx_OBProgram:
  1035. 667 .LFB133:
  1036. 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1037. 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1038. 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Program option bytes
  1039. 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interf
  1040. 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options b
  1041. 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of t
  1042. 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (system reset will occur)
  1043. 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  1044. 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 19
  1046. 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the programming.
  1047. 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  1048. 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
  1049. 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1050. 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit)
  1051. 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1052. 668 .loc 1 361 1
  1053. 669 .cfi_startproc
  1054. 670 @ args = 0, pretend = 0, frame = 16
  1055. 671 @ frame_needed = 1, uses_anonymous_args = 0
  1056. 672 0000 80B5 push {r7, lr}
  1057. 673 .LCFI15:
  1058. 674 .cfi_def_cfa_offset 8
  1059. 675 .cfi_offset 7, -8
  1060. 676 .cfi_offset 14, -4
  1061. 677 0002 84B0 sub sp, sp, #16
  1062. 678 .LCFI16:
  1063. 679 .cfi_def_cfa_offset 24
  1064. 680 0004 00AF add r7, sp, #0
  1065. 681 .LCFI17:
  1066. 682 .cfi_def_cfa_register 7
  1067. 683 0006 7860 str r0, [r7, #4]
  1068. 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  1069. 684 .loc 1 362 21
  1070. 685 0008 0123 movs r3, #1
  1071. 686 000a FB73 strb r3, [r7, #15]
  1072. 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1073. 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Locked */
  1074. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
  1075. 687 .loc 1 365 3
  1076. 688 000c 444B ldr r3, .L55
  1077. 689 000e 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
  1078. 690 0010 012B cmp r3, #1
  1079. 691 0012 01D1 bne .L45
  1080. 692 .loc 1 365 3 is_stmt 0 discriminator 1
  1081. 693 0014 0223 movs r3, #2
  1082. 694 0016 7FE0 b .L46
  1083. 695 .L45:
  1084. 696 .loc 1 365 3 discriminator 2
  1085. 697 0018 414B ldr r3, .L55
  1086. 698 001a 0122 movs r2, #1
  1087. 699 001c 1A76 strb r2, [r3, #24]
  1088. 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1089. 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  1090. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType));
  1091. 700 .loc 1 368 3 is_stmt 1 discriminator 2
  1092. 701 001e 7B68 ldr r3, [r7, #4]
  1093. 702 0020 1B68 ldr r3, [r3]
  1094. 703 0022 0F2B cmp r3, #15
  1095. 704 0024 04D9 bls .L47
  1096. 705 .loc 1 368 3 is_stmt 0 discriminator 1
  1097. 706 0026 4FF4B871 mov r1, #368
  1098. 707 002a 3E48 ldr r0, .L55+4
  1099. 708 002c FFF7FEFF bl assert_failed
  1100. 709 .L47:
  1101. 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1102. 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Write protection configuration */
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 20
  1104. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP)
  1105. 710 .loc 1 371 14 is_stmt 1
  1106. 711 0030 7B68 ldr r3, [r7, #4]
  1107. 712 0032 1B68 ldr r3, [r3]
  1108. 713 .loc 1 371 27
  1109. 714 0034 03F00103 and r3, r3, #1
  1110. 715 .loc 1 371 5
  1111. 716 0038 002B cmp r3, #0
  1112. 717 003a 27D0 beq .L48
  1113. 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1114. 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_WRPSTATE(pOBInit->WRPState));
  1115. 718 .loc 1 373 5
  1116. 719 003c 7B68 ldr r3, [r7, #4]
  1117. 720 003e 5B68 ldr r3, [r3, #4]
  1118. 721 0040 002B cmp r3, #0
  1119. 722 0042 08D0 beq .L49
  1120. 723 .loc 1 373 5 is_stmt 0 discriminator 1
  1121. 724 0044 7B68 ldr r3, [r7, #4]
  1122. 725 0046 5B68 ldr r3, [r3, #4]
  1123. 726 0048 012B cmp r3, #1
  1124. 727 004a 04D0 beq .L49
  1125. 728 .loc 1 373 5 discriminator 2
  1126. 729 004c 40F27511 movw r1, #373
  1127. 730 0050 3448 ldr r0, .L55+4
  1128. 731 0052 FFF7FEFF bl assert_failed
  1129. 732 .L49:
  1130. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE)
  1131. 733 .loc 1 374 16 is_stmt 1
  1132. 734 0056 7B68 ldr r3, [r7, #4]
  1133. 735 0058 5B68 ldr r3, [r3, #4]
  1134. 736 .loc 1 374 8
  1135. 737 005a 012B cmp r3, #1
  1136. 738 005c 07D1 bne .L50
  1137. 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1138. 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable of Write protection on the selected page */
  1139. 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_EnableWRP(pOBInit->WRPPage);
  1140. 739 .loc 1 377 16
  1141. 740 005e 7B68 ldr r3, [r7, #4]
  1142. 741 0060 9B68 ldr r3, [r3, #8]
  1143. 742 0062 1846 mov r0, r3
  1144. 743 0064 FFF7FEFF bl FLASH_OB_EnableWRP
  1145. 744 0068 0346 mov r3, r0
  1146. 745 006a FB73 strb r3, [r7, #15]
  1147. 746 006c 06E0 b .L51
  1148. 747 .L50:
  1149. 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1150. 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  1151. 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1152. 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Disable of Write protection on the selected page */
  1153. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_DisableWRP(pOBInit->WRPPage);
  1154. 748 .loc 1 382 16
  1155. 749 006e 7B68 ldr r3, [r7, #4]
  1156. 750 0070 9B68 ldr r3, [r3, #8]
  1157. 751 0072 1846 mov r0, r3
  1158. 752 0074 FFF7FEFF bl FLASH_OB_DisableWRP
  1159. 753 0078 0346 mov r3, r0
  1160. 754 007a FB73 strb r3, [r7, #15]
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 21
  1162. 755 .L51:
  1163. 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1164. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  1165. 756 .loc 1 384 8
  1166. 757 007c FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1167. 758 007e 002B cmp r3, #0
  1168. 759 0080 04D0 beq .L48
  1169. 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1170. 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  1171. 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  1172. 760 .loc 1 387 7
  1173. 761 0082 274B ldr r3, .L55
  1174. 762 0084 0022 movs r2, #0
  1175. 763 0086 1A76 strb r2, [r3, #24]
  1176. 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1177. 764 .loc 1 388 14
  1178. 765 0088 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1179. 766 008a 45E0 b .L46
  1180. 767 .L48:
  1181. 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1182. 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1183. 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1184. 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Read protection configuration */
  1185. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_RDP) == OPTIONBYTE_RDP)
  1186. 768 .loc 1 393 14
  1187. 769 008c 7B68 ldr r3, [r7, #4]
  1188. 770 008e 1B68 ldr r3, [r3]
  1189. 771 .loc 1 393 27
  1190. 772 0090 03F00203 and r3, r3, #2
  1191. 773 .loc 1 393 5
  1192. 774 0094 002B cmp r3, #0
  1193. 775 0096 0ED0 beq .L52
  1194. 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1195. 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_RDP_LevelConfig(pOBInit->RDPLevel);
  1196. 776 .loc 1 395 14
  1197. 777 0098 7B68 ldr r3, [r7, #4]
  1198. 778 009a 1B7B ldrb r3, [r3, #12] @ zero_extendqisi2
  1199. 779 009c 1846 mov r0, r3
  1200. 780 009e FFF7FEFF bl FLASH_OB_RDP_LevelConfig
  1201. 781 00a2 0346 mov r3, r0
  1202. 782 00a4 FB73 strb r3, [r7, #15]
  1203. 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  1204. 783 .loc 1 396 8
  1205. 784 00a6 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1206. 785 00a8 002B cmp r3, #0
  1207. 786 00aa 04D0 beq .L52
  1208. 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1209. 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  1210. 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  1211. 787 .loc 1 399 7
  1212. 788 00ac 1C4B ldr r3, .L55
  1213. 789 00ae 0022 movs r2, #0
  1214. 790 00b0 1A76 strb r2, [r3, #24]
  1215. 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1216. 791 .loc 1 400 14
  1217. 792 00b2 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1218. 793 00b4 30E0 b .L46
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 22
  1220. 794 .L52:
  1221. 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1222. 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1223. 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1224. 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* USER configuration */
  1225. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_USER) == OPTIONBYTE_USER)
  1226. 795 .loc 1 405 14
  1227. 796 00b6 7B68 ldr r3, [r7, #4]
  1228. 797 00b8 1B68 ldr r3, [r3]
  1229. 798 .loc 1 405 27
  1230. 799 00ba 03F00403 and r3, r3, #4
  1231. 800 .loc 1 405 5
  1232. 801 00be 002B cmp r3, #0
  1233. 802 00c0 0ED0 beq .L53
  1234. 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1235. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_UserConfig(pOBInit->USERConfig);
  1236. 803 .loc 1 407 14
  1237. 804 00c2 7B68 ldr r3, [r7, #4]
  1238. 805 00c4 5B7B ldrb r3, [r3, #13] @ zero_extendqisi2
  1239. 806 00c6 1846 mov r0, r3
  1240. 807 00c8 FFF7FEFF bl FLASH_OB_UserConfig
  1241. 808 00cc 0346 mov r3, r0
  1242. 809 00ce FB73 strb r3, [r7, #15]
  1243. 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  1244. 810 .loc 1 408 8
  1245. 811 00d0 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1246. 812 00d2 002B cmp r3, #0
  1247. 813 00d4 04D0 beq .L53
  1248. 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1249. 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  1250. 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  1251. 814 .loc 1 411 7
  1252. 815 00d6 124B ldr r3, .L55
  1253. 816 00d8 0022 movs r2, #0
  1254. 817 00da 1A76 strb r2, [r3, #24]
  1255. 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1256. 818 .loc 1 412 14
  1257. 819 00dc FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1258. 820 00de 1BE0 b .L46
  1259. 821 .L53:
  1260. 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1261. 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1262. 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1263. 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* DATA configuration*/
  1264. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_DATA) == OPTIONBYTE_DATA)
  1265. 822 .loc 1 417 14
  1266. 823 00e0 7B68 ldr r3, [r7, #4]
  1267. 824 00e2 1B68 ldr r3, [r3]
  1268. 825 .loc 1 417 27
  1269. 826 00e4 03F00803 and r3, r3, #8
  1270. 827 .loc 1 417 5
  1271. 828 00e8 002B cmp r3, #0
  1272. 829 00ea 11D0 beq .L54
  1273. 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1274. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_ProgramData(pOBInit->DATAAddress, pOBInit->DATAData);
  1275. 830 .loc 1 419 14
  1276. 831 00ec 7B68 ldr r3, [r7, #4]
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 23
  1278. 832 00ee 1A69 ldr r2, [r3, #16]
  1279. 833 00f0 7B68 ldr r3, [r7, #4]
  1280. 834 00f2 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2
  1281. 835 00f4 1946 mov r1, r3
  1282. 836 00f6 1046 mov r0, r2
  1283. 837 00f8 FFF7FEFF bl FLASH_OB_ProgramData
  1284. 838 00fc 0346 mov r3, r0
  1285. 839 00fe FB73 strb r3, [r7, #15]
  1286. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  1287. 840 .loc 1 420 8
  1288. 841 0100 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1289. 842 0102 002B cmp r3, #0
  1290. 843 0104 04D0 beq .L54
  1291. 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1292. 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  1293. 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  1294. 844 .loc 1 423 7
  1295. 845 0106 064B ldr r3, .L55
  1296. 846 0108 0022 movs r2, #0
  1297. 847 010a 1A76 strb r2, [r3, #24]
  1298. 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1299. 848 .loc 1 424 14
  1300. 849 010c FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1301. 850 010e 03E0 b .L46
  1302. 851 .L54:
  1303. 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1304. 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1305. 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1306. 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  1307. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  1308. 852 .loc 1 429 3
  1309. 853 0110 034B ldr r3, .L55
  1310. 854 0112 0022 movs r2, #0
  1311. 855 0114 1A76 strb r2, [r3, #24]
  1312. 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1313. 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1314. 856 .loc 1 431 10
  1315. 857 0116 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  1316. 858 .L46:
  1317. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1318. 859 .loc 1 432 1
  1319. 860 0118 1846 mov r0, r3
  1320. 861 011a 1037 adds r7, r7, #16
  1321. 862 .LCFI18:
  1322. 863 .cfi_def_cfa_offset 8
  1323. 864 011c BD46 mov sp, r7
  1324. 865 .LCFI19:
  1325. 866 .cfi_def_cfa_register 13
  1326. 867 @ sp needed
  1327. 868 011e 80BD pop {r7, pc}
  1328. 869 .L56:
  1329. 870 .align 2
  1330. 871 .L55:
  1331. 872 0120 00000000 .word pFlash
  1332. 873 0124 00000000 .word .LC0
  1333. 874 .cfi_endproc
  1334. 875 .LFE133:
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 24
  1336. 877 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits
  1337. 878 .align 1
  1338. 879 .global HAL_FLASHEx_OBGetConfig
  1339. 880 .syntax unified
  1340. 881 .thumb
  1341. 882 .thumb_func
  1342. 884 HAL_FLASHEx_OBGetConfig:
  1343. 885 .LFB134:
  1344. 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1345. 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1346. 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Get the Option byte configuration
  1347. 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
  1348. 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the programming.
  1349. 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  1350. 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval None
  1351. 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1352. 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
  1353. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1354. 886 .loc 1 442 1
  1355. 887 .cfi_startproc
  1356. 888 @ args = 0, pretend = 0, frame = 8
  1357. 889 @ frame_needed = 1, uses_anonymous_args = 0
  1358. 890 0000 80B5 push {r7, lr}
  1359. 891 .LCFI20:
  1360. 892 .cfi_def_cfa_offset 8
  1361. 893 .cfi_offset 7, -8
  1362. 894 .cfi_offset 14, -4
  1363. 895 0002 82B0 sub sp, sp, #8
  1364. 896 .LCFI21:
  1365. 897 .cfi_def_cfa_offset 16
  1366. 898 0004 00AF add r7, sp, #0
  1367. 899 .LCFI22:
  1368. 900 .cfi_def_cfa_register 7
  1369. 901 0006 7860 str r0, [r7, #4]
  1370. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER;
  1371. 902 .loc 1 443 23
  1372. 903 0008 7B68 ldr r3, [r7, #4]
  1373. 904 000a 0722 movs r2, #7
  1374. 905 000c 1A60 str r2, [r3]
  1375. 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1376. 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Get WRP*/
  1377. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->WRPPage = FLASH_OB_GetWRP();
  1378. 906 .loc 1 446 22
  1379. 907 000e FFF7FEFF bl FLASH_OB_GetWRP
  1380. 908 0012 0246 mov r2, r0
  1381. 909 .loc 1 446 20
  1382. 910 0014 7B68 ldr r3, [r7, #4]
  1383. 911 0016 9A60 str r2, [r3, #8]
  1384. 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1385. 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Get RDP Level*/
  1386. 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP();
  1387. 912 .loc 1 449 23
  1388. 913 0018 FFF7FEFF bl FLASH_OB_GetRDP
  1389. 914 001c 0346 mov r3, r0
  1390. 915 .loc 1 449 21
  1391. 916 001e DAB2 uxtb r2, r3
  1392. 917 0020 7B68 ldr r3, [r7, #4]
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 25
  1394. 918 0022 1A73 strb r2, [r3, #12]
  1395. 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1396. 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Get USER*/
  1397. 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser();
  1398. 919 .loc 1 452 25
  1399. 920 0024 FFF7FEFF bl FLASH_OB_GetUser
  1400. 921 0028 0346 mov r3, r0
  1401. 922 002a 1A46 mov r2, r3
  1402. 923 .loc 1 452 23
  1403. 924 002c 7B68 ldr r3, [r7, #4]
  1404. 925 002e 5A73 strb r2, [r3, #13]
  1405. 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1406. 926 .loc 1 453 1
  1407. 927 0030 00BF nop
  1408. 928 0032 0837 adds r7, r7, #8
  1409. 929 .LCFI23:
  1410. 930 .cfi_def_cfa_offset 8
  1411. 931 0034 BD46 mov sp, r7
  1412. 932 .LCFI24:
  1413. 933 .cfi_def_cfa_register 13
  1414. 934 @ sp needed
  1415. 935 0036 80BD pop {r7, pc}
  1416. 936 .cfi_endproc
  1417. 937 .LFE134:
  1418. 939 .section .text.HAL_FLASHEx_OBGetUserData,"ax",%progbits
  1419. 940 .align 1
  1420. 941 .global HAL_FLASHEx_OBGetUserData
  1421. 942 .syntax unified
  1422. 943 .thumb
  1423. 944 .thumb_func
  1424. 946 HAL_FLASHEx_OBGetUserData:
  1425. 947 .LFB135:
  1426. 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1427. 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1428. 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Get the Option byte user data
  1429. 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param DATAAdress Address of the option byte DATA
  1430. 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be one of the following values:
  1431. 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_DATA_ADDRESS_DATA0
  1432. 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_DATA_ADDRESS_DATA1
  1433. 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval Value programmed in USER data
  1434. 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1435. 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t HAL_FLASHEx_OBGetUserData(uint32_t DATAAdress)
  1436. 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1437. 948 .loc 1 464 1
  1438. 949 .cfi_startproc
  1439. 950 @ args = 0, pretend = 0, frame = 32
  1440. 951 @ frame_needed = 1, uses_anonymous_args = 0
  1441. 952 @ link register save eliminated.
  1442. 953 0000 80B4 push {r7}
  1443. 954 .LCFI25:
  1444. 955 .cfi_def_cfa_offset 4
  1445. 956 .cfi_offset 7, -4
  1446. 957 0002 89B0 sub sp, sp, #36
  1447. 958 .LCFI26:
  1448. 959 .cfi_def_cfa_offset 40
  1449. 960 0004 00AF add r7, sp, #0
  1450. 961 .LCFI27:
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 26
  1452. 962 .cfi_def_cfa_register 7
  1453. 963 0006 7860 str r0, [r7, #4]
  1454. 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t value = 0U;
  1455. 964 .loc 1 465 12
  1456. 965 0008 0023 movs r3, #0
  1457. 966 000a FB61 str r3, [r7, #28]
  1458. 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1459. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (DATAAdress == OB_DATA_ADDRESS_DATA0)
  1460. 967 .loc 1 467 6
  1461. 968 000c 7B68 ldr r3, [r7, #4]
  1462. 969 000e 164A ldr r2, .L64
  1463. 970 0010 9342 cmp r3, r2
  1464. 971 0012 11D1 bne .L59
  1465. 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1466. 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get value programmed in OB USER Data0 */
  1467. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA0) >> FLASH_POSITION_OB_USERDATA0_BIT;
  1468. 972 .loc 1 470 13
  1469. 973 0014 154B ldr r3, .L64+4
  1470. 974 0016 DB69 ldr r3, [r3, #28]
  1471. 975 0018 03F47F03 and r3, r3, #16711680
  1472. 976 001c 4FF47F02 mov r2, #16711680
  1473. 977 0020 BA61 str r2, [r7, #24]
  1474. 978 .LBB8:
  1475. 979 .LBB9:
  1476. 980 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
  1477. 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
  1478. 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
  1479. 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file
  1480. 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4
  1481. 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018
  1482. 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
  1483. 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
  1484. 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
  1485. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1486. 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0
  1487. 11:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1488. 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may
  1489. 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License.
  1490. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at
  1491. 15:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1492. 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0
  1493. 17:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1494. 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software
  1495. 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  1496. 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1497. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and
  1498. 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License.
  1499. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1500. 24:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1501. 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  1502. 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
  1503. 27:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1504. 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
  1505. 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1506. 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  1507. 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  1508. 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 27
  1510. 33:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1511. 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
  1512. 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
  1513. 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0)
  1514. 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1515. 38:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1516. 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
  1517. 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM
  1518. 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm
  1519. 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1520. 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE
  1521. 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline
  1522. 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1523. 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE
  1524. 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline
  1525. 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1526. 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE
  1527. 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
  1528. 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1529. 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN
  1530. 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__))
  1531. 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1532. 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED
  1533. 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used))
  1534. 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1535. 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
  1536. 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
  1537. 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1538. 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED
  1539. 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1)))
  1540. 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1541. 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT
  1542. 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
  1543. 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1544. 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION
  1545. 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1)))
  1546. 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1547. 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */
  1548. 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1549. 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1550. 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1551. 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; };
  1552. 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1553. 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
  1554. 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1555. 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE
  1556. 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1557. 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1558. 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1559. 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
  1560. 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1561. 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
  1562. 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1563. 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ
  1564. 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1565. 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1566. 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 28
  1568. 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
  1569. 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1570. 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add
  1571. 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1572. 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE
  1573. 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1574. 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1575. 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1576. 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
  1577. 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1578. 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
  1579. 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1580. 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ
  1581. 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1582. 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1583. 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1584. 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
  1585. 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1586. 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add
  1587. 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1588. 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED
  1589. 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x)))
  1590. 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1591. 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT
  1592. 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
  1593. 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1594. 116:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1595. 117:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1596. 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
  1597. 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
  1598. 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
  1599. 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  1600. 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1601. 123:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1602. 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1603. 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
  1604. 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
  1605. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1606. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1607. 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
  1608. 130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1609. 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
  1610. 132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1611. 133:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1612. 134:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1613. 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1614. 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
  1615. 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
  1616. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1617. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1618. 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
  1619. 141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1620. 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
  1621. 143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1622. 144:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1623. 145:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1624. 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1625. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 29
  1626. 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register
  1627. 148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register.
  1628. 149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value
  1629. 150:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1630. 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
  1631. 152:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1632. 153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1633. 154:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1634. 155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) );
  1635. 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1636. 157:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1637. 158:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1638. 159:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1639. 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1640. 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1641. 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure)
  1642. 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode.
  1643. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value
  1644. 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1645. 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
  1646. 167:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1647. 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1648. 169:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1649. 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
  1650. 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1651. 172:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1652. 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1653. 174:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1654. 175:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1655. 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1656. 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register
  1657. 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register.
  1658. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  1659. 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1660. 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
  1661. 182:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1662. 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
  1663. 184:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1664. 185:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1665. 186:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1666. 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1667. 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1668. 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure)
  1669. 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state.
  1670. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  1671. 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1672. 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
  1673. 194:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1674. 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
  1675. 196:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1676. 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1677. 198:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1678. 199:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1679. 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1680. 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register
  1681. 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register.
  1682. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value
  1683. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 30
  1684. 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1685. 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
  1686. 206:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1687. 207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1688. 208:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1689. 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
  1690. 210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1691. 211:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1692. 212:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1693. 213:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1694. 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1695. 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register
  1696. 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register.
  1697. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value
  1698. 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1699. 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
  1700. 220:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1701. 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1702. 222:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1703. 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) );
  1704. 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1705. 225:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1706. 226:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1707. 227:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1708. 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1709. 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register
  1710. 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register.
  1711. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value
  1712. 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1713. 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
  1714. 234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1715. 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1716. 236:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1717. 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
  1718. 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1719. 239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1720. 240:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1721. 241:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1722. 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1723. 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer
  1724. 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP).
  1725. 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  1726. 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1727. 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
  1728. 248:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1729. 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1730. 250:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1731. 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) );
  1732. 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1733. 253:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1734. 254:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1735. 255:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1736. 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1737. 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1738. 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure)
  1739. 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
  1740. 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  1741. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 31
  1742. 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1743. 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
  1744. 263:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1745. 264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1746. 265:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1747. 266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) );
  1748. 267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1749. 268:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1750. 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1751. 270:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1752. 271:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1753. 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1754. 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer
  1755. 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP).
  1756. 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  1757. 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1758. 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
  1759. 278:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1760. 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
  1761. 280:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1762. 281:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1763. 282:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1764. 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1765. 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1766. 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  1767. 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
  1768. 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  1769. 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1770. 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
  1771. 290:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1772. 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
  1773. 292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1774. 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1775. 294:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1776. 295:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1777. 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1778. 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer
  1779. 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP).
  1780. 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  1781. 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1782. 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
  1783. 302:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1784. 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1785. 304:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1786. 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) );
  1787. 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1788. 307:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1789. 308:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1790. 309:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1791. 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1792. 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1793. 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure)
  1794. 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
  1795. 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  1796. 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1797. 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
  1798. 317:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1799. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 32
  1800. 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1801. 319:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1802. 320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
  1803. 321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1804. 322:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1805. 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1806. 324:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1807. 325:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1808. 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1809. 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer
  1810. 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP).
  1811. 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  1812. 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1813. 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
  1814. 332:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1815. 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
  1816. 334:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1817. 335:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1818. 336:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1819. 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1820. 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1821. 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure)
  1822. 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
  1823. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  1824. 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1825. 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
  1826. 344:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1827. 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
  1828. 346:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1829. 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1830. 348:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1831. 349:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1832. 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1833. 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1834. 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure)
  1835. 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
  1836. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value
  1837. 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1838. 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
  1839. 357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1840. 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1841. 359:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1842. 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
  1843. 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1844. 362:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1845. 363:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1846. 364:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1847. 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1848. 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure)
  1849. 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
  1850. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set
  1851. 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1852. 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
  1853. 371:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1854. 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
  1855. 373:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1856. 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1857. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 33
  1858. 375:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1859. 376:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1860. 377:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1861. 378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask
  1862. 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register.
  1863. 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  1864. 381:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1865. 382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
  1866. 383:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1867. 384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1868. 385:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1869. 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
  1870. 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1871. 388:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1872. 389:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1873. 390:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1874. 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1875. 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1876. 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure)
  1877. 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
  1878. 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  1879. 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1880. 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
  1881. 398:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1882. 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1883. 400:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1884. 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
  1885. 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1886. 403:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1887. 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1888. 405:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1889. 406:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1890. 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1891. 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask
  1892. 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register.
  1893. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  1894. 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1895. 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
  1896. 413:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1897. 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
  1898. 415:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1899. 416:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1900. 417:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1901. 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1902. 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1903. 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure)
  1904. 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
  1905. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  1906. 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1907. 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
  1908. 425:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1909. 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
  1910. 427:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1911. 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1912. 429:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1913. 430:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1914. 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  1915. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 34
  1916. 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  1917. 433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  1918. 434:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1919. 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ
  1920. 436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
  1921. 437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1922. 438:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1923. 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
  1924. 440:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1925. 441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory");
  1926. 442:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1927. 443:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1928. 444:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1929. 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1930. 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ
  1931. 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR.
  1932. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1933. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1934. 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
  1935. 451:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1936. 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory");
  1937. 453:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1938. 454:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1939. 455:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1940. 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1941. 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority
  1942. 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register.
  1943. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  1944. 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1945. 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
  1946. 462:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1947. 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1948. 464:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1949. 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) );
  1950. 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1951. 467:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1952. 468:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1953. 469:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1954. 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1955. 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1956. 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure)
  1957. 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state.
  1958. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  1959. 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1960. 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
  1961. 477:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1962. 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1963. 479:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1964. 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
  1965. 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1966. 482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1967. 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1968. 484:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1969. 485:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1970. 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1971. 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority
  1972. 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register.
  1973. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 35
  1974. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1975. 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1976. 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
  1977. 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1978. 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
  1979. 494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1980. 495:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1981. 496:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1982. 497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1983. 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1984. 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure)
  1985. 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state.
  1986. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1987. 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1988. 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
  1989. 504:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1990. 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
  1991. 506:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1992. 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1993. 508:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1994. 509:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1995. 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1996. 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition
  1997. 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
  1998. 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level.
  1999. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  2000. 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2001. 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
  2002. 517:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2003. 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
  2004. 519:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2005. 520:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2006. 521:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2007. 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2008. 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask
  2009. 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register.
  2010. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  2011. 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2012. 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
  2013. 528:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2014. 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2015. 530:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2016. 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
  2017. 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2018. 533:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2019. 534:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2020. 535:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2021. 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  2022. 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2023. 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure)
  2024. 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state.
  2025. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  2026. 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2027. 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
  2028. 543:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2029. 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2030. 545:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2031. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 36
  2032. 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
  2033. 547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2034. 548:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2035. 549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2036. 550:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2037. 551:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2038. 552:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2039. 553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask
  2040. 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register.
  2041. 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  2042. 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2043. 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
  2044. 558:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2045. 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
  2046. 560:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2047. 561:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2048. 562:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2049. 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  2050. 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2051. 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure)
  2052. 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state.
  2053. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  2054. 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2055. 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
  2056. 570:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2057. 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
  2058. 572:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2059. 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2060. 574:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2061. 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  2062. 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  2063. 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
  2064. 578:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2065. 579:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2066. 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  2067. 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
  2068. 582:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2069. 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2070. 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit
  2071. 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2072. 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  2073. 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  2074. 588:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2075. 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
  2076. 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  2077. 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2078. 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
  2079. 593:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2080. 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  2081. 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  2082. 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  2083. 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  2084. 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2085. 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2086. 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) );
  2087. 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2088. 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2089. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 37
  2090. 603:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2091. 604:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2092. 605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
  2093. 606:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2094. 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure)
  2095. 608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2096. 609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  2097. 610:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2098. 611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in
  2099. 612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  2100. 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2101. 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
  2102. 615:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2103. 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  2104. 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  2105. 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  2106. 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2107. 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2108. 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) );
  2109. 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2110. 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2111. 624:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2112. 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2113. 626:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2114. 627:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2115. 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2116. 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit
  2117. 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2118. 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  2119. 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  2120. 633:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2121. 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
  2122. 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  2123. 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2124. 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
  2125. 638:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2126. 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  2127. 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  2128. 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  2129. 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  2130. 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2131. 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
  2132. 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2133. 646:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2134. 647:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2135. 648:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2136. 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  2137. 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2138. 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  2139. 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2140. 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  2141. 654:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2142. 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
  2143. 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  2144. 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2145. 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
  2146. 659:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2147. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 38
  2148. 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  2149. 661:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  2150. 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  2151. 663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2152. 664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
  2153. 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2154. 666:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2155. 667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2156. 668:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2157. 669:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2158. 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2159. 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit
  2160. 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2161. 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  2162. 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  2163. 675:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2164. 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
  2165. 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  2166. 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2167. 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
  2168. 680:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2169. 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  2170. 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  2171. 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  2172. 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  2173. 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2174. 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2175. 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) );
  2176. 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2177. 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2178. 690:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2179. 691:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2180. 692:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2181. 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  2182. 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2183. 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure)
  2184. 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2185. 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  2186. 698:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2187. 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
  2188. 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  2189. 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2190. 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
  2191. 703:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2192. 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  2193. 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  2194. 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  2195. 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2196. 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2197. 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
  2198. 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2199. 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2200. 712:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2201. 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2202. 714:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2203. 715:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2204. 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2205. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 39
  2206. 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit
  2207. 718:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2208. 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  2209. 720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  2210. 721:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2211. 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
  2212. 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set
  2213. 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2214. 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
  2215. 726:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2216. 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  2217. 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  2218. 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  2219. 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  2220. 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2221. 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
  2222. 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2223. 734:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2224. 735:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2225. 736:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2226. 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  2227. 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2228. 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure)
  2229. 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  2230. 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  2231. 742:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2232. 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
  2233. 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set
  2234. 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2235. 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
  2236. 747:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2237. 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  2238. 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  2239. 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  2240. 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2241. 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
  2242. 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2243. 754:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2244. 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2245. 756:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2246. 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  2247. 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
  2248. 759:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2249. 760:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2250. 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2251. 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR
  2252. 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register.
  2253. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value
  2254. 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2255. 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
  2256. 767:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2257. 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  2258. 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  2259. 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr)
  2260. 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  2261. 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  2262. 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  2263. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 40
  2264. 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr();
  2265. 775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2266. 776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2267. 777:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2268. 778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
  2269. 779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2270. 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2271. 781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2272. 782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U);
  2273. 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2274. 784:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2275. 785:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2276. 786:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2277. 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2278. 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR
  2279. 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register.
  2280. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set
  2281. 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2282. 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
  2283. 793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2284. 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  2285. 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  2286. 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
  2287. 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  2288. 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  2289. 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  2290. 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr);
  2291. 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2292. 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
  2293. 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2294. 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2295. 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr;
  2296. 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2297. 807:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2298. 808:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2299. 809:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2300. 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
  2301. 811:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2302. 812:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2303. 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */
  2304. 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
  2305. 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions
  2306. 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  2307. 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2308. 818:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2309. 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
  2310. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l"
  2311. 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */
  2312. 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
  2313. 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
  2314. 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
  2315. 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
  2316. 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2317. 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
  2318. 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
  2319. 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
  2320. 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2321. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 41
  2322. 831:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2323. 832:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2324. 833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation
  2325. 834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes.
  2326. 835:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2327. 836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
  2328. 837:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2329. 838:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2330. 839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
  2331. 840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
  2332. 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2333. 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi")
  2334. 843:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2335. 844:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2336. 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2337. 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event
  2338. 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter
  2339. 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs.
  2340. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2341. 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe")
  2342. 851:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2343. 852:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2344. 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2345. 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event
  2346. 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
  2347. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2348. 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev")
  2349. 858:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2350. 859:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2351. 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2352. 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier
  2353. 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor,
  2354. 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory,
  2355. 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed.
  2356. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2357. 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
  2358. 867:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2359. 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory");
  2360. 869:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2361. 870:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2362. 871:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2363. 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2364. 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier
  2365. 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier.
  2366. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete.
  2367. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2368. 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void)
  2369. 878:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2370. 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory");
  2371. 880:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2372. 881:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2373. 882:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2374. 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2375. 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier
  2376. 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before
  2377. 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion.
  2378. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2379. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 42
  2380. 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void)
  2381. 889:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2382. 890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory");
  2383. 891:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2384. 892:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2385. 893:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2386. 894:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2387. 895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit)
  2388. 896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785
  2389. 897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  2390. 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  2391. 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2392. 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value)
  2393. 901:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2394. 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
  2395. 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value);
  2396. 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2397. 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2398. 906:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2399. 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  2400. 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2401. 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2402. 910:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2403. 911:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2404. 912:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2405. 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2406. 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  2407. 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes
  2408. 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  2409. 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  2410. 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2411. 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value)
  2412. 920:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2413. 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2414. 922:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2415. 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  2416. 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2417. 925:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2418. 926:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2419. 927:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2420. 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2421. 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  2422. 930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam
  2423. 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  2424. 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  2425. 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2426. 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value)
  2427. 935:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2428. 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
  2429. 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value);
  2430. 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2431. 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result;
  2432. 940:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2433. 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  2434. 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2435. 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2436. 944:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2437. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 43
  2438. 945:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2439. 946:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2440. 947:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2441. 948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit)
  2442. 949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v
  2443. 950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate
  2444. 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate
  2445. 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value
  2446. 953:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2447. 954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
  2448. 955:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2449. 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U;
  2450. 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U)
  2451. 958:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2452. 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1;
  2453. 960:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2454. 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2));
  2455. 962:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2456. 963:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2457. 964:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2458. 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2459. 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint
  2460. 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state.
  2461. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula
  2462. 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor.
  2463. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break
  2464. 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2465. 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value)
  2466. 973:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2467. 974:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2468. 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2469. 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value
  2470. 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value.
  2471. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  2472. 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  2473. 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2474. 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value)
  2475. 982:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2476. 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2477. 984:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2478. 985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  2479. 986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  2480. 987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  2481. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
  2482. 981 .loc 2 988 4
  2483. 982 0022 BA69 ldr r2, [r7, #24]
  2484. 983 .syntax unified
  2485. 984 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  2486. 985 0024 92FAA2F2 rbit r2, r2
  2487. 986 @ 0 "" 2
  2488. 987 .thumb
  2489. 988 .syntax unified
  2490. 989 0028 7A61 str r2, [r7, #20]
  2491. 989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2492. 990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
  2493. 991:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2494. 992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */
  2495. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 44
  2496. 993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U)
  2497. 994:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2498. 995:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U;
  2499. 996:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U;
  2500. 997:Drivers/CMSIS/Include/cmsis_gcc.h **** s--;
  2501. 998:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2502. 999:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */
  2503. 1000:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2504. 1001:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2505. 990 .loc 2 1001 10
  2506. 991 002a 7A69 ldr r2, [r7, #20]
  2507. 992 .LBE9:
  2508. 993 .LBE8:
  2509. 994 .loc 1 470 54
  2510. 995 002c B2FA82F2 clz r2, r2
  2511. 996 0030 D2B2 uxtb r2, r2
  2512. 997 .loc 1 470 11
  2513. 998 0032 D340 lsrs r3, r3, r2
  2514. 999 0034 FB61 str r3, [r7, #28]
  2515. 1000 0036 10E0 b .L61
  2516. 1001 .L59:
  2517. 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2518. 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  2519. 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2520. 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get value programmed in OB USER Data1 */
  2521. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA1) >> FLASH_POSITION_OB_USERDATA1_BIT;
  2522. 1002 .loc 1 475 13
  2523. 1003 0038 0C4B ldr r3, .L64+4
  2524. 1004 003a DB69 ldr r3, [r3, #28]
  2525. 1005 003c 03F07F43 and r3, r3, #-16777216
  2526. 1006 0040 4FF07F42 mov r2, #-16777216
  2527. 1007 0044 3A61 str r2, [r7, #16]
  2528. 1008 .LBB10:
  2529. 1009 .LBB11:
  2530. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2531. 1010 .loc 2 988 4
  2532. 1011 0046 3A69 ldr r2, [r7, #16]
  2533. 1012 .syntax unified
  2534. 1013 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  2535. 1014 0048 92FAA2F2 rbit r2, r2
  2536. 1015 @ 0 "" 2
  2537. 1016 .thumb
  2538. 1017 .syntax unified
  2539. 1018 004c FA60 str r2, [r7, #12]
  2540. 1019 .loc 2 1001 10
  2541. 1020 004e FA68 ldr r2, [r7, #12]
  2542. 1021 .LBE11:
  2543. 1022 .LBE10:
  2544. 1023 .loc 1 475 54
  2545. 1024 0050 B2FA82F2 clz r2, r2
  2546. 1025 0054 D2B2 uxtb r2, r2
  2547. 1026 .loc 1 475 11
  2548. 1027 0056 D340 lsrs r3, r3, r2
  2549. 1028 0058 FB61 str r3, [r7, #28]
  2550. 1029 .L61:
  2551. 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2552. 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2553. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 45
  2554. 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return value;
  2555. 1030 .loc 1 478 10
  2556. 1031 005a FB69 ldr r3, [r7, #28]
  2557. 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2558. 1032 .loc 1 479 1
  2559. 1033 005c 1846 mov r0, r3
  2560. 1034 005e 2437 adds r7, r7, #36
  2561. 1035 .LCFI28:
  2562. 1036 .cfi_def_cfa_offset 4
  2563. 1037 0060 BD46 mov sp, r7
  2564. 1038 .LCFI29:
  2565. 1039 .cfi_def_cfa_register 13
  2566. 1040 @ sp needed
  2567. 1041 0062 5DF8047B ldr r7, [sp], #4
  2568. 1042 .LCFI30:
  2569. 1043 .cfi_restore 7
  2570. 1044 .cfi_def_cfa_offset 0
  2571. 1045 0066 7047 bx lr
  2572. 1046 .L65:
  2573. 1047 .align 2
  2574. 1048 .L64:
  2575. 1049 0068 04F8FF1F .word 536868868
  2576. 1050 006c 00200240 .word 1073881088
  2577. 1051 .cfi_endproc
  2578. 1052 .LFE135:
  2579. 1054 .section .text.FLASH_MassErase,"ax",%progbits
  2580. 1055 .align 1
  2581. 1056 .syntax unified
  2582. 1057 .thumb
  2583. 1058 .thumb_func
  2584. 1060 FLASH_MassErase:
  2585. 1061 .LFB136:
  2586. 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2587. 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  2588. 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  2589. 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  2590. 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2591. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  2592. 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  2593. 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  2594. 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2595. 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions
  2596. 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  2597. 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  2598. 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2599. 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  2600. 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Full erase of FLASH memory Bank
  2601. 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  2602. 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval None
  2603. 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  2604. 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static void FLASH_MassErase(void)
  2605. 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2606. 1062 .loc 1 499 1
  2607. 1063 .cfi_startproc
  2608. 1064 @ args = 0, pretend = 0, frame = 0
  2609. 1065 @ frame_needed = 1, uses_anonymous_args = 0
  2610. 1066 @ link register save eliminated.
  2611. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 46
  2612. 1067 0000 80B4 push {r7}
  2613. 1068 .LCFI31:
  2614. 1069 .cfi_def_cfa_offset 4
  2615. 1070 .cfi_offset 7, -4
  2616. 1071 0002 00AF add r7, sp, #0
  2617. 1072 .LCFI32:
  2618. 1073 .cfi_def_cfa_register 7
  2619. 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  2620. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  2621. 1074 .loc 1 501 20
  2622. 1075 0004 094B ldr r3, .L67
  2623. 1076 0006 0022 movs r2, #0
  2624. 1077 0008 DA61 str r2, [r3, #28]
  2625. 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2626. 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Only bank1 will be erased*/
  2627. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER);
  2628. 1078 .loc 1 504 5
  2629. 1079 000a 094B ldr r3, .L67+4
  2630. 1080 000c 1B69 ldr r3, [r3, #16]
  2631. 1081 000e 084A ldr r2, .L67+4
  2632. 1082 0010 43F00403 orr r3, r3, #4
  2633. 1083 0014 1361 str r3, [r2, #16]
  2634. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  2635. 1084 .loc 1 505 5
  2636. 1085 0016 064B ldr r3, .L67+4
  2637. 1086 0018 1B69 ldr r3, [r3, #16]
  2638. 1087 001a 054A ldr r2, .L67+4
  2639. 1088 001c 43F04003 orr r3, r3, #64
  2640. 1089 0020 1361 str r3, [r2, #16]
  2641. 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2642. 1090 .loc 1 506 1
  2643. 1091 0022 00BF nop
  2644. 1092 0024 BD46 mov sp, r7
  2645. 1093 .LCFI33:
  2646. 1094 .cfi_def_cfa_register 13
  2647. 1095 @ sp needed
  2648. 1096 0026 5DF8047B ldr r7, [sp], #4
  2649. 1097 .LCFI34:
  2650. 1098 .cfi_restore 7
  2651. 1099 .cfi_def_cfa_offset 0
  2652. 1100 002a 7047 bx lr
  2653. 1101 .L68:
  2654. 1102 .align 2
  2655. 1103 .L67:
  2656. 1104 002c 00000000 .word pFlash
  2657. 1105 0030 00200240 .word 1073881088
  2658. 1106 .cfi_endproc
  2659. 1107 .LFE136:
  2660. 1109 .section .text.FLASH_OB_EnableWRP,"ax",%progbits
  2661. 1110 .align 1
  2662. 1111 .syntax unified
  2663. 1112 .thumb
  2664. 1113 .thumb_func
  2665. 1115 FLASH_OB_EnableWRP:
  2666. 1116 .LFB137:
  2667. 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2668. 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  2669. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 47
  2670. 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Enable the write protection of the desired pages
  2671. 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note An option byte erase is done automatically in this function.
  2672. 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
  2673. 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * it is not possible to program or erase the flash page i if
  2674. 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1
  2675. 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  2676. 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param WriteProtectPage specifies the page(s) to be write protected.
  2677. 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
  2678. 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  2679. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  2680. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage)
  2681. 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2682. 1117 .loc 1 520 1
  2683. 1118 .cfi_startproc
  2684. 1119 @ args = 0, pretend = 0, frame = 24
  2685. 1120 @ frame_needed = 1, uses_anonymous_args = 0
  2686. 1121 0000 80B5 push {r7, lr}
  2687. 1122 .LCFI35:
  2688. 1123 .cfi_def_cfa_offset 8
  2689. 1124 .cfi_offset 7, -8
  2690. 1125 .cfi_offset 14, -4
  2691. 1126 0002 86B0 sub sp, sp, #24
  2692. 1127 .LCFI36:
  2693. 1128 .cfi_def_cfa_offset 32
  2694. 1129 0004 00AF add r7, sp, #0
  2695. 1130 .LCFI37:
  2696. 1131 .cfi_def_cfa_register 7
  2697. 1132 0006 7860 str r0, [r7, #4]
  2698. 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  2699. 1133 .loc 1 521 21
  2700. 1134 0008 0023 movs r3, #0
  2701. 1135 000a FB75 strb r3, [r7, #23]
  2702. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFFU;
  2703. 1136 .loc 1 522 12
  2704. 1137 000c 4FF6FF73 movw r3, #65535
  2705. 1138 0010 BB82 strh r3, [r7, #20] @ movhi
  2706. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  2707. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP1_Data = 0xFFFFU;
  2708. 1139 .loc 1 524 12
  2709. 1140 0012 4FF6FF73 movw r3, #65535
  2710. 1141 0016 7B82 strh r3, [r7, #18] @ movhi
  2711. 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  2712. 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  2713. 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP2_Data = 0xFFFFU;
  2714. 1142 .loc 1 527 12
  2715. 1143 0018 4FF6FF73 movw r3, #65535
  2716. 1144 001c 3B82 strh r3, [r7, #16] @ movhi
  2717. 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  2718. 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  2719. 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP3_Data = 0xFFFFU;
  2720. 1145 .loc 1 530 12
  2721. 1146 001e 4FF6FF73 movw r3, #65535
  2722. 1147 0022 FB81 strh r3, [r7, #14] @ movhi
  2723. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  2724. 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2725. 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  2726. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_WRP(WriteProtectPage));
  2727. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 48
  2728. 1148 .loc 1 534 3
  2729. 1149 0024 7B68 ldr r3, [r7, #4]
  2730. 1150 0026 002B cmp r3, #0
  2731. 1151 0028 04D1 bne .L70
  2732. 1152 .loc 1 534 3 is_stmt 0 discriminator 1
  2733. 1153 002a 40F21621 movw r1, #534
  2734. 1154 002e 4648 ldr r0, .L77
  2735. 1155 0030 FFF7FEFF bl assert_failed
  2736. 1156 .L70:
  2737. 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2738. 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get current write protected pages and the new pages to be protected ******/
  2739. 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WriteProtectPage = (uint32_t)(~((~FLASH_OB_GetWRP()) | WriteProtectPage));
  2740. 1157 .loc 1 537 37 is_stmt 1
  2741. 1158 0034 FFF7FEFF bl FLASH_OB_GetWRP
  2742. 1159 0038 0246 mov r2, r0
  2743. 1160 .loc 1 537 33
  2744. 1161 003a 7B68 ldr r3, [r7, #4]
  2745. 1162 003c DB43 mvns r3, r3
  2746. 1163 .loc 1 537 20
  2747. 1164 003e 1340 ands r3, r3, r2
  2748. 1165 0040 7B60 str r3, [r7, #4]
  2749. 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2750. 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES0TO15MASK)
  2751. 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK);
  2752. 1166 .loc 1 540 15
  2753. 1167 0042 7B68 ldr r3, [r7, #4]
  2754. 1168 0044 9BB2 uxth r3, r3
  2755. 1169 .loc 1 540 13
  2756. 1170 0046 DBB2 uxtb r3, r3
  2757. 1171 0048 BB82 strh r3, [r7, #20] @ movhi
  2758. 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  2759. 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2760. 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES16TO31MASK)
  2761. 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U);
  2762. 1172 .loc 1 544 70
  2763. 1173 004a 7B68 ldr r3, [r7, #4]
  2764. 1174 004c 1B0A lsrs r3, r3, #8
  2765. 1175 .loc 1 544 15
  2766. 1176 004e 9BB2 uxth r3, r3
  2767. 1177 .loc 1 544 13
  2768. 1178 0050 DBB2 uxtb r3, r3
  2769. 1179 0052 7B82 strh r3, [r7, #18] @ movhi
  2770. 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  2771. 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2772. 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES32TO47MASK)
  2773. 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U);
  2774. 1180 .loc 1 548 70
  2775. 1181 0054 7B68 ldr r3, [r7, #4]
  2776. 1182 0056 1B0C lsrs r3, r3, #16
  2777. 1183 .loc 1 548 15
  2778. 1184 0058 9BB2 uxth r3, r3
  2779. 1185 .loc 1 548 13
  2780. 1186 005a DBB2 uxtb r3, r3
  2781. 1187 005c 3B82 strh r3, [r7, #16] @ movhi
  2782. 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  2783. 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2784. 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES48TO127MASK)
  2785. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 49
  2786. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U);
  2787. 1188 .loc 1 552 71
  2788. 1189 005e 7B68 ldr r3, [r7, #4]
  2789. 1190 0060 1B0E lsrs r3, r3, #24
  2790. 1191 .loc 1 552 13
  2791. 1192 0062 FB81 strh r3, [r7, #14] @ movhi
  2792. 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  2793. 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U);
  2794. 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES48TO63MASK */
  2795. 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2796. 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  2797. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  2798. 1193 .loc 1 558 12
  2799. 1194 0064 4CF25030 movw r0, #50000
  2800. 1195 0068 FFF7FEFF bl FLASH_WaitForLastOperation
  2801. 1196 006c 0346 mov r3, r0
  2802. 1197 006e FB75 strb r3, [r7, #23]
  2803. 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2804. 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  2805. 1198 .loc 1 560 5
  2806. 1199 0070 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  2807. 1200 0072 002B cmp r3, #0
  2808. 1201 0074 62D1 bne .L71
  2809. 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2810. 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  2811. 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  2812. 1202 .loc 1 563 22
  2813. 1203 0076 354B ldr r3, .L77+4
  2814. 1204 0078 0022 movs r2, #0
  2815. 1205 007a DA61 str r2, [r3, #28]
  2816. 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2817. 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* To be able to write again option byte, need to perform a option byte erase */
  2818. 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = HAL_FLASHEx_OBErase();
  2819. 1206 .loc 1 566 14
  2820. 1207 007c FFF7FEFF bl HAL_FLASHEx_OBErase
  2821. 1208 0080 0346 mov r3, r0
  2822. 1209 0082 FB75 strb r3, [r7, #23]
  2823. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  2824. 1210 .loc 1 567 8
  2825. 1211 0084 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  2826. 1212 0086 002B cmp r3, #0
  2827. 1213 0088 58D1 bne .L71
  2828. 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2829. 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable write protection */
  2830. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  2831. 1214 .loc 1 570 7
  2832. 1215 008a 314B ldr r3, .L77+8
  2833. 1216 008c 1B69 ldr r3, [r3, #16]
  2834. 1217 008e 304A ldr r2, .L77+8
  2835. 1218 0090 43F01003 orr r3, r3, #16
  2836. 1219 0094 1361 str r3, [r2, #16]
  2837. 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2838. 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP0_WRP0)
  2839. 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(WRP0_Data != 0xFFU)
  2840. 1220 .loc 1 573 9
  2841. 1221 0096 BB8A ldrh r3, [r7, #20]
  2842. 1222 0098 FF2B cmp r3, #255
  2843. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 50
  2844. 1223 009a 0DD0 beq .L72
  2845. 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2846. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP0 &= WRP0_Data;
  2847. 1224 .loc 1 575 18
  2848. 1225 009c 2D4B ldr r3, .L77+12
  2849. 1226 009e 1B89 ldrh r3, [r3, #8] @ movhi
  2850. 1227 00a0 9AB2 uxth r2, r3
  2851. 1228 00a2 2C49 ldr r1, .L77+12
  2852. 1229 00a4 BB8A ldrh r3, [r7, #20] @ movhi
  2853. 1230 00a6 1340 ands r3, r3, r2
  2854. 1231 00a8 9BB2 uxth r3, r3
  2855. 1232 00aa 0B81 strh r3, [r1, #8] @ movhi
  2856. 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2857. 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  2858. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  2859. 1233 .loc 1 578 18
  2860. 1234 00ac 4CF25030 movw r0, #50000
  2861. 1235 00b0 FFF7FEFF bl FLASH_WaitForLastOperation
  2862. 1236 00b4 0346 mov r3, r0
  2863. 1237 00b6 FB75 strb r3, [r7, #23]
  2864. 1238 .L72:
  2865. 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2866. 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP0_WRP0 */
  2867. 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2868. 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  2869. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP1_Data != 0xFFU))
  2870. 1239 .loc 1 583 9
  2871. 1240 00b8 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  2872. 1241 00ba 002B cmp r3, #0
  2873. 1242 00bc 10D1 bne .L73
  2874. 1243 .loc 1 583 29 discriminator 1
  2875. 1244 00be 7B8A ldrh r3, [r7, #18]
  2876. 1245 00c0 FF2B cmp r3, #255
  2877. 1246 00c2 0DD0 beq .L73
  2878. 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2879. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP1 &= WRP1_Data;
  2880. 1247 .loc 1 585 18
  2881. 1248 00c4 234B ldr r3, .L77+12
  2882. 1249 00c6 5B89 ldrh r3, [r3, #10] @ movhi
  2883. 1250 00c8 9AB2 uxth r2, r3
  2884. 1251 00ca 2249 ldr r1, .L77+12
  2885. 1252 00cc 7B8A ldrh r3, [r7, #18] @ movhi
  2886. 1253 00ce 1340 ands r3, r3, r2
  2887. 1254 00d0 9BB2 uxth r3, r3
  2888. 1255 00d2 4B81 strh r3, [r1, #10] @ movhi
  2889. 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2890. 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  2891. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  2892. 1256 .loc 1 588 18
  2893. 1257 00d4 4CF25030 movw r0, #50000
  2894. 1258 00d8 FFF7FEFF bl FLASH_WaitForLastOperation
  2895. 1259 00dc 0346 mov r3, r0
  2896. 1260 00de FB75 strb r3, [r7, #23]
  2897. 1261 .L73:
  2898. 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2899. 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  2900. 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2901. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 51
  2902. 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  2903. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP2_Data != 0xFFU))
  2904. 1262 .loc 1 593 9
  2905. 1263 00e0 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  2906. 1264 00e2 002B cmp r3, #0
  2907. 1265 00e4 10D1 bne .L74
  2908. 1266 .loc 1 593 29 discriminator 1
  2909. 1267 00e6 3B8A ldrh r3, [r7, #16]
  2910. 1268 00e8 FF2B cmp r3, #255
  2911. 1269 00ea 0DD0 beq .L74
  2912. 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2913. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP2 &= WRP2_Data;
  2914. 1270 .loc 1 595 18
  2915. 1271 00ec 194B ldr r3, .L77+12
  2916. 1272 00ee 9B89 ldrh r3, [r3, #12] @ movhi
  2917. 1273 00f0 9AB2 uxth r2, r3
  2918. 1274 00f2 1849 ldr r1, .L77+12
  2919. 1275 00f4 3B8A ldrh r3, [r7, #16] @ movhi
  2920. 1276 00f6 1340 ands r3, r3, r2
  2921. 1277 00f8 9BB2 uxth r3, r3
  2922. 1278 00fa 8B81 strh r3, [r1, #12] @ movhi
  2923. 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2924. 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  2925. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  2926. 1279 .loc 1 598 18
  2927. 1280 00fc 4CF25030 movw r0, #50000
  2928. 1281 0100 FFF7FEFF bl FLASH_WaitForLastOperation
  2929. 1282 0104 0346 mov r3, r0
  2930. 1283 0106 FB75 strb r3, [r7, #23]
  2931. 1284 .L74:
  2932. 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2933. 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  2934. 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2935. 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  2936. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP3_Data != 0xFFU))
  2937. 1285 .loc 1 603 9
  2938. 1286 0108 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  2939. 1287 010a 002B cmp r3, #0
  2940. 1288 010c 10D1 bne .L75
  2941. 1289 .loc 1 603 29 discriminator 1
  2942. 1290 010e FB89 ldrh r3, [r7, #14]
  2943. 1291 0110 FF2B cmp r3, #255
  2944. 1292 0112 0DD0 beq .L75
  2945. 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2946. 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP3 &= WRP3_Data;
  2947. 1293 .loc 1 605 18
  2948. 1294 0114 0F4B ldr r3, .L77+12
  2949. 1295 0116 DB89 ldrh r3, [r3, #14] @ movhi
  2950. 1296 0118 9AB2 uxth r2, r3
  2951. 1297 011a 0E49 ldr r1, .L77+12
  2952. 1298 011c FB89 ldrh r3, [r7, #14] @ movhi
  2953. 1299 011e 1340 ands r3, r3, r2
  2954. 1300 0120 9BB2 uxth r3, r3
  2955. 1301 0122 CB81 strh r3, [r1, #14] @ movhi
  2956. 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2957. 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  2958. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  2959. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 52
  2960. 1302 .loc 1 608 18
  2961. 1303 0124 4CF25030 movw r0, #50000
  2962. 1304 0128 FFF7FEFF bl FLASH_WaitForLastOperation
  2963. 1305 012c 0346 mov r3, r0
  2964. 1306 012e FB75 strb r3, [r7, #23]
  2965. 1307 .L75:
  2966. 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2967. 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  2968. 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2969. 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  2970. 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  2971. 1308 .loc 1 613 7
  2972. 1309 0130 074B ldr r3, .L77+8
  2973. 1310 0132 1B69 ldr r3, [r3, #16]
  2974. 1311 0134 064A ldr r2, .L77+8
  2975. 1312 0136 23F01003 bic r3, r3, #16
  2976. 1313 013a 1361 str r3, [r2, #16]
  2977. 1314 .L71:
  2978. 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2979. 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2980. 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2981. 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  2982. 1315 .loc 1 617 10
  2983. 1316 013c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  2984. 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2985. 1317 .loc 1 618 1
  2986. 1318 013e 1846 mov r0, r3
  2987. 1319 0140 1837 adds r7, r7, #24
  2988. 1320 .LCFI38:
  2989. 1321 .cfi_def_cfa_offset 8
  2990. 1322 0142 BD46 mov sp, r7
  2991. 1323 .LCFI39:
  2992. 1324 .cfi_def_cfa_register 13
  2993. 1325 @ sp needed
  2994. 1326 0144 80BD pop {r7, pc}
  2995. 1327 .L78:
  2996. 1328 0146 00BF .align 2
  2997. 1329 .L77:
  2998. 1330 0148 00000000 .word .LC0
  2999. 1331 014c 00000000 .word pFlash
  3000. 1332 0150 00200240 .word 1073881088
  3001. 1333 0154 00F8FF1F .word 536868864
  3002. 1334 .cfi_endproc
  3003. 1335 .LFE137:
  3004. 1337 .section .text.FLASH_OB_DisableWRP,"ax",%progbits
  3005. 1338 .align 1
  3006. 1339 .syntax unified
  3007. 1340 .thumb
  3008. 1341 .thumb_func
  3009. 1343 FLASH_OB_DisableWRP:
  3010. 1344 .LFB138:
  3011. 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3012. 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  3013. 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Disable the write protection of the desired pages
  3014. 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note An option byte erase is done automatically in this function.
  3015. 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
  3016. 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * it is not possible to program or erase the flash page i if
  3017. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 53
  3018. 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1
  3019. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  3020. 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param WriteProtectPage specifies the page(s) to be write unprotected.
  3021. 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
  3022. 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  3023. 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  3024. 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage)
  3025. 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3026. 1345 .loc 1 632 1
  3027. 1346 .cfi_startproc
  3028. 1347 @ args = 0, pretend = 0, frame = 24
  3029. 1348 @ frame_needed = 1, uses_anonymous_args = 0
  3030. 1349 0000 80B5 push {r7, lr}
  3031. 1350 .LCFI40:
  3032. 1351 .cfi_def_cfa_offset 8
  3033. 1352 .cfi_offset 7, -8
  3034. 1353 .cfi_offset 14, -4
  3035. 1354 0002 86B0 sub sp, sp, #24
  3036. 1355 .LCFI41:
  3037. 1356 .cfi_def_cfa_offset 32
  3038. 1357 0004 00AF add r7, sp, #0
  3039. 1358 .LCFI42:
  3040. 1359 .cfi_def_cfa_register 7
  3041. 1360 0006 7860 str r0, [r7, #4]
  3042. 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  3043. 1361 .loc 1 633 21
  3044. 1362 0008 0023 movs r3, #0
  3045. 1363 000a FB75 strb r3, [r7, #23]
  3046. 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFFU;
  3047. 1364 .loc 1 634 12
  3048. 1365 000c 4FF6FF73 movw r3, #65535
  3049. 1366 0010 BB82 strh r3, [r7, #20] @ movhi
  3050. 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  3051. 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP1_Data = 0xFFFFU;
  3052. 1367 .loc 1 636 12
  3053. 1368 0012 4FF6FF73 movw r3, #65535
  3054. 1369 0016 7B82 strh r3, [r7, #18] @ movhi
  3055. 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  3056. 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  3057. 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP2_Data = 0xFFFFU;
  3058. 1370 .loc 1 639 12
  3059. 1371 0018 4FF6FF73 movw r3, #65535
  3060. 1372 001c 3B82 strh r3, [r7, #16] @ movhi
  3061. 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  3062. 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  3063. 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP3_Data = 0xFFFFU;
  3064. 1373 .loc 1 642 12
  3065. 1374 001e 4FF6FF73 movw r3, #65535
  3066. 1375 0022 FB81 strh r3, [r7, #14] @ movhi
  3067. 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  3068. 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3069. 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  3070. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_WRP(WriteProtectPage));
  3071. 1376 .loc 1 646 3
  3072. 1377 0024 7B68 ldr r3, [r7, #4]
  3073. 1378 0026 002B cmp r3, #0
  3074. 1379 0028 04D1 bne .L80
  3075. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 54
  3076. 1380 .loc 1 646 3 is_stmt 0 discriminator 1
  3077. 1381 002a 40F28621 movw r1, #646
  3078. 1382 002e 3B48 ldr r0, .L87
  3079. 1383 0030 FFF7FEFF bl assert_failed
  3080. 1384 .L80:
  3081. 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3082. 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get current write protected pages and the new pages to be unprotected ******/
  3083. 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WriteProtectPage = (FLASH_OB_GetWRP() | WriteProtectPage);
  3084. 1385 .loc 1 649 23 is_stmt 1
  3085. 1386 0034 FFF7FEFF bl FLASH_OB_GetWRP
  3086. 1387 0038 0246 mov r2, r0
  3087. 1388 .loc 1 649 20
  3088. 1389 003a 7B68 ldr r3, [r7, #4]
  3089. 1390 003c 1343 orrs r3, r3, r2
  3090. 1391 003e 7B60 str r3, [r7, #4]
  3091. 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3092. 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES0TO15MASK)
  3093. 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK);
  3094. 1392 .loc 1 652 15
  3095. 1393 0040 7B68 ldr r3, [r7, #4]
  3096. 1394 0042 9BB2 uxth r3, r3
  3097. 1395 .loc 1 652 13
  3098. 1396 0044 DBB2 uxtb r3, r3
  3099. 1397 0046 BB82 strh r3, [r7, #20] @ movhi
  3100. 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  3101. 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3102. 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES16TO31MASK)
  3103. 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U);
  3104. 1398 .loc 1 656 70
  3105. 1399 0048 7B68 ldr r3, [r7, #4]
  3106. 1400 004a 1B0A lsrs r3, r3, #8
  3107. 1401 .loc 1 656 15
  3108. 1402 004c 9BB2 uxth r3, r3
  3109. 1403 .loc 1 656 13
  3110. 1404 004e DBB2 uxtb r3, r3
  3111. 1405 0050 7B82 strh r3, [r7, #18] @ movhi
  3112. 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  3113. 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3114. 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES32TO47MASK)
  3115. 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U);
  3116. 1406 .loc 1 660 70
  3117. 1407 0052 7B68 ldr r3, [r7, #4]
  3118. 1408 0054 1B0C lsrs r3, r3, #16
  3119. 1409 .loc 1 660 15
  3120. 1410 0056 9BB2 uxth r3, r3
  3121. 1411 .loc 1 660 13
  3122. 1412 0058 DBB2 uxtb r3, r3
  3123. 1413 005a 3B82 strh r3, [r7, #16] @ movhi
  3124. 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  3125. 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3126. 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES48TO127MASK)
  3127. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U);
  3128. 1414 .loc 1 664 71
  3129. 1415 005c 7B68 ldr r3, [r7, #4]
  3130. 1416 005e 1B0E lsrs r3, r3, #24
  3131. 1417 .loc 1 664 13
  3132. 1418 0060 FB81 strh r3, [r7, #14] @ movhi
  3133. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 55
  3134. 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  3135. 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U);
  3136. 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES48TO63MASK */
  3137. 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3138. 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3139. 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3140. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3141. 1419 .loc 1 671 12
  3142. 1420 0062 4CF25030 movw r0, #50000
  3143. 1421 0066 FFF7FEFF bl FLASH_WaitForLastOperation
  3144. 1422 006a 0346 mov r3, r0
  3145. 1423 006c FB75 strb r3, [r7, #23]
  3146. 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3147. 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  3148. 1424 .loc 1 673 5
  3149. 1425 006e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  3150. 1426 0070 002B cmp r3, #0
  3151. 1427 0072 4ED1 bne .L81
  3152. 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3153. 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  3154. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  3155. 1428 .loc 1 676 22
  3156. 1429 0074 2A4B ldr r3, .L87+4
  3157. 1430 0076 0022 movs r2, #0
  3158. 1431 0078 DA61 str r2, [r3, #28]
  3159. 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3160. 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* To be able to write again option byte, need to perform a option byte erase */
  3161. 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = HAL_FLASHEx_OBErase();
  3162. 1432 .loc 1 679 14
  3163. 1433 007a FFF7FEFF bl HAL_FLASHEx_OBErase
  3164. 1434 007e 0346 mov r3, r0
  3165. 1435 0080 FB75 strb r3, [r7, #23]
  3166. 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  3167. 1436 .loc 1 680 8
  3168. 1437 0082 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  3169. 1438 0084 002B cmp r3, #0
  3170. 1439 0086 44D1 bne .L81
  3171. 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3172. 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3173. 1440 .loc 1 682 7
  3174. 1441 0088 264B ldr r3, .L87+8
  3175. 1442 008a 1B69 ldr r3, [r3, #16]
  3176. 1443 008c 254A ldr r2, .L87+8
  3177. 1444 008e 43F01003 orr r3, r3, #16
  3178. 1445 0092 1361 str r3, [r2, #16]
  3179. 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3180. 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP0_WRP0)
  3181. 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(WRP0_Data != 0xFFU)
  3182. 1446 .loc 1 685 9
  3183. 1447 0094 BB8A ldrh r3, [r7, #20]
  3184. 1448 0096 FF2B cmp r3, #255
  3185. 1449 0098 08D0 beq .L82
  3186. 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3187. 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP0 = WRP0_Data;
  3188. 1450 .loc 1 687 11
  3189. 1451 009a 234A ldr r2, .L87+12
  3190. 1452 .loc 1 687 18
  3191. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 56
  3192. 1453 009c BB8A ldrh r3, [r7, #20] @ movhi
  3193. 1454 009e 1381 strh r3, [r2, #8] @ movhi
  3194. 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3195. 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3196. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3197. 1455 .loc 1 690 18
  3198. 1456 00a0 4CF25030 movw r0, #50000
  3199. 1457 00a4 FFF7FEFF bl FLASH_WaitForLastOperation
  3200. 1458 00a8 0346 mov r3, r0
  3201. 1459 00aa FB75 strb r3, [r7, #23]
  3202. 1460 .L82:
  3203. 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3204. 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP0_WRP0 */
  3205. 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3206. 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  3207. 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP1_Data != 0xFFU))
  3208. 1461 .loc 1 695 9
  3209. 1462 00ac FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  3210. 1463 00ae 002B cmp r3, #0
  3211. 1464 00b0 0BD1 bne .L83
  3212. 1465 .loc 1 695 29 discriminator 1
  3213. 1466 00b2 7B8A ldrh r3, [r7, #18]
  3214. 1467 00b4 FF2B cmp r3, #255
  3215. 1468 00b6 08D0 beq .L83
  3216. 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3217. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP1 = WRP1_Data;
  3218. 1469 .loc 1 697 11
  3219. 1470 00b8 1B4A ldr r2, .L87+12
  3220. 1471 .loc 1 697 18
  3221. 1472 00ba 7B8A ldrh r3, [r7, #18] @ movhi
  3222. 1473 00bc 5381 strh r3, [r2, #10] @ movhi
  3223. 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3224. 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3225. 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3226. 1474 .loc 1 700 18
  3227. 1475 00be 4CF25030 movw r0, #50000
  3228. 1476 00c2 FFF7FEFF bl FLASH_WaitForLastOperation
  3229. 1477 00c6 0346 mov r3, r0
  3230. 1478 00c8 FB75 strb r3, [r7, #23]
  3231. 1479 .L83:
  3232. 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3233. 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  3234. 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3235. 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  3236. 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP2_Data != 0xFFU))
  3237. 1480 .loc 1 705 9
  3238. 1481 00ca FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  3239. 1482 00cc 002B cmp r3, #0
  3240. 1483 00ce 0BD1 bne .L84
  3241. 1484 .loc 1 705 29 discriminator 1
  3242. 1485 00d0 3B8A ldrh r3, [r7, #16]
  3243. 1486 00d2 FF2B cmp r3, #255
  3244. 1487 00d4 08D0 beq .L84
  3245. 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3246. 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP2 = WRP2_Data;
  3247. 1488 .loc 1 707 11
  3248. 1489 00d6 144A ldr r2, .L87+12
  3249. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 57
  3250. 1490 .loc 1 707 18
  3251. 1491 00d8 3B8A ldrh r3, [r7, #16] @ movhi
  3252. 1492 00da 9381 strh r3, [r2, #12] @ movhi
  3253. 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3254. 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3255. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3256. 1493 .loc 1 710 18
  3257. 1494 00dc 4CF25030 movw r0, #50000
  3258. 1495 00e0 FFF7FEFF bl FLASH_WaitForLastOperation
  3259. 1496 00e4 0346 mov r3, r0
  3260. 1497 00e6 FB75 strb r3, [r7, #23]
  3261. 1498 .L84:
  3262. 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3263. 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  3264. 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3265. 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  3266. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP3_Data != 0xFFU))
  3267. 1499 .loc 1 715 9
  3268. 1500 00e8 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  3269. 1501 00ea 002B cmp r3, #0
  3270. 1502 00ec 0BD1 bne .L85
  3271. 1503 .loc 1 715 29 discriminator 1
  3272. 1504 00ee FB89 ldrh r3, [r7, #14]
  3273. 1505 00f0 FF2B cmp r3, #255
  3274. 1506 00f2 08D0 beq .L85
  3275. 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3276. 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP3 = WRP3_Data;
  3277. 1507 .loc 1 717 11
  3278. 1508 00f4 0C4A ldr r2, .L87+12
  3279. 1509 .loc 1 717 18
  3280. 1510 00f6 FB89 ldrh r3, [r7, #14] @ movhi
  3281. 1511 00f8 D381 strh r3, [r2, #14] @ movhi
  3282. 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3283. 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3284. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3285. 1512 .loc 1 720 18
  3286. 1513 00fa 4CF25030 movw r0, #50000
  3287. 1514 00fe FFF7FEFF bl FLASH_WaitForLastOperation
  3288. 1515 0102 0346 mov r3, r0
  3289. 1516 0104 FB75 strb r3, [r7, #23]
  3290. 1517 .L85:
  3291. 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3292. 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  3293. 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3294. 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  3295. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3296. 1518 .loc 1 725 7
  3297. 1519 0106 074B ldr r3, .L87+8
  3298. 1520 0108 1B69 ldr r3, [r3, #16]
  3299. 1521 010a 064A ldr r2, .L87+8
  3300. 1522 010c 23F01003 bic r3, r3, #16
  3301. 1523 0110 1361 str r3, [r2, #16]
  3302. 1524 .L81:
  3303. 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3304. 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3305. 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  3306. 1525 .loc 1 728 10
  3307. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 58
  3308. 1526 0112 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  3309. 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3310. 1527 .loc 1 729 1
  3311. 1528 0114 1846 mov r0, r3
  3312. 1529 0116 1837 adds r7, r7, #24
  3313. 1530 .LCFI43:
  3314. 1531 .cfi_def_cfa_offset 8
  3315. 1532 0118 BD46 mov sp, r7
  3316. 1533 .LCFI44:
  3317. 1534 .cfi_def_cfa_register 13
  3318. 1535 @ sp needed
  3319. 1536 011a 80BD pop {r7, pc}
  3320. 1537 .L88:
  3321. 1538 .align 2
  3322. 1539 .L87:
  3323. 1540 011c 00000000 .word .LC0
  3324. 1541 0120 00000000 .word pFlash
  3325. 1542 0124 00200240 .word 1073881088
  3326. 1543 0128 00F8FF1F .word 536868864
  3327. 1544 .cfi_endproc
  3328. 1545 .LFE138:
  3329. 1547 .section .text.FLASH_OB_RDP_LevelConfig,"ax",%progbits
  3330. 1548 .align 1
  3331. 1549 .syntax unified
  3332. 1550 .thumb
  3333. 1551 .thumb_func
  3334. 1553 FLASH_OB_RDP_LevelConfig:
  3335. 1554 .LFB139:
  3336. 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3337. 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  3338. 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Set the read protection level.
  3339. 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param ReadProtectLevel specifies the read protection level.
  3340. 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be one of the following values:
  3341. 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection
  3342. 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory
  3343. 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_2 Full chip protection
  3344. 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note Warning: When enabling OB_RDP level 2 it's no more possible to go back to level 1 or 0
  3345. 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  3346. 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  3347. 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel)
  3348. 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3349. 1555 .loc 1 742 1
  3350. 1556 .cfi_startproc
  3351. 1557 @ args = 0, pretend = 0, frame = 16
  3352. 1558 @ frame_needed = 1, uses_anonymous_args = 0
  3353. 1559 0000 80B5 push {r7, lr}
  3354. 1560 .LCFI45:
  3355. 1561 .cfi_def_cfa_offset 8
  3356. 1562 .cfi_offset 7, -8
  3357. 1563 .cfi_offset 14, -4
  3358. 1564 0002 84B0 sub sp, sp, #16
  3359. 1565 .LCFI46:
  3360. 1566 .cfi_def_cfa_offset 24
  3361. 1567 0004 00AF add r7, sp, #0
  3362. 1568 .LCFI47:
  3363. 1569 .cfi_def_cfa_register 7
  3364. 1570 0006 0346 mov r3, r0
  3365. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 59
  3366. 1571 0008 FB71 strb r3, [r7, #7]
  3367. 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  3368. 1572 .loc 1 743 21
  3369. 1573 000a 0023 movs r3, #0
  3370. 1574 000c FB73 strb r3, [r7, #15]
  3371. 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3372. 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  3373. 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(ReadProtectLevel));
  3374. 1575 .loc 1 746 3
  3375. 1576 000e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3376. 1577 0010 AA2B cmp r3, #170
  3377. 1578 0012 07D0 beq .L90
  3378. 1579 .loc 1 746 3 is_stmt 0 discriminator 1
  3379. 1580 0014 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3380. 1581 0016 BB2B cmp r3, #187
  3381. 1582 0018 04D0 beq .L90
  3382. 1583 .loc 1 746 3 discriminator 2
  3383. 1584 001a 40F2EA21 movw r1, #746
  3384. 1585 001e 2248 ldr r0, .L93
  3385. 1586 0020 FFF7FEFF bl assert_failed
  3386. 1587 .L90:
  3387. 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3388. 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3389. 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3390. 1588 .loc 1 749 12 is_stmt 1
  3391. 1589 0024 4CF25030 movw r0, #50000
  3392. 1590 0028 FFF7FEFF bl FLASH_WaitForLastOperation
  3393. 1591 002c 0346 mov r3, r0
  3394. 1592 002e FB73 strb r3, [r7, #15]
  3395. 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3396. 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  3397. 1593 .loc 1 751 5
  3398. 1594 0030 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  3399. 1595 0032 002B cmp r3, #0
  3400. 1596 0034 33D1 bne .L91
  3401. 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3402. 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  3403. 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  3404. 1597 .loc 1 754 22
  3405. 1598 0036 1D4B ldr r3, .L93+4
  3406. 1599 0038 0022 movs r2, #0
  3407. 1600 003a DA61 str r2, [r3, #28]
  3408. 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3409. 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the option bytes */
  3410. 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTER);
  3411. 1601 .loc 1 757 5
  3412. 1602 003c 1C4B ldr r3, .L93+8
  3413. 1603 003e 1B69 ldr r3, [r3, #16]
  3414. 1604 0040 1B4A ldr r2, .L93+8
  3415. 1605 0042 43F02003 orr r3, r3, #32
  3416. 1606 0046 1361 str r3, [r2, #16]
  3417. 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  3418. 1607 .loc 1 758 5
  3419. 1608 0048 194B ldr r3, .L93+8
  3420. 1609 004a 1B69 ldr r3, [r3, #16]
  3421. 1610 004c 184A ldr r2, .L93+8
  3422. 1611 004e 43F04003 orr r3, r3, #64
  3423. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 60
  3424. 1612 0052 1361 str r3, [r2, #16]
  3425. 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3426. 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3427. 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3428. 1613 .loc 1 761 14
  3429. 1614 0054 4CF25030 movw r0, #50000
  3430. 1615 0058 FFF7FEFF bl FLASH_WaitForLastOperation
  3431. 1616 005c 0346 mov r3, r0
  3432. 1617 005e FB73 strb r3, [r7, #15]
  3433. 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3434. 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the OPTER Bit */
  3435. 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER);
  3436. 1618 .loc 1 764 5
  3437. 1619 0060 134B ldr r3, .L93+8
  3438. 1620 0062 1B69 ldr r3, [r3, #16]
  3439. 1621 0064 124A ldr r2, .L93+8
  3440. 1622 0066 23F02003 bic r3, r3, #32
  3441. 1623 006a 1361 str r3, [r2, #16]
  3442. 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3443. 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  3444. 1624 .loc 1 766 7
  3445. 1625 006c FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  3446. 1626 006e 002B cmp r3, #0
  3447. 1627 0070 15D1 bne .L91
  3448. 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3449. 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable the Option Bytes Programming operation */
  3450. 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3451. 1628 .loc 1 769 7
  3452. 1629 0072 0F4B ldr r3, .L93+8
  3453. 1630 0074 1B69 ldr r3, [r3, #16]
  3454. 1631 0076 0E4A ldr r2, .L93+8
  3455. 1632 0078 43F01003 orr r3, r3, #16
  3456. 1633 007c 1361 str r3, [r2, #16]
  3457. 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3458. 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(OB->RDP, ReadProtectLevel);
  3459. 1634 .loc 1 771 7
  3460. 1635 007e 0D4B ldr r3, .L93+12
  3461. 1636 0080 FA79 ldrb r2, [r7, #7] @ zero_extendqisi2
  3462. 1637 0082 92B2 uxth r2, r2
  3463. 1638 0084 1A80 strh r2, [r3] @ movhi
  3464. 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3465. 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3466. 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3467. 1639 .loc 1 774 16
  3468. 1640 0086 4CF25030 movw r0, #50000
  3469. 1641 008a FFF7FEFF bl FLASH_WaitForLastOperation
  3470. 1642 008e 0346 mov r3, r0
  3471. 1643 0090 FB73 strb r3, [r7, #15]
  3472. 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3473. 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  3474. 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3475. 1644 .loc 1 777 7
  3476. 1645 0092 074B ldr r3, .L93+8
  3477. 1646 0094 1B69 ldr r3, [r3, #16]
  3478. 1647 0096 064A ldr r2, .L93+8
  3479. 1648 0098 23F01003 bic r3, r3, #16
  3480. 1649 009c 1361 str r3, [r2, #16]
  3481. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 61
  3482. 1650 .L91:
  3483. 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3484. 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3485. 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3486. 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  3487. 1651 .loc 1 781 10
  3488. 1652 009e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  3489. 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3490. 1653 .loc 1 782 1
  3491. 1654 00a0 1846 mov r0, r3
  3492. 1655 00a2 1037 adds r7, r7, #16
  3493. 1656 .LCFI48:
  3494. 1657 .cfi_def_cfa_offset 8
  3495. 1658 00a4 BD46 mov sp, r7
  3496. 1659 .LCFI49:
  3497. 1660 .cfi_def_cfa_register 13
  3498. 1661 @ sp needed
  3499. 1662 00a6 80BD pop {r7, pc}
  3500. 1663 .L94:
  3501. 1664 .align 2
  3502. 1665 .L93:
  3503. 1666 00a8 00000000 .word .LC0
  3504. 1667 00ac 00000000 .word pFlash
  3505. 1668 00b0 00200240 .word 1073881088
  3506. 1669 00b4 00F8FF1F .word 536868864
  3507. 1670 .cfi_endproc
  3508. 1671 .LFE139:
  3509. 1673 .section .text.FLASH_OB_UserConfig,"ax",%progbits
  3510. 1674 .align 1
  3511. 1675 .syntax unified
  3512. 1676 .thumb
  3513. 1677 .thumb_func
  3514. 1679 FLASH_OB_UserConfig:
  3515. 1680 .LFB140:
  3516. 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3517. 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  3518. 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte.
  3519. 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note Programming of the OB should be performed only after an erase (otherwise PGERR occurs)
  3520. 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param UserConfig The FLASH User Option Bytes values: IWDG_SW(Bit0), RST_STOP(Bit1), RST_STDBY
  3521. 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * VDDA_Analog_Monitoring(Bit5) and SRAM_Parity_Enable(Bit6).
  3522. 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * And SDADC12_VDD_MONITOR(Bit7) for STM32F373 or STM32F378 .
  3523. 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  3524. 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  3525. 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig)
  3526. 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3527. 1681 .loc 1 793 1
  3528. 1682 .cfi_startproc
  3529. 1683 @ args = 0, pretend = 0, frame = 16
  3530. 1684 @ frame_needed = 1, uses_anonymous_args = 0
  3531. 1685 0000 80B5 push {r7, lr}
  3532. 1686 .LCFI50:
  3533. 1687 .cfi_def_cfa_offset 8
  3534. 1688 .cfi_offset 7, -8
  3535. 1689 .cfi_offset 14, -4
  3536. 1690 0002 84B0 sub sp, sp, #16
  3537. 1691 .LCFI51:
  3538. 1692 .cfi_def_cfa_offset 24
  3539. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 62
  3540. 1693 0004 00AF add r7, sp, #0
  3541. 1694 .LCFI52:
  3542. 1695 .cfi_def_cfa_register 7
  3543. 1696 0006 0346 mov r3, r0
  3544. 1697 0008 FB71 strb r3, [r7, #7]
  3545. 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  3546. 1698 .loc 1 794 21
  3547. 1699 000a 0023 movs r3, #0
  3548. 1700 000c FB73 strb r3, [r7, #15]
  3549. 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3550. 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  3551. 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG_SOURCE((UserConfig&OB_IWDG_SW)));
  3552. 1701 .loc 1 797 3
  3553. 1702 000e FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3554. 1703 0010 03F00103 and r3, r3, #1
  3555. 1704 0014 002B cmp r3, #0
  3556. 1705 0016 09D1 bne .L96
  3557. 1706 .loc 1 797 3 is_stmt 0 discriminator 1
  3558. 1707 0018 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3559. 1708 001a 03F00103 and r3, r3, #1
  3560. 1709 001e 002B cmp r3, #0
  3561. 1710 0020 04D0 beq .L96
  3562. 1711 .loc 1 797 3 discriminator 2
  3563. 1712 0022 40F21D31 movw r1, #797
  3564. 1713 0026 3C48 ldr r0, .L104
  3565. 1714 0028 FFF7FEFF bl assert_failed
  3566. 1715 .L96:
  3567. 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE((UserConfig&OB_STOP_NO_RST)));
  3568. 1716 .loc 1 798 3 is_stmt 1
  3569. 1717 002c FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3570. 1718 002e 03F00203 and r3, r3, #2
  3571. 1719 0032 002B cmp r3, #0
  3572. 1720 0034 09D1 bne .L97
  3573. 1721 .loc 1 798 3 is_stmt 0 discriminator 1
  3574. 1722 0036 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3575. 1723 0038 03F00203 and r3, r3, #2
  3576. 1724 003c 002B cmp r3, #0
  3577. 1725 003e 04D0 beq .L97
  3578. 1726 .loc 1 798 3 discriminator 2
  3579. 1727 0040 40F21E31 movw r1, #798
  3580. 1728 0044 3448 ldr r0, .L104
  3581. 1729 0046 FFF7FEFF bl assert_failed
  3582. 1730 .L97:
  3583. 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE((UserConfig&OB_STDBY_NO_RST)));
  3584. 1731 .loc 1 799 3 is_stmt 1
  3585. 1732 004a FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3586. 1733 004c 03F00403 and r3, r3, #4
  3587. 1734 0050 002B cmp r3, #0
  3588. 1735 0052 09D1 bne .L98
  3589. 1736 .loc 1 799 3 is_stmt 0 discriminator 1
  3590. 1737 0054 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3591. 1738 0056 03F00403 and r3, r3, #4
  3592. 1739 005a 002B cmp r3, #0
  3593. 1740 005c 04D0 beq .L98
  3594. 1741 .loc 1 799 3 discriminator 2
  3595. 1742 005e 40F21F31 movw r1, #799
  3596. 1743 0062 2D48 ldr r0, .L104
  3597. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 63
  3598. 1744 0064 FFF7FEFF bl assert_failed
  3599. 1745 .L98:
  3600. 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT1((UserConfig&OB_BOOT1_SET)));
  3601. 1746 .loc 1 800 3 is_stmt 1
  3602. 1747 0068 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3603. 1748 006a 03F01003 and r3, r3, #16
  3604. 1749 006e 002B cmp r3, #0
  3605. 1750 0070 09D0 beq .L99
  3606. 1751 .loc 1 800 3 is_stmt 0 discriminator 1
  3607. 1752 0072 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3608. 1753 0074 03F01003 and r3, r3, #16
  3609. 1754 0078 002B cmp r3, #0
  3610. 1755 007a 04D1 bne .L99
  3611. 1756 .loc 1 800 3 discriminator 2
  3612. 1757 007c 4FF44871 mov r1, #800
  3613. 1758 0080 2548 ldr r0, .L104
  3614. 1759 0082 FFF7FEFF bl assert_failed
  3615. 1760 .L99:
  3616. 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_VDDA_ANALOG((UserConfig&OB_VDDA_ANALOG_ON)));
  3617. 1761 .loc 1 801 3 is_stmt 1
  3618. 1762 0086 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3619. 1763 0088 03F02003 and r3, r3, #32
  3620. 1764 008c 002B cmp r3, #0
  3621. 1765 008e 09D1 bne .L100
  3622. 1766 .loc 1 801 3 is_stmt 0 discriminator 1
  3623. 1767 0090 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3624. 1768 0092 03F02003 and r3, r3, #32
  3625. 1769 0096 002B cmp r3, #0
  3626. 1770 0098 04D0 beq .L100
  3627. 1771 .loc 1 801 3 discriminator 2
  3628. 1772 009a 40F22131 movw r1, #801
  3629. 1773 009e 1E48 ldr r0, .L104
  3630. 1774 00a0 FFF7FEFF bl assert_failed
  3631. 1775 .L100:
  3632. 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_SRAM_PARITY((UserConfig&OB_SRAM_PARITY_RESET)));
  3633. 1776 .loc 1 802 3 is_stmt 1
  3634. 1777 00a4 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3635. 1778 00a6 03F04003 and r3, r3, #64
  3636. 1779 00aa 002B cmp r3, #0
  3637. 1780 00ac 09D0 beq .L101
  3638. 1781 .loc 1 802 3 is_stmt 0 discriminator 1
  3639. 1782 00ae FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  3640. 1783 00b0 03F04003 and r3, r3, #64
  3641. 1784 00b4 002B cmp r3, #0
  3642. 1785 00b6 04D1 bne .L101
  3643. 1786 .loc 1 802 3 discriminator 2
  3644. 1787 00b8 40F22231 movw r1, #802
  3645. 1788 00bc 1648 ldr r0, .L104
  3646. 1789 00be FFF7FEFF bl assert_failed
  3647. 1790 .L101:
  3648. 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_SDADC12_VDD_MONITOR)
  3649. 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_SDACD_VDD_MONITOR((UserConfig&OB_SDACD_VDD_MONITOR_SET)));
  3650. 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* FLASH_OBR_SDADC12_VDD_MONITOR */
  3651. 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3652. 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3653. 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3654. 1791 .loc 1 808 12 is_stmt 1
  3655. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 64
  3656. 1792 00c2 4CF25030 movw r0, #50000
  3657. 1793 00c6 FFF7FEFF bl FLASH_WaitForLastOperation
  3658. 1794 00ca 0346 mov r3, r0
  3659. 1795 00cc FB73 strb r3, [r7, #15]
  3660. 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3661. 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  3662. 1796 .loc 1 810 5
  3663. 1797 00ce FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  3664. 1798 00d0 002B cmp r3, #0
  3665. 1799 00d2 1BD1 bne .L102
  3666. 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3667. 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  3668. 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  3669. 1800 .loc 1 813 22
  3670. 1801 00d4 114B ldr r3, .L104+4
  3671. 1802 00d6 0022 movs r2, #0
  3672. 1803 00d8 DA61 str r2, [r3, #28]
  3673. 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3674. 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable the Option Bytes Programming operation */
  3675. 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3676. 1804 .loc 1 816 5
  3677. 1805 00da 114B ldr r3, .L104+8
  3678. 1806 00dc 1B69 ldr r3, [r3, #16]
  3679. 1807 00de 104A ldr r2, .L104+8
  3680. 1808 00e0 43F01003 orr r3, r3, #16
  3681. 1809 00e4 1361 str r3, [r2, #16]
  3682. 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3683. 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_SDADC12_VDD_MONITOR)
  3684. 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->USER = (UserConfig | 0x08U);
  3685. 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #else
  3686. 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->USER = (UserConfig | 0x88U);
  3687. 1810 .loc 1 821 14
  3688. 1811 00e6 FB79 ldrb r3, [r7, #7]
  3689. 1812 00e8 63F07703 orn r3, r3, #119
  3690. 1813 00ec DAB2 uxtb r2, r3
  3691. 1814 .loc 1 821 7
  3692. 1815 00ee 0D4B ldr r3, .L104+12
  3693. 1816 .loc 1 821 14
  3694. 1817 00f0 92B2 uxth r2, r2
  3695. 1818 00f2 5A80 strh r2, [r3, #2] @ movhi
  3696. 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif
  3697. 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3698. 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3699. 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3700. 1819 .loc 1 825 14
  3701. 1820 00f4 4CF25030 movw r0, #50000
  3702. 1821 00f8 FFF7FEFF bl FLASH_WaitForLastOperation
  3703. 1822 00fc 0346 mov r3, r0
  3704. 1823 00fe FB73 strb r3, [r7, #15]
  3705. 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3706. 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  3707. 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3708. 1824 .loc 1 828 5
  3709. 1825 0100 074B ldr r3, .L104+8
  3710. 1826 0102 1B69 ldr r3, [r3, #16]
  3711. 1827 0104 064A ldr r2, .L104+8
  3712. 1828 0106 23F01003 bic r3, r3, #16
  3713. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 65
  3714. 1829 010a 1361 str r3, [r2, #16]
  3715. 1830 .L102:
  3716. 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3717. 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3718. 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  3719. 1831 .loc 1 831 10
  3720. 1832 010c FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  3721. 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3722. 1833 .loc 1 832 1
  3723. 1834 010e 1846 mov r0, r3
  3724. 1835 0110 1037 adds r7, r7, #16
  3725. 1836 .LCFI53:
  3726. 1837 .cfi_def_cfa_offset 8
  3727. 1838 0112 BD46 mov sp, r7
  3728. 1839 .LCFI54:
  3729. 1840 .cfi_def_cfa_register 13
  3730. 1841 @ sp needed
  3731. 1842 0114 80BD pop {r7, pc}
  3732. 1843 .L105:
  3733. 1844 0116 00BF .align 2
  3734. 1845 .L104:
  3735. 1846 0118 00000000 .word .LC0
  3736. 1847 011c 00000000 .word pFlash
  3737. 1848 0120 00200240 .word 1073881088
  3738. 1849 0124 00F8FF1F .word 536868864
  3739. 1850 .cfi_endproc
  3740. 1851 .LFE140:
  3741. 1853 .section .text.FLASH_OB_ProgramData,"ax",%progbits
  3742. 1854 .align 1
  3743. 1855 .syntax unified
  3744. 1856 .thumb
  3745. 1857 .thumb_func
  3746. 1859 FLASH_OB_ProgramData:
  3747. 1860 .LFB141:
  3748. 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3749. 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  3750. 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Programs a half word at a specified Option Byte Data address.
  3751. 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interf
  3752. 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options b
  3753. 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of t
  3754. 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (system reset will occur)
  3755. 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * Programming of the OB should be performed only after an erase (otherwise PGERR occurs)
  3756. 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param Address specifies the address to be programmed.
  3757. 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be 0x1FFFF804 or 0x1FFFF806.
  3758. 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param Data specifies the data to be programmed.
  3759. 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  3760. 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  3761. 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data)
  3762. 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3763. 1861 .loc 1 847 1
  3764. 1862 .cfi_startproc
  3765. 1863 @ args = 0, pretend = 0, frame = 16
  3766. 1864 @ frame_needed = 1, uses_anonymous_args = 0
  3767. 1865 0000 80B5 push {r7, lr}
  3768. 1866 .LCFI55:
  3769. 1867 .cfi_def_cfa_offset 8
  3770. 1868 .cfi_offset 7, -8
  3771. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 66
  3772. 1869 .cfi_offset 14, -4
  3773. 1870 0002 84B0 sub sp, sp, #16
  3774. 1871 .LCFI56:
  3775. 1872 .cfi_def_cfa_offset 24
  3776. 1873 0004 00AF add r7, sp, #0
  3777. 1874 .LCFI57:
  3778. 1875 .cfi_def_cfa_register 7
  3779. 1876 0006 7860 str r0, [r7, #4]
  3780. 1877 0008 0B46 mov r3, r1
  3781. 1878 000a FB70 strb r3, [r7, #3]
  3782. 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  3783. 1879 .loc 1 848 21
  3784. 1880 000c 0123 movs r3, #1
  3785. 1881 000e FB73 strb r3, [r7, #15]
  3786. 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3787. 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  3788. 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_DATA_ADDRESS(Address));
  3789. 1882 .loc 1 851 3
  3790. 1883 0010 7B68 ldr r3, [r7, #4]
  3791. 1884 0012 194A ldr r2, .L110
  3792. 1885 0014 9342 cmp r3, r2
  3793. 1886 0016 08D0 beq .L107
  3794. 1887 .loc 1 851 3 is_stmt 0 discriminator 1
  3795. 1888 0018 7B68 ldr r3, [r7, #4]
  3796. 1889 001a 184A ldr r2, .L110+4
  3797. 1890 001c 9342 cmp r3, r2
  3798. 1891 001e 04D0 beq .L107
  3799. 1892 .loc 1 851 3 discriminator 2
  3800. 1893 0020 40F25331 movw r1, #851
  3801. 1894 0024 1648 ldr r0, .L110+8
  3802. 1895 0026 FFF7FEFF bl assert_failed
  3803. 1896 .L107:
  3804. 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3805. 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3806. 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3807. 1897 .loc 1 854 12 is_stmt 1
  3808. 1898 002a 4CF25030 movw r0, #50000
  3809. 1899 002e FFF7FEFF bl FLASH_WaitForLastOperation
  3810. 1900 0032 0346 mov r3, r0
  3811. 1901 0034 FB73 strb r3, [r7, #15]
  3812. 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3813. 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  3814. 1902 .loc 1 856 5
  3815. 1903 0036 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  3816. 1904 0038 002B cmp r3, #0
  3817. 1905 003a 18D1 bne .L108
  3818. 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3819. 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  3820. 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  3821. 1906 .loc 1 859 22
  3822. 1907 003c 114B ldr r3, .L110+12
  3823. 1908 003e 0022 movs r2, #0
  3824. 1909 0040 DA61 str r2, [r3, #28]
  3825. 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3826. 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enables the Option Bytes Programming operation */
  3827. 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3828. 1910 .loc 1 862 5
  3829. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 67
  3830. 1911 0042 114B ldr r3, .L110+16
  3831. 1912 0044 1B69 ldr r3, [r3, #16]
  3832. 1913 0046 104A ldr r2, .L110+16
  3833. 1914 0048 43F01003 orr r3, r3, #16
  3834. 1915 004c 1361 str r3, [r2, #16]
  3835. 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *(__IO uint16_t*)Address = Data;
  3836. 1916 .loc 1 863 6
  3837. 1917 004e 7B68 ldr r3, [r7, #4]
  3838. 1918 .loc 1 863 30
  3839. 1919 0050 FA78 ldrb r2, [r7, #3] @ zero_extendqisi2
  3840. 1920 0052 92B2 uxth r2, r2
  3841. 1921 0054 1A80 strh r2, [r3] @ movhi
  3842. 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3843. 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  3844. 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  3845. 1922 .loc 1 866 14
  3846. 1923 0056 4CF25030 movw r0, #50000
  3847. 1924 005a FFF7FEFF bl FLASH_WaitForLastOperation
  3848. 1925 005e 0346 mov r3, r0
  3849. 1926 0060 FB73 strb r3, [r7, #15]
  3850. 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3851. 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the program operation is completed, disable the OPTPG Bit */
  3852. 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  3853. 1927 .loc 1 869 5
  3854. 1928 0062 094B ldr r3, .L110+16
  3855. 1929 0064 1B69 ldr r3, [r3, #16]
  3856. 1930 0066 084A ldr r2, .L110+16
  3857. 1931 0068 23F01003 bic r3, r3, #16
  3858. 1932 006c 1361 str r3, [r2, #16]
  3859. 1933 .L108:
  3860. 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3861. 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the Option Byte Data Program Status */
  3862. 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  3863. 1934 .loc 1 872 10
  3864. 1935 006e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  3865. 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3866. 1936 .loc 1 873 1
  3867. 1937 0070 1846 mov r0, r3
  3868. 1938 0072 1037 adds r7, r7, #16
  3869. 1939 .LCFI58:
  3870. 1940 .cfi_def_cfa_offset 8
  3871. 1941 0074 BD46 mov sp, r7
  3872. 1942 .LCFI59:
  3873. 1943 .cfi_def_cfa_register 13
  3874. 1944 @ sp needed
  3875. 1945 0076 80BD pop {r7, pc}
  3876. 1946 .L111:
  3877. 1947 .align 2
  3878. 1948 .L110:
  3879. 1949 0078 04F8FF1F .word 536868868
  3880. 1950 007c 06F8FF1F .word 536868870
  3881. 1951 0080 00000000 .word .LC0
  3882. 1952 0084 00000000 .word pFlash
  3883. 1953 0088 00200240 .word 1073881088
  3884. 1954 .cfi_endproc
  3885. 1955 .LFE141:
  3886. 1957 .section .text.FLASH_OB_GetWRP,"ax",%progbits
  3887. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 68
  3888. 1958 .align 1
  3889. 1959 .syntax unified
  3890. 1960 .thumb
  3891. 1961 .thumb_func
  3892. 1963 FLASH_OB_GetWRP:
  3893. 1964 .LFB142:
  3894. 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3895. 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  3896. 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Return the FLASH Write Protection Option Bytes value.
  3897. 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval The FLASH Write Protection Option Bytes value
  3898. 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  3899. 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void)
  3900. 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3901. 1965 .loc 1 880 1
  3902. 1966 .cfi_startproc
  3903. 1967 @ args = 0, pretend = 0, frame = 0
  3904. 1968 @ frame_needed = 1, uses_anonymous_args = 0
  3905. 1969 @ link register save eliminated.
  3906. 1970 0000 80B4 push {r7}
  3907. 1971 .LCFI60:
  3908. 1972 .cfi_def_cfa_offset 4
  3909. 1973 .cfi_offset 7, -4
  3910. 1974 0002 00AF add r7, sp, #0
  3911. 1975 .LCFI61:
  3912. 1976 .cfi_def_cfa_register 7
  3913. 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the FLASH write protection Register value */
  3914. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return (uint32_t)(READ_REG(FLASH->WRPR));
  3915. 1977 .loc 1 882 21
  3916. 1978 0004 034B ldr r3, .L114
  3917. 1979 .loc 1 882 10
  3918. 1980 0006 1B6A ldr r3, [r3, #32]
  3919. 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3920. 1981 .loc 1 883 1
  3921. 1982 0008 1846 mov r0, r3
  3922. 1983 000a BD46 mov sp, r7
  3923. 1984 .LCFI62:
  3924. 1985 .cfi_def_cfa_register 13
  3925. 1986 @ sp needed
  3926. 1987 000c 5DF8047B ldr r7, [sp], #4
  3927. 1988 .LCFI63:
  3928. 1989 .cfi_restore 7
  3929. 1990 .cfi_def_cfa_offset 0
  3930. 1991 0010 7047 bx lr
  3931. 1992 .L115:
  3932. 1993 0012 00BF .align 2
  3933. 1994 .L114:
  3934. 1995 0014 00200240 .word 1073881088
  3935. 1996 .cfi_endproc
  3936. 1997 .LFE142:
  3937. 1999 .section .text.FLASH_OB_GetRDP,"ax",%progbits
  3938. 2000 .align 1
  3939. 2001 .syntax unified
  3940. 2002 .thumb
  3941. 2003 .thumb_func
  3942. 2005 FLASH_OB_GetRDP:
  3943. 2006 .LFB143:
  3944. 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3945. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 69
  3946. 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  3947. 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Returns the FLASH Read Protection level.
  3948. 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval FLASH RDP level
  3949. 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be one of the following values:
  3950. 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection
  3951. 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory
  3952. 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_2 Full chip protection
  3953. 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  3954. 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void)
  3955. 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3956. 2007 .loc 1 894 1
  3957. 2008 .cfi_startproc
  3958. 2009 @ args = 0, pretend = 0, frame = 8
  3959. 2010 @ frame_needed = 1, uses_anonymous_args = 0
  3960. 2011 @ link register save eliminated.
  3961. 2012 0000 80B4 push {r7}
  3962. 2013 .LCFI64:
  3963. 2014 .cfi_def_cfa_offset 4
  3964. 2015 .cfi_offset 7, -4
  3965. 2016 0002 83B0 sub sp, sp, #12
  3966. 2017 .LCFI65:
  3967. 2018 .cfi_def_cfa_offset 16
  3968. 2019 0004 00AF add r7, sp, #0
  3969. 2020 .LCFI66:
  3970. 2021 .cfi_def_cfa_register 7
  3971. 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t tmp_reg = 0U;
  3972. 2022 .loc 1 895 12
  3973. 2023 0006 0023 movs r3, #0
  3974. 2024 0008 7B60 str r3, [r7, #4]
  3975. 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3976. 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Read RDP level bits */
  3977. 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_RDPRT)
  3978. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** tmp_reg = READ_BIT(FLASH->OBR, FLASH_OBR_RDPRT);
  3979. 2025 .loc 1 899 13
  3980. 2026 000a 0B4B ldr r3, .L120
  3981. 2027 000c DB69 ldr r3, [r3, #28]
  3982. 2028 .loc 1 899 11
  3983. 2029 000e 03F00603 and r3, r3, #6
  3984. 2030 0012 7B60 str r3, [r7, #4]
  3985. 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  3986. 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** tmp_reg = READ_BIT(FLASH->OBR, (FLASH_OBR_LEVEL1_PROT | FLASH_OBR_LEVEL2_PROT));
  3987. 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* FLASH_OBR_RDPRT */
  3988. 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3989. 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_RDPRT)
  3990. 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (tmp_reg == FLASH_OBR_RDPRT_2)
  3991. 2031 .loc 1 905 6
  3992. 2032 0014 7B68 ldr r3, [r7, #4]
  3993. 2033 0016 062B cmp r3, #6
  3994. 2034 0018 01D1 bne .L117
  3995. 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  3996. 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (tmp_reg == FLASH_OBR_LEVEL2_PROT)
  3997. 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* FLASH_OBR_RDPRT */
  3998. 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3999. 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return OB_RDP_LEVEL_2;
  4000. 2035 .loc 1 910 12
  4001. 2036 001a CC23 movs r3, #204
  4002. 2037 001c 05E0 b .L118
  4003. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 70
  4004. 2038 .L117:
  4005. 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4006. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else if (tmp_reg == 0U)
  4007. 2039 .loc 1 912 11
  4008. 2040 001e 7B68 ldr r3, [r7, #4]
  4009. 2041 0020 002B cmp r3, #0
  4010. 2042 0022 01D1 bne .L119
  4011. 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  4012. 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return OB_RDP_LEVEL_0;
  4013. 2043 .loc 1 914 12
  4014. 2044 0024 AA23 movs r3, #170
  4015. 2045 0026 00E0 b .L118
  4016. 2046 .L119:
  4017. 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4018. 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  4019. 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  4020. 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return OB_RDP_LEVEL_1;
  4021. 2047 .loc 1 918 12
  4022. 2048 0028 BB23 movs r3, #187
  4023. 2049 .L118:
  4024. 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4025. 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4026. 2050 .loc 1 920 1
  4027. 2051 002a 1846 mov r0, r3
  4028. 2052 002c 0C37 adds r7, r7, #12
  4029. 2053 .LCFI67:
  4030. 2054 .cfi_def_cfa_offset 4
  4031. 2055 002e BD46 mov sp, r7
  4032. 2056 .LCFI68:
  4033. 2057 .cfi_def_cfa_register 13
  4034. 2058 @ sp needed
  4035. 2059 0030 5DF8047B ldr r7, [sp], #4
  4036. 2060 .LCFI69:
  4037. 2061 .cfi_restore 7
  4038. 2062 .cfi_def_cfa_offset 0
  4039. 2063 0034 7047 bx lr
  4040. 2064 .L121:
  4041. 2065 0036 00BF .align 2
  4042. 2066 .L120:
  4043. 2067 0038 00200240 .word 1073881088
  4044. 2068 .cfi_endproc
  4045. 2069 .LFE143:
  4046. 2071 .section .text.FLASH_OB_GetUser,"ax",%progbits
  4047. 2072 .align 1
  4048. 2073 .syntax unified
  4049. 2074 .thumb
  4050. 2075 .thumb_func
  4051. 2077 FLASH_OB_GetUser:
  4052. 2078 .LFB144:
  4053. 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4054. 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  4055. 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value.
  4056. 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval The FLASH User Option Bytes values: IWDG_SW(Bit0), RST_STOP(Bit1), RST_STDBY(Bit2), nB
  4057. 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * VDDA_Analog_Monitoring(Bit5) and SRAM_Parity_Enable(Bit6).
  4058. 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * And SDADC12_VDD_MONITOR(Bit7) for STM32F373 or STM32F378 .
  4059. 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  4060. 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void)
  4061. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 71
  4062. 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  4063. 2079 .loc 1 929 1
  4064. 2080 .cfi_startproc
  4065. 2081 @ args = 0, pretend = 0, frame = 8
  4066. 2082 @ frame_needed = 1, uses_anonymous_args = 0
  4067. 2083 @ link register save eliminated.
  4068. 2084 0000 80B4 push {r7}
  4069. 2085 .LCFI70:
  4070. 2086 .cfi_def_cfa_offset 4
  4071. 2087 .cfi_offset 7, -4
  4072. 2088 0002 83B0 sub sp, sp, #12
  4073. 2089 .LCFI71:
  4074. 2090 .cfi_def_cfa_offset 16
  4075. 2091 0004 00AF add r7, sp, #0
  4076. 2092 .LCFI72:
  4077. 2093 .cfi_def_cfa_register 7
  4078. 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the User Option Byte */
  4079. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return (uint8_t)((READ_REG(FLASH->OBR) & FLASH_OBR_USER) >> FLASH_POSITION_IWDGSW_BIT);
  4080. 2094 .loc 1 931 21
  4081. 2095 0006 0B4B ldr r3, .L125
  4082. 2096 0008 DB69 ldr r3, [r3, #28]
  4083. 2097 .loc 1 931 42
  4084. 2098 000a 03F4EE43 and r3, r3, #30464
  4085. 2099 000e 4FF48072 mov r2, #256
  4086. 2100 0012 7A60 str r2, [r7, #4]
  4087. 2101 .LBB12:
  4088. 2102 .LBB13:
  4089. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4090. 2103 .loc 2 988 4
  4091. 2104 0014 7A68 ldr r2, [r7, #4]
  4092. 2105 .syntax unified
  4093. 2106 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  4094. 2107 0016 92FAA2F2 rbit r2, r2
  4095. 2108 @ 0 "" 2
  4096. 2109 .thumb
  4097. 2110 .syntax unified
  4098. 2111 001a 3A60 str r2, [r7]
  4099. 2112 .loc 2 1001 10
  4100. 2113 001c 3A68 ldr r2, [r7]
  4101. 2114 .LBE13:
  4102. 2115 .LBE12:
  4103. 2116 .loc 1 931 63
  4104. 2117 001e B2FA82F2 clz r2, r2
  4105. 2118 0022 D2B2 uxtb r2, r2
  4106. 2119 .loc 1 931 60
  4107. 2120 0024 D340 lsrs r3, r3, r2
  4108. 2121 .loc 1 931 10
  4109. 2122 0026 DBB2 uxtb r3, r3
  4110. 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4111. 2123 .loc 1 932 1
  4112. 2124 0028 1846 mov r0, r3
  4113. 2125 002a 0C37 adds r7, r7, #12
  4114. 2126 .LCFI73:
  4115. 2127 .cfi_def_cfa_offset 4
  4116. 2128 002c BD46 mov sp, r7
  4117. 2129 .LCFI74:
  4118. 2130 .cfi_def_cfa_register 13
  4119. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 72
  4120. 2131 @ sp needed
  4121. 2132 002e 5DF8047B ldr r7, [sp], #4
  4122. 2133 .LCFI75:
  4123. 2134 .cfi_restore 7
  4124. 2135 .cfi_def_cfa_offset 0
  4125. 2136 0032 7047 bx lr
  4126. 2137 .L126:
  4127. 2138 .align 2
  4128. 2139 .L125:
  4129. 2140 0034 00200240 .word 1073881088
  4130. 2141 .cfi_endproc
  4131. 2142 .LFE144:
  4132. 2144 .section .text.FLASH_PageErase,"ax",%progbits
  4133. 2145 .align 1
  4134. 2146 .global FLASH_PageErase
  4135. 2147 .syntax unified
  4136. 2148 .thumb
  4137. 2149 .thumb_func
  4138. 2151 FLASH_PageErase:
  4139. 2152 .LFB145:
  4140. 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4141. 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  4142. 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  4143. 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  4144. 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4145. 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  4146. 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  4147. 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  4148. 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4149. 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH
  4150. 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  4151. 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  4152. 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4153. 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Functions
  4154. 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  4155. 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  4156. 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4157. 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  4158. 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory page
  4159. 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param PageAddress FLASH page to erase
  4160. 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
  4161. 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  4162. 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval None
  4163. 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  4164. 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress)
  4165. 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  4166. 2153 .loc 1 958 1
  4167. 2154 .cfi_startproc
  4168. 2155 @ args = 0, pretend = 0, frame = 8
  4169. 2156 @ frame_needed = 1, uses_anonymous_args = 0
  4170. 2157 @ link register save eliminated.
  4171. 2158 0000 80B4 push {r7}
  4172. 2159 .LCFI76:
  4173. 2160 .cfi_def_cfa_offset 4
  4174. 2161 .cfi_offset 7, -4
  4175. 2162 0002 83B0 sub sp, sp, #12
  4176. 2163 .LCFI77:
  4177. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 73
  4178. 2164 .cfi_def_cfa_offset 16
  4179. 2165 0004 00AF add r7, sp, #0
  4180. 2166 .LCFI78:
  4181. 2167 .cfi_def_cfa_register 7
  4182. 2168 0006 7860 str r0, [r7, #4]
  4183. 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  4184. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  4185. 2169 .loc 1 960 20
  4186. 2170 0008 0B4B ldr r3, .L128
  4187. 2171 000a 0022 movs r2, #0
  4188. 2172 000c DA61 str r2, [r3, #28]
  4189. 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4190. 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Proceed to erase the page */
  4191. 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER);
  4192. 2173 .loc 1 963 5
  4193. 2174 000e 0B4B ldr r3, .L128+4
  4194. 2175 0010 1B69 ldr r3, [r3, #16]
  4195. 2176 0012 0A4A ldr r2, .L128+4
  4196. 2177 0014 43F00203 orr r3, r3, #2
  4197. 2178 0018 1361 str r3, [r2, #16]
  4198. 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR, PageAddress);
  4199. 2179 .loc 1 964 5
  4200. 2180 001a 084A ldr r2, .L128+4
  4201. 2181 001c 7B68 ldr r3, [r7, #4]
  4202. 2182 001e 5361 str r3, [r2, #20]
  4203. 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  4204. 2183 .loc 1 965 5
  4205. 2184 0020 064B ldr r3, .L128+4
  4206. 2185 0022 1B69 ldr r3, [r3, #16]
  4207. 2186 0024 054A ldr r2, .L128+4
  4208. 2187 0026 43F04003 orr r3, r3, #64
  4209. 2188 002a 1361 str r3, [r2, #16]
  4210. 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4211. 2189 .loc 1 966 1
  4212. 2190 002c 00BF nop
  4213. 2191 002e 0C37 adds r7, r7, #12
  4214. 2192 .LCFI79:
  4215. 2193 .cfi_def_cfa_offset 4
  4216. 2194 0030 BD46 mov sp, r7
  4217. 2195 .LCFI80:
  4218. 2196 .cfi_def_cfa_register 13
  4219. 2197 @ sp needed
  4220. 2198 0032 5DF8047B ldr r7, [sp], #4
  4221. 2199 .LCFI81:
  4222. 2200 .cfi_restore 7
  4223. 2201 .cfi_def_cfa_offset 0
  4224. 2202 0036 7047 bx lr
  4225. 2203 .L129:
  4226. 2204 .align 2
  4227. 2205 .L128:
  4228. 2206 0038 00000000 .word pFlash
  4229. 2207 003c 00200240 .word 1073881088
  4230. 2208 .cfi_endproc
  4231. 2209 .LFE145:
  4232. 2211 .text
  4233. 2212 .Letext0:
  4234. 2213 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  4235. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 74
  4236. 2214 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  4237. 2215 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
  4238. 2216 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
  4239. 2217 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h"
  4240. 2218 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h"
  4241. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s page 75
  4242. DEFINED SYMBOLS
  4243. *ABS*:00000000 stm32f3xx_hal_flash_ex.c
  4244. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:20 .rodata:00000000 $d
  4245. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:25 .text.HAL_FLASHEx_Erase:00000000 $t
  4246. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:31 .text.HAL_FLASHEx_Erase:00000000 HAL_FLASHEx_Erase
  4247. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1060 .text.FLASH_MassErase:00000000 FLASH_MassErase
  4248. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2151 .text.FLASH_PageErase:00000000 FLASH_PageErase
  4249. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:304 .text.HAL_FLASHEx_Erase:0000019c $d
  4250. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:315 .text.HAL_FLASHEx_Erase_IT:00000000 $t
  4251. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:321 .text.HAL_FLASHEx_Erase_IT:00000000 HAL_FLASHEx_Erase_IT
  4252. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:547 .text.HAL_FLASHEx_Erase_IT:00000148 $d
  4253. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:558 .text.HAL_FLASHEx_OBErase:00000000 $t
  4254. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:564 .text.HAL_FLASHEx_OBErase:00000000 HAL_FLASHEx_OBErase
  4255. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2005 .text.FLASH_OB_GetRDP:00000000 FLASH_OB_GetRDP
  4256. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1553 .text.FLASH_OB_RDP_LevelConfig:00000000 FLASH_OB_RDP_LevelConfig
  4257. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:654 .text.HAL_FLASHEx_OBErase:0000007c $d
  4258. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:660 .text.HAL_FLASHEx_OBProgram:00000000 $t
  4259. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:666 .text.HAL_FLASHEx_OBProgram:00000000 HAL_FLASHEx_OBProgram
  4260. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1115 .text.FLASH_OB_EnableWRP:00000000 FLASH_OB_EnableWRP
  4261. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1343 .text.FLASH_OB_DisableWRP:00000000 FLASH_OB_DisableWRP
  4262. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1679 .text.FLASH_OB_UserConfig:00000000 FLASH_OB_UserConfig
  4263. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1859 .text.FLASH_OB_ProgramData:00000000 FLASH_OB_ProgramData
  4264. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:872 .text.HAL_FLASHEx_OBProgram:00000120 $d
  4265. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:878 .text.HAL_FLASHEx_OBGetConfig:00000000 $t
  4266. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:884 .text.HAL_FLASHEx_OBGetConfig:00000000 HAL_FLASHEx_OBGetConfig
  4267. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1963 .text.FLASH_OB_GetWRP:00000000 FLASH_OB_GetWRP
  4268. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2077 .text.FLASH_OB_GetUser:00000000 FLASH_OB_GetUser
  4269. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:940 .text.HAL_FLASHEx_OBGetUserData:00000000 $t
  4270. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:946 .text.HAL_FLASHEx_OBGetUserData:00000000 HAL_FLASHEx_OBGetUserData
  4271. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1049 .text.HAL_FLASHEx_OBGetUserData:00000068 $d
  4272. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1055 .text.FLASH_MassErase:00000000 $t
  4273. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1104 .text.FLASH_MassErase:0000002c $d
  4274. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1110 .text.FLASH_OB_EnableWRP:00000000 $t
  4275. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1330 .text.FLASH_OB_EnableWRP:00000148 $d
  4276. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1338 .text.FLASH_OB_DisableWRP:00000000 $t
  4277. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1540 .text.FLASH_OB_DisableWRP:0000011c $d
  4278. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1548 .text.FLASH_OB_RDP_LevelConfig:00000000 $t
  4279. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1666 .text.FLASH_OB_RDP_LevelConfig:000000a8 $d
  4280. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1674 .text.FLASH_OB_UserConfig:00000000 $t
  4281. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1846 .text.FLASH_OB_UserConfig:00000118 $d
  4282. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1854 .text.FLASH_OB_ProgramData:00000000 $t
  4283. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1949 .text.FLASH_OB_ProgramData:00000078 $d
  4284. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1958 .text.FLASH_OB_GetWRP:00000000 $t
  4285. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:1995 .text.FLASH_OB_GetWRP:00000014 $d
  4286. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2000 .text.FLASH_OB_GetRDP:00000000 $t
  4287. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2067 .text.FLASH_OB_GetRDP:00000038 $d
  4288. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2072 .text.FLASH_OB_GetUser:00000000 $t
  4289. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2140 .text.FLASH_OB_GetUser:00000034 $d
  4290. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2145 .text.FLASH_PageErase:00000000 $t
  4291. C:\Users\zl835\AppData\Local\Temp\ccATaoGR.s:2206 .text.FLASH_PageErase:00000038 $d
  4292. UNDEFINED SYMBOLS
  4293. assert_failed
  4294. FLASH_WaitForLastOperation
  4295. pFlash