stm32f3xx_hal_flash_ex.lst 292 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.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, 2
  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.FLASH_OB_RDP_LevelConfig.str1.4,"aMS",%progbits,1
  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.FLASH_OB_RDP_LevelConfig,"ax",%progbits
  31. 25 .align 1
  32. 26 .p2align 2,,3
  33. 27 .syntax unified
  34. 28 .thumb
  35. 29 .thumb_func
  36. 31 FLASH_OB_RDP_LevelConfig:
  37. 32 .LVL0:
  38. 33 .LFB139:
  39. 34 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c"
  40. 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  41. 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ******************************************************************************
  42. 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @file stm32f3xx_hal_flash_ex.c
  43. 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @author MCD Application Team
  44. 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Extended FLASH HAL module driver.
  45. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  46. 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This file provides firmware functions to manage the following
  47. 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * functionalities of the FLASH peripheral:
  48. 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * + Extended Initialization/de-initialization functions
  49. 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * + Extended I/O operation functions
  50. 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * + Extended Peripheral Control functions
  51. 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  52. 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @verbatim
  53. 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  54. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### Flash peripheral extended features #####
  55. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  56. 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  57. 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### How to use this driver #####
  58. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 2
  60. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..] This driver provides functions to configure and program the FLASH memory
  61. 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** of all STM32F3xxx devices. It includes
  62. 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  63. 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (++) Set/Reset the write protection
  64. 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (++) Program the user Option Bytes
  65. 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (++) Get the Read protection Level
  66. 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  67. 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @endverbatim
  68. 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ******************************************************************************
  69. 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @attention
  70. 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  71. 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * Copyright (c) 2016 STMicroelectronics.
  72. 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * All rights reserved.
  73. 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  74. 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
  75. 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * the root directory of this software component.
  76. 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
  77. 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ******************************************************************************
  78. 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  79. 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  80. 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/
  81. 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #include "stm32f3xx_hal.h"
  82. 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  83. 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup STM32F3xx_HAL_Driver
  84. 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  85. 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  86. 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED
  87. 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  88. 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH
  89. 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  90. 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  91. 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Variables
  92. 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  93. 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  94. 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Variables used for Erase pages under interruption*/
  95. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** extern FLASH_ProcessTypeDef pFlash;
  96. 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  97. 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  98. 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  99. 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  100. 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  101. 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  102. 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  103. 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  104. 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx FLASHEx
  105. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief FLASH HAL Extension module driver
  106. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  107. 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  108. 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  109. 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private typedef -----------------------------------------------------------*/
  110. 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/
  111. 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Constants FLASHEx Private Constants
  112. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  113. 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  114. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #define FLASH_POSITION_IWDGSW_BIT (uint32_t)POSITION_VAL(FLASH_OBR_IWDG_SW)
  115. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #define FLASH_POSITION_OB_USERDATA0_BIT (uint32_t)POSITION_VAL(FLASH_OBR_DATA0)
  116. 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #define FLASH_POSITION_OB_USERDATA1_BIT (uint32_t)POSITION_VAL(FLASH_OBR_DATA1)
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 3
  118. 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  119. 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  120. 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  121. 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  122. 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/
  123. 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Macros FLASHEx Private Macros
  124. 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  125. 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  126. 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  127. 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  128. 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  129. 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  130. 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/
  131. 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/
  132. 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions
  133. 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  134. 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  135. 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Erase operations */
  136. 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static void FLASH_MassErase(void);
  137. 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress);
  138. 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  139. 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Option bytes control */
  140. 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage);
  141. 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage);
  142. 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel);
  143. 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig);
  144. 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data);
  145. 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void);
  146. 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void);
  147. 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void);
  148. 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  149. 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  150. 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  151. 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  152. 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  153. 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Exported functions ---------------------------------------------------------*/
  154. 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions
  155. 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  156. 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  157. 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  158. 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 FLASHEx Memory Erasing functions
  159. 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief FLASH Memory Erasing functions
  160. 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  161. 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @verbatim
  162. 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  163. 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### FLASH Erasing Programming functions #####
  164. 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  165. 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  166. 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..] The FLASH Memory Erasing functions, includes the following functions:
  167. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (+) HAL_FLASHEx_Erase: return only when erase has been done
  168. 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (+) HAL_FLASHEx_Erase_IT: end of erase is done when HAL_FLASH_EndOfOperationCallback
  169. 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** is called with parameter 0xFFFFFFFF
  170. 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  171. 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..] Any operation of erase should follow these steps:
  172. 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (#) Call the HAL_FLASH_Unlock() function to enable the flash control register and
  173. 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** program memory access.
  174. 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (#) Call the desired function to erase page.
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 4
  176. 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (#) Call the HAL_FLASH_Lock() to disable the flash program memory access
  177. 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** (recommended to protect the FLASH memory against possible unwanted operation).
  178. 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  179. 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @endverbatim
  180. 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  181. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  182. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  183. 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  184. 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  185. 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages
  186. 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
  187. 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * must be called before.
  188. 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
  189. 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation)
  190. 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
  191. 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
  192. 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  193. 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param[out] PageError pointer to variable that
  194. 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information on faulty page in case of error
  195. 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (0xFFFFFFFF means that all the pages have been correctly erased)
  196. 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  197. 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
  198. 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  199. 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError)
  200. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  201. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  202. 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t address = 0U;
  203. 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  204. 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Locked */
  205. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
  206. 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  207. 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  208. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
  209. 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  210. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
  211. 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  212. 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Mass Erase requested for Bank1 */
  213. 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  214. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)
  215. 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  216. 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Mass erase to be done*/
  217. 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_MassErase();
  218. 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  219. 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  220. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  221. 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  222. 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER Bit */
  223. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER);
  224. 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  225. 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  226. 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  227. 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  228. 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Page Erase is requested */
  229. 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  230. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress));
  231. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  232. 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 5
  234. 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Page Erase requested on address located on bank1 */
  235. 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  236. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)
  237. 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  238. 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Initialization of PageError variable*/
  239. 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *PageError = 0xFFFFFFFFU;
  240. 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  241. 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Erase page by page to be done*/
  242. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** for(address = pEraseInit->PageAddress;
  243. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
  244. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  245. 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  246. 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_PageErase(address);
  247. 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  248. 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  249. 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  250. 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  251. 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the PER Bit */
  252. 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
  253. 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  254. 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  255. 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  256. 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty address */
  257. 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *PageError = address;
  258. 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** break;
  259. 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  260. 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  261. 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  262. 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  263. 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  264. 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  265. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  266. 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  267. 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  268. 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  269. 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  270. 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  271. 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
  272. 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
  273. 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * must be called before.
  274. 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
  275. 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation)
  276. 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
  277. 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
  278. 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  279. 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
  280. 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  281. 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)
  282. 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  283. 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  284. 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  285. 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Locked */
  286. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
  287. 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  288. 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If procedure already ongoing, reject the next one */
  289. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pFlash.ProcedureOnGoing != FLASH_PROC_NONE)
  290. 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 6
  292. 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return HAL_ERROR;
  293. 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  294. 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  295. 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  296. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
  297. 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  298. 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable End of FLASH Operation and Error source interrupts */
  299. 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
  300. 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  301. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
  302. 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  303. 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Mass erase to be done*/
  304. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE;
  305. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_MassErase();
  306. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  307. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  308. 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  309. 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Erase by page to be done*/
  310. 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  311. 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  312. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress));
  313. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  314. 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  315. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PAGEERASE;
  316. 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.DataRemaining = pEraseInit->NbPages;
  317. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress;
  318. 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  319. 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Erase 1st page and wait for IT*/
  320. 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_PageErase(pEraseInit->PageAddress);
  321. 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  322. 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  323. 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  324. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  325. 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  326. 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  327. 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  328. 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  329. 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  330. 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group2 Option Bytes Programming functions
  331. 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Option Bytes Programming functions
  332. 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  333. 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @verbatim
  334. 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  335. 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ##### Option Bytes Programming functions #####
  336. 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** ==============================================================================
  337. 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** [..]
  338. 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** This subsection provides a set of functions allowing to control the FLASH
  339. 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** option bytes operations.
  340. 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  341. 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** @endverbatim
  342. 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  343. 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  344. 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  345. 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  346. 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Erases the FLASH option bytes.
  347. 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note This functions erases all option bytes except the Read protection (RDP).
  348. 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
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 7
  350. 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
  351. 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
  352. 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (system reset will occur)
  353. 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  354. 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  355. 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  356. 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBErase(void)
  357. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  358. 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint8_t rdptmp = OB_RDP_LEVEL_0;
  359. 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  360. 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  361. 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get the actual read protection Option Byte value */
  362. 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** rdptmp = FLASH_OB_GetRDP();
  363. 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  364. 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  365. 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  366. 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  367. 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  368. 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  369. 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  370. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  371. 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  372. 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the option bytes */
  373. 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTER);
  374. 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  375. 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  376. 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  377. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  378. 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  379. 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the OPTER Bit */
  380. 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER);
  381. 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  382. 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  383. 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  384. 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Restore the last read protection Option Byte value */
  385. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_RDP_LevelConfig(rdptmp);
  386. 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  387. 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  388. 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  389. 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the erase status */
  390. 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  391. 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  392. 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  393. 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  394. 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Program option bytes
  395. 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
  396. 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
  397. 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
  398. 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (system reset will occur)
  399. 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  400. 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
  401. 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the programming.
  402. 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  403. 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
  404. 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  405. 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit)
  406. 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 8
  408. 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  409. 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  410. 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Locked */
  411. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
  412. 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  413. 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  414. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType));
  415. 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  416. 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Write protection configuration */
  417. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP)
  418. 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  419. 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_WRPSTATE(pOBInit->WRPState));
  420. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE)
  421. 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  422. 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable of Write protection on the selected page */
  423. 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_EnableWRP(pOBInit->WRPPage);
  424. 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  425. 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  426. 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  427. 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Disable of Write protection on the selected page */
  428. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_DisableWRP(pOBInit->WRPPage);
  429. 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  430. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  431. 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  432. 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  433. 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  434. 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  435. 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  436. 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  437. 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  438. 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Read protection configuration */
  439. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_RDP) == OPTIONBYTE_RDP)
  440. 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  441. 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_RDP_LevelConfig(pOBInit->RDPLevel);
  442. 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  443. 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  444. 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  445. 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  446. 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  447. 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  448. 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  449. 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  450. 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* USER configuration */
  451. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_USER) == OPTIONBYTE_USER)
  452. 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  453. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_UserConfig(pOBInit->USERConfig);
  454. 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  455. 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  456. 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  457. 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  458. 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  459. 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  460. 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  461. 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  462. 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* DATA configuration*/
  463. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_DATA) == OPTIONBYTE_DATA)
  464. 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 9
  466. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_OB_ProgramData(pOBInit->DATAAddress, pOBInit->DATAData);
  467. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  468. 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  469. 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  470. 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  471. 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  472. 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  473. 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  474. 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  475. 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Process Unlocked */
  476. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
  477. 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  478. 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  479. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  480. 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  481. 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  482. 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Get the Option byte configuration
  483. 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
  484. 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * contains the configuration information for the programming.
  485. 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  486. 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval None
  487. 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  488. 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
  489. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  490. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER;
  491. 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  492. 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Get WRP*/
  493. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->WRPPage = FLASH_OB_GetWRP();
  494. 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  495. 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Get RDP Level*/
  496. 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP();
  497. 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  498. 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /*Get USER*/
  499. 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser();
  500. 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  501. 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  502. 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  503. 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Get the Option byte user data
  504. 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param DATAAdress Address of the option byte DATA
  505. 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be one of the following values:
  506. 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_DATA_ADDRESS_DATA0
  507. 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_DATA_ADDRESS_DATA1
  508. 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval Value programmed in USER data
  509. 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  510. 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t HAL_FLASHEx_OBGetUserData(uint32_t DATAAdress)
  511. 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  512. 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t value = 0U;
  513. 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  514. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (DATAAdress == OB_DATA_ADDRESS_DATA0)
  515. 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  516. 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get value programmed in OB USER Data0 */
  517. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA0) >> FLASH_POSITION_OB_USERDATA0_BIT;
  518. 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  519. 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  520. 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  521. 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get value programmed in OB USER Data1 */
  522. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA1) >> FLASH_POSITION_OB_USERDATA1_BIT;
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 10
  524. 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  525. 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  526. 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return value;
  527. 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  528. 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  529. 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  530. 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  531. 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  532. 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  533. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  534. 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  535. 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  536. 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  537. 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions
  538. 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  539. 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  540. 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  541. 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  542. 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Full erase of FLASH memory Bank
  543. 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  544. 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval None
  545. 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  546. 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static void FLASH_MassErase(void)
  547. 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  548. 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  549. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  550. 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  551. 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Only bank1 will be erased*/
  552. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER);
  553. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  554. 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  555. 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  556. 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  557. 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Enable the write protection of the desired pages
  558. 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note An option byte erase is done automatically in this function.
  559. 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
  560. 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * it is not possible to program or erase the flash page i if
  561. 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
  562. 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  563. 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param WriteProtectPage specifies the page(s) to be write protected.
  564. 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
  565. 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  566. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  567. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage)
  568. 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  569. 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  570. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFFU;
  571. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  572. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP1_Data = 0xFFFFU;
  573. 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  574. 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  575. 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP2_Data = 0xFFFFU;
  576. 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  577. 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  578. 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP3_Data = 0xFFFFU;
  579. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  580. 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 11
  582. 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  583. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_WRP(WriteProtectPage));
  584. 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  585. 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get current write protected pages and the new pages to be protected ******/
  586. 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WriteProtectPage = (uint32_t)(~((~FLASH_OB_GetWRP()) | WriteProtectPage));
  587. 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  588. 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES0TO15MASK)
  589. 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK);
  590. 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  591. 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  592. 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES16TO31MASK)
  593. 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U);
  594. 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  595. 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  596. 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES32TO47MASK)
  597. 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U);
  598. 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  599. 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  600. 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES48TO127MASK)
  601. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U);
  602. 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  603. 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U);
  604. 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES48TO63MASK */
  605. 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  606. 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  607. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  608. 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  609. 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  610. 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  611. 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  612. 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  613. 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  614. 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 */
  615. 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = HAL_FLASHEx_OBErase();
  616. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  617. 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  618. 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable write protection */
  619. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  620. 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  621. 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP0_WRP0)
  622. 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(WRP0_Data != 0xFFU)
  623. 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  624. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP0 &= WRP0_Data;
  625. 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  626. 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  627. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  628. 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  629. 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP0_WRP0 */
  630. 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  631. 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  632. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP1_Data != 0xFFU))
  633. 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  634. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP1 &= WRP1_Data;
  635. 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  636. 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  637. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  638. 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 12
  640. 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  641. 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  642. 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  643. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP2_Data != 0xFFU))
  644. 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  645. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP2 &= WRP2_Data;
  646. 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  647. 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  648. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  649. 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  650. 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  651. 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  652. 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  653. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP3_Data != 0xFFU))
  654. 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  655. 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP3 &= WRP3_Data;
  656. 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  657. 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  658. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  659. 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  660. 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  661. 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  662. 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  663. 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  664. 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  665. 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  666. 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  667. 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  668. 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  669. 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  670. 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  671. 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Disable the write protection of the desired pages
  672. 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note An option byte erase is done automatically in this function.
  673. 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
  674. 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * it is not possible to program or erase the flash page i if
  675. 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
  676. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  677. 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param WriteProtectPage specifies the page(s) to be write unprotected.
  678. 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
  679. 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  680. 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  681. 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage)
  682. 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  683. 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  684. 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFFU;
  685. 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  686. 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP1_Data = 0xFFFFU;
  687. 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  688. 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  689. 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP2_Data = 0xFFFFU;
  690. 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  691. 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  692. 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP3_Data = 0xFFFFU;
  693. 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  694. 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  695. 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  696. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_WRP(WriteProtectPage));
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 13
  698. 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  699. 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Get current write protected pages and the new pages to be unprotected ******/
  700. 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WriteProtectPage = (FLASH_OB_GetWRP() | WriteProtectPage);
  701. 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  702. 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES0TO15MASK)
  703. 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK);
  704. 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  705. 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  706. 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES16TO31MASK)
  707. 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U);
  708. 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  709. 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  710. 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES32TO47MASK)
  711. 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U);
  712. 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  713. 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  714. 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES48TO127MASK)
  715. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U);
  716. 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  717. 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U);
  718. 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES48TO63MASK */
  719. 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  720. 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  721. 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  722. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  723. 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  724. 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  725. 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  726. 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  727. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  728. 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  729. 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 */
  730. 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = HAL_FLASHEx_OBErase();
  731. 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  732. 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  733. 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  734. 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  735. 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP0_WRP0)
  736. 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(WRP0_Data != 0xFFU)
  737. 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  738. 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP0 = WRP0_Data;
  739. 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  740. 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  741. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  742. 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  743. 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP0_WRP0 */
  744. 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  745. 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  746. 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP1_Data != 0xFFU))
  747. 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  748. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP1 = WRP1_Data;
  749. 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  750. 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  751. 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  752. 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  753. 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  754. 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 14
  756. 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP2_WRP2)
  757. 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP2_Data != 0xFFU))
  758. 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  759. 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP2 = WRP2_Data;
  760. 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  761. 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  762. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  763. 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  764. 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  765. 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  766. 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP3_WRP3)
  767. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP3_Data != 0xFFU))
  768. 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  769. 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->WRP3 = WRP3_Data;
  770. 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  771. 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  772. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  773. 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  774. 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  775. 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  776. 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  777. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  778. 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  779. 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  780. 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  781. 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  782. 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  783. 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  784. 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Set the read protection level.
  785. 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param ReadProtectLevel specifies the read protection level.
  786. 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be one of the following values:
  787. 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection
  788. 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory
  789. 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_2 Full chip protection
  790. 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
  791. 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  792. 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  793. 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel)
  794. 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  795. 35 .loc 1 742 1 view -0
  796. 36 .cfi_startproc
  797. 37 @ args = 0, pretend = 0, frame = 0
  798. 38 @ frame_needed = 0, uses_anonymous_args = 0
  799. 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  800. 39 .loc 1 743 3 view .LVU1
  801. 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  802. 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  803. 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(ReadProtectLevel));
  804. 40 .loc 1 746 3 view .LVU2
  805. 41 0000 AA28 cmp r0, #170
  806. 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  807. 42 .loc 1 742 1 is_stmt 0 view .LVU3
  808. 43 0002 38B5 push {r3, r4, r5, lr}
  809. 44 .LCFI0:
  810. 45 .cfi_def_cfa_offset 16
  811. 46 .cfi_offset 3, -16
  812. 47 .cfi_offset 4, -12
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 15
  814. 48 .cfi_offset 5, -8
  815. 49 .cfi_offset 14, -4
  816. 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  817. 50 .loc 1 742 1 view .LVU4
  818. 51 0004 0446 mov r4, r0
  819. 52 .loc 1 746 3 view .LVU5
  820. 53 0006 01D0 beq .L2
  821. 54 .loc 1 746 3 discriminator 1 view .LVU6
  822. 55 0008 BB28 cmp r0, #187
  823. 56 000a 2AD1 bne .L12
  824. 57 .L2:
  825. 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  826. 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  827. 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  828. 58 .loc 1 749 3 is_stmt 1 view .LVU7
  829. 59 .loc 1 749 12 is_stmt 0 view .LVU8
  830. 60 000c 4CF25030 movw r0, #50000
  831. 61 .LVL1:
  832. 62 .loc 1 749 12 view .LVU9
  833. 63 0010 FFF7FEFF bl FLASH_WaitForLastOperation
  834. 64 .LVL2:
  835. 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  836. 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  837. 65 .loc 1 751 3 is_stmt 1 view .LVU10
  838. 66 .loc 1 751 5 is_stmt 0 view .LVU11
  839. 67 0014 00B1 cbz r0, .L13
  840. 68 .LVL3:
  841. 69 .L3:
  842. 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  843. 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  844. 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  845. 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  846. 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the option bytes */
  847. 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTER);
  848. 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  849. 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  850. 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  851. 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  852. 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  853. 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the OPTER Bit */
  854. 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER);
  855. 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  856. 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  857. 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  858. 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable the Option Bytes Programming operation */
  859. 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  860. 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  861. 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(OB->RDP, ReadProtectLevel);
  862. 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  863. 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  864. 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  865. 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  866. 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  867. 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  868. 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  869. 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  870. 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 16
  872. 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  873. 70 .loc 1 781 3 is_stmt 1 view .LVU12
  874. 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  875. 71 .loc 1 782 1 is_stmt 0 view .LVU13
  876. 72 0016 38BD pop {r3, r4, r5, pc}
  877. 73 .L13:
  878. 74 .LVL4:
  879. 75 .LBB32:
  880. 76 .LBI32:
  881. 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  882. 77 .loc 1 741 26 is_stmt 1 view .LVU14
  883. 78 .LBB33:
  884. 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  885. 79 .loc 1 754 5 view .LVU15
  886. 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  887. 80 .loc 1 754 22 is_stmt 0 view .LVU16
  888. 81 0018 184B ldr r3, .L14
  889. 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  890. 82 .loc 1 757 5 view .LVU17
  891. 83 001a 194D ldr r5, .L14+4
  892. 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  893. 84 .loc 1 754 22 view .LVU18
  894. 85 001c D861 str r0, [r3, #28]
  895. 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  896. 86 .loc 1 757 5 is_stmt 1 view .LVU19
  897. 87 001e 2B69 ldr r3, [r5, #16]
  898. 88 0020 43F02003 orr r3, r3, #32
  899. 89 0024 2B61 str r3, [r5, #16]
  900. 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  901. 90 .loc 1 758 5 view .LVU20
  902. 91 0026 2B69 ldr r3, [r5, #16]
  903. 92 0028 43F04003 orr r3, r3, #64
  904. 93 002c 2B61 str r3, [r5, #16]
  905. 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  906. 94 .loc 1 761 5 view .LVU21
  907. 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  908. 95 .loc 1 761 14 is_stmt 0 view .LVU22
  909. 96 002e 4CF25030 movw r0, #50000
  910. 97 .LVL5:
  911. 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  912. 98 .loc 1 761 14 view .LVU23
  913. 99 0032 FFF7FEFF bl FLASH_WaitForLastOperation
  914. 100 .LVL6:
  915. 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  916. 101 .loc 1 764 5 is_stmt 1 view .LVU24
  917. 102 0036 2B69 ldr r3, [r5, #16]
  918. 103 0038 23F02003 bic r3, r3, #32
  919. 104 003c 2B61 str r3, [r5, #16]
  920. 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  921. 105 .loc 1 766 5 view .LVU25
  922. 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  923. 106 .loc 1 766 7 is_stmt 0 view .LVU26
  924. 107 003e 0028 cmp r0, #0
  925. 108 0040 E9D1 bne .L3
  926. 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  927. 109 .loc 1 769 7 is_stmt 1 view .LVU27
  928. 110 0042 2B69 ldr r3, [r5, #16]
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 17
  930. 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  931. 111 .loc 1 771 7 is_stmt 0 view .LVU28
  932. 112 0044 0F4A ldr r2, .L14+8
  933. 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  934. 113 .loc 1 769 7 view .LVU29
  935. 114 0046 43F01003 orr r3, r3, #16
  936. 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  937. 115 .loc 1 771 7 view .LVU30
  938. 116 004a A4B2 uxth r4, r4
  939. 117 .LVL7:
  940. 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  941. 118 .loc 1 769 7 view .LVU31
  942. 119 004c 2B61 str r3, [r5, #16]
  943. 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  944. 120 .loc 1 771 7 is_stmt 1 view .LVU32
  945. 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  946. 121 .loc 1 774 16 is_stmt 0 view .LVU33
  947. 122 004e 4CF25030 movw r0, #50000
  948. 123 .LVL8:
  949. 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  950. 124 .loc 1 771 7 view .LVU34
  951. 125 0052 1480 strh r4, [r2] @ movhi
  952. 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  953. 126 .loc 1 774 7 is_stmt 1 view .LVU35
  954. 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  955. 127 .loc 1 774 16 is_stmt 0 view .LVU36
  956. 128 0054 FFF7FEFF bl FLASH_WaitForLastOperation
  957. 129 .LVL9:
  958. 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  959. 130 .loc 1 777 7 view .LVU37
  960. 131 0058 2B69 ldr r3, [r5, #16]
  961. 132 .LVL10:
  962. 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  963. 133 .loc 1 777 7 is_stmt 1 view .LVU38
  964. 134 005a 23F01003 bic r3, r3, #16
  965. 135 005e 2B61 str r3, [r5, #16]
  966. 136 .LVL11:
  967. 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  968. 137 .loc 1 777 7 is_stmt 0 view .LVU39
  969. 138 .LBE33:
  970. 139 .LBE32:
  971. 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  972. 140 .loc 1 781 3 is_stmt 1 view .LVU40
  973. 141 .loc 1 782 1 is_stmt 0 view .LVU41
  974. 142 0060 38BD pop {r3, r4, r5, pc}
  975. 143 .LVL12:
  976. 144 .L12:
  977. 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  978. 145 .loc 1 746 3 discriminator 2 view .LVU42
  979. 146 0062 0948 ldr r0, .L14+12
  980. 147 .LVL13:
  981. 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  982. 148 .loc 1 746 3 discriminator 2 view .LVU43
  983. 149 0064 40F2EA21 movw r1, #746
  984. 150 0068 FFF7FEFF bl assert_failed
  985. 151 .LVL14:
  986. 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 18
  988. 152 .loc 1 749 3 is_stmt 1 discriminator 2 view .LVU44
  989. 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  990. 153 .loc 1 749 12 is_stmt 0 discriminator 2 view .LVU45
  991. 154 006c 4CF25030 movw r0, #50000
  992. 155 0070 FFF7FEFF bl FLASH_WaitForLastOperation
  993. 156 .LVL15:
  994. 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  995. 157 .loc 1 751 3 is_stmt 1 discriminator 2 view .LVU46
  996. 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  997. 158 .loc 1 751 5 is_stmt 0 discriminator 2 view .LVU47
  998. 159 0074 0028 cmp r0, #0
  999. 160 0076 CED1 bne .L3
  1000. 161 0078 CEE7 b .L13
  1001. 162 .L15:
  1002. 163 007a 00BF .align 2
  1003. 164 .L14:
  1004. 165 007c 00000000 .word pFlash
  1005. 166 0080 00200240 .word 1073881088
  1006. 167 0084 00F8FF1F .word 536868864
  1007. 168 0088 00000000 .word .LC0
  1008. 169 .cfi_endproc
  1009. 170 .LFE139:
  1010. 172 .section .text.HAL_FLASHEx_Erase,"ax",%progbits
  1011. 173 .align 1
  1012. 174 .p2align 2,,3
  1013. 175 .global HAL_FLASHEx_Erase
  1014. 176 .syntax unified
  1015. 177 .thumb
  1016. 178 .thumb_func
  1017. 180 HAL_FLASHEx_Erase:
  1018. 181 .LVL16:
  1019. 182 .LFB130:
  1020. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  1021. 183 .loc 1 158 1 is_stmt 1 view -0
  1022. 184 .cfi_startproc
  1023. 185 @ args = 0, pretend = 0, frame = 0
  1024. 186 @ frame_needed = 0, uses_anonymous_args = 0
  1025. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t address = 0U;
  1026. 187 .loc 1 159 3 view .LVU49
  1027. 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1028. 188 .loc 1 160 3 view .LVU50
  1029. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1030. 189 .loc 1 163 3 view .LVU51
  1031. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1032. 190 .loc 1 163 3 view .LVU52
  1033. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  1034. 191 .loc 1 158 1 is_stmt 0 view .LVU53
  1035. 192 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
  1036. 193 .LCFI1:
  1037. 194 .cfi_def_cfa_offset 32
  1038. 195 .cfi_offset 3, -32
  1039. 196 .cfi_offset 4, -28
  1040. 197 .cfi_offset 5, -24
  1041. 198 .cfi_offset 6, -20
  1042. 199 .cfi_offset 7, -16
  1043. 200 .cfi_offset 8, -12
  1044. 201 .cfi_offset 9, -8
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 19
  1046. 202 .cfi_offset 14, -4
  1047. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1048. 203 .loc 1 163 3 view .LVU54
  1049. 204 0004 554E ldr r6, .L43
  1050. 205 0006 337E ldrb r3, [r6, #24] @ zero_extendqisi2
  1051. 206 0008 012B cmp r3, #1
  1052. 207 000a 00F0A380 beq .L36
  1053. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1054. 208 .loc 1 163 3 discriminator 2 view .LVU55
  1055. 209 000e 0123 movs r3, #1
  1056. 210 0010 3376 strb r3, [r6, #24]
  1057. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1058. 211 .loc 1 166 3 discriminator 2 view .LVU56
  1059. 212 0012 0368 ldr r3, [r0]
  1060. 213 0014 012B cmp r3, #1
  1061. 214 0016 8146 mov r9, r0
  1062. 215 0018 8846 mov r8, r1
  1063. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1064. 216 .loc 1 163 3 is_stmt 1 discriminator 2 view .LVU57
  1065. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1066. 217 .loc 1 163 3 discriminator 2 view .LVU58
  1067. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1068. 218 .loc 1 166 3 discriminator 2 view .LVU59
  1069. 219 001a 05D9 bls .L18
  1070. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1071. 220 .loc 1 166 3 is_stmt 0 discriminator 1 view .LVU60
  1072. 221 001c 5048 ldr r0, .L43+4
  1073. 222 .LVL17:
  1074. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1075. 223 .loc 1 166 3 discriminator 1 view .LVU61
  1076. 224 001e A621 movs r1, #166
  1077. 225 .LVL18:
  1078. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1079. 226 .loc 1 166 3 discriminator 1 view .LVU62
  1080. 227 0020 FFF7FEFF bl assert_failed
  1081. 228 .LVL19:
  1082. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1083. 229 .loc 1 168 17 discriminator 1 view .LVU63
  1084. 230 0024 D9F80030 ldr r3, [r9]
  1085. 231 .L18:
  1086. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1087. 232 .loc 1 168 3 is_stmt 1 view .LVU64
  1088. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1089. 233 .loc 1 168 6 is_stmt 0 view .LVU65
  1090. 234 0028 012B cmp r3, #1
  1091. 235 002a 6BD0 beq .L39
  1092. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1093. 236 .loc 1 188 5 is_stmt 1 view .LVU66
  1094. 237 002c D9F80430 ldr r3, [r9, #4]
  1095. 238 0030 B3F1006F cmp r3, #134217728
  1096. 239 0034 0AD3 bcc .L22
  1097. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1098. 240 .loc 1 188 5 is_stmt 0 discriminator 2 view .LVU67
  1099. 241 0036 4B4A ldr r2, .L43+8
  1100. 242 0038 B2F8CC20 ldrh r2, [r2, #204]
  1101. 243 003c B2F5807F cmp r2, #256
  1102. 244 0040 50D0 beq .L40
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 20
  1104. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1105. 245 .loc 1 188 5 discriminator 4 view .LVU68
  1106. 246 0042 802A cmp r2, #128
  1107. 247 0044 7AD0 beq .L41
  1108. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1109. 248 .loc 1 188 5 discriminator 7 view .LVU69
  1110. 249 0046 484A ldr r2, .L43+12
  1111. 250 0048 9342 cmp r3, r2
  1112. 251 004a 0DD9 bls .L27
  1113. 252 .L22:
  1114. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1115. 253 .loc 1 188 5 discriminator 9 view .LVU70
  1116. 254 004c 4448 ldr r0, .L43+4
  1117. 255 004e BC21 movs r1, #188
  1118. 256 0050 FFF7FEFF bl assert_failed
  1119. 257 .LVL20:
  1120. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1121. 258 .loc 1 189 5 is_stmt 1 discriminator 9 view .LVU71
  1122. 259 0054 434B ldr r3, .L43+8
  1123. 260 0056 B3F8CC30 ldrh r3, [r3, #204]
  1124. 261 005a B3F5807F cmp r3, #256
  1125. 262 005e 6AD0 beq .L42
  1126. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1127. 263 .loc 1 189 5 is_stmt 0 discriminator 2 view .LVU72
  1128. 264 0060 802B cmp r3, #128
  1129. 265 0062 D9F80430 ldr r3, [r9, #4]
  1130. 266 0066 6CD0 beq .L26
  1131. 267 .L27:
  1132. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1133. 268 .loc 1 189 5 discriminator 5 view .LVU73
  1134. 269 0068 D9F80820 ldr r2, [r9, #8]
  1135. 270 006c 03EBC223 add r3, r3, r2, lsl #11
  1136. 271 0070 3D4A ldr r2, .L43+12
  1137. 272 0072 013B subs r3, r3, #1
  1138. 273 0074 9342 cmp r3, r2
  1139. 274 0076 40D8 bhi .L32
  1140. 275 .L30:
  1141. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1142. 276 .loc 1 193 7 is_stmt 1 view .LVU74
  1143. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1144. 277 .loc 1 193 11 is_stmt 0 view .LVU75
  1145. 278 0078 4CF25030 movw r0, #50000
  1146. 279 007c FFF7FEFF bl FLASH_WaitForLastOperation
  1147. 280 .LVL21:
  1148. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1149. 281 .loc 1 193 10 view .LVU76
  1150. 282 0080 0746 mov r7, r0
  1151. 283 0082 68BB cbnz r0, .L33
  1152. 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1153. 284 .loc 1 196 9 is_stmt 1 view .LVU77
  1154. 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1155. 285 .loc 1 196 20 is_stmt 0 view .LVU78
  1156. 286 0084 4FF0FF33 mov r3, #-1
  1157. 287 0088 C8F80030 str r3, [r8]
  1158. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
  1159. 288 .loc 1 199 9 is_stmt 1 view .LVU79
  1160. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 21
  1162. 289 .loc 1 200 45 is_stmt 0 view .LVU80
  1163. 290 008c D9E90153 ldrd r5, r3, [r9, #4]
  1164. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  1165. 291 .loc 1 200 64 view .LVU81
  1166. 292 0090 05EBC323 add r3, r5, r3, lsl #11
  1167. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
  1168. 293 .loc 1 199 9 view .LVU82
  1169. 294 0094 9D42 cmp r5, r3
  1170. 295 0096 23D2 bcs .L33
  1171. 296 .LBB34:
  1172. 297 .LBB35:
  1173. 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1174. 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1175. 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte.
  1176. 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)
  1177. 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
  1178. 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * VDDA_Analog_Monitoring(Bit5) and SRAM_Parity_Enable(Bit6).
  1179. 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * And SDADC12_VDD_MONITOR(Bit7) for STM32F373 or STM32F378 .
  1180. 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  1181. 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1182. 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig)
  1183. 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1184. 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  1185. 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1186. 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  1187. 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG_SOURCE((UserConfig&OB_IWDG_SW)));
  1188. 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE((UserConfig&OB_STOP_NO_RST)));
  1189. 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE((UserConfig&OB_STDBY_NO_RST)));
  1190. 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT1((UserConfig&OB_BOOT1_SET)));
  1191. 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_VDDA_ANALOG((UserConfig&OB_VDDA_ANALOG_ON)));
  1192. 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_SRAM_PARITY((UserConfig&OB_SRAM_PARITY_RESET)));
  1193. 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_SDADC12_VDD_MONITOR)
  1194. 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_SDACD_VDD_MONITOR((UserConfig&OB_SDACD_VDD_MONITOR_SET)));
  1195. 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* FLASH_OBR_SDADC12_VDD_MONITOR */
  1196. 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1197. 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  1198. 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  1199. 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1200. 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  1201. 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1202. 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  1203. 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  1204. 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1205. 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enable the Option Bytes Programming operation */
  1206. 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  1207. 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1208. 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_SDADC12_VDD_MONITOR)
  1209. 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->USER = (UserConfig | 0x08U);
  1210. 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #else
  1211. 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** OB->USER = (UserConfig | 0x88U);
  1212. 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif
  1213. 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1214. 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  1215. 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  1216. 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1217. 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */
  1218. 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 22
  1220. 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1221. 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1222. 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1223. 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1224. 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1225. 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1226. 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Programs a half word at a specified Option Byte Data address.
  1227. 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
  1228. 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
  1229. 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
  1230. 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * (system reset will occur)
  1231. 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)
  1232. 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param Address specifies the address to be programmed.
  1233. 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be 0x1FFFF804 or 0x1FFFF806.
  1234. 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param Data specifies the data to be programmed.
  1235. 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval HAL status
  1236. 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1237. 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data)
  1238. 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1239. 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  1240. 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1241. 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Check the parameters */
  1242. 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_DATA_ADDRESS(Address));
  1243. 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1244. 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  1245. 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  1246. 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1247. 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if(status == HAL_OK)
  1248. 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1249. 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  1250. 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  1251. 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1252. 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Enables the Option Bytes Programming operation */
  1253. 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG);
  1254. 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *(__IO uint16_t*)Address = Data;
  1255. 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1256. 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
  1257. 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  1258. 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1259. 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* If the program operation is completed, disable the OPTPG Bit */
  1260. 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG);
  1261. 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1262. 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the Option Byte Data Program Status */
  1263. 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return status;
  1264. 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1265. 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1266. 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1267. 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Return the FLASH Write Protection Option Bytes value.
  1268. 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval The FLASH Write Protection Option Bytes value
  1269. 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1270. 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void)
  1271. 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1272. 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the FLASH write protection Register value */
  1273. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return (uint32_t)(READ_REG(FLASH->WRPR));
  1274. 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1275. 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1276. 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 23
  1278. 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Returns the FLASH Read Protection level.
  1279. 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval FLASH RDP level
  1280. 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * This parameter can be one of the following values:
  1281. 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection
  1282. 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory
  1283. 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_2 Full chip protection
  1284. 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1285. 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void)
  1286. 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1287. 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t tmp_reg = 0U;
  1288. 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1289. 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Read RDP level bits */
  1290. 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_RDPRT)
  1291. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** tmp_reg = READ_BIT(FLASH->OBR, FLASH_OBR_RDPRT);
  1292. 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  1293. 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));
  1294. 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* FLASH_OBR_RDPRT */
  1295. 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1296. 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_RDPRT)
  1297. 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (tmp_reg == FLASH_OBR_RDPRT_2)
  1298. 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  1299. 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (tmp_reg == FLASH_OBR_LEVEL2_PROT)
  1300. 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* FLASH_OBR_RDPRT */
  1301. 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1302. 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return OB_RDP_LEVEL_2;
  1303. 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1304. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else if (tmp_reg == 0U)
  1305. 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1306. 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return OB_RDP_LEVEL_0;
  1307. 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1308. 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** else
  1309. 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1310. 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** return OB_RDP_LEVEL_1;
  1311. 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1312. 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1313. 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1314. 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1315. 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value.
  1316. 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
  1317. 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * VDDA_Analog_Monitoring(Bit5) and SRAM_Parity_Enable(Bit6).
  1318. 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * And SDADC12_VDD_MONITOR(Bit7) for STM32F373 or STM32F378 .
  1319. 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1320. 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void)
  1321. 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1322. 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Return the User Option Byte */
  1323. 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);
  1324. 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1325. 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1326. 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1327. 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  1328. 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1329. 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1330. 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1331. 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @}
  1332. 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1333. 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1334. 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 24
  1336. 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  1337. 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1338. 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1339. 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Functions
  1340. 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @{
  1341. 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1342. 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1343. 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /**
  1344. 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory page
  1345. 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @param PageAddress FLASH page to erase
  1346. 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
  1347. 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *
  1348. 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** * @retval None
  1349. 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** */
  1350. 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress)
  1351. 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1352. 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  1353. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  1354. 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1355. 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Proceed to erase the page */
  1356. 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER);
  1357. 298 .loc 1 963 5 view .LVU83
  1358. 299 0098 344C ldr r4, .L43+16
  1359. 300 009a 07E0 b .L35
  1360. 301 .LVL22:
  1361. 302 .L34:
  1362. 303 .loc 1 963 5 view .LVU84
  1363. 304 .LBE35:
  1364. 305 .LBE34:
  1365. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  1366. 306 .loc 1 200 64 view .LVU85
  1367. 307 009c D9E90132 ldrd r3, r2, [r9, #4]
  1368. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1369. 308 .loc 1 201 21 view .LVU86
  1370. 309 00a0 05F50065 add r5, r5, #2048
  1371. 310 .LVL23:
  1372. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  1373. 311 .loc 1 200 13 is_stmt 1 view .LVU87
  1374. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
  1375. 312 .loc 1 200 64 is_stmt 0 view .LVU88
  1376. 313 00a4 03EBC223 add r3, r3, r2, lsl #11
  1377. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
  1378. 314 .loc 1 199 9 view .LVU89
  1379. 315 00a8 AB42 cmp r3, r5
  1380. 316 00aa 15D9 bls .L21
  1381. 317 .LVL24:
  1382. 318 .L35:
  1383. 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1384. 319 .loc 1 203 11 is_stmt 1 view .LVU90
  1385. 320 .LBB37:
  1386. 321 .LBI34:
  1387. 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1388. 322 .loc 1 957 6 view .LVU91
  1389. 323 .LBB36:
  1390. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1391. 324 .loc 1 960 3 view .LVU92
  1392. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 25
  1394. 325 .loc 1 960 20 is_stmt 0 view .LVU93
  1395. 326 00ac F761 str r7, [r6, #28]
  1396. 327 .loc 1 963 5 is_stmt 1 view .LVU94
  1397. 328 00ae 2369 ldr r3, [r4, #16]
  1398. 329 00b0 43F00203 orr r3, r3, #2
  1399. 330 00b4 2361 str r3, [r4, #16]
  1400. 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR, PageAddress);
  1401. 331 .loc 1 964 5 view .LVU95
  1402. 332 00b6 6561 str r5, [r4, #20]
  1403. 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  1404. 333 .loc 1 965 5 view .LVU96
  1405. 334 00b8 2369 ldr r3, [r4, #16]
  1406. 335 00ba 43F04003 orr r3, r3, #64
  1407. 336 00be 2361 str r3, [r4, #16]
  1408. 337 .LVL25:
  1409. 338 .loc 1 965 5 is_stmt 0 view .LVU97
  1410. 339 .LBE36:
  1411. 340 .LBE37:
  1412. 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1413. 341 .loc 1 206 11 is_stmt 1 view .LVU98
  1414. 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1415. 342 .loc 1 206 20 is_stmt 0 view .LVU99
  1416. 343 00c0 4CF25030 movw r0, #50000
  1417. 344 00c4 FFF7FEFF bl FLASH_WaitForLastOperation
  1418. 345 .LVL26:
  1419. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1420. 346 .loc 1 201 13 is_stmt 1 view .LVU100
  1421. 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1422. 347 .loc 1 209 11 view .LVU101
  1423. 348 00c8 2369 ldr r3, [r4, #16]
  1424. 349 00ca 23F00203 bic r3, r3, #2
  1425. 350 00ce 2361 str r3, [r4, #16]
  1426. 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1427. 351 .loc 1 211 11 view .LVU102
  1428. 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1429. 352 .loc 1 211 14 is_stmt 0 view .LVU103
  1430. 353 00d0 0028 cmp r0, #0
  1431. 354 00d2 E3D0 beq .L34
  1432. 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** break;
  1433. 355 .loc 1 214 13 is_stmt 1 view .LVU104
  1434. 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** break;
  1435. 356 .loc 1 214 24 is_stmt 0 view .LVU105
  1436. 357 00d4 C8F80050 str r5, [r8]
  1437. 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1438. 358 .loc 1 215 13 is_stmt 1 view .LVU106
  1439. 359 .LVL27:
  1440. 360 .L21:
  1441. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1442. 361 .loc 1 222 3 view .LVU107
  1443. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1444. 362 .loc 1 222 3 view .LVU108
  1445. 363 00d8 0023 movs r3, #0
  1446. 364 00da 3376 strb r3, [r6, #24]
  1447. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1448. 365 .loc 1 222 3 view .LVU109
  1449. 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1450. 366 .loc 1 224 3 view .LVU110
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 26
  1452. 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1453. 367 .loc 1 225 1 is_stmt 0 view .LVU111
  1454. 368 00dc BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  1455. 369 .LVL28:
  1456. 370 .L33:
  1457. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t address = 0U;
  1458. 371 .loc 1 159 21 view .LVU112
  1459. 372 00e0 0120 movs r0, #1
  1460. 373 00e2 F9E7 b .L21
  1461. 374 .L40:
  1462. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1463. 375 .loc 1 188 5 discriminator 3 view .LVU113
  1464. 376 00e4 224A ldr r2, .L43+20
  1465. 377 00e6 9342 cmp r3, r2
  1466. 378 00e8 B0D8 bhi .L22
  1467. 379 .L24:
  1468. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1469. 380 .loc 1 189 5 discriminator 1 view .LVU114
  1470. 381 00ea D9F80820 ldr r2, [r9, #8]
  1471. 382 00ee 03EBC223 add r3, r3, r2, lsl #11
  1472. 383 00f2 1F4A ldr r2, .L43+20
  1473. 384 00f4 013B subs r3, r3, #1
  1474. 385 00f6 9342 cmp r3, r2
  1475. 386 00f8 BED9 bls .L30
  1476. 387 .L32:
  1477. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1478. 388 .loc 1 189 5 view .LVU115
  1479. 389 00fa 1948 ldr r0, .L43+4
  1480. 390 00fc BD21 movs r1, #189
  1481. 391 00fe FFF7FEFF bl assert_failed
  1482. 392 .LVL29:
  1483. 393 0102 B9E7 b .L30
  1484. 394 .L39:
  1485. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1486. 395 .loc 1 172 7 is_stmt 1 view .LVU116
  1487. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1488. 396 .loc 1 172 11 is_stmt 0 view .LVU117
  1489. 397 0104 4CF25030 movw r0, #50000
  1490. 398 0108 FFF7FEFF bl FLASH_WaitForLastOperation
  1491. 399 .LVL30:
  1492. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1493. 400 .loc 1 172 10 view .LVU118
  1494. 401 010c 0028 cmp r0, #0
  1495. 402 010e E7D1 bne .L33
  1496. 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1497. 403 .loc 1 175 9 is_stmt 1 view .LVU119
  1498. 404 .LBB38:
  1499. 405 .LBI38:
  1500. 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1501. 406 .loc 1 498 13 view .LVU120
  1502. 407 .LBB39:
  1503. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1504. 408 .loc 1 501 3 view .LVU121
  1505. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  1506. 409 .loc 1 504 5 is_stmt 0 view .LVU122
  1507. 410 0110 164C ldr r4, .L43+16
  1508. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 27
  1510. 411 .loc 1 501 20 view .LVU123
  1511. 412 0112 F061 str r0, [r6, #28]
  1512. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  1513. 413 .loc 1 504 5 is_stmt 1 view .LVU124
  1514. 414 0114 2369 ldr r3, [r4, #16]
  1515. 415 0116 43F00403 orr r3, r3, #4
  1516. 416 011a 2361 str r3, [r4, #16]
  1517. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1518. 417 .loc 1 505 5 view .LVU125
  1519. 418 011c 2369 ldr r3, [r4, #16]
  1520. 419 011e 43F04003 orr r3, r3, #64
  1521. 420 0122 2361 str r3, [r4, #16]
  1522. 421 .LBE39:
  1523. 422 .LBE38:
  1524. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1525. 423 .loc 1 178 9 view .LVU126
  1526. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1527. 424 .loc 1 178 18 is_stmt 0 view .LVU127
  1528. 425 0124 4CF25030 movw r0, #50000
  1529. 426 0128 FFF7FEFF bl FLASH_WaitForLastOperation
  1530. 427 .LVL31:
  1531. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1532. 428 .loc 1 181 9 view .LVU128
  1533. 429 012c 2369 ldr r3, [r4, #16]
  1534. 430 .LVL32:
  1535. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1536. 431 .loc 1 181 9 is_stmt 1 view .LVU129
  1537. 432 012e 23F00403 bic r3, r3, #4
  1538. 433 0132 2361 str r3, [r4, #16]
  1539. 434 0134 D0E7 b .L21
  1540. 435 .LVL33:
  1541. 436 .L42:
  1542. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1543. 437 .loc 1 189 5 is_stmt 0 view .LVU130
  1544. 438 0136 D9F80430 ldr r3, [r9, #4]
  1545. 439 013a D6E7 b .L24
  1546. 440 .L41:
  1547. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1548. 441 .loc 1 188 5 discriminator 6 view .LVU131
  1549. 442 013c 0D4A ldr r2, .L43+24
  1550. 443 013e 9342 cmp r3, r2
  1551. 444 0140 84D8 bhi .L22
  1552. 445 .L26:
  1553. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1554. 446 .loc 1 189 5 discriminator 4 view .LVU132
  1555. 447 0142 D9F80820 ldr r2, [r9, #8]
  1556. 448 0146 03EBC223 add r3, r3, r2, lsl #11
  1557. 449 014a 0A4A ldr r2, .L43+24
  1558. 450 014c 013B subs r3, r3, #1
  1559. 451 014e 9342 cmp r3, r2
  1560. 452 0150 92D9 bls .L30
  1561. 453 0152 D2E7 b .L32
  1562. 454 .LVL34:
  1563. 455 .L36:
  1564. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1565. 456 .loc 1 163 3 view .LVU133
  1566. 457 0154 0220 movs r0, #2
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 28
  1568. 458 .LVL35:
  1569. 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1570. 459 .loc 1 225 1 view .LVU134
  1571. 460 0156 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  1572. 461 .L44:
  1573. 462 015a 00BF .align 2
  1574. 463 .L43:
  1575. 464 015c 00000000 .word pFlash
  1576. 465 0160 00000000 .word .LC0
  1577. 466 0164 00F7FF1F .word 536868608
  1578. 467 0168 FFFF0008 .word 134283263
  1579. 468 016c 00200240 .word 1073881088
  1580. 469 0170 FFFF0308 .word 134479871
  1581. 470 0174 FFFF0108 .word 134348799
  1582. 471 .cfi_endproc
  1583. 472 .LFE130:
  1584. 474 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits
  1585. 475 .align 1
  1586. 476 .p2align 2,,3
  1587. 477 .global HAL_FLASHEx_Erase_IT
  1588. 478 .syntax unified
  1589. 479 .thumb
  1590. 480 .thumb_func
  1591. 482 HAL_FLASHEx_Erase_IT:
  1592. 483 .LVL36:
  1593. 484 .LFB131:
  1594. 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  1595. 485 .loc 1 239 1 is_stmt 1 view -0
  1596. 486 .cfi_startproc
  1597. 487 @ args = 0, pretend = 0, frame = 0
  1598. 488 @ frame_needed = 0, uses_anonymous_args = 0
  1599. 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1600. 489 .loc 1 240 3 view .LVU136
  1601. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1602. 490 .loc 1 243 3 view .LVU137
  1603. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1604. 491 .loc 1 243 3 view .LVU138
  1605. 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  1606. 492 .loc 1 239 1 is_stmt 0 view .LVU139
  1607. 493 0000 70B5 push {r4, r5, r6, lr}
  1608. 494 .LCFI2:
  1609. 495 .cfi_def_cfa_offset 16
  1610. 496 .cfi_offset 4, -16
  1611. 497 .cfi_offset 5, -12
  1612. 498 .cfi_offset 6, -8
  1613. 499 .cfi_offset 14, -4
  1614. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1615. 500 .loc 1 243 3 view .LVU140
  1616. 501 0002 424C ldr r4, .L67
  1617. 502 0004 237E ldrb r3, [r4, #24] @ zero_extendqisi2
  1618. 503 0006 012B cmp r3, #1
  1619. 504 0008 79D0 beq .L59
  1620. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1621. 505 .loc 1 243 3 is_stmt 1 discriminator 2 view .LVU141
  1622. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1623. 506 .loc 1 246 13 is_stmt 0 discriminator 2 view .LVU142
  1624. 507 000a 2378 ldrb r3, [r4] @ zero_extendqisi2
  1625. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 29
  1626. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1627. 508 .loc 1 243 3 discriminator 2 view .LVU143
  1628. 509 000c 0122 movs r2, #1
  1629. 510 000e 2276 strb r2, [r4, #24]
  1630. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1631. 511 .loc 1 243 3 is_stmt 1 discriminator 2 view .LVU144
  1632. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1633. 512 .loc 1 246 3 discriminator 2 view .LVU145
  1634. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1635. 513 .loc 1 246 6 is_stmt 0 discriminator 2 view .LVU146
  1636. 514 0010 03F0FF06 and r6, r3, #255
  1637. 515 0014 002B cmp r3, #0
  1638. 516 0016 38D1 bne .L60
  1639. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1640. 517 .loc 1 252 3 view .LVU147
  1641. 518 0018 0168 ldr r1, [r0]
  1642. 519 001a 9142 cmp r1, r2
  1643. 520 001c 0546 mov r5, r0
  1644. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1645. 521 .loc 1 252 3 is_stmt 1 view .LVU148
  1646. 522 001e 2ED8 bhi .L62
  1647. 523 .LVL37:
  1648. 524 .L47:
  1649. 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1650. 525 .loc 1 255 3 view .LVU149
  1651. 526 0020 3B4B ldr r3, .L67+4
  1652. 527 0022 1A69 ldr r2, [r3, #16]
  1653. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1654. 528 .loc 1 257 6 is_stmt 0 view .LVU150
  1655. 529 0024 0129 cmp r1, #1
  1656. 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1657. 530 .loc 1 255 3 view .LVU151
  1658. 531 0026 42F4A052 orr r2, r2, #5120
  1659. 532 002a 1A61 str r2, [r3, #16]
  1660. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1661. 533 .loc 1 257 3 is_stmt 1 view .LVU152
  1662. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1663. 534 .loc 1 257 6 is_stmt 0 view .LVU153
  1664. 535 002c 50D0 beq .L63
  1665. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1666. 536 .loc 1 268 5 is_stmt 1 view .LVU154
  1667. 537 002e 6B68 ldr r3, [r5, #4]
  1668. 538 0030 B3F1006F cmp r3, #134217728
  1669. 539 0034 2FD3 bcc .L49
  1670. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1671. 540 .loc 1 268 5 is_stmt 0 discriminator 2 view .LVU155
  1672. 541 0036 374A ldr r2, .L67+8
  1673. 542 0038 B2F8CC20 ldrh r2, [r2, #204]
  1674. 543 003c B2F5807F cmp r2, #256
  1675. 544 0040 26D0 beq .L64
  1676. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1677. 545 .loc 1 268 5 discriminator 4 view .LVU156
  1678. 546 0042 802A cmp r2, #128
  1679. 547 0044 5ED0 beq .L65
  1680. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1681. 548 .loc 1 268 5 discriminator 7 view .LVU157
  1682. 549 0046 344A ldr r2, .L67+12
  1683. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 30
  1684. 550 0048 9342 cmp r3, r2
  1685. 551 004a 24D8 bhi .L49
  1686. 552 .L54:
  1687. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1688. 553 .loc 1 269 5 discriminator 5 view .LVU158
  1689. 554 004c A968 ldr r1, [r5, #8]
  1690. 555 004e 3248 ldr r0, .L67+12
  1691. 556 0050 03EBC122 add r2, r3, r1, lsl #11
  1692. 557 0054 013A subs r2, r2, #1
  1693. 558 0056 8242 cmp r2, r0
  1694. 559 0058 32D8 bhi .L58
  1695. 560 .L56:
  1696. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.DataRemaining = pEraseInit->NbPages;
  1697. 561 .loc 1 271 5 is_stmt 1 view .LVU159
  1698. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.DataRemaining = pEraseInit->NbPages;
  1699. 562 .loc 1 271 29 is_stmt 0 view .LVU160
  1700. 563 005a 0122 movs r2, #1
  1701. 564 005c 2270 strb r2, [r4]
  1702. 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress;
  1703. 565 .loc 1 272 5 is_stmt 1 view .LVU161
  1704. 566 .LBB40:
  1705. 567 .LBB41:
  1706. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1707. 568 .loc 1 960 20 is_stmt 0 view .LVU162
  1708. 569 005e 0020 movs r0, #0
  1709. 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR, PageAddress);
  1710. 570 .loc 1 963 5 view .LVU163
  1711. 571 0060 2B4A ldr r2, .L67+4
  1712. 572 .LBE41:
  1713. 573 .LBE40:
  1714. 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress;
  1715. 574 .loc 1 272 26 view .LVU164
  1716. 575 0062 6160 str r1, [r4, #4]
  1717. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1718. 576 .loc 1 273 5 is_stmt 1 view .LVU165
  1719. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1720. 577 .loc 1 273 20 is_stmt 0 view .LVU166
  1721. 578 0064 A360 str r3, [r4, #8]
  1722. 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1723. 579 .loc 1 276 5 is_stmt 1 view .LVU167
  1724. 580 .LVL38:
  1725. 581 .LBB43:
  1726. 582 .LBI40:
  1727. 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1728. 583 .loc 1 957 6 view .LVU168
  1729. 584 .LBB42:
  1730. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1731. 585 .loc 1 960 3 view .LVU169
  1732. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1733. 586 .loc 1 960 20 is_stmt 0 view .LVU170
  1734. 587 0066 E061 str r0, [r4, #28]
  1735. 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR, PageAddress);
  1736. 588 .loc 1 963 5 is_stmt 1 view .LVU171
  1737. 589 0068 1169 ldr r1, [r2, #16]
  1738. 590 006a 41F00201 orr r1, r1, #2
  1739. 591 006e 1161 str r1, [r2, #16]
  1740. 592 .LVL39:
  1741. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 31
  1742. 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  1743. 593 .loc 1 964 5 view .LVU172
  1744. 594 0070 5361 str r3, [r2, #20]
  1745. 595 .loc 1 965 5 view .LVU173
  1746. 596 0072 1369 ldr r3, [r2, #16]
  1747. 597 0074 43F04003 orr r3, r3, #64
  1748. 598 0078 1361 str r3, [r2, #16]
  1749. 599 .loc 1 965 5 is_stmt 0 view .LVU174
  1750. 600 .LBE42:
  1751. 601 .LBE43:
  1752. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1753. 602 .loc 1 280 1 view .LVU175
  1754. 603 007a 3046 mov r0, r6
  1755. 604 007c 70BD pop {r4, r5, r6, pc}
  1756. 605 .LVL40:
  1757. 606 .L62:
  1758. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1759. 607 .loc 1 252 3 discriminator 1 view .LVU176
  1760. 608 007e FC21 movs r1, #252
  1761. 609 0080 2648 ldr r0, .L67+16
  1762. 610 .LVL41:
  1763. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1764. 611 .loc 1 252 3 discriminator 1 view .LVU177
  1765. 612 0082 FFF7FEFF bl assert_failed
  1766. 613 .LVL42:
  1767. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1768. 614 .loc 1 257 17 discriminator 1 view .LVU178
  1769. 615 0086 2968 ldr r1, [r5]
  1770. 616 0088 CAE7 b .L47
  1771. 617 .LVL43:
  1772. 618 .L60:
  1773. 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1774. 619 .loc 1 248 12 view .LVU179
  1775. 620 008a 1646 mov r6, r2
  1776. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1777. 621 .loc 1 280 1 view .LVU180
  1778. 622 008c 3046 mov r0, r6
  1779. 623 .LVL44:
  1780. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1781. 624 .loc 1 280 1 view .LVU181
  1782. 625 008e 70BD pop {r4, r5, r6, pc}
  1783. 626 .LVL45:
  1784. 627 .L64:
  1785. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1786. 628 .loc 1 268 5 discriminator 3 view .LVU182
  1787. 629 0090 234A ldr r2, .L67+20
  1788. 630 0092 9342 cmp r3, r2
  1789. 631 0094 2BD9 bls .L51
  1790. 632 .L49:
  1791. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1792. 633 .loc 1 268 5 discriminator 9 view .LVU183
  1793. 634 0096 2148 ldr r0, .L67+16
  1794. 635 0098 4FF48671 mov r1, #268
  1795. 636 009c FFF7FEFF bl assert_failed
  1796. 637 .LVL46:
  1797. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1798. 638 .loc 1 269 5 is_stmt 1 discriminator 9 view .LVU184
  1799. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 32
  1800. 639 00a0 1C4B ldr r3, .L67+8
  1801. 640 00a2 B3F8CC30 ldrh r3, [r3, #204]
  1802. 641 00a6 B3F5807F cmp r3, #256
  1803. 642 00aa 1FD0 beq .L66
  1804. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1805. 643 .loc 1 269 5 is_stmt 0 discriminator 2 view .LVU185
  1806. 644 00ac 802B cmp r3, #128
  1807. 645 00ae 6B68 ldr r3, [r5, #4]
  1808. 646 00b0 CCD1 bne .L54
  1809. 647 .L53:
  1810. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1811. 648 .loc 1 269 5 discriminator 4 view .LVU186
  1812. 649 00b2 A968 ldr r1, [r5, #8]
  1813. 650 00b4 1B48 ldr r0, .L67+24
  1814. 651 00b6 03EBC122 add r2, r3, r1, lsl #11
  1815. 652 00ba 013A subs r2, r2, #1
  1816. 653 00bc 8242 cmp r2, r0
  1817. 654 00be CCD9 bls .L56
  1818. 655 .L58:
  1819. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1820. 656 .loc 1 269 5 view .LVU187
  1821. 657 00c0 40F20D11 movw r1, #269
  1822. 658 00c4 1548 ldr r0, .L67+16
  1823. 659 00c6 FFF7FEFF bl assert_failed
  1824. 660 .LVL47:
  1825. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1826. 661 .loc 1 273 32 view .LVU188
  1827. 662 00ca D5E90131 ldrd r3, r1, [r5, #4]
  1828. 663 00ce C4E7 b .L56
  1829. 664 .L63:
  1830. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_MassErase();
  1831. 665 .loc 1 260 5 is_stmt 1 view .LVU189
  1832. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_MassErase();
  1833. 666 .loc 1 260 29 is_stmt 0 view .LVU190
  1834. 667 00d0 0221 movs r1, #2
  1835. 668 .LBB44:
  1836. 669 .LBB45:
  1837. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1838. 670 .loc 1 501 20 view .LVU191
  1839. 671 00d2 0022 movs r2, #0
  1840. 672 .LBE45:
  1841. 673 .LBE44:
  1842. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** FLASH_MassErase();
  1843. 674 .loc 1 260 29 view .LVU192
  1844. 675 00d4 2170 strb r1, [r4]
  1845. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1846. 676 .loc 1 261 9 is_stmt 1 view .LVU193
  1847. 677 .LBB47:
  1848. 678 .LBI44:
  1849. 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1850. 679 .loc 1 498 13 view .LVU194
  1851. 680 .LBB46:
  1852. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1853. 681 .loc 1 501 3 view .LVU195
  1854. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1855. 682 .loc 1 501 20 is_stmt 0 view .LVU196
  1856. 683 00d6 E261 str r2, [r4, #28]
  1857. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 33
  1858. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  1859. 684 .loc 1 504 5 is_stmt 1 view .LVU197
  1860. 685 00d8 1A69 ldr r2, [r3, #16]
  1861. 686 00da 42F00402 orr r2, r2, #4
  1862. 687 00de 1A61 str r2, [r3, #16]
  1863. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  1864. 688 .loc 1 505 5 view .LVU198
  1865. 689 00e0 1A69 ldr r2, [r3, #16]
  1866. 690 00e2 42F04002 orr r2, r2, #64
  1867. 691 00e6 1A61 str r2, [r3, #16]
  1868. 692 .LBE46:
  1869. 693 .LBE47:
  1870. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1871. 694 .loc 1 280 1 is_stmt 0 view .LVU199
  1872. 695 00e8 3046 mov r0, r6
  1873. 696 00ea 70BD pop {r4, r5, r6, pc}
  1874. 697 .LVL48:
  1875. 698 .L66:
  1876. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1877. 699 .loc 1 269 5 view .LVU200
  1878. 700 00ec 6B68 ldr r3, [r5, #4]
  1879. 701 .L51:
  1880. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1881. 702 .loc 1 269 5 discriminator 1 view .LVU201
  1882. 703 00ee A968 ldr r1, [r5, #8]
  1883. 704 00f0 0B48 ldr r0, .L67+20
  1884. 705 00f2 03EBC122 add r2, r3, r1, lsl #11
  1885. 706 00f6 013A subs r2, r2, #1
  1886. 707 00f8 8242 cmp r2, r0
  1887. 708 00fa AED9 bls .L56
  1888. 709 00fc E0E7 b .L58
  1889. 710 .LVL49:
  1890. 711 .L59:
  1891. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1892. 712 .loc 1 243 3 view .LVU202
  1893. 713 00fe 0226 movs r6, #2
  1894. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1895. 714 .loc 1 280 1 view .LVU203
  1896. 715 0100 3046 mov r0, r6
  1897. 716 .LVL50:
  1898. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1899. 717 .loc 1 280 1 view .LVU204
  1900. 718 0102 70BD pop {r4, r5, r6, pc}
  1901. 719 .LVL51:
  1902. 720 .L65:
  1903. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages));
  1904. 721 .loc 1 268 5 discriminator 6 view .LVU205
  1905. 722 0104 074A ldr r2, .L67+24
  1906. 723 0106 9342 cmp r3, r2
  1907. 724 0108 C5D8 bhi .L49
  1908. 725 010a D2E7 b .L53
  1909. 726 .L68:
  1910. 727 .align 2
  1911. 728 .L67:
  1912. 729 010c 00000000 .word pFlash
  1913. 730 0110 00200240 .word 1073881088
  1914. 731 0114 00F7FF1F .word 536868608
  1915. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 34
  1916. 732 0118 FFFF0008 .word 134283263
  1917. 733 011c 00000000 .word .LC0
  1918. 734 0120 FFFF0308 .word 134479871
  1919. 735 0124 FFFF0108 .word 134348799
  1920. 736 .cfi_endproc
  1921. 737 .LFE131:
  1922. 739 .section .text.HAL_FLASHEx_OBErase,"ax",%progbits
  1923. 740 .align 1
  1924. 741 .p2align 2,,3
  1925. 742 .global HAL_FLASHEx_OBErase
  1926. 743 .syntax unified
  1927. 744 .thumb
  1928. 745 .thumb_func
  1929. 747 HAL_FLASHEx_OBErase:
  1930. 748 .LFB132:
  1931. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint8_t rdptmp = OB_RDP_LEVEL_0;
  1932. 749 .loc 1 312 1 is_stmt 1 view -0
  1933. 750 .cfi_startproc
  1934. 751 @ args = 0, pretend = 0, frame = 0
  1935. 752 @ frame_needed = 0, uses_anonymous_args = 0
  1936. 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  1937. 753 .loc 1 313 3 view .LVU207
  1938. 754 .LVL52:
  1939. 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1940. 755 .loc 1 314 3 view .LVU208
  1941. 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1942. 756 .loc 1 317 3 view .LVU209
  1943. 757 .LBB48:
  1944. 758 .LBI48:
  1945. 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1946. 759 .loc 1 893 17 view .LVU210
  1947. 760 .LBB49:
  1948. 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1949. 761 .loc 1 895 3 view .LVU211
  1950. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  1951. 762 .loc 1 899 3 view .LVU212
  1952. 763 .LBE49:
  1953. 764 .LBE48:
  1954. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint8_t rdptmp = OB_RDP_LEVEL_0;
  1955. 765 .loc 1 312 1 is_stmt 0 view .LVU213
  1956. 766 0000 38B5 push {r3, r4, r5, lr}
  1957. 767 .LCFI3:
  1958. 768 .cfi_def_cfa_offset 16
  1959. 769 .cfi_offset 3, -16
  1960. 770 .cfi_offset 4, -12
  1961. 771 .cfi_offset 5, -8
  1962. 772 .cfi_offset 14, -4
  1963. 773 .LBB52:
  1964. 774 .LBB50:
  1965. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  1966. 775 .loc 1 899 13 view .LVU214
  1967. 776 0002 174B ldr r3, .L76
  1968. 777 0004 DB69 ldr r3, [r3, #28]
  1969. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  1970. 778 .loc 1 899 11 view .LVU215
  1971. 779 0006 03F00603 and r3, r3, #6
  1972. 780 .LVL53:
  1973. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 35
  1974. 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  1975. 781 .loc 1 905 3 is_stmt 1 view .LVU216
  1976. 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  1977. 782 .loc 1 905 6 is_stmt 0 view .LVU217
  1978. 783 000a 062B cmp r3, #6
  1979. 784 000c 26D0 beq .L72
  1980. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1981. 785 .loc 1 912 8 is_stmt 1 view .LVU218
  1982. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1983. 786 .loc 1 912 11 is_stmt 0 view .LVU219
  1984. 787 000e 002B cmp r3, #0
  1985. 788 0010 0CBF ite eq
  1986. 789 0012 AA25 moveq r5, #170
  1987. 790 0014 BB25 movne r5, #187
  1988. 791 .L70:
  1989. 792 .LVL54:
  1990. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  1991. 793 .loc 1 912 11 view .LVU220
  1992. 794 .LBE50:
  1993. 795 .LBE52:
  1994. 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1995. 796 .loc 1 320 3 is_stmt 1 view .LVU221
  1996. 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  1997. 797 .loc 1 320 12 is_stmt 0 view .LVU222
  1998. 798 0016 4CF25030 movw r0, #50000
  1999. 799 001a FFF7FEFF bl FLASH_WaitForLastOperation
  2000. 800 .LVL55:
  2001. 801 001e 0346 mov r3, r0
  2002. 802 .LVL56:
  2003. 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2004. 803 .loc 1 322 3 is_stmt 1 view .LVU223
  2005. 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2006. 804 .loc 1 322 5 is_stmt 0 view .LVU224
  2007. 805 0020 08B1 cbz r0, .L75
  2008. 806 .L71:
  2009. 807 .LVL57:
  2010. 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2011. 808 .loc 1 345 3 is_stmt 1 view .LVU225
  2012. 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2013. 809 .loc 1 346 1 is_stmt 0 view .LVU226
  2014. 810 0022 1846 mov r0, r3
  2015. 811 0024 38BD pop {r3, r4, r5, pc}
  2016. 812 .LVL58:
  2017. 813 .L75:
  2018. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2019. 814 .loc 1 325 5 is_stmt 1 view .LVU227
  2020. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2021. 815 .loc 1 325 22 is_stmt 0 view .LVU228
  2022. 816 0026 0F4B ldr r3, .L76+4
  2023. 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  2024. 817 .loc 1 328 5 view .LVU229
  2025. 818 0028 0D4C ldr r4, .L76
  2026. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2027. 819 .loc 1 325 22 view .LVU230
  2028. 820 002a D861 str r0, [r3, #28]
  2029. 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  2030. 821 .loc 1 328 5 is_stmt 1 view .LVU231
  2031. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 36
  2032. 822 002c 2369 ldr r3, [r4, #16]
  2033. 823 002e 43F02003 orr r3, r3, #32
  2034. 824 0032 2361 str r3, [r4, #16]
  2035. 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2036. 825 .loc 1 329 5 view .LVU232
  2037. 826 0034 2369 ldr r3, [r4, #16]
  2038. 827 0036 43F04003 orr r3, r3, #64
  2039. 828 003a 2361 str r3, [r4, #16]
  2040. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2041. 829 .loc 1 332 5 view .LVU233
  2042. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2043. 830 .loc 1 332 14 is_stmt 0 view .LVU234
  2044. 831 003c 4CF25030 movw r0, #50000
  2045. 832 .LVL59:
  2046. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2047. 833 .loc 1 332 14 view .LVU235
  2048. 834 0040 FFF7FEFF bl FLASH_WaitForLastOperation
  2049. 835 .LVL60:
  2050. 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2051. 836 .loc 1 335 5 view .LVU236
  2052. 837 0044 2269 ldr r2, [r4, #16]
  2053. 838 0046 22F02002 bic r2, r2, #32
  2054. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2055. 839 .loc 1 332 14 view .LVU237
  2056. 840 004a 0346 mov r3, r0
  2057. 841 .LVL61:
  2058. 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2059. 842 .loc 1 335 5 is_stmt 1 view .LVU238
  2060. 843 004c 2261 str r2, [r4, #16]
  2061. 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2062. 844 .loc 1 337 5 view .LVU239
  2063. 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2064. 845 .loc 1 337 7 is_stmt 0 view .LVU240
  2065. 846 004e 0028 cmp r0, #0
  2066. 847 0050 E7D1 bne .L71
  2067. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2068. 848 .loc 1 340 7 is_stmt 1 view .LVU241
  2069. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2070. 849 .loc 1 340 16 is_stmt 0 view .LVU242
  2071. 850 0052 2846 mov r0, r5
  2072. 851 .LVL62:
  2073. 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2074. 852 .loc 1 346 1 view .LVU243
  2075. 853 0054 BDE83840 pop {r3, r4, r5, lr}
  2076. 854 .LCFI4:
  2077. 855 .cfi_remember_state
  2078. 856 .cfi_restore 14
  2079. 857 .cfi_restore 5
  2080. 858 .cfi_restore 4
  2081. 859 .cfi_restore 3
  2082. 860 .cfi_def_cfa_offset 0
  2083. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2084. 861 .loc 1 340 16 view .LVU244
  2085. 862 0058 FFF7FEBF b FLASH_OB_RDP_LevelConfig
  2086. 863 .LVL63:
  2087. 864 .L72:
  2088. 865 .LCFI5:
  2089. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 37
  2090. 866 .cfi_restore_state
  2091. 867 .LBB53:
  2092. 868 .LBB51:
  2093. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2094. 869 .loc 1 340 16 view .LVU245
  2095. 870 005c CC25 movs r5, #204
  2096. 871 005e DAE7 b .L70
  2097. 872 .L77:
  2098. 873 .align 2
  2099. 874 .L76:
  2100. 875 0060 00200240 .word 1073881088
  2101. 876 0064 00000000 .word pFlash
  2102. 877 .LBE51:
  2103. 878 .LBE53:
  2104. 879 .cfi_endproc
  2105. 880 .LFE132:
  2106. 882 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits
  2107. 883 .align 1
  2108. 884 .p2align 2,,3
  2109. 885 .global HAL_FLASHEx_OBProgram
  2110. 886 .syntax unified
  2111. 887 .thumb
  2112. 888 .thumb_func
  2113. 890 HAL_FLASHEx_OBProgram:
  2114. 891 .LVL64:
  2115. 892 .LFB133:
  2116. 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  2117. 893 .loc 1 361 1 is_stmt 1 view -0
  2118. 894 .cfi_startproc
  2119. 895 @ args = 0, pretend = 0, frame = 0
  2120. 896 @ frame_needed = 0, uses_anonymous_args = 0
  2121. 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2122. 897 .loc 1 362 3 view .LVU247
  2123. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2124. 898 .loc 1 365 3 view .LVU248
  2125. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2126. 899 .loc 1 365 3 view .LVU249
  2127. 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
  2128. 900 .loc 1 361 1 is_stmt 0 view .LVU250
  2129. 901 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
  2130. 902 .LCFI6:
  2131. 903 .cfi_def_cfa_offset 32
  2132. 904 .cfi_offset 3, -32
  2133. 905 .cfi_offset 4, -28
  2134. 906 .cfi_offset 5, -24
  2135. 907 .cfi_offset 6, -20
  2136. 908 .cfi_offset 7, -16
  2137. 909 .cfi_offset 8, -12
  2138. 910 .cfi_offset 9, -8
  2139. 911 .cfi_offset 14, -4
  2140. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2141. 912 .loc 1 365 3 view .LVU251
  2142. 913 0004 A84E ldr r6, .L149
  2143. 914 0006 337E ldrb r3, [r6, #24] @ zero_extendqisi2
  2144. 915 0008 012B cmp r3, #1
  2145. 916 000a 00F00381 beq .L111
  2146. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2147. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 38
  2148. 917 .loc 1 365 3 discriminator 2 view .LVU252
  2149. 918 000e 0123 movs r3, #1
  2150. 919 0010 3376 strb r3, [r6, #24]
  2151. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2152. 920 .loc 1 368 3 discriminator 2 view .LVU253
  2153. 921 0012 0368 ldr r3, [r0]
  2154. 922 0014 0F2B cmp r3, #15
  2155. 923 0016 0546 mov r5, r0
  2156. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2157. 924 .loc 1 365 3 is_stmt 1 discriminator 2 view .LVU254
  2158. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2159. 925 .loc 1 365 3 discriminator 2 view .LVU255
  2160. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2161. 926 .loc 1 368 3 discriminator 2 view .LVU256
  2162. 927 0018 00F2BE80 bhi .L141
  2163. 928 .LVL65:
  2164. 929 .L80:
  2165. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2166. 930 .loc 1 371 3 view .LVU257
  2167. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2168. 931 .loc 1 371 5 is_stmt 0 view .LVU258
  2169. 932 001c D807 lsls r0, r3, #31
  2170. 933 001e 0CD4 bmi .L142
  2171. 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2172. 934 .loc 1 362 21 view .LVU259
  2173. 935 0020 0124 movs r4, #1
  2174. 936 .LVL66:
  2175. 937 .L81:
  2176. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2177. 938 .loc 1 393 3 is_stmt 1 view .LVU260
  2178. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2179. 939 .loc 1 393 5 is_stmt 0 view .LVU261
  2180. 940 0022 9907 lsls r1, r3, #30
  2181. 941 0024 60D4 bmi .L143
  2182. 942 .L100:
  2183. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2184. 943 .loc 1 405 3 is_stmt 1 view .LVU262
  2185. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2186. 944 .loc 1 405 5 is_stmt 0 view .LVU263
  2187. 945 0026 5A07 lsls r2, r3, #29
  2188. 946 0028 67D4 bmi .L144
  2189. 947 .L102:
  2190. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2191. 948 .loc 1 417 3 is_stmt 1 view .LVU264
  2192. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2193. 949 .loc 1 417 5 is_stmt 0 view .LVU265
  2194. 950 002a 1B07 lsls r3, r3, #28
  2195. 951 002c 00F18C80 bmi .L145
  2196. 952 .LVL67:
  2197. 953 .L104:
  2198. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2199. 954 .loc 1 429 3 is_stmt 1 view .LVU266
  2200. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2201. 955 .loc 1 429 3 view .LVU267
  2202. 956 0030 0023 movs r3, #0
  2203. 957 0032 3376 strb r3, [r6, #24]
  2204. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2205. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 39
  2206. 958 .loc 1 429 3 view .LVU268
  2207. 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2208. 959 .loc 1 431 3 view .LVU269
  2209. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2210. 960 .loc 1 432 1 is_stmt 0 view .LVU270
  2211. 961 0034 2046 mov r0, r4
  2212. 962 0036 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2213. 963 .LVL68:
  2214. 964 .L142:
  2215. 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE)
  2216. 965 .loc 1 373 5 is_stmt 1 view .LVU271
  2217. 966 003a 6B68 ldr r3, [r5, #4]
  2218. 967 003c 012B cmp r3, #1
  2219. 968 003e 05D9 bls .L82
  2220. 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE)
  2221. 969 .loc 1 373 5 is_stmt 0 discriminator 1 view .LVU272
  2222. 970 0040 9A48 ldr r0, .L149+4
  2223. 971 0042 40F27511 movw r1, #373
  2224. 972 0046 FFF7FEFF bl assert_failed
  2225. 973 .LVL69:
  2226. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2227. 974 .loc 1 374 16 discriminator 1 view .LVU273
  2228. 975 004a 6B68 ldr r3, [r5, #4]
  2229. 976 .L82:
  2230. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2231. 977 .loc 1 374 5 is_stmt 1 view .LVU274
  2232. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2233. 978 .loc 1 374 8 is_stmt 0 view .LVU275
  2234. 979 004c 012B cmp r3, #1
  2235. 980 004e 00F0B080 beq .L146
  2236. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2237. 981 .loc 1 382 7 is_stmt 1 view .LVU276
  2238. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2239. 982 .loc 1 382 16 is_stmt 0 view .LVU277
  2240. 983 0052 AF68 ldr r7, [r5, #8]
  2241. 984 .LVL70:
  2242. 985 .LBB66:
  2243. 986 .LBI66:
  2244. 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2245. 987 .loc 1 631 26 is_stmt 1 view .LVU278
  2246. 988 .LBB67:
  2247. 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFFU;
  2248. 989 .loc 1 633 3 view .LVU279
  2249. 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  2250. 990 .loc 1 634 3 view .LVU280
  2251. 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  2252. 991 .loc 1 636 3 view .LVU281
  2253. 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  2254. 992 .loc 1 639 3 view .LVU282
  2255. 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  2256. 993 .loc 1 642 3 view .LVU283
  2257. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2258. 994 .loc 1 646 3 view .LVU284
  2259. 995 0054 002F cmp r7, #0
  2260. 996 0056 00F0A680 beq .L147
  2261. 997 .L93:
  2262. 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2263. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 40
  2264. 998 .loc 1 649 3 view .LVU285
  2265. 999 .LBB68:
  2266. 1000 .LBI68:
  2267. 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2268. 1001 .loc 1 879 17 view .LVU286
  2269. 1002 .LBB69:
  2270. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2271. 1003 .loc 1 882 3 view .LVU287
  2272. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2273. 1004 .loc 1 882 10 is_stmt 0 view .LVU288
  2274. 1005 005a DFF85882 ldr r8, .L149+12
  2275. 1006 .LBE69:
  2276. 1007 .LBE68:
  2277. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2278. 1008 .loc 1 671 12 view .LVU289
  2279. 1009 005e 4CF25030 movw r0, #50000
  2280. 1010 .LBB71:
  2281. 1011 .LBB70:
  2282. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2283. 1012 .loc 1 882 10 view .LVU290
  2284. 1013 0062 D8F82090 ldr r9, [r8, #32]
  2285. 1014 .LVL71:
  2286. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2287. 1015 .loc 1 882 10 view .LVU291
  2288. 1016 .LBE70:
  2289. 1017 .LBE71:
  2290. 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  2291. 1018 .loc 1 652 3 is_stmt 1 view .LVU292
  2292. 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  2293. 1019 .loc 1 656 3 view .LVU293
  2294. 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  2295. 1020 .loc 1 660 3 view .LVU294
  2296. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  2297. 1021 .loc 1 664 3 view .LVU295
  2298. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2299. 1022 .loc 1 671 3 view .LVU296
  2300. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2301. 1023 .loc 1 671 12 is_stmt 0 view .LVU297
  2302. 1024 0066 FFF7FEFF bl FLASH_WaitForLastOperation
  2303. 1025 .LVL72:
  2304. 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2305. 1026 .loc 1 673 3 is_stmt 1 view .LVU298
  2306. 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2307. 1027 .loc 1 673 5 is_stmt 0 view .LVU299
  2308. 1028 006a 0446 mov r4, r0
  2309. 1029 006c 0028 cmp r0, #0
  2310. 1030 006e DFD1 bne .L104
  2311. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2312. 1031 .loc 1 676 5 is_stmt 1 view .LVU300
  2313. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2314. 1032 .loc 1 676 22 is_stmt 0 view .LVU301
  2315. 1033 0070 F061 str r0, [r6, #28]
  2316. 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  2317. 1034 .loc 1 679 5 is_stmt 1 view .LVU302
  2318. 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  2319. 1035 .loc 1 679 14 is_stmt 0 view .LVU303
  2320. 1036 0072 FFF7FEFF bl HAL_FLASHEx_OBErase
  2321. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 41
  2322. 1037 .LVL73:
  2323. 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2324. 1038 .loc 1 680 5 is_stmt 1 view .LVU304
  2325. 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2326. 1039 .loc 1 680 8 is_stmt 0 view .LVU305
  2327. 1040 0076 0446 mov r4, r0
  2328. 1041 0078 0028 cmp r0, #0
  2329. 1042 007a D9D1 bne .L104
  2330. 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2331. 1043 .loc 1 682 7 view .LVU306
  2332. 1044 007c D8F81030 ldr r3, [r8, #16]
  2333. 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2334. 1045 .loc 1 649 20 view .LVU307
  2335. 1046 0080 47EA0907 orr r7, r7, r9
  2336. 1047 .LVL74:
  2337. 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2338. 1048 .loc 1 682 7 view .LVU308
  2339. 1049 0084 43F01003 orr r3, r3, #16
  2340. 1050 0088 C8F81030 str r3, [r8, #16]
  2341. 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  2342. 1051 .loc 1 652 13 view .LVU309
  2343. 1052 008c FBB2 uxtb r3, r7
  2344. 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2345. 1053 .loc 1 682 7 is_stmt 1 view .LVU310
  2346. 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2347. 1054 .loc 1 685 7 view .LVU311
  2348. 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2349. 1055 .loc 1 685 9 is_stmt 0 view .LVU312
  2350. 1056 008e FF2B cmp r3, #255
  2351. 1057 0090 06D0 beq .L97
  2352. 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2353. 1058 .loc 1 687 9 is_stmt 1 view .LVU313
  2354. 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2355. 1059 .loc 1 687 18 is_stmt 0 view .LVU314
  2356. 1060 0092 874A ldr r2, .L149+8
  2357. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2358. 1061 .loc 1 690 18 view .LVU315
  2359. 1062 0094 4CF25030 movw r0, #50000
  2360. 1063 .LVL75:
  2361. 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2362. 1064 .loc 1 687 18 view .LVU316
  2363. 1065 0098 1381 strh r3, [r2, #8] @ movhi
  2364. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2365. 1066 .loc 1 690 9 is_stmt 1 view .LVU317
  2366. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2367. 1067 .loc 1 690 18 is_stmt 0 view .LVU318
  2368. 1068 009a FFF7FEFF bl FLASH_WaitForLastOperation
  2369. 1069 .LVL76:
  2370. 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2371. 1070 .loc 1 695 7 is_stmt 1 view .LVU319
  2372. 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2373. 1071 .loc 1 695 9 is_stmt 0 view .LVU320
  2374. 1072 009e C0B9 cbnz r0, .L113
  2375. 1073 .L97:
  2376. 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  2377. 1074 .loc 1 656 13 view .LVU321
  2378. 1075 00a0 C7F30723 ubfx r3, r7, #8, #8
  2379. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 42
  2380. 1076 .LVL77:
  2381. 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2382. 1077 .loc 1 695 29 view .LVU322
  2383. 1078 00a4 FF2B cmp r3, #255
  2384. 1079 00a6 06D0 beq .L96
  2385. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2386. 1080 .loc 1 697 9 is_stmt 1 view .LVU323
  2387. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2388. 1081 .loc 1 697 18 is_stmt 0 view .LVU324
  2389. 1082 00a8 814A ldr r2, .L149+8
  2390. 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2391. 1083 .loc 1 700 18 view .LVU325
  2392. 1084 00aa 4CF25030 movw r0, #50000
  2393. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2394. 1085 .loc 1 697 18 view .LVU326
  2395. 1086 00ae 5381 strh r3, [r2, #10] @ movhi
  2396. 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2397. 1087 .loc 1 700 9 is_stmt 1 view .LVU327
  2398. 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2399. 1088 .loc 1 700 18 is_stmt 0 view .LVU328
  2400. 1089 00b0 FFF7FEFF bl FLASH_WaitForLastOperation
  2401. 1090 .LVL78:
  2402. 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2403. 1091 .loc 1 705 7 is_stmt 1 view .LVU329
  2404. 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2405. 1092 .loc 1 705 9 is_stmt 0 view .LVU330
  2406. 1093 00b4 68B9 cbnz r0, .L113
  2407. 1094 .LVL79:
  2408. 1095 .L96:
  2409. 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  2410. 1096 .loc 1 660 13 view .LVU331
  2411. 1097 00b6 C7F30743 ubfx r3, r7, #16, #8
  2412. 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2413. 1098 .loc 1 705 29 view .LVU332
  2414. 1099 00ba FF2B cmp r3, #255
  2415. 1100 00bc 00F0AE80 beq .L110
  2416. 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2417. 1101 .loc 1 707 9 is_stmt 1 view .LVU333
  2418. 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2419. 1102 .loc 1 707 18 is_stmt 0 view .LVU334
  2420. 1103 00c0 7B4A ldr r2, .L149+8
  2421. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2422. 1104 .loc 1 710 18 view .LVU335
  2423. 1105 00c2 4CF25030 movw r0, #50000
  2424. 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2425. 1106 .loc 1 707 18 view .LVU336
  2426. 1107 00c6 9381 strh r3, [r2, #12] @ movhi
  2427. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2428. 1108 .loc 1 710 9 is_stmt 1 view .LVU337
  2429. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2430. 1109 .loc 1 710 18 is_stmt 0 view .LVU338
  2431. 1110 00c8 FFF7FEFF bl FLASH_WaitForLastOperation
  2432. 1111 .LVL80:
  2433. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2434. 1112 .loc 1 715 7 is_stmt 1 view .LVU339
  2435. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2436. 1113 .loc 1 715 9 is_stmt 0 view .LVU340
  2437. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 43
  2438. 1114 00cc 0028 cmp r0, #0
  2439. 1115 00ce 00F0A580 beq .L110
  2440. 1116 .L113:
  2441. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2442. 1117 .loc 1 715 9 view .LVU341
  2443. 1118 00d2 0446 mov r4, r0
  2444. 1119 .LVL81:
  2445. 1120 .L98:
  2446. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2447. 1121 .loc 1 725 7 is_stmt 1 view .LVU342
  2448. 1122 00d4 774A ldr r2, .L149+12
  2449. 1123 00d6 1369 ldr r3, [r2, #16]
  2450. 1124 00d8 23F01003 bic r3, r3, #16
  2451. 1125 00dc 1361 str r3, [r2, #16]
  2452. 1126 .LVL82:
  2453. 1127 .L92:
  2454. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2455. 1128 .loc 1 725 7 is_stmt 0 view .LVU343
  2456. 1129 .LBE67:
  2457. 1130 .LBE66:
  2458. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2459. 1131 .loc 1 384 5 is_stmt 1 view .LVU344
  2460. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2461. 1132 .loc 1 384 8 is_stmt 0 view .LVU345
  2462. 1133 00de 002C cmp r4, #0
  2463. 1134 00e0 A6D1 bne .L104
  2464. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2465. 1135 .loc 1 393 14 view .LVU346
  2466. 1136 00e2 2B68 ldr r3, [r5]
  2467. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2468. 1137 .loc 1 393 3 is_stmt 1 view .LVU347
  2469. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2470. 1138 .loc 1 393 5 is_stmt 0 view .LVU348
  2471. 1139 00e4 9907 lsls r1, r3, #30
  2472. 1140 00e6 9ED5 bpl .L100
  2473. 1141 .L143:
  2474. 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  2475. 1142 .loc 1 395 5 is_stmt 1 view .LVU349
  2476. 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  2477. 1143 .loc 1 395 14 is_stmt 0 view .LVU350
  2478. 1144 00e8 287B ldrb r0, [r5, #12] @ zero_extendqisi2
  2479. 1145 00ea FFF7FEFF bl FLASH_OB_RDP_LevelConfig
  2480. 1146 .LVL83:
  2481. 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2482. 1147 .loc 1 396 5 is_stmt 1 view .LVU351
  2483. 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2484. 1148 .loc 1 396 8 is_stmt 0 view .LVU352
  2485. 1149 00ee 0446 mov r4, r0
  2486. 1150 00f0 0028 cmp r0, #0
  2487. 1151 00f2 9DD1 bne .L104
  2488. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2489. 1152 .loc 1 405 14 view .LVU353
  2490. 1153 00f4 2B68 ldr r3, [r5]
  2491. 1154 .LVL84:
  2492. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2493. 1155 .loc 1 405 3 is_stmt 1 view .LVU354
  2494. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2495. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 44
  2496. 1156 .loc 1 405 5 is_stmt 0 view .LVU355
  2497. 1157 00f6 5A07 lsls r2, r3, #29
  2498. 1158 00f8 97D5 bpl .L102
  2499. 1159 .L144:
  2500. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  2501. 1160 .loc 1 407 5 is_stmt 1 view .LVU356
  2502. 1161 .LBB75:
  2503. 1162 .LBB76:
  2504. 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2505. 1163 .loc 1 808 12 is_stmt 0 view .LVU357
  2506. 1164 00fa 4CF25030 movw r0, #50000
  2507. 1165 .LBE76:
  2508. 1166 .LBE75:
  2509. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  2510. 1167 .loc 1 407 14 view .LVU358
  2511. 1168 00fe 6F7B ldrb r7, [r5, #13] @ zero_extendqisi2
  2512. 1169 .LVL85:
  2513. 1170 .LBB78:
  2514. 1171 .LBI75:
  2515. 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2516. 1172 .loc 1 792 26 is_stmt 1 view .LVU359
  2517. 1173 .LBB77:
  2518. 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2519. 1174 .loc 1 794 3 view .LVU360
  2520. 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE((UserConfig&OB_STOP_NO_RST)));
  2521. 1175 .loc 1 797 3 view .LVU361
  2522. 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE((UserConfig&OB_STDBY_NO_RST)));
  2523. 1176 .loc 1 798 3 view .LVU362
  2524. 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT1((UserConfig&OB_BOOT1_SET)));
  2525. 1177 .loc 1 799 3 view .LVU363
  2526. 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_VDDA_ANALOG((UserConfig&OB_VDDA_ANALOG_ON)));
  2527. 1178 .loc 1 800 3 view .LVU364
  2528. 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** assert_param(IS_OB_SRAM_PARITY((UserConfig&OB_SRAM_PARITY_RESET)));
  2529. 1179 .loc 1 801 3 view .LVU365
  2530. 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(FLASH_OBR_SDADC12_VDD_MONITOR)
  2531. 1180 .loc 1 802 3 view .LVU366
  2532. 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2533. 1181 .loc 1 808 3 view .LVU367
  2534. 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2535. 1182 .loc 1 808 12 is_stmt 0 view .LVU368
  2536. 1183 0100 FFF7FEFF bl FLASH_WaitForLastOperation
  2537. 1184 .LVL86:
  2538. 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2539. 1185 .loc 1 810 3 is_stmt 1 view .LVU369
  2540. 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2541. 1186 .loc 1 810 5 is_stmt 0 view .LVU370
  2542. 1187 0104 0446 mov r4, r0
  2543. 1188 .LVL87:
  2544. 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2545. 1189 .loc 1 810 5 view .LVU371
  2546. 1190 0106 0028 cmp r0, #0
  2547. 1191 0108 92D1 bne .L104
  2548. 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2549. 1192 .loc 1 813 5 is_stmt 1 view .LVU372
  2550. 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2551. 1193 .loc 1 816 5 is_stmt 0 view .LVU373
  2552. 1194 010a DFF8A881 ldr r8, .L149+12
  2553. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 45
  2554. 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2555. 1195 .loc 1 813 22 view .LVU374
  2556. 1196 010e F061 str r0, [r6, #28]
  2557. 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2558. 1197 .loc 1 816 5 is_stmt 1 view .LVU375
  2559. 1198 0110 D8F81030 ldr r3, [r8, #16]
  2560. 1199 0114 43F01003 orr r3, r3, #16
  2561. 1200 0118 C8F81030 str r3, [r8, #16]
  2562. 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif
  2563. 1201 .loc 1 821 5 view .LVU376
  2564. 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif
  2565. 1202 .loc 1 821 14 is_stmt 0 view .LVU377
  2566. 1203 011c 644B ldr r3, .L149+8
  2567. 1204 011e 47F08807 orr r7, r7, #136
  2568. 1205 .LVL88:
  2569. 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif
  2570. 1206 .loc 1 821 14 view .LVU378
  2571. 1207 0122 5F80 strh r7, [r3, #2] @ movhi
  2572. 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2573. 1208 .loc 1 825 5 is_stmt 1 view .LVU379
  2574. 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2575. 1209 .loc 1 825 14 is_stmt 0 view .LVU380
  2576. 1210 0124 4CF25030 movw r0, #50000
  2577. 1211 .LVL89:
  2578. 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2579. 1212 .loc 1 825 14 view .LVU381
  2580. 1213 0128 FFF7FEFF bl FLASH_WaitForLastOperation
  2581. 1214 .LVL90:
  2582. 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2583. 1215 .loc 1 828 5 is_stmt 1 view .LVU382
  2584. 1216 012c D8F81030 ldr r3, [r8, #16]
  2585. 1217 0130 23F01003 bic r3, r3, #16
  2586. 1218 0134 C8F81030 str r3, [r8, #16]
  2587. 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2588. 1219 .loc 1 831 3 view .LVU383
  2589. 1220 .LVL91:
  2590. 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2591. 1221 .loc 1 831 3 is_stmt 0 view .LVU384
  2592. 1222 .LBE77:
  2593. 1223 .LBE78:
  2594. 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2595. 1224 .loc 1 408 5 is_stmt 1 view .LVU385
  2596. 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2597. 1225 .loc 1 408 8 is_stmt 0 view .LVU386
  2598. 1226 0138 0446 mov r4, r0
  2599. 1227 013a 0028 cmp r0, #0
  2600. 1228 013c 7FF478AF bne .L104
  2601. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2602. 1229 .loc 1 417 14 view .LVU387
  2603. 1230 0140 2B68 ldr r3, [r5]
  2604. 1231 .LVL92:
  2605. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2606. 1232 .loc 1 417 3 is_stmt 1 view .LVU388
  2607. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2608. 1233 .loc 1 417 5 is_stmt 0 view .LVU389
  2609. 1234 0142 1B07 lsls r3, r3, #28
  2610. 1235 0144 7FF574AF bpl .L104
  2611. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 46
  2612. 1236 .L145:
  2613. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  2614. 1237 .loc 1 419 5 is_stmt 1 view .LVU390
  2615. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  2616. 1238 .loc 1 419 14 is_stmt 0 view .LVU391
  2617. 1239 0148 D5F81080 ldr r8, [r5, #16]
  2618. 1240 .LBB79:
  2619. 1241 .LBB80:
  2620. 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2621. 1242 .loc 1 851 3 view .LVU392
  2622. 1243 014c 5A4B ldr r3, .L149+16
  2623. 1244 .LBE80:
  2624. 1245 .LBE79:
  2625. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status != HAL_OK)
  2626. 1246 .loc 1 419 14 view .LVU393
  2627. 1247 014e 2F7D ldrb r7, [r5, #20] @ zero_extendqisi2
  2628. 1248 .LVL93:
  2629. 1249 .LBB83:
  2630. 1250 .LBI79:
  2631. 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2632. 1251 .loc 1 846 26 is_stmt 1 view .LVU394
  2633. 1252 .LBB81:
  2634. 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2635. 1253 .loc 1 848 3 view .LVU395
  2636. 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2637. 1254 .loc 1 851 3 view .LVU396
  2638. 1255 0150 28F00202 bic r2, r8, #2
  2639. 1256 0154 9A42 cmp r2, r3
  2640. 1257 0156 04D0 beq .L105
  2641. 1258 0158 5448 ldr r0, .L149+4
  2642. 1259 015a 40F25331 movw r1, #851
  2643. 1260 015e FFF7FEFF bl assert_failed
  2644. 1261 .LVL94:
  2645. 1262 .L105:
  2646. 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2647. 1263 .loc 1 854 3 view .LVU397
  2648. 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2649. 1264 .loc 1 854 12 is_stmt 0 view .LVU398
  2650. 1265 0162 4CF25030 movw r0, #50000
  2651. 1266 0166 FFF7FEFF bl FLASH_WaitForLastOperation
  2652. 1267 .LVL95:
  2653. 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2654. 1268 .loc 1 856 3 is_stmt 1 view .LVU399
  2655. 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2656. 1269 .loc 1 856 5 is_stmt 0 view .LVU400
  2657. 1270 016a 0446 mov r4, r0
  2658. 1271 .LVL96:
  2659. 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2660. 1272 .loc 1 856 5 view .LVU401
  2661. 1273 016c 0028 cmp r0, #0
  2662. 1274 016e 7FF45FAF bne .L104
  2663. 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2664. 1275 .loc 1 859 5 is_stmt 1 view .LVU402
  2665. 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *(__IO uint16_t*)Address = Data;
  2666. 1276 .loc 1 862 5 is_stmt 0 view .LVU403
  2667. 1277 0172 504D ldr r5, .L149+12
  2668. 1278 .LVL97:
  2669. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 47
  2670. 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2671. 1279 .loc 1 859 22 view .LVU404
  2672. 1280 0174 F061 str r0, [r6, #28]
  2673. 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *(__IO uint16_t*)Address = Data;
  2674. 1281 .loc 1 862 5 is_stmt 1 view .LVU405
  2675. 1282 0176 2B69 ldr r3, [r5, #16]
  2676. 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2677. 1283 .loc 1 863 30 is_stmt 0 view .LVU406
  2678. 1284 0178 BFB2 uxth r7, r7
  2679. 1285 .LVL98:
  2680. 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** *(__IO uint16_t*)Address = Data;
  2681. 1286 .loc 1 862 5 view .LVU407
  2682. 1287 017a 43F01003 orr r3, r3, #16
  2683. 1288 017e 2B61 str r3, [r5, #16]
  2684. 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2685. 1289 .loc 1 863 5 is_stmt 1 view .LVU408
  2686. 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2687. 1290 .loc 1 866 14 is_stmt 0 view .LVU409
  2688. 1291 0180 4CF25030 movw r0, #50000
  2689. 1292 .LVL99:
  2690. 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2691. 1293 .loc 1 863 30 view .LVU410
  2692. 1294 0184 A8F80070 strh r7, [r8] @ movhi
  2693. 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2694. 1295 .loc 1 866 5 is_stmt 1 view .LVU411
  2695. 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2696. 1296 .loc 1 866 14 is_stmt 0 view .LVU412
  2697. 1297 0188 FFF7FEFF bl FLASH_WaitForLastOperation
  2698. 1298 .LVL100:
  2699. 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2700. 1299 .loc 1 869 5 is_stmt 1 view .LVU413
  2701. 1300 018c 2B69 ldr r3, [r5, #16]
  2702. 1301 018e 23F01003 bic r3, r3, #16
  2703. 1302 .LBE81:
  2704. 1303 .LBE83:
  2705. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2706. 1304 .loc 1 420 8 is_stmt 0 view .LVU414
  2707. 1305 0192 0446 mov r4, r0
  2708. 1306 .LBB84:
  2709. 1307 .LBB82:
  2710. 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2711. 1308 .loc 1 869 5 view .LVU415
  2712. 1309 0194 2B61 str r3, [r5, #16]
  2713. 1310 .LVL101:
  2714. 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2715. 1311 .loc 1 872 3 is_stmt 1 view .LVU416
  2716. 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2717. 1312 .loc 1 872 3 is_stmt 0 view .LVU417
  2718. 1313 .LBE82:
  2719. 1314 .LBE84:
  2720. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2721. 1315 .loc 1 420 5 is_stmt 1 view .LVU418
  2722. 1316 0196 4BE7 b .L104
  2723. 1317 .LVL102:
  2724. 1318 .L141:
  2725. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2726. 1319 .loc 1 368 3 is_stmt 0 discriminator 1 view .LVU419
  2727. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 48
  2728. 1320 0198 4448 ldr r0, .L149+4
  2729. 1321 .LVL103:
  2730. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2731. 1322 .loc 1 368 3 discriminator 1 view .LVU420
  2732. 1323 019a 4FF4B871 mov r1, #368
  2733. 1324 019e FFF7FEFF bl assert_failed
  2734. 1325 .LVL104:
  2735. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2736. 1326 .loc 1 371 14 discriminator 1 view .LVU421
  2737. 1327 01a2 2B68 ldr r3, [r5]
  2738. 1328 01a4 3AE7 b .L80
  2739. 1329 .LVL105:
  2740. 1330 .L147:
  2741. 1331 .LBB85:
  2742. 1332 .LBB72:
  2743. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2744. 1333 .loc 1 646 3 view .LVU422
  2745. 1334 01a6 4148 ldr r0, .L149+4
  2746. 1335 01a8 40F28621 movw r1, #646
  2747. 1336 01ac FFF7FEFF bl assert_failed
  2748. 1337 .LVL106:
  2749. 1338 01b0 53E7 b .L93
  2750. 1339 .LVL107:
  2751. 1340 .L146:
  2752. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2753. 1341 .loc 1 646 3 view .LVU423
  2754. 1342 .LBE72:
  2755. 1343 .LBE85:
  2756. 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2757. 1344 .loc 1 377 7 is_stmt 1 view .LVU424
  2758. 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2759. 1345 .loc 1 377 16 is_stmt 0 view .LVU425
  2760. 1346 01b2 D5F80880 ldr r8, [r5, #8]
  2761. 1347 .LVL108:
  2762. 1348 .LBB86:
  2763. 1349 .LBI86:
  2764. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2765. 1350 .loc 1 519 26 is_stmt 1 view .LVU426
  2766. 1351 .LBB87:
  2767. 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFFU;
  2768. 1352 .loc 1 521 3 view .LVU427
  2769. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #if defined(OB_WRP1_WRP1)
  2770. 1353 .loc 1 522 3 view .LVU428
  2771. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP1_WRP1 */
  2772. 1354 .loc 1 524 3 view .LVU429
  2773. 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP2_WRP2 */
  2774. 1355 .loc 1 527 3 view .LVU430
  2775. 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP3_WRP3 */
  2776. 1356 .loc 1 530 3 view .LVU431
  2777. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2778. 1357 .loc 1 534 3 view .LVU432
  2779. 1358 01b6 B8F1000F cmp r8, #0
  2780. 1359 01ba 3BD0 beq .L148
  2781. 1360 .L84:
  2782. 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2783. 1361 .loc 1 537 3 view .LVU433
  2784. 1362 .LBB88:
  2785. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 49
  2786. 1363 .LBI88:
  2787. 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2788. 1364 .loc 1 879 17 view .LVU434
  2789. 1365 .LBB89:
  2790. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2791. 1366 .loc 1 882 3 view .LVU435
  2792. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2793. 1367 .loc 1 882 10 is_stmt 0 view .LVU436
  2794. 1368 01bc 3D4F ldr r7, .L149+12
  2795. 1369 .LBE89:
  2796. 1370 .LBE88:
  2797. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2798. 1371 .loc 1 558 12 view .LVU437
  2799. 1372 01be 4CF25030 movw r0, #50000
  2800. 1373 .LBB91:
  2801. 1374 .LBB90:
  2802. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2803. 1375 .loc 1 882 10 view .LVU438
  2804. 1376 01c2 D7F82090 ldr r9, [r7, #32]
  2805. 1377 .LVL109:
  2806. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2807. 1378 .loc 1 882 10 view .LVU439
  2808. 1379 .LBE90:
  2809. 1380 .LBE91:
  2810. 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  2811. 1381 .loc 1 540 3 is_stmt 1 view .LVU440
  2812. 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  2813. 1382 .loc 1 544 3 view .LVU441
  2814. 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  2815. 1383 .loc 1 548 3 view .LVU442
  2816. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  2817. 1384 .loc 1 552 3 view .LVU443
  2818. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2819. 1385 .loc 1 558 3 view .LVU444
  2820. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2821. 1386 .loc 1 558 12 is_stmt 0 view .LVU445
  2822. 1387 01c6 FFF7FEFF bl FLASH_WaitForLastOperation
  2823. 1388 .LVL110:
  2824. 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2825. 1389 .loc 1 560 3 is_stmt 1 view .LVU446
  2826. 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2827. 1390 .loc 1 560 5 is_stmt 0 view .LVU447
  2828. 1391 01ca 0446 mov r4, r0
  2829. 1392 01cc 0028 cmp r0, #0
  2830. 1393 01ce 7FF42FAF bne .L104
  2831. 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2832. 1394 .loc 1 563 5 is_stmt 1 view .LVU448
  2833. 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2834. 1395 .loc 1 563 22 is_stmt 0 view .LVU449
  2835. 1396 01d2 F061 str r0, [r6, #28]
  2836. 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  2837. 1397 .loc 1 566 5 is_stmt 1 view .LVU450
  2838. 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** if (status == HAL_OK)
  2839. 1398 .loc 1 566 14 is_stmt 0 view .LVU451
  2840. 1399 01d4 FFF7FEFF bl HAL_FLASHEx_OBErase
  2841. 1400 .LVL111:
  2842. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2843. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 50
  2844. 1401 .loc 1 567 5 is_stmt 1 view .LVU452
  2845. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2846. 1402 .loc 1 567 8 is_stmt 0 view .LVU453
  2847. 1403 01d8 0446 mov r4, r0
  2848. 1404 01da 0028 cmp r0, #0
  2849. 1405 01dc 7FF428AF bne .L104
  2850. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2851. 1406 .loc 1 570 7 view .LVU454
  2852. 1407 01e0 3B69 ldr r3, [r7, #16]
  2853. 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2854. 1408 .loc 1 537 20 view .LVU455
  2855. 1409 01e2 29EA0808 bic r8, r9, r8
  2856. 1410 .LVL112:
  2857. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2858. 1411 .loc 1 570 7 view .LVU456
  2859. 1412 01e6 43F01003 orr r3, r3, #16
  2860. 1413 01ea 3B61 str r3, [r7, #16]
  2861. 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */
  2862. 1414 .loc 1 540 13 view .LVU457
  2863. 1415 01ec 5FFA88F3 uxtb r3, r8
  2864. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2865. 1416 .loc 1 570 7 is_stmt 1 view .LVU458
  2866. 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2867. 1417 .loc 1 573 7 view .LVU459
  2868. 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2869. 1418 .loc 1 573 9 is_stmt 0 view .LVU460
  2870. 1419 01f0 FF2B cmp r3, #255
  2871. 1420 01f2 2CD0 beq .L89
  2872. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2873. 1421 .loc 1 575 9 is_stmt 1 view .LVU461
  2874. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2875. 1422 .loc 1 575 18 is_stmt 0 view .LVU462
  2876. 1423 01f4 2E4A ldr r2, .L149+8
  2877. 1424 01f6 1189 ldrh r1, [r2, #8]
  2878. 1425 01f8 0B40 ands r3, r3, r1
  2879. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2880. 1426 .loc 1 578 18 view .LVU463
  2881. 1427 01fa 4CF25030 movw r0, #50000
  2882. 1428 .LVL113:
  2883. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2884. 1429 .loc 1 575 18 view .LVU464
  2885. 1430 01fe 1381 strh r3, [r2, #8] @ movhi
  2886. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2887. 1431 .loc 1 578 9 is_stmt 1 view .LVU465
  2888. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2889. 1432 .loc 1 578 18 is_stmt 0 view .LVU466
  2890. 1433 0200 FFF7FEFF bl FLASH_WaitForLastOperation
  2891. 1434 .LVL114:
  2892. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2893. 1435 .loc 1 583 7 is_stmt 1 view .LVU467
  2894. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2895. 1436 .loc 1 583 9 is_stmt 0 view .LVU468
  2896. 1437 0204 18B3 cbz r0, .L89
  2897. 1438 .L90:
  2898. 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2899. 1439 .loc 1 613 7 is_stmt 1 view .LVU469
  2900. 1440 0206 2B4A ldr r2, .L149+12
  2901. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 51
  2902. 1441 0208 1369 ldr r3, [r2, #16]
  2903. 1442 020a 23F01003 bic r3, r3, #16
  2904. 1443 020e 0446 mov r4, r0
  2905. 1444 0210 1361 str r3, [r2, #16]
  2906. 1445 0212 64E7 b .L92
  2907. 1446 .LVL115:
  2908. 1447 .L111:
  2909. 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2910. 1448 .loc 1 613 7 is_stmt 0 view .LVU470
  2911. 1449 .LBE87:
  2912. 1450 .LBE86:
  2913. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2914. 1451 .loc 1 365 3 view .LVU471
  2915. 1452 0214 0224 movs r4, #2
  2916. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2917. 1453 .loc 1 432 1 view .LVU472
  2918. 1454 0216 2046 mov r0, r4
  2919. 1455 .LVL116:
  2920. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2921. 1456 .loc 1 432 1 view .LVU473
  2922. 1457 0218 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2923. 1458 .LVL117:
  2924. 1459 .L110:
  2925. 1460 .LBB94:
  2926. 1461 .LBB73:
  2927. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  2928. 1462 .loc 1 664 71 view .LVU474
  2929. 1463 021c 3F0E lsrs r7, r7, #24
  2930. 1464 .LVL118:
  2931. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2932. 1465 .loc 1 715 29 view .LVU475
  2933. 1466 021e FF2F cmp r7, #255
  2934. 1467 0220 0ED0 beq .L140
  2935. 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2936. 1468 .loc 1 717 9 is_stmt 1 view .LVU476
  2937. 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2938. 1469 .loc 1 717 18 is_stmt 0 view .LVU477
  2939. 1470 0222 234B ldr r3, .L149+8
  2940. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  2941. 1471 .loc 1 664 13 view .LVU478
  2942. 1472 0224 BFB2 uxth r7, r7
  2943. 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2944. 1473 .loc 1 717 18 view .LVU479
  2945. 1474 0226 DF81 strh r7, [r3, #14] @ movhi
  2946. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2947. 1475 .loc 1 720 9 is_stmt 1 view .LVU480
  2948. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2949. 1476 .loc 1 720 18 is_stmt 0 view .LVU481
  2950. 1477 0228 4CF25030 movw r0, #50000
  2951. 1478 022c FFF7FEFF bl FLASH_WaitForLastOperation
  2952. 1479 .LVL119:
  2953. 1480 0230 0446 mov r4, r0
  2954. 1481 .LVL120:
  2955. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2956. 1482 .loc 1 720 18 view .LVU482
  2957. 1483 0232 4FE7 b .L98
  2958. 1484 .LVL121:
  2959. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 52
  2960. 1485 .L148:
  2961. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2962. 1486 .loc 1 720 18 view .LVU483
  2963. 1487 .LBE73:
  2964. 1488 .LBE94:
  2965. 1489 .LBB95:
  2966. 1490 .LBB92:
  2967. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2968. 1491 .loc 1 534 3 view .LVU484
  2969. 1492 0234 1D48 ldr r0, .L149+4
  2970. 1493 0236 40F21621 movw r1, #534
  2971. 1494 023a FFF7FEFF bl assert_failed
  2972. 1495 .LVL122:
  2973. 1496 023e BDE7 b .L84
  2974. 1497 .LVL123:
  2975. 1498 .L140:
  2976. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  2977. 1499 .loc 1 534 3 view .LVU485
  2978. 1500 .LBE92:
  2979. 1501 .LBE95:
  2980. 1502 .LBB96:
  2981. 1503 .LBB74:
  2982. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2983. 1504 .loc 1 725 7 is_stmt 1 view .LVU486
  2984. 1505 0240 1C4A ldr r2, .L149+12
  2985. 1506 0242 1369 ldr r3, [r2, #16]
  2986. 1507 0244 23F01003 bic r3, r3, #16
  2987. 1508 0248 1361 str r3, [r2, #16]
  2988. 1509 .LVL124:
  2989. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  2990. 1510 .loc 1 725 7 is_stmt 0 view .LVU487
  2991. 1511 .LBE74:
  2992. 1512 .LBE96:
  2993. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2994. 1513 .loc 1 384 5 is_stmt 1 view .LVU488
  2995. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  2996. 1514 .loc 1 393 14 is_stmt 0 view .LVU489
  2997. 1515 024a 2B68 ldr r3, [r5]
  2998. 1516 024c E9E6 b .L81
  2999. 1517 .LVL125:
  3000. 1518 .L89:
  3001. 1519 .LBB97:
  3002. 1520 .LBB93:
  3003. 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */
  3004. 1521 .loc 1 544 13 view .LVU490
  3005. 1522 024e C8F30723 ubfx r3, r8, #8, #8
  3006. 1523 .LVL126:
  3007. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3008. 1524 .loc 1 583 29 view .LVU491
  3009. 1525 0252 FF2B cmp r3, #255
  3010. 1526 0254 09D0 beq .L88
  3011. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3012. 1527 .loc 1 585 9 is_stmt 1 view .LVU492
  3013. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3014. 1528 .loc 1 585 18 is_stmt 0 view .LVU493
  3015. 1529 0256 164A ldr r2, .L149+8
  3016. 1530 0258 5189 ldrh r1, [r2, #10]
  3017. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 53
  3018. 1531 025a 0B40 ands r3, r3, r1
  3019. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3020. 1532 .loc 1 588 18 view .LVU494
  3021. 1533 025c 4CF25030 movw r0, #50000
  3022. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3023. 1534 .loc 1 585 18 view .LVU495
  3024. 1535 0260 5381 strh r3, [r2, #10] @ movhi
  3025. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3026. 1536 .loc 1 588 9 is_stmt 1 view .LVU496
  3027. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3028. 1537 .loc 1 588 18 is_stmt 0 view .LVU497
  3029. 1538 0262 FFF7FEFF bl FLASH_WaitForLastOperation
  3030. 1539 .LVL127:
  3031. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3032. 1540 .loc 1 593 7 is_stmt 1 view .LVU498
  3033. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3034. 1541 .loc 1 593 9 is_stmt 0 view .LVU499
  3035. 1542 0266 0028 cmp r0, #0
  3036. 1543 0268 CDD1 bne .L90
  3037. 1544 .LVL128:
  3038. 1545 .L88:
  3039. 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */
  3040. 1546 .loc 1 548 13 view .LVU500
  3041. 1547 026a C8F30743 ubfx r3, r8, #16, #8
  3042. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3043. 1548 .loc 1 593 29 view .LVU501
  3044. 1549 026e FF2B cmp r3, #255
  3045. 1550 0270 09D0 beq .L108
  3046. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3047. 1551 .loc 1 595 9 is_stmt 1 view .LVU502
  3048. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3049. 1552 .loc 1 595 18 is_stmt 0 view .LVU503
  3050. 1553 0272 0F4A ldr r2, .L149+8
  3051. 1554 0274 9189 ldrh r1, [r2, #12]
  3052. 1555 0276 0B40 ands r3, r3, r1
  3053. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3054. 1556 .loc 1 598 18 view .LVU504
  3055. 1557 0278 4CF25030 movw r0, #50000
  3056. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3057. 1558 .loc 1 595 18 view .LVU505
  3058. 1559 027c 9381 strh r3, [r2, #12] @ movhi
  3059. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3060. 1560 .loc 1 598 9 is_stmt 1 view .LVU506
  3061. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3062. 1561 .loc 1 598 18 is_stmt 0 view .LVU507
  3063. 1562 027e FFF7FEFF bl FLASH_WaitForLastOperation
  3064. 1563 .LVL129:
  3065. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3066. 1564 .loc 1 603 7 is_stmt 1 view .LVU508
  3067. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3068. 1565 .loc 1 603 9 is_stmt 0 view .LVU509
  3069. 1566 0282 0028 cmp r0, #0
  3070. 1567 0284 BFD1 bne .L90
  3071. 1568 .LVL130:
  3072. 1569 .L108:
  3073. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK)
  3074. 1570 .loc 1 552 71 view .LVU510
  3075. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 54
  3076. 1571 0286 4FEA1868 lsr r8, r8, #24
  3077. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3078. 1572 .loc 1 603 29 view .LVU511
  3079. 1573 028a B8F1FF0F cmp r8, #255
  3080. 1574 028e D7D0 beq .L140
  3081. 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3082. 1575 .loc 1 605 9 is_stmt 1 view .LVU512
  3083. 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3084. 1576 .loc 1 605 18 is_stmt 0 view .LVU513
  3085. 1577 0290 074B ldr r3, .L149+8
  3086. 1578 0292 DA89 ldrh r2, [r3, #14]
  3087. 1579 0294 08EA0208 and r8, r8, r2
  3088. 1580 0298 A3F80E80 strh r8, [r3, #14] @ movhi
  3089. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3090. 1581 .loc 1 608 9 is_stmt 1 view .LVU514
  3091. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3092. 1582 .loc 1 608 18 is_stmt 0 view .LVU515
  3093. 1583 029c 4CF25030 movw r0, #50000
  3094. 1584 02a0 FFF7FEFF bl FLASH_WaitForLastOperation
  3095. 1585 .LVL131:
  3096. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3097. 1586 .loc 1 608 18 view .LVU516
  3098. 1587 02a4 AFE7 b .L90
  3099. 1588 .L150:
  3100. 1589 02a6 00BF .align 2
  3101. 1590 .L149:
  3102. 1591 02a8 00000000 .word pFlash
  3103. 1592 02ac 00000000 .word .LC0
  3104. 1593 02b0 00F8FF1F .word 536868864
  3105. 1594 02b4 00200240 .word 1073881088
  3106. 1595 02b8 04F8FF1F .word 536868868
  3107. 1596 .LBE93:
  3108. 1597 .LBE97:
  3109. 1598 .cfi_endproc
  3110. 1599 .LFE133:
  3111. 1601 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits
  3112. 1602 .align 1
  3113. 1603 .p2align 2,,3
  3114. 1604 .global HAL_FLASHEx_OBGetConfig
  3115. 1605 .syntax unified
  3116. 1606 .thumb
  3117. 1607 .thumb_func
  3118. 1609 HAL_FLASHEx_OBGetConfig:
  3119. 1610 .LVL132:
  3120. 1611 .LFB134:
  3121. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER;
  3122. 1612 .loc 1 442 1 is_stmt 1 view -0
  3123. 1613 .cfi_startproc
  3124. 1614 @ args = 0, pretend = 0, frame = 0
  3125. 1615 @ frame_needed = 0, uses_anonymous_args = 0
  3126. 1616 @ link register save eliminated.
  3127. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3128. 1617 .loc 1 443 3 view .LVU518
  3129. 1618 .LBB98:
  3130. 1619 .LBB99:
  3131. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3132. 1620 .loc 1 882 10 is_stmt 0 view .LVU519
  3133. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 55
  3134. 1621 0000 0E4B ldr r3, .L155
  3135. 1622 .LBE99:
  3136. 1623 .LBE98:
  3137. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3138. 1624 .loc 1 443 23 view .LVU520
  3139. 1625 0002 0722 movs r2, #7
  3140. 1626 0004 0260 str r2, [r0]
  3141. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3142. 1627 .loc 1 446 3 is_stmt 1 view .LVU521
  3143. 1628 .LBB101:
  3144. 1629 .LBI98:
  3145. 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3146. 1630 .loc 1 879 17 view .LVU522
  3147. 1631 .LBB100:
  3148. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3149. 1632 .loc 1 882 3 view .LVU523
  3150. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3151. 1633 .loc 1 882 10 is_stmt 0 view .LVU524
  3152. 1634 0006 1A6A ldr r2, [r3, #32]
  3153. 1635 .LBE100:
  3154. 1636 .LBE101:
  3155. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3156. 1637 .loc 1 446 20 view .LVU525
  3157. 1638 0008 8260 str r2, [r0, #8]
  3158. 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3159. 1639 .loc 1 449 3 is_stmt 1 view .LVU526
  3160. 1640 .LBB102:
  3161. 1641 .LBI102:
  3162. 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3163. 1642 .loc 1 893 17 view .LVU527
  3164. 1643 .LBB103:
  3165. 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3166. 1644 .loc 1 895 3 view .LVU528
  3167. 1645 .LVL133:
  3168. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  3169. 1646 .loc 1 899 3 view .LVU529
  3170. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  3171. 1647 .loc 1 899 13 is_stmt 0 view .LVU530
  3172. 1648 000a DB69 ldr r3, [r3, #28]
  3173. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  3174. 1649 .loc 1 899 11 view .LVU531
  3175. 1650 000c 03F00603 and r3, r3, #6
  3176. 1651 .LVL134:
  3177. 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  3178. 1652 .loc 1 905 3 is_stmt 1 view .LVU532
  3179. 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** #elif defined(FLASH_OBR_LEVEL1_PROT)
  3180. 1653 .loc 1 905 6 is_stmt 0 view .LVU533
  3181. 1654 0010 062B cmp r3, #6
  3182. 1655 0012 11D0 beq .L153
  3183. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3184. 1656 .loc 1 912 8 is_stmt 1 view .LVU534
  3185. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3186. 1657 .loc 1 912 11 is_stmt 0 view .LVU535
  3187. 1658 0014 002B cmp r3, #0
  3188. 1659 0016 0CBF ite eq
  3189. 1660 0018 AA22 moveq r2, #170
  3190. 1661 001a BB22 movne r2, #187
  3191. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 56
  3192. 1662 .L152:
  3193. 1663 .LVL135:
  3194. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3195. 1664 .loc 1 912 11 view .LVU536
  3196. 1665 .LBE103:
  3197. 1666 .LBE102:
  3198. 1667 .LBB105:
  3199. 1668 .LBB106:
  3200. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3201. 1669 .loc 1 931 21 view .LVU537
  3202. 1670 001c 074B ldr r3, .L155
  3203. 1671 .LBE106:
  3204. 1672 .LBE105:
  3205. 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  3206. 1673 .loc 1 449 21 view .LVU538
  3207. 1674 001e 0273 strb r2, [r0, #12]
  3208. 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3209. 1675 .loc 1 452 3 is_stmt 1 view .LVU539
  3210. 1676 .LBB110:
  3211. 1677 .LBI105:
  3212. 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  3213. 1678 .loc 1 928 16 view .LVU540
  3214. 1679 .LBB109:
  3215. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3216. 1680 .loc 1 931 3 view .LVU541
  3217. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  3218. 1681 .loc 1 931 21 is_stmt 0 view .LVU542
  3219. 1682 0020 DB69 ldr r3, [r3, #28]
  3220. 1683 .LVL136:
  3221. 1684 .LBB107:
  3222. 1685 .LBI107:
  3223. 1686 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
  3224. 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
  3225. 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
  3226. 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file
  3227. 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4
  3228. 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018
  3229. 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
  3230. 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
  3231. 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
  3232. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  3233. 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0
  3234. 11:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  3235. 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may
  3236. 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License.
  3237. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at
  3238. 15:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  3239. 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0
  3240. 17:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  3241. 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software
  3242. 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  3243. 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3244. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and
  3245. 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License.
  3246. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3247. 24:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3248. 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  3249. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 57
  3250. 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
  3251. 27:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3252. 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
  3253. 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  3254. 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  3255. 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  3256. 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  3257. 33:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3258. 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
  3259. 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
  3260. 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0)
  3261. 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3262. 38:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3263. 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
  3264. 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM
  3265. 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm
  3266. 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3267. 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE
  3268. 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline
  3269. 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3270. 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE
  3271. 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline
  3272. 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3273. 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE
  3274. 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
  3275. 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3276. 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN
  3277. 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__))
  3278. 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3279. 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED
  3280. 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used))
  3281. 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3282. 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
  3283. 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
  3284. 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3285. 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED
  3286. 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1)))
  3287. 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3288. 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT
  3289. 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
  3290. 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3291. 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION
  3292. 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1)))
  3293. 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3294. 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */
  3295. 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  3296. 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  3297. 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  3298. 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; };
  3299. 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  3300. 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
  3301. 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3302. 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE
  3303. 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  3304. 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  3305. 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  3306. 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
  3307. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 58
  3308. 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  3309. 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
  3310. 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3311. 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ
  3312. 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  3313. 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  3314. 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  3315. 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
  3316. 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  3317. 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add
  3318. 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3319. 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE
  3320. 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  3321. 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  3322. 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  3323. 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
  3324. 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  3325. 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
  3326. 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3327. 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ
  3328. 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  3329. 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  3330. 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  3331. 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
  3332. 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  3333. 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add
  3334. 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3335. 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED
  3336. 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x)))
  3337. 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3338. 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT
  3339. 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
  3340. 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3341. 116:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3342. 117:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3343. 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
  3344. 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
  3345. 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
  3346. 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  3347. 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3348. 123:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3349. 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3350. 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
  3351. 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
  3352. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  3353. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3354. 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
  3355. 130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3356. 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
  3357. 132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3358. 133:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3359. 134:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3360. 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3361. 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
  3362. 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
  3363. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  3364. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3365. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 59
  3366. 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
  3367. 141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3368. 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
  3369. 143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3370. 144:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3371. 145:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3372. 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3373. 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register
  3374. 148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register.
  3375. 149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value
  3376. 150:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3377. 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
  3378. 152:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3379. 153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3380. 154:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3381. 155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) );
  3382. 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3383. 157:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3384. 158:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3385. 159:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3386. 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3387. 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3388. 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure)
  3389. 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode.
  3390. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value
  3391. 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3392. 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
  3393. 167:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3394. 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3395. 169:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3396. 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
  3397. 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3398. 172:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3399. 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3400. 174:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3401. 175:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3402. 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3403. 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register
  3404. 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register.
  3405. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  3406. 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3407. 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
  3408. 182:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3409. 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
  3410. 184:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3411. 185:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3412. 186:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3413. 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3414. 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3415. 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure)
  3416. 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state.
  3417. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  3418. 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3419. 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
  3420. 194:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3421. 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
  3422. 196:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3423. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 60
  3424. 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3425. 198:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3426. 199:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3427. 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3428. 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register
  3429. 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register.
  3430. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value
  3431. 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3432. 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
  3433. 206:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3434. 207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3435. 208:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3436. 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
  3437. 210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3438. 211:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3439. 212:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3440. 213:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3441. 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3442. 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register
  3443. 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register.
  3444. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value
  3445. 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3446. 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
  3447. 220:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3448. 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3449. 222:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3450. 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) );
  3451. 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3452. 225:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3453. 226:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3454. 227:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3455. 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3456. 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register
  3457. 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register.
  3458. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value
  3459. 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3460. 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
  3461. 234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3462. 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3463. 236:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3464. 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
  3465. 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3466. 239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3467. 240:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3468. 241:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3469. 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3470. 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer
  3471. 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP).
  3472. 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  3473. 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3474. 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
  3475. 248:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3476. 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3477. 250:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3478. 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) );
  3479. 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3480. 253:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3481. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 61
  3482. 254:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3483. 255:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3484. 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3485. 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3486. 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure)
  3487. 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
  3488. 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  3489. 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3490. 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
  3491. 263:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3492. 264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3493. 265:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3494. 266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) );
  3495. 267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3496. 268:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3497. 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3498. 270:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3499. 271:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3500. 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3501. 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer
  3502. 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP).
  3503. 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  3504. 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3505. 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
  3506. 278:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3507. 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
  3508. 280:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3509. 281:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3510. 282:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3511. 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3512. 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3513. 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  3514. 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
  3515. 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  3516. 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3517. 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
  3518. 290:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3519. 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
  3520. 292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3521. 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3522. 294:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3523. 295:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3524. 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3525. 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer
  3526. 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP).
  3527. 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  3528. 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3529. 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
  3530. 302:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3531. 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3532. 304:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3533. 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) );
  3534. 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3535. 307:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3536. 308:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3537. 309:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3538. 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3539. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 62
  3540. 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3541. 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure)
  3542. 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
  3543. 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  3544. 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3545. 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
  3546. 317:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3547. 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3548. 319:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3549. 320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
  3550. 321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3551. 322:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3552. 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3553. 324:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3554. 325:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3555. 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3556. 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer
  3557. 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP).
  3558. 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  3559. 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3560. 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
  3561. 332:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3562. 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
  3563. 334:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3564. 335:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3565. 336:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3566. 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3567. 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3568. 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure)
  3569. 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
  3570. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  3571. 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3572. 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
  3573. 344:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3574. 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
  3575. 346:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3576. 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3577. 348:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3578. 349:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3579. 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3580. 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3581. 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure)
  3582. 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
  3583. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value
  3584. 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3585. 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
  3586. 357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3587. 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3588. 359:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3589. 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
  3590. 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3591. 362:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3592. 363:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3593. 364:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3594. 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3595. 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure)
  3596. 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
  3597. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 63
  3598. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set
  3599. 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3600. 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
  3601. 371:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3602. 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
  3603. 373:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3604. 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3605. 375:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3606. 376:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3607. 377:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3608. 378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask
  3609. 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register.
  3610. 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  3611. 381:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3612. 382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
  3613. 383:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3614. 384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3615. 385:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3616. 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
  3617. 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3618. 388:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3619. 389:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3620. 390:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3621. 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3622. 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3623. 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure)
  3624. 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
  3625. 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  3626. 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3627. 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
  3628. 398:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3629. 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3630. 400:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3631. 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
  3632. 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3633. 403:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3634. 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3635. 405:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3636. 406:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3637. 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3638. 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask
  3639. 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register.
  3640. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  3641. 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3642. 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
  3643. 413:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3644. 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
  3645. 415:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3646. 416:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3647. 417:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3648. 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3649. 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3650. 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure)
  3651. 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
  3652. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  3653. 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3654. 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
  3655. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 64
  3656. 425:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3657. 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
  3658. 427:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3659. 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3660. 429:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3661. 430:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3662. 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  3663. 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  3664. 433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  3665. 434:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3666. 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ
  3667. 436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
  3668. 437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  3669. 438:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3670. 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
  3671. 440:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3672. 441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory");
  3673. 442:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3674. 443:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3675. 444:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3676. 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3677. 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ
  3678. 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR.
  3679. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  3680. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3681. 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
  3682. 451:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3683. 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory");
  3684. 453:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3685. 454:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3686. 455:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3687. 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3688. 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority
  3689. 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register.
  3690. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  3691. 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3692. 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
  3693. 462:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3694. 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3695. 464:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3696. 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) );
  3697. 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3698. 467:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3699. 468:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3700. 469:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3701. 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3702. 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3703. 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure)
  3704. 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state.
  3705. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  3706. 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3707. 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
  3708. 477:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3709. 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3710. 479:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3711. 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
  3712. 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3713. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 65
  3714. 482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3715. 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3716. 484:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3717. 485:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3718. 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3719. 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority
  3720. 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register.
  3721. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  3722. 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3723. 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
  3724. 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3725. 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
  3726. 494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3727. 495:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3728. 496:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3729. 497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3730. 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3731. 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure)
  3732. 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state.
  3733. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  3734. 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3735. 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
  3736. 504:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3737. 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
  3738. 506:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3739. 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3740. 508:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3741. 509:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3742. 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3743. 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition
  3744. 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
  3745. 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level.
  3746. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  3747. 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3748. 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
  3749. 517:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3750. 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
  3751. 519:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3752. 520:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3753. 521:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3754. 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3755. 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask
  3756. 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register.
  3757. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  3758. 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3759. 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
  3760. 528:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3761. 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3762. 530:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3763. 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
  3764. 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3765. 533:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3766. 534:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3767. 535:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3768. 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3769. 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3770. 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure)
  3771. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 66
  3772. 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state.
  3773. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  3774. 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3775. 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
  3776. 543:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3777. 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3778. 545:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3779. 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
  3780. 547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3781. 548:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3782. 549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3783. 550:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3784. 551:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3785. 552:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3786. 553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask
  3787. 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register.
  3788. 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  3789. 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3790. 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
  3791. 558:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3792. 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
  3793. 560:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3794. 561:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3795. 562:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3796. 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3797. 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3798. 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure)
  3799. 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state.
  3800. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  3801. 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3802. 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
  3803. 570:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3804. 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
  3805. 572:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3806. 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3807. 574:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3808. 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  3809. 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  3810. 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
  3811. 578:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3812. 579:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3813. 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  3814. 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
  3815. 582:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3816. 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3817. 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit
  3818. 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3819. 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  3820. 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  3821. 588:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3822. 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
  3823. 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  3824. 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3825. 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
  3826. 593:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3827. 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  3828. 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  3829. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 67
  3830. 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  3831. 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  3832. 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3833. 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3834. 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) );
  3835. 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  3836. 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3837. 603:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3838. 604:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3839. 605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
  3840. 606:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3841. 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure)
  3842. 608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3843. 609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  3844. 610:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3845. 611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in
  3846. 612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  3847. 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3848. 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
  3849. 615:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3850. 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  3851. 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  3852. 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  3853. 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3854. 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3855. 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) );
  3856. 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  3857. 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3858. 624:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3859. 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3860. 626:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3861. 627:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3862. 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3863. 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit
  3864. 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3865. 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  3866. 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  3867. 633:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3868. 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
  3869. 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  3870. 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3871. 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
  3872. 638:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3873. 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  3874. 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  3875. 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  3876. 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  3877. 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3878. 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
  3879. 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3880. 646:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3881. 647:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3882. 648:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3883. 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3884. 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3885. 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  3886. 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3887. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 68
  3888. 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  3889. 654:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3890. 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
  3891. 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  3892. 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3893. 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
  3894. 659:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3895. 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  3896. 661:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  3897. 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  3898. 663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3899. 664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
  3900. 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3901. 666:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3902. 667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3903. 668:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3904. 669:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3905. 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3906. 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit
  3907. 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3908. 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  3909. 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  3910. 675:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3911. 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
  3912. 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  3913. 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3914. 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
  3915. 680:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3916. 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  3917. 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  3918. 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  3919. 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  3920. 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3921. 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3922. 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) );
  3923. 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  3924. 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3925. 690:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3926. 691:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3927. 692:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3928. 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3929. 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3930. 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure)
  3931. 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3932. 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  3933. 698:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3934. 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
  3935. 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  3936. 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3937. 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
  3938. 703:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3939. 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  3940. 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  3941. 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  3942. 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3943. 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  3944. 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
  3945. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 69
  3946. 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  3947. 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3948. 712:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3949. 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3950. 714:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3951. 715:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3952. 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3953. 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit
  3954. 718:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3955. 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  3956. 720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  3957. 721:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3958. 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
  3959. 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set
  3960. 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3961. 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
  3962. 726:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3963. 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  3964. 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  3965. 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  3966. 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  3967. 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3968. 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
  3969. 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3970. 734:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3971. 735:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3972. 736:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3973. 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  3974. 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3975. 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure)
  3976. 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  3977. 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  3978. 742:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3979. 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
  3980. 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set
  3981. 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  3982. 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
  3983. 747:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  3984. 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  3985. 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  3986. 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  3987. 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  3988. 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
  3989. 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3990. 754:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3991. 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  3992. 756:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3993. 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  3994. 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
  3995. 759:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3996. 760:Drivers/CMSIS/Include/cmsis_gcc.h ****
  3997. 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  3998. 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR
  3999. 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register.
  4000. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value
  4001. 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4002. 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
  4003. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 70
  4004. 767:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4005. 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  4006. 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  4007. 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr)
  4008. 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  4009. 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  4010. 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  4011. 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr();
  4012. 775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4013. 776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  4014. 777:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4015. 778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
  4016. 779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  4017. 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4018. 781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4019. 782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U);
  4020. 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4021. 784:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4022. 785:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4023. 786:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4024. 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4025. 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR
  4026. 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register.
  4027. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set
  4028. 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4029. 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
  4030. 793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4031. 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  4032. 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  4033. 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
  4034. 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  4035. 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  4036. 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  4037. 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr);
  4038. 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4039. 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
  4040. 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4041. 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4042. 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr;
  4043. 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4044. 807:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4045. 808:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4046. 809:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4047. 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
  4048. 811:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4049. 812:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4050. 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */
  4051. 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
  4052. 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions
  4053. 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  4054. 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4055. 818:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4056. 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
  4057. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l"
  4058. 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */
  4059. 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
  4060. 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
  4061. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 71
  4062. 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
  4063. 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
  4064. 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4065. 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
  4066. 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
  4067. 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
  4068. 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4069. 831:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4070. 832:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4071. 833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation
  4072. 834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes.
  4073. 835:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4074. 836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
  4075. 837:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4076. 838:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4077. 839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
  4078. 840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
  4079. 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4080. 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi")
  4081. 843:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4082. 844:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4083. 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4084. 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event
  4085. 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter
  4086. 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs.
  4087. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4088. 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe")
  4089. 851:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4090. 852:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4091. 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4092. 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event
  4093. 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
  4094. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4095. 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev")
  4096. 858:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4097. 859:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4098. 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4099. 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier
  4100. 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor,
  4101. 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory,
  4102. 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed.
  4103. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4104. 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
  4105. 867:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4106. 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory");
  4107. 869:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4108. 870:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4109. 871:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4110. 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4111. 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier
  4112. 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier.
  4113. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete.
  4114. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4115. 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void)
  4116. 878:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4117. 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory");
  4118. 880:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4119. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 72
  4120. 881:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4121. 882:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4122. 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4123. 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier
  4124. 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before
  4125. 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion.
  4126. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4127. 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void)
  4128. 889:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4129. 890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory");
  4130. 891:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4131. 892:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4132. 893:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4133. 894:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4134. 895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit)
  4135. 896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785
  4136. 897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  4137. 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  4138. 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4139. 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value)
  4140. 901:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4141. 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
  4142. 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value);
  4143. 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4144. 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  4145. 906:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4146. 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  4147. 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  4148. 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4149. 910:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4150. 911:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4151. 912:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4152. 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4153. 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  4154. 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes
  4155. 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  4156. 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  4157. 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4158. 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value)
  4159. 920:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4160. 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  4161. 922:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4162. 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  4163. 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  4164. 925:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4165. 926:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4166. 927:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4167. 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4168. 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  4169. 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
  4170. 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  4171. 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  4172. 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4173. 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value)
  4174. 935:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4175. 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
  4176. 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value);
  4177. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 73
  4178. 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4179. 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result;
  4180. 940:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4181. 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  4182. 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  4183. 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4184. 944:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4185. 945:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4186. 946:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4187. 947:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4188. 948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit)
  4189. 949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v
  4190. 950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate
  4191. 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate
  4192. 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value
  4193. 953:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4194. 954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
  4195. 955:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4196. 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U;
  4197. 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U)
  4198. 958:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4199. 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1;
  4200. 960:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4201. 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2));
  4202. 962:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4203. 963:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4204. 964:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4205. 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4206. 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint
  4207. 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state.
  4208. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula
  4209. 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor.
  4210. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break
  4211. 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4212. 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value)
  4213. 973:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4214. 974:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4215. 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  4216. 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value
  4217. 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value.
  4218. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  4219. 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  4220. 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  4221. 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value)
  4222. 1687 .loc 2 981 31 is_stmt 1 view .LVU543
  4223. 1688 .LBB108:
  4224. 982:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4225. 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  4226. 1689 .loc 2 983 3 view .LVU544
  4227. 984:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4228. 985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  4229. 986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  4230. 987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  4231. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
  4232. 1690 .loc 2 988 4 view .LVU545
  4233. 1691 0022 4FF48072 mov r2, #256
  4234. 1692 .syntax unified
  4235. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 74
  4236. 1693 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  4237. 1694 0026 92FAA2F2 rbit r2, r2
  4238. 1695 @ 0 "" 2
  4239. 1696 .LVL137:
  4240. 989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4241. 990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
  4242. 991:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4243. 992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */
  4244. 993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U)
  4245. 994:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4246. 995:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U;
  4247. 996:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U;
  4248. 997:Drivers/CMSIS/Include/cmsis_gcc.h **** s--;
  4249. 998:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  4250. 999:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */
  4251. 1000:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  4252. 1001:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  4253. 1697 .loc 2 1001 3 view .LVU546
  4254. 1698 .loc 2 1001 3 is_stmt 0 view .LVU547
  4255. 1699 .thumb
  4256. 1700 .syntax unified
  4257. 1701 .LBE108:
  4258. 1702 .LBE107:
  4259. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4260. 1703 .loc 1 931 63 view .LVU548
  4261. 1704 002a B2FA82F2 clz r2, r2
  4262. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4263. 1705 .loc 1 931 42 view .LVU549
  4264. 1706 002e 03F4EE43 and r3, r3, #30464
  4265. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4266. 1707 .loc 1 931 60 view .LVU550
  4267. 1708 0032 D340 lsrs r3, r3, r2
  4268. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4269. 1709 .loc 1 931 10 view .LVU551
  4270. 1710 0034 4373 strb r3, [r0, #13]
  4271. 1711 .LBE109:
  4272. 1712 .LBE110:
  4273. 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4274. 1713 .loc 1 453 1 view .LVU552
  4275. 1714 0036 7047 bx lr
  4276. 1715 .LVL138:
  4277. 1716 .L153:
  4278. 1717 .LBB111:
  4279. 1718 .LBB104:
  4280. 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4281. 1719 .loc 1 453 1 view .LVU553
  4282. 1720 0038 CC22 movs r2, #204
  4283. 1721 003a EFE7 b .L152
  4284. 1722 .L156:
  4285. 1723 .align 2
  4286. 1724 .L155:
  4287. 1725 003c 00200240 .word 1073881088
  4288. 1726 .LBE104:
  4289. 1727 .LBE111:
  4290. 1728 .cfi_endproc
  4291. 1729 .LFE134:
  4292. 1731 .section .text.HAL_FLASHEx_OBGetUserData,"ax",%progbits
  4293. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 75
  4294. 1732 .align 1
  4295. 1733 .p2align 2,,3
  4296. 1734 .global HAL_FLASHEx_OBGetUserData
  4297. 1735 .syntax unified
  4298. 1736 .thumb
  4299. 1737 .thumb_func
  4300. 1739 HAL_FLASHEx_OBGetUserData:
  4301. 1740 .LVL139:
  4302. 1741 .LFB135:
  4303. 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** uint32_t value = 0U;
  4304. 1742 .loc 1 464 1 is_stmt 1 view -0
  4305. 1743 .cfi_startproc
  4306. 1744 @ args = 0, pretend = 0, frame = 0
  4307. 1745 @ frame_needed = 0, uses_anonymous_args = 0
  4308. 1746 @ link register save eliminated.
  4309. 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4310. 1747 .loc 1 465 3 view .LVU555
  4311. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  4312. 1748 .loc 1 467 3 view .LVU556
  4313. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  4314. 1749 .loc 1 467 6 is_stmt 0 view .LVU557
  4315. 1750 0000 0C4B ldr r3, .L161
  4316. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4317. 1751 .loc 1 470 13 view .LVU558
  4318. 1752 0002 0D4A ldr r2, .L161+4
  4319. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** {
  4320. 1753 .loc 1 467 6 view .LVU559
  4321. 1754 0004 9842 cmp r0, r3
  4322. 1755 0006 0AD0 beq .L160
  4323. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4324. 1756 .loc 1 475 5 is_stmt 1 view .LVU560
  4325. 1757 .LBB112:
  4326. 1758 .LBB113:
  4327. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4328. 1759 .loc 2 988 4 is_stmt 0 view .LVU561
  4329. 1760 0008 4FF07F43 mov r3, #-16777216
  4330. 1761 .LBE113:
  4331. 1762 .LBE112:
  4332. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4333. 1763 .loc 1 475 13 view .LVU562
  4334. 1764 000c D069 ldr r0, [r2, #28]
  4335. 1765 .LVL140:
  4336. 1766 .LBB115:
  4337. 1767 .LBI112:
  4338. 981:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4339. 1768 .loc 2 981 31 is_stmt 1 view .LVU563
  4340. 1769 .LBB114:
  4341. 983:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4342. 1770 .loc 2 983 3 view .LVU564
  4343. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4344. 1771 .loc 2 988 4 view .LVU565
  4345. 1772 .syntax unified
  4346. 1773 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  4347. 1774 000e 93FAA3F3 rbit r3, r3
  4348. 1775 @ 0 "" 2
  4349. 1776 .LVL141:
  4350. 1777 .loc 2 1001 3 view .LVU566
  4351. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 76
  4352. 1778 .loc 2 1001 3 is_stmt 0 view .LVU567
  4353. 1779 .thumb
  4354. 1780 .syntax unified
  4355. 1781 .LBE114:
  4356. 1782 .LBE115:
  4357. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4358. 1783 .loc 1 475 54 view .LVU568
  4359. 1784 0012 B3FA83F3 clz r3, r3
  4360. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4361. 1785 .loc 1 475 13 view .LVU569
  4362. 1786 0016 00F07F40 and r0, r0, #-16777216
  4363. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4364. 1787 .loc 1 475 11 view .LVU570
  4365. 1788 001a D840 lsrs r0, r0, r3
  4366. 1789 .LVL142:
  4367. 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4368. 1790 .loc 1 478 3 is_stmt 1 view .LVU571
  4369. 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4370. 1791 .loc 1 479 1 is_stmt 0 view .LVU572
  4371. 1792 001c 7047 bx lr
  4372. 1793 .LVL143:
  4373. 1794 .L160:
  4374. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4375. 1795 .loc 1 470 5 is_stmt 1 view .LVU573
  4376. 1796 .LBB116:
  4377. 1797 .LBB117:
  4378. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4379. 1798 .loc 2 988 4 is_stmt 0 view .LVU574
  4380. 1799 001e 4FF47F03 mov r3, #16711680
  4381. 1800 .LBE117:
  4382. 1801 .LBE116:
  4383. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4384. 1802 .loc 1 470 13 view .LVU575
  4385. 1803 0022 D069 ldr r0, [r2, #28]
  4386. 1804 .LVL144:
  4387. 1805 .LBB119:
  4388. 1806 .LBI116:
  4389. 981:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  4390. 1807 .loc 2 981 31 is_stmt 1 view .LVU576
  4391. 1808 .LBB118:
  4392. 983:Drivers/CMSIS/Include/cmsis_gcc.h ****
  4393. 1809 .loc 2 983 3 view .LVU577
  4394. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  4395. 1810 .loc 2 988 4 view .LVU578
  4396. 1811 .syntax unified
  4397. 1812 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  4398. 1813 0024 93FAA3F3 rbit r3, r3
  4399. 1814 @ 0 "" 2
  4400. 1815 .LVL145:
  4401. 1816 .loc 2 1001 3 view .LVU579
  4402. 1817 .loc 2 1001 3 is_stmt 0 view .LVU580
  4403. 1818 .thumb
  4404. 1819 .syntax unified
  4405. 1820 .LBE118:
  4406. 1821 .LBE119:
  4407. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4408. 1822 .loc 1 470 54 view .LVU581
  4409. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 77
  4410. 1823 0028 B3FA83F3 clz r3, r3
  4411. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4412. 1824 .loc 1 470 13 view .LVU582
  4413. 1825 002c 00F47F00 and r0, r0, #16711680
  4414. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4415. 1826 .loc 1 470 11 view .LVU583
  4416. 1827 0030 D840 lsrs r0, r0, r3
  4417. 1828 .LVL146:
  4418. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4419. 1829 .loc 1 470 11 view .LVU584
  4420. 1830 0032 7047 bx lr
  4421. 1831 .L162:
  4422. 1832 .align 2
  4423. 1833 .L161:
  4424. 1834 0034 04F8FF1F .word 536868868
  4425. 1835 0038 00200240 .word 1073881088
  4426. 1836 .cfi_endproc
  4427. 1837 .LFE135:
  4428. 1839 .section .text.FLASH_PageErase,"ax",%progbits
  4429. 1840 .align 1
  4430. 1841 .p2align 2,,3
  4431. 1842 .global FLASH_PageErase
  4432. 1843 .syntax unified
  4433. 1844 .thumb
  4434. 1845 .thumb_func
  4435. 1847 FLASH_PageErase:
  4436. 1848 .LVL147:
  4437. 1849 .LFB145:
  4438. 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** /* Clean the error context */
  4439. 1850 .loc 1 958 1 is_stmt 1 view -0
  4440. 1851 .cfi_startproc
  4441. 1852 @ args = 0, pretend = 0, frame = 0
  4442. 1853 @ frame_needed = 0, uses_anonymous_args = 0
  4443. 1854 @ link register save eliminated.
  4444. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4445. 1855 .loc 1 960 3 view .LVU586
  4446. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4447. 1856 .loc 1 960 20 is_stmt 0 view .LVU587
  4448. 1857 0000 064A ldr r2, .L164
  4449. 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR, PageAddress);
  4450. 1858 .loc 1 963 5 view .LVU588
  4451. 1859 0002 074B ldr r3, .L164+4
  4452. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c ****
  4453. 1860 .loc 1 960 20 view .LVU589
  4454. 1861 0004 0021 movs r1, #0
  4455. 1862 0006 D161 str r1, [r2, #28]
  4456. 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR, PageAddress);
  4457. 1863 .loc 1 963 5 is_stmt 1 view .LVU590
  4458. 1864 0008 1A69 ldr r2, [r3, #16]
  4459. 1865 000a 42F00202 orr r2, r2, #2
  4460. 1866 000e 1A61 str r2, [r3, #16]
  4461. 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
  4462. 1867 .loc 1 964 5 view .LVU591
  4463. 1868 0010 5861 str r0, [r3, #20]
  4464. 1869 .loc 1 965 5 view .LVU592
  4465. 1870 0012 1A69 ldr r2, [r3, #16]
  4466. 1871 0014 42F04002 orr r2, r2, #64
  4467. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 78
  4468. 1872 0018 1A61 str r2, [r3, #16]
  4469. 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash_ex.c **** }
  4470. 1873 .loc 1 966 1 is_stmt 0 view .LVU593
  4471. 1874 001a 7047 bx lr
  4472. 1875 .L165:
  4473. 1876 .align 2
  4474. 1877 .L164:
  4475. 1878 001c 00000000 .word pFlash
  4476. 1879 0020 00200240 .word 1073881088
  4477. 1880 .cfi_endproc
  4478. 1881 .LFE145:
  4479. 1883 .text
  4480. 1884 .Letext0:
  4481. 1885 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  4482. 1886 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  4483. 1887 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
  4484. 1888 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
  4485. 1889 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h"
  4486. 1890 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h"
  4487. 1891 .file 9 "Core/Inc/stm32f3xx_hal_conf.h"
  4488. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s page 79
  4489. DEFINED SYMBOLS
  4490. *ABS*:00000000 stm32f3xx_hal_flash_ex.c
  4491. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:20 .rodata.FLASH_OB_RDP_LevelConfig.str1.4:00000000 $d
  4492. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:25 .text.FLASH_OB_RDP_LevelConfig:00000000 $t
  4493. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:31 .text.FLASH_OB_RDP_LevelConfig:00000000 FLASH_OB_RDP_LevelConfig
  4494. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:165 .text.FLASH_OB_RDP_LevelConfig:0000007c $d
  4495. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:173 .text.HAL_FLASHEx_Erase:00000000 $t
  4496. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:180 .text.HAL_FLASHEx_Erase:00000000 HAL_FLASHEx_Erase
  4497. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:464 .text.HAL_FLASHEx_Erase:0000015c $d
  4498. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:475 .text.HAL_FLASHEx_Erase_IT:00000000 $t
  4499. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:482 .text.HAL_FLASHEx_Erase_IT:00000000 HAL_FLASHEx_Erase_IT
  4500. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:729 .text.HAL_FLASHEx_Erase_IT:0000010c $d
  4501. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:740 .text.HAL_FLASHEx_OBErase:00000000 $t
  4502. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:747 .text.HAL_FLASHEx_OBErase:00000000 HAL_FLASHEx_OBErase
  4503. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:875 .text.HAL_FLASHEx_OBErase:00000060 $d
  4504. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:883 .text.HAL_FLASHEx_OBProgram:00000000 $t
  4505. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:890 .text.HAL_FLASHEx_OBProgram:00000000 HAL_FLASHEx_OBProgram
  4506. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1591 .text.HAL_FLASHEx_OBProgram:000002a8 $d
  4507. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1602 .text.HAL_FLASHEx_OBGetConfig:00000000 $t
  4508. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1609 .text.HAL_FLASHEx_OBGetConfig:00000000 HAL_FLASHEx_OBGetConfig
  4509. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1725 .text.HAL_FLASHEx_OBGetConfig:0000003c $d
  4510. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1732 .text.HAL_FLASHEx_OBGetUserData:00000000 $t
  4511. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1739 .text.HAL_FLASHEx_OBGetUserData:00000000 HAL_FLASHEx_OBGetUserData
  4512. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1834 .text.HAL_FLASHEx_OBGetUserData:00000034 $d
  4513. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1840 .text.FLASH_PageErase:00000000 $t
  4514. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1847 .text.FLASH_PageErase:00000000 FLASH_PageErase
  4515. C:\Users\zl835\AppData\Local\Temp\ccf4g1DM.s:1878 .text.FLASH_PageErase:0000001c $d
  4516. UNDEFINED SYMBOLS
  4517. FLASH_WaitForLastOperation
  4518. assert_failed
  4519. pFlash