STM32F103_ATTEN_PLL_Zig.list 256 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457
  1. STM32F103_ATTEN_PLL_Zig.elf: file format elf32-littlearm
  2. Sections:
  3. Idx Name Size VMA LMA File off Algn
  4. 0 .isr_vector 000001e4 08004000 08004000 00004000 2**0
  5. CONTENTS, ALLOC, LOAD, READONLY, DATA
  6. 1 .text 00002814 080041e4 080041e4 000041e4 2**2
  7. CONTENTS, ALLOC, LOAD, READONLY, CODE
  8. 2 .rodata 0000009c 080069f8 080069f8 000069f8 2**2
  9. CONTENTS, ALLOC, LOAD, READONLY, DATA
  10. 3 .init_array 00000004 08006a94 08006a94 00006a94 2**2
  11. CONTENTS, ALLOC, LOAD, DATA
  12. 4 .fini_array 00000004 08006a98 08006a98 00006a98 2**2
  13. CONTENTS, ALLOC, LOAD, DATA
  14. 5 .data 00000070 20000000 08006a9c 00010000 2**2
  15. CONTENTS, ALLOC, LOAD, DATA
  16. 6 .bss 00000168 20000070 08006b0c 00010070 2**2
  17. ALLOC
  18. 7 ._user_heap_stack 00000600 200001d8 08006b0c 000101d8 2**0
  19. ALLOC
  20. 8 .ARM.attributes 00000029 00000000 00000000 00010070 2**0
  21. CONTENTS, READONLY
  22. 9 .debug_info 0001557e 00000000 00000000 00010099 2**0
  23. CONTENTS, READONLY, DEBUGGING
  24. 10 .debug_abbrev 00002bd3 00000000 00000000 00025617 2**0
  25. CONTENTS, READONLY, DEBUGGING
  26. 11 .debug_loc 00007133 00000000 00000000 000281ea 2**0
  27. CONTENTS, READONLY, DEBUGGING
  28. 12 .debug_aranges 00000a40 00000000 00000000 0002f320 2**3
  29. CONTENTS, READONLY, DEBUGGING
  30. 13 .debug_ranges 00000da0 00000000 00000000 0002fd60 2**3
  31. CONTENTS, READONLY, DEBUGGING
  32. 14 .debug_line 000060b7 00000000 00000000 00030b00 2**0
  33. CONTENTS, READONLY, DEBUGGING
  34. 15 .debug_str 00003d7c 00000000 00000000 00036bb7 2**0
  35. CONTENTS, READONLY, DEBUGGING
  36. 16 .comment 0000007c 00000000 00000000 0003a933 2**0
  37. CONTENTS, READONLY
  38. 17 .debug_frame 000023d8 00000000 00000000 0003a9b0 2**2
  39. CONTENTS, READONLY, DEBUGGING
  40. Disassembly of section .text:
  41. 080041e4 <__do_global_dtors_aux>:
  42. 80041e4: b510 push {r4, lr}
  43. 80041e6: 4c05 ldr r4, [pc, #20] ; (80041fc <__do_global_dtors_aux+0x18>)
  44. 80041e8: 7823 ldrb r3, [r4, #0]
  45. 80041ea: b933 cbnz r3, 80041fa <__do_global_dtors_aux+0x16>
  46. 80041ec: 4b04 ldr r3, [pc, #16] ; (8004200 <__do_global_dtors_aux+0x1c>)
  47. 80041ee: b113 cbz r3, 80041f6 <__do_global_dtors_aux+0x12>
  48. 80041f0: 4804 ldr r0, [pc, #16] ; (8004204 <__do_global_dtors_aux+0x20>)
  49. 80041f2: f3af 8000 nop.w
  50. 80041f6: 2301 movs r3, #1
  51. 80041f8: 7023 strb r3, [r4, #0]
  52. 80041fa: bd10 pop {r4, pc}
  53. 80041fc: 20000070 .word 0x20000070
  54. 8004200: 00000000 .word 0x00000000
  55. 8004204: 080069e0 .word 0x080069e0
  56. 08004208 <frame_dummy>:
  57. 8004208: b508 push {r3, lr}
  58. 800420a: 4b03 ldr r3, [pc, #12] ; (8004218 <frame_dummy+0x10>)
  59. 800420c: b11b cbz r3, 8004216 <frame_dummy+0xe>
  60. 800420e: 4903 ldr r1, [pc, #12] ; (800421c <frame_dummy+0x14>)
  61. 8004210: 4803 ldr r0, [pc, #12] ; (8004220 <frame_dummy+0x18>)
  62. 8004212: f3af 8000 nop.w
  63. 8004216: bd08 pop {r3, pc}
  64. 8004218: 00000000 .word 0x00000000
  65. 800421c: 20000074 .word 0x20000074
  66. 8004220: 080069e0 .word 0x080069e0
  67. 08004224 <HAL_InitTick>:
  68. * implementation in user file.
  69. * @param TickPriority Tick interrupt priority.
  70. * @retval HAL status
  71. */
  72. __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
  73. {
  74. 8004224: b538 push {r3, r4, r5, lr}
  75. /* Configure the SysTick to have interrupt in 1ms time basis*/
  76. if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
  77. 8004226: 4b0e ldr r3, [pc, #56] ; (8004260 <HAL_InitTick+0x3c>)
  78. {
  79. 8004228: 4605 mov r5, r0
  80. if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
  81. 800422a: 7818 ldrb r0, [r3, #0]
  82. 800422c: f44f 737a mov.w r3, #1000 ; 0x3e8
  83. 8004230: fbb3 f3f0 udiv r3, r3, r0
  84. 8004234: 4a0b ldr r2, [pc, #44] ; (8004264 <HAL_InitTick+0x40>)
  85. 8004236: 6810 ldr r0, [r2, #0]
  86. 8004238: fbb0 f0f3 udiv r0, r0, r3
  87. 800423c: f000 f9bc bl 80045b8 <HAL_SYSTICK_Config>
  88. 8004240: 4604 mov r4, r0
  89. 8004242: b958 cbnz r0, 800425c <HAL_InitTick+0x38>
  90. {
  91. return HAL_ERROR;
  92. }
  93. /* Configure the SysTick IRQ priority */
  94. if (TickPriority < (1UL << __NVIC_PRIO_BITS))
  95. 8004244: 2d0f cmp r5, #15
  96. 8004246: d809 bhi.n 800425c <HAL_InitTick+0x38>
  97. {
  98. HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
  99. 8004248: 4602 mov r2, r0
  100. 800424a: 4629 mov r1, r5
  101. 800424c: f04f 30ff mov.w r0, #4294967295
  102. 8004250: f000 f972 bl 8004538 <HAL_NVIC_SetPriority>
  103. uwTickPrio = TickPriority;
  104. 8004254: 4b04 ldr r3, [pc, #16] ; (8004268 <HAL_InitTick+0x44>)
  105. 8004256: 4620 mov r0, r4
  106. 8004258: 601d str r5, [r3, #0]
  107. 800425a: bd38 pop {r3, r4, r5, pc}
  108. return HAL_ERROR;
  109. 800425c: 2001 movs r0, #1
  110. return HAL_ERROR;
  111. }
  112. /* Return function status */
  113. return HAL_OK;
  114. }
  115. 800425e: bd38 pop {r3, r4, r5, pc}
  116. 8004260: 20000000 .word 0x20000000
  117. 8004264: 20000008 .word 0x20000008
  118. 8004268: 20000004 .word 0x20000004
  119. 0800426c <HAL_Init>:
  120. __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
  121. 800426c: 4a07 ldr r2, [pc, #28] ; (800428c <HAL_Init+0x20>)
  122. {
  123. 800426e: b508 push {r3, lr}
  124. __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
  125. 8004270: 6813 ldr r3, [r2, #0]
  126. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
  127. 8004272: 2003 movs r0, #3
  128. __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
  129. 8004274: f043 0310 orr.w r3, r3, #16
  130. 8004278: 6013 str r3, [r2, #0]
  131. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
  132. 800427a: f000 f94b bl 8004514 <HAL_NVIC_SetPriorityGrouping>
  133. HAL_InitTick(TICK_INT_PRIORITY);
  134. 800427e: 2000 movs r0, #0
  135. 8004280: f7ff ffd0 bl 8004224 <HAL_InitTick>
  136. HAL_MspInit();
  137. 8004284: f001 fcd4 bl 8005c30 <HAL_MspInit>
  138. }
  139. 8004288: 2000 movs r0, #0
  140. 800428a: bd08 pop {r3, pc}
  141. 800428c: 40022000 .word 0x40022000
  142. 08004290 <HAL_IncTick>:
  143. * implementations in user file.
  144. * @retval None
  145. */
  146. __weak void HAL_IncTick(void)
  147. {
  148. uwTick += uwTickFreq;
  149. 8004290: 4a03 ldr r2, [pc, #12] ; (80042a0 <HAL_IncTick+0x10>)
  150. 8004292: 4b04 ldr r3, [pc, #16] ; (80042a4 <HAL_IncTick+0x14>)
  151. 8004294: 6811 ldr r1, [r2, #0]
  152. 8004296: 781b ldrb r3, [r3, #0]
  153. 8004298: 440b add r3, r1
  154. 800429a: 6013 str r3, [r2, #0]
  155. 800429c: 4770 bx lr
  156. 800429e: bf00 nop
  157. 80042a0: 200000a4 .word 0x200000a4
  158. 80042a4: 20000000 .word 0x20000000
  159. 080042a8 <HAL_GetTick>:
  160. * implementations in user file.
  161. * @retval tick value
  162. */
  163. __weak uint32_t HAL_GetTick(void)
  164. {
  165. return uwTick;
  166. 80042a8: 4b01 ldr r3, [pc, #4] ; (80042b0 <HAL_GetTick+0x8>)
  167. 80042aa: 6818 ldr r0, [r3, #0]
  168. }
  169. 80042ac: 4770 bx lr
  170. 80042ae: bf00 nop
  171. 80042b0: 200000a4 .word 0x200000a4
  172. 080042b4 <HAL_ADC_ConfigChannel>:
  173. * @retval HAL status
  174. */
  175. HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig)
  176. {
  177. HAL_StatusTypeDef tmp_hal_status = HAL_OK;
  178. __IO uint32_t wait_loop_index = 0U;
  179. 80042b4: 2300 movs r3, #0
  180. {
  181. 80042b6: b573 push {r0, r1, r4, r5, r6, lr}
  182. __IO uint32_t wait_loop_index = 0U;
  183. 80042b8: 9301 str r3, [sp, #4]
  184. assert_param(IS_ADC_CHANNEL(sConfig->Channel));
  185. assert_param(IS_ADC_REGULAR_RANK(sConfig->Rank));
  186. assert_param(IS_ADC_SAMPLE_TIME(sConfig->SamplingTime));
  187. /* Process locked */
  188. __HAL_LOCK(hadc);
  189. 80042ba: f890 3024 ldrb.w r3, [r0, #36] ; 0x24
  190. 80042be: 2b01 cmp r3, #1
  191. 80042c0: d074 beq.n 80043ac <HAL_ADC_ConfigChannel+0xf8>
  192. 80042c2: 2301 movs r3, #1
  193. /* Regular sequence configuration */
  194. /* For Rank 1 to 6 */
  195. if (sConfig->Rank < 7U)
  196. 80042c4: 684d ldr r5, [r1, #4]
  197. __HAL_LOCK(hadc);
  198. 80042c6: f880 3024 strb.w r3, [r0, #36] ; 0x24
  199. if (sConfig->Rank < 7U)
  200. 80042ca: 2d06 cmp r5, #6
  201. 80042cc: 6802 ldr r2, [r0, #0]
  202. 80042ce: ea4f 0385 mov.w r3, r5, lsl #2
  203. 80042d2: 680c ldr r4, [r1, #0]
  204. 80042d4: d825 bhi.n 8004322 <HAL_ADC_ConfigChannel+0x6e>
  205. {
  206. MODIFY_REG(hadc->Instance->SQR3 ,
  207. 80042d6: 442b add r3, r5
  208. 80042d8: 251f movs r5, #31
  209. 80042da: 6b56 ldr r6, [r2, #52] ; 0x34
  210. 80042dc: 3b05 subs r3, #5
  211. 80042de: 409d lsls r5, r3
  212. 80042e0: ea26 0505 bic.w r5, r6, r5
  213. 80042e4: fa04 f303 lsl.w r3, r4, r3
  214. 80042e8: 432b orrs r3, r5
  215. 80042ea: 6353 str r3, [r2, #52] ; 0x34
  216. }
  217. /* Channel sampling time configuration */
  218. /* For channels 10 to 17 */
  219. if (sConfig->Channel >= ADC_CHANNEL_10)
  220. 80042ec: 2c09 cmp r4, #9
  221. 80042ee: ea4f 0344 mov.w r3, r4, lsl #1
  222. 80042f2: 688d ldr r5, [r1, #8]
  223. 80042f4: d92f bls.n 8004356 <HAL_ADC_ConfigChannel+0xa2>
  224. {
  225. MODIFY_REG(hadc->Instance->SMPR1 ,
  226. 80042f6: 2607 movs r6, #7
  227. 80042f8: 4423 add r3, r4
  228. 80042fa: 68d1 ldr r1, [r2, #12]
  229. 80042fc: 3b1e subs r3, #30
  230. 80042fe: 409e lsls r6, r3
  231. 8004300: ea21 0106 bic.w r1, r1, r6
  232. 8004304: fa05 f303 lsl.w r3, r5, r3
  233. 8004308: 430b orrs r3, r1
  234. 800430a: 60d3 str r3, [r2, #12]
  235. ADC_SMPR2(sConfig->SamplingTime, sConfig->Channel) );
  236. }
  237. /* If ADC1 Channel_16 or Channel_17 is selected, enable Temperature sensor */
  238. /* and VREFINT measurement path. */
  239. if ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR) ||
  240. 800430c: f1a4 0310 sub.w r3, r4, #16
  241. 8004310: 2b01 cmp r3, #1
  242. 8004312: d92b bls.n 800436c <HAL_ADC_ConfigChannel+0xb8>
  243. HAL_StatusTypeDef tmp_hal_status = HAL_OK;
  244. 8004314: 2300 movs r3, #0
  245. tmp_hal_status = HAL_ERROR;
  246. }
  247. }
  248. /* Process unlocked */
  249. __HAL_UNLOCK(hadc);
  250. 8004316: 2200 movs r2, #0
  251. 8004318: f880 2024 strb.w r2, [r0, #36] ; 0x24
  252. /* Return function status */
  253. return tmp_hal_status;
  254. }
  255. 800431c: 4618 mov r0, r3
  256. 800431e: b002 add sp, #8
  257. 8004320: bd70 pop {r4, r5, r6, pc}
  258. else if (sConfig->Rank < 13U)
  259. 8004322: 2d0c cmp r5, #12
  260. 8004324: d80b bhi.n 800433e <HAL_ADC_ConfigChannel+0x8a>
  261. MODIFY_REG(hadc->Instance->SQR2 ,
  262. 8004326: 442b add r3, r5
  263. 8004328: 251f movs r5, #31
  264. 800432a: 6b16 ldr r6, [r2, #48] ; 0x30
  265. 800432c: 3b23 subs r3, #35 ; 0x23
  266. 800432e: 409d lsls r5, r3
  267. 8004330: ea26 0505 bic.w r5, r6, r5
  268. 8004334: fa04 f303 lsl.w r3, r4, r3
  269. 8004338: 432b orrs r3, r5
  270. 800433a: 6313 str r3, [r2, #48] ; 0x30
  271. 800433c: e7d6 b.n 80042ec <HAL_ADC_ConfigChannel+0x38>
  272. MODIFY_REG(hadc->Instance->SQR1 ,
  273. 800433e: 442b add r3, r5
  274. 8004340: 251f movs r5, #31
  275. 8004342: 6ad6 ldr r6, [r2, #44] ; 0x2c
  276. 8004344: 3b41 subs r3, #65 ; 0x41
  277. 8004346: 409d lsls r5, r3
  278. 8004348: ea26 0505 bic.w r5, r6, r5
  279. 800434c: fa04 f303 lsl.w r3, r4, r3
  280. 8004350: 432b orrs r3, r5
  281. 8004352: 62d3 str r3, [r2, #44] ; 0x2c
  282. 8004354: e7ca b.n 80042ec <HAL_ADC_ConfigChannel+0x38>
  283. MODIFY_REG(hadc->Instance->SMPR2 ,
  284. 8004356: 2607 movs r6, #7
  285. 8004358: 6911 ldr r1, [r2, #16]
  286. 800435a: 4423 add r3, r4
  287. 800435c: 409e lsls r6, r3
  288. 800435e: ea21 0106 bic.w r1, r1, r6
  289. 8004362: fa05 f303 lsl.w r3, r5, r3
  290. 8004366: 430b orrs r3, r1
  291. 8004368: 6113 str r3, [r2, #16]
  292. 800436a: e7cf b.n 800430c <HAL_ADC_ConfigChannel+0x58>
  293. if (hadc->Instance == ADC1)
  294. 800436c: 4b10 ldr r3, [pc, #64] ; (80043b0 <HAL_ADC_ConfigChannel+0xfc>)
  295. 800436e: 429a cmp r2, r3
  296. 8004370: d116 bne.n 80043a0 <HAL_ADC_ConfigChannel+0xec>
  297. if (READ_BIT(hadc->Instance->CR2, ADC_CR2_TSVREFE) == RESET)
  298. 8004372: 6893 ldr r3, [r2, #8]
  299. 8004374: 021b lsls r3, r3, #8
  300. 8004376: d4cd bmi.n 8004314 <HAL_ADC_ConfigChannel+0x60>
  301. SET_BIT(hadc->Instance->CR2, ADC_CR2_TSVREFE);
  302. 8004378: 6893 ldr r3, [r2, #8]
  303. if ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR))
  304. 800437a: 2c10 cmp r4, #16
  305. SET_BIT(hadc->Instance->CR2, ADC_CR2_TSVREFE);
  306. 800437c: f443 0300 orr.w r3, r3, #8388608 ; 0x800000
  307. 8004380: 6093 str r3, [r2, #8]
  308. if ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR))
  309. 8004382: d1c7 bne.n 8004314 <HAL_ADC_ConfigChannel+0x60>
  310. wait_loop_index = (ADC_TEMPSENSOR_DELAY_US * (SystemCoreClock / 1000000U));
  311. 8004384: 4b0b ldr r3, [pc, #44] ; (80043b4 <HAL_ADC_ConfigChannel+0x100>)
  312. 8004386: 4a0c ldr r2, [pc, #48] ; (80043b8 <HAL_ADC_ConfigChannel+0x104>)
  313. 8004388: 681b ldr r3, [r3, #0]
  314. 800438a: fbb3 f2f2 udiv r2, r3, r2
  315. 800438e: 230a movs r3, #10
  316. 8004390: 4353 muls r3, r2
  317. wait_loop_index--;
  318. 8004392: 9301 str r3, [sp, #4]
  319. while(wait_loop_index != 0U)
  320. 8004394: 9b01 ldr r3, [sp, #4]
  321. 8004396: 2b00 cmp r3, #0
  322. 8004398: d0bc beq.n 8004314 <HAL_ADC_ConfigChannel+0x60>
  323. wait_loop_index--;
  324. 800439a: 9b01 ldr r3, [sp, #4]
  325. 800439c: 3b01 subs r3, #1
  326. 800439e: e7f8 b.n 8004392 <HAL_ADC_ConfigChannel+0xde>
  327. SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG);
  328. 80043a0: 6a83 ldr r3, [r0, #40] ; 0x28
  329. 80043a2: f043 0320 orr.w r3, r3, #32
  330. 80043a6: 6283 str r3, [r0, #40] ; 0x28
  331. tmp_hal_status = HAL_ERROR;
  332. 80043a8: 2301 movs r3, #1
  333. 80043aa: e7b4 b.n 8004316 <HAL_ADC_ConfigChannel+0x62>
  334. __HAL_LOCK(hadc);
  335. 80043ac: 2302 movs r3, #2
  336. 80043ae: e7b5 b.n 800431c <HAL_ADC_ConfigChannel+0x68>
  337. 80043b0: 40012400 .word 0x40012400
  338. 80043b4: 20000008 .word 0x20000008
  339. 80043b8: 000f4240 .word 0x000f4240
  340. 080043bc <ADC_ConversionStop_Disable>:
  341. * stopped to disable the ADC.
  342. * @param hadc: ADC handle
  343. * @retval HAL status.
  344. */
  345. HAL_StatusTypeDef ADC_ConversionStop_Disable(ADC_HandleTypeDef* hadc)
  346. {
  347. 80043bc: b538 push {r3, r4, r5, lr}
  348. uint32_t tickstart = 0U;
  349. /* Verification if ADC is not already disabled */
  350. if (ADC_IS_ENABLE(hadc) != RESET)
  351. 80043be: 6803 ldr r3, [r0, #0]
  352. {
  353. 80043c0: 4604 mov r4, r0
  354. if (ADC_IS_ENABLE(hadc) != RESET)
  355. 80043c2: 689a ldr r2, [r3, #8]
  356. 80043c4: 07d2 lsls r2, r2, #31
  357. 80043c6: d401 bmi.n 80043cc <ADC_ConversionStop_Disable+0x10>
  358. }
  359. }
  360. }
  361. /* Return HAL status */
  362. return HAL_OK;
  363. 80043c8: 2000 movs r0, #0
  364. 80043ca: bd38 pop {r3, r4, r5, pc}
  365. __HAL_ADC_DISABLE(hadc);
  366. 80043cc: 689a ldr r2, [r3, #8]
  367. 80043ce: f022 0201 bic.w r2, r2, #1
  368. 80043d2: 609a str r2, [r3, #8]
  369. tickstart = HAL_GetTick();
  370. 80043d4: f7ff ff68 bl 80042a8 <HAL_GetTick>
  371. 80043d8: 4605 mov r5, r0
  372. while(ADC_IS_ENABLE(hadc) != RESET)
  373. 80043da: 6823 ldr r3, [r4, #0]
  374. 80043dc: 689b ldr r3, [r3, #8]
  375. 80043de: 07db lsls r3, r3, #31
  376. 80043e0: d5f2 bpl.n 80043c8 <ADC_ConversionStop_Disable+0xc>
  377. if((HAL_GetTick() - tickstart) > ADC_DISABLE_TIMEOUT)
  378. 80043e2: f7ff ff61 bl 80042a8 <HAL_GetTick>
  379. 80043e6: 1b40 subs r0, r0, r5
  380. 80043e8: 2802 cmp r0, #2
  381. 80043ea: d9f6 bls.n 80043da <ADC_ConversionStop_Disable+0x1e>
  382. SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
  383. 80043ec: 6aa3 ldr r3, [r4, #40] ; 0x28
  384. SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
  385. 80043ee: 2001 movs r0, #1
  386. SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
  387. 80043f0: f043 0310 orr.w r3, r3, #16
  388. 80043f4: 62a3 str r3, [r4, #40] ; 0x28
  389. SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
  390. 80043f6: 6ae3 ldr r3, [r4, #44] ; 0x2c
  391. 80043f8: f043 0301 orr.w r3, r3, #1
  392. 80043fc: 62e3 str r3, [r4, #44] ; 0x2c
  393. 80043fe: bd38 pop {r3, r4, r5, pc}
  394. 08004400 <HAL_ADC_Init>:
  395. {
  396. 8004400: b5f8 push {r3, r4, r5, r6, r7, lr}
  397. if(hadc == NULL)
  398. 8004402: 4604 mov r4, r0
  399. 8004404: 2800 cmp r0, #0
  400. 8004406: d077 beq.n 80044f8 <HAL_ADC_Init+0xf8>
  401. if (hadc->State == HAL_ADC_STATE_RESET)
  402. 8004408: 6a83 ldr r3, [r0, #40] ; 0x28
  403. 800440a: b923 cbnz r3, 8004416 <HAL_ADC_Init+0x16>
  404. ADC_CLEAR_ERRORCODE(hadc);
  405. 800440c: 62c3 str r3, [r0, #44] ; 0x2c
  406. hadc->Lock = HAL_UNLOCKED;
  407. 800440e: f880 3024 strb.w r3, [r0, #36] ; 0x24
  408. HAL_ADC_MspInit(hadc);
  409. 8004412: f001 fc2f bl 8005c74 <HAL_ADC_MspInit>
  410. tmp_hal_status = ADC_ConversionStop_Disable(hadc);
  411. 8004416: 4620 mov r0, r4
  412. 8004418: f7ff ffd0 bl 80043bc <ADC_ConversionStop_Disable>
  413. if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL) &&
  414. 800441c: 6aa3 ldr r3, [r4, #40] ; 0x28
  415. 800441e: f013 0310 ands.w r3, r3, #16
  416. 8004422: d16b bne.n 80044fc <HAL_ADC_Init+0xfc>
  417. 8004424: 2800 cmp r0, #0
  418. 8004426: d169 bne.n 80044fc <HAL_ADC_Init+0xfc>
  419. ADC_STATE_CLR_SET(hadc->State,
  420. 8004428: 6aa2 ldr r2, [r4, #40] ; 0x28
  421. ADC_CFGR_EXTSEL(hadc, hadc->Init.ExternalTrigConv) |
  422. 800442a: 4937 ldr r1, [pc, #220] ; (8004508 <HAL_ADC_Init+0x108>)
  423. ADC_STATE_CLR_SET(hadc->State,
  424. 800442c: f422 5288 bic.w r2, r2, #4352 ; 0x1100
  425. 8004430: f022 0202 bic.w r2, r2, #2
  426. 8004434: f042 0202 orr.w r2, r2, #2
  427. 8004438: 62a2 str r2, [r4, #40] ; 0x28
  428. ADC_CFGR_EXTSEL(hadc, hadc->Init.ExternalTrigConv) |
  429. 800443a: e894 0024 ldmia.w r4, {r2, r5}
  430. 800443e: 428a cmp r2, r1
  431. 8004440: 69e1 ldr r1, [r4, #28]
  432. 8004442: d104 bne.n 800444e <HAL_ADC_Init+0x4e>
  433. 8004444: f5b1 2f40 cmp.w r1, #786432 ; 0xc0000
  434. 8004448: bf08 it eq
  435. 800444a: f44f 2100 moveq.w r1, #524288 ; 0x80000
  436. ADC_CR2_CONTINUOUS(hadc->Init.ContinuousConvMode) );
  437. 800444e: 68e6 ldr r6, [r4, #12]
  438. ADC_CFGR_EXTSEL(hadc, hadc->Init.ExternalTrigConv) |
  439. 8004450: ea45 0546 orr.w r5, r5, r6, lsl #1
  440. 8004454: 4329 orrs r1, r5
  441. tmp_cr1 |= (ADC_CR1_SCAN_SET(hadc->Init.ScanConvMode));
  442. 8004456: 68a5 ldr r5, [r4, #8]
  443. 8004458: f5b5 7f80 cmp.w r5, #256 ; 0x100
  444. 800445c: d035 beq.n 80044ca <HAL_ADC_Init+0xca>
  445. 800445e: 2d01 cmp r5, #1
  446. 8004460: bf08 it eq
  447. 8004462: f44f 7380 moveq.w r3, #256 ; 0x100
  448. if (hadc->Init.DiscontinuousConvMode == ENABLE)
  449. 8004466: 6967 ldr r7, [r4, #20]
  450. 8004468: 2f01 cmp r7, #1
  451. 800446a: d106 bne.n 800447a <HAL_ADC_Init+0x7a>
  452. if (hadc->Init.ContinuousConvMode == DISABLE)
  453. 800446c: bb7e cbnz r6, 80044ce <HAL_ADC_Init+0xce>
  454. SET_BIT(tmp_cr1, ADC_CR1_DISCEN |
  455. 800446e: 69a6 ldr r6, [r4, #24]
  456. 8004470: 3e01 subs r6, #1
  457. 8004472: ea43 3346 orr.w r3, r3, r6, lsl #13
  458. 8004476: f443 6300 orr.w r3, r3, #2048 ; 0x800
  459. MODIFY_REG(hadc->Instance->CR1,
  460. 800447a: 6856 ldr r6, [r2, #4]
  461. if (ADC_CR1_SCAN_SET(hadc->Init.ScanConvMode) == ADC_SCAN_ENABLE)
  462. 800447c: f5b5 7f80 cmp.w r5, #256 ; 0x100
  463. MODIFY_REG(hadc->Instance->CR1,
  464. 8004480: f426 4669 bic.w r6, r6, #59648 ; 0xe900
  465. 8004484: ea43 0306 orr.w r3, r3, r6
  466. 8004488: 6053 str r3, [r2, #4]
  467. MODIFY_REG(hadc->Instance->CR2,
  468. 800448a: 6896 ldr r6, [r2, #8]
  469. 800448c: 4b1f ldr r3, [pc, #124] ; (800450c <HAL_ADC_Init+0x10c>)
  470. 800448e: ea03 0306 and.w r3, r3, r6
  471. 8004492: ea43 0301 orr.w r3, r3, r1
  472. 8004496: 6093 str r3, [r2, #8]
  473. if (ADC_CR1_SCAN_SET(hadc->Init.ScanConvMode) == ADC_SCAN_ENABLE)
  474. 8004498: d001 beq.n 800449e <HAL_ADC_Init+0x9e>
  475. 800449a: 2d01 cmp r5, #1
  476. 800449c: d120 bne.n 80044e0 <HAL_ADC_Init+0xe0>
  477. tmp_sqr1 = ADC_SQR1_L_SHIFT(hadc->Init.NbrOfConversion);
  478. 800449e: 6923 ldr r3, [r4, #16]
  479. 80044a0: 3b01 subs r3, #1
  480. 80044a2: 051b lsls r3, r3, #20
  481. MODIFY_REG(hadc->Instance->SQR1,
  482. 80044a4: 6ad5 ldr r5, [r2, #44] ; 0x2c
  483. 80044a6: f425 0570 bic.w r5, r5, #15728640 ; 0xf00000
  484. 80044aa: 432b orrs r3, r5
  485. 80044ac: 62d3 str r3, [r2, #44] ; 0x2c
  486. if (READ_BIT(hadc->Instance->CR2, ~(ADC_CR2_ADON | ADC_CR2_DMA |
  487. 80044ae: 6892 ldr r2, [r2, #8]
  488. 80044b0: 4b17 ldr r3, [pc, #92] ; (8004510 <HAL_ADC_Init+0x110>)
  489. 80044b2: 4013 ands r3, r2
  490. 80044b4: 4299 cmp r1, r3
  491. 80044b6: d115 bne.n 80044e4 <HAL_ADC_Init+0xe4>
  492. ADC_CLEAR_ERRORCODE(hadc);
  493. 80044b8: 2300 movs r3, #0
  494. 80044ba: 62e3 str r3, [r4, #44] ; 0x2c
  495. ADC_STATE_CLR_SET(hadc->State,
  496. 80044bc: 6aa3 ldr r3, [r4, #40] ; 0x28
  497. 80044be: f023 0303 bic.w r3, r3, #3
  498. 80044c2: f043 0301 orr.w r3, r3, #1
  499. 80044c6: 62a3 str r3, [r4, #40] ; 0x28
  500. 80044c8: bdf8 pop {r3, r4, r5, r6, r7, pc}
  501. tmp_cr1 |= (ADC_CR1_SCAN_SET(hadc->Init.ScanConvMode));
  502. 80044ca: 462b mov r3, r5
  503. 80044cc: e7cb b.n 8004466 <HAL_ADC_Init+0x66>
  504. SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG);
  505. 80044ce: 6aa6 ldr r6, [r4, #40] ; 0x28
  506. 80044d0: f046 0620 orr.w r6, r6, #32
  507. 80044d4: 62a6 str r6, [r4, #40] ; 0x28
  508. SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
  509. 80044d6: 6ae6 ldr r6, [r4, #44] ; 0x2c
  510. 80044d8: f046 0601 orr.w r6, r6, #1
  511. 80044dc: 62e6 str r6, [r4, #44] ; 0x2c
  512. 80044de: e7cc b.n 800447a <HAL_ADC_Init+0x7a>
  513. uint32_t tmp_sqr1 = 0U;
  514. 80044e0: 2300 movs r3, #0
  515. 80044e2: e7df b.n 80044a4 <HAL_ADC_Init+0xa4>
  516. ADC_STATE_CLR_SET(hadc->State,
  517. 80044e4: 6aa3 ldr r3, [r4, #40] ; 0x28
  518. 80044e6: f023 0312 bic.w r3, r3, #18
  519. 80044ea: f043 0310 orr.w r3, r3, #16
  520. 80044ee: 62a3 str r3, [r4, #40] ; 0x28
  521. SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
  522. 80044f0: 6ae3 ldr r3, [r4, #44] ; 0x2c
  523. 80044f2: f043 0301 orr.w r3, r3, #1
  524. 80044f6: 62e3 str r3, [r4, #44] ; 0x2c
  525. return HAL_ERROR;
  526. 80044f8: 2001 movs r0, #1
  527. }
  528. 80044fa: bdf8 pop {r3, r4, r5, r6, r7, pc}
  529. SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
  530. 80044fc: 6aa3 ldr r3, [r4, #40] ; 0x28
  531. 80044fe: f043 0310 orr.w r3, r3, #16
  532. 8004502: 62a3 str r3, [r4, #40] ; 0x28
  533. 8004504: e7f8 b.n 80044f8 <HAL_ADC_Init+0xf8>
  534. 8004506: bf00 nop
  535. 8004508: 40013c00 .word 0x40013c00
  536. 800450c: ffe1f7fd .word 0xffe1f7fd
  537. 8004510: ff1f0efe .word 0xff1f0efe
  538. 08004514 <HAL_NVIC_SetPriorityGrouping>:
  539. __STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
  540. {
  541. uint32_t reg_value;
  542. uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
  543. reg_value = SCB->AIRCR; /* read old register configuration */
  544. 8004514: 4a07 ldr r2, [pc, #28] ; (8004534 <HAL_NVIC_SetPriorityGrouping+0x20>)
  545. reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
  546. reg_value = (reg_value |
  547. ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
  548. (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */
  549. 8004516: 0200 lsls r0, r0, #8
  550. reg_value = SCB->AIRCR; /* read old register configuration */
  551. 8004518: 68d3 ldr r3, [r2, #12]
  552. (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */
  553. 800451a: f400 60e0 and.w r0, r0, #1792 ; 0x700
  554. reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
  555. 800451e: f423 63e0 bic.w r3, r3, #1792 ; 0x700
  556. 8004522: 041b lsls r3, r3, #16
  557. 8004524: 0c1b lsrs r3, r3, #16
  558. 8004526: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000
  559. 800452a: f443 3300 orr.w r3, r3, #131072 ; 0x20000
  560. reg_value = (reg_value |
  561. 800452e: 4303 orrs r3, r0
  562. SCB->AIRCR = reg_value;
  563. 8004530: 60d3 str r3, [r2, #12]
  564. 8004532: 4770 bx lr
  565. 8004534: e000ed00 .word 0xe000ed00
  566. 08004538 <HAL_NVIC_SetPriority>:
  567. \details Reads the priority grouping field from the NVIC Interrupt Controller.
  568. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
  569. */
  570. __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void)
  571. {
  572. return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
  573. 8004538: 4b17 ldr r3, [pc, #92] ; (8004598 <HAL_NVIC_SetPriority+0x60>)
  574. * This parameter can be a value between 0 and 15
  575. * A lower priority value indicates a higher priority.
  576. * @retval None
  577. */
  578. void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
  579. {
  580. 800453a: b530 push {r4, r5, lr}
  581. 800453c: 68dc ldr r4, [r3, #12]
  582. 800453e: f3c4 2402 ubfx r4, r4, #8, #3
  583. {
  584. uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
  585. uint32_t PreemptPriorityBits;
  586. uint32_t SubPriorityBits;
  587. PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
  588. 8004542: f1c4 0307 rsb r3, r4, #7
  589. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  590. 8004546: 1d25 adds r5, r4, #4
  591. PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
  592. 8004548: 2b04 cmp r3, #4
  593. 800454a: bf28 it cs
  594. 800454c: 2304 movcs r3, #4
  595. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  596. 800454e: 2d06 cmp r5, #6
  597. return (
  598. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  599. 8004550: f04f 0501 mov.w r5, #1
  600. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  601. 8004554: bf98 it ls
  602. 8004556: 2400 movls r4, #0
  603. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  604. 8004558: fa05 f303 lsl.w r3, r5, r3
  605. 800455c: f103 33ff add.w r3, r3, #4294967295
  606. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  607. 8004560: bf88 it hi
  608. 8004562: 3c03 subhi r4, #3
  609. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  610. 8004564: 4019 ands r1, r3
  611. 8004566: 40a1 lsls r1, r4
  612. ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
  613. 8004568: fa05 f404 lsl.w r4, r5, r4
  614. 800456c: 3c01 subs r4, #1
  615. 800456e: 4022 ands r2, r4
  616. if ((int32_t)(IRQn) < 0)
  617. 8004570: 2800 cmp r0, #0
  618. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  619. 8004572: ea42 0201 orr.w r2, r2, r1
  620. 8004576: ea4f 1202 mov.w r2, r2, lsl #4
  621. NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  622. 800457a: bfaf iteee ge
  623. 800457c: f100 4060 addge.w r0, r0, #3758096384 ; 0xe0000000
  624. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  625. 8004580: 4b06 ldrlt r3, [pc, #24] ; (800459c <HAL_NVIC_SetPriority+0x64>)
  626. 8004582: f000 000f andlt.w r0, r0, #15
  627. 8004586: b2d2 uxtblt r2, r2
  628. NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  629. 8004588: bfa5 ittet ge
  630. 800458a: b2d2 uxtbge r2, r2
  631. 800458c: f500 4061 addge.w r0, r0, #57600 ; 0xe100
  632. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  633. 8004590: 541a strblt r2, [r3, r0]
  634. NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  635. 8004592: f880 2300 strbge.w r2, [r0, #768] ; 0x300
  636. 8004596: bd30 pop {r4, r5, pc}
  637. 8004598: e000ed00 .word 0xe000ed00
  638. 800459c: e000ed14 .word 0xe000ed14
  639. 080045a0 <HAL_NVIC_EnableIRQ>:
  640. NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
  641. 80045a0: 2301 movs r3, #1
  642. 80045a2: 0942 lsrs r2, r0, #5
  643. 80045a4: f000 001f and.w r0, r0, #31
  644. 80045a8: fa03 f000 lsl.w r0, r3, r0
  645. 80045ac: 4b01 ldr r3, [pc, #4] ; (80045b4 <HAL_NVIC_EnableIRQ+0x14>)
  646. 80045ae: f843 0022 str.w r0, [r3, r2, lsl #2]
  647. 80045b2: 4770 bx lr
  648. 80045b4: e000e100 .word 0xe000e100
  649. 080045b8 <HAL_SYSTICK_Config>:
  650. function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
  651. must contain a vendor-specific implementation of this function.
  652. */
  653. __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
  654. {
  655. if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
  656. 80045b8: 3801 subs r0, #1
  657. 80045ba: f1b0 7f80 cmp.w r0, #16777216 ; 0x1000000
  658. 80045be: d20a bcs.n 80045d6 <HAL_SYSTICK_Config+0x1e>
  659. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  660. 80045c0: 21f0 movs r1, #240 ; 0xf0
  661. {
  662. return (1UL); /* Reload value impossible */
  663. }
  664. SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
  665. 80045c2: 4b06 ldr r3, [pc, #24] ; (80045dc <HAL_SYSTICK_Config+0x24>)
  666. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  667. 80045c4: 4a06 ldr r2, [pc, #24] ; (80045e0 <HAL_SYSTICK_Config+0x28>)
  668. SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
  669. 80045c6: 6058 str r0, [r3, #4]
  670. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  671. 80045c8: f882 1023 strb.w r1, [r2, #35] ; 0x23
  672. NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
  673. SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
  674. 80045cc: 2000 movs r0, #0
  675. SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
  676. 80045ce: 2207 movs r2, #7
  677. SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
  678. 80045d0: 6098 str r0, [r3, #8]
  679. SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
  680. 80045d2: 601a str r2, [r3, #0]
  681. 80045d4: 4770 bx lr
  682. return (1UL); /* Reload value impossible */
  683. 80045d6: 2001 movs r0, #1
  684. * - 1 Function failed.
  685. */
  686. uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
  687. {
  688. return SysTick_Config(TicksNumb);
  689. }
  690. 80045d8: 4770 bx lr
  691. 80045da: bf00 nop
  692. 80045dc: e000e010 .word 0xe000e010
  693. 80045e0: e000ed00 .word 0xe000ed00
  694. 080045e4 <HAL_DMA_Init>:
  695. * @param hdma: Pointer to a DMA_HandleTypeDef structure that contains
  696. * the configuration information for the specified DMA Channel.
  697. * @retval HAL status
  698. */
  699. HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma)
  700. {
  701. 80045e4: b510 push {r4, lr}
  702. uint32_t tmp = 0U;
  703. /* Check the DMA handle allocation */
  704. if(hdma == NULL)
  705. 80045e6: 2800 cmp r0, #0
  706. 80045e8: d032 beq.n 8004650 <HAL_DMA_Init+0x6c>
  707. assert_param(IS_DMA_MODE(hdma->Init.Mode));
  708. assert_param(IS_DMA_PRIORITY(hdma->Init.Priority));
  709. #if defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG) || defined (STM32F100xE) || defined (STM32F105xC) || defined (STM32F107xC)
  710. /* calculation of the channel index */
  711. if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1))
  712. 80045ea: 6801 ldr r1, [r0, #0]
  713. 80045ec: 4b19 ldr r3, [pc, #100] ; (8004654 <HAL_DMA_Init+0x70>)
  714. 80045ee: 2414 movs r4, #20
  715. 80045f0: 4299 cmp r1, r3
  716. 80045f2: d825 bhi.n 8004640 <HAL_DMA_Init+0x5c>
  717. {
  718. /* DMA1 */
  719. hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2;
  720. 80045f4: 4a18 ldr r2, [pc, #96] ; (8004658 <HAL_DMA_Init+0x74>)
  721. hdma->DmaBaseAddress = DMA1;
  722. 80045f6: f2a3 4307 subw r3, r3, #1031 ; 0x407
  723. hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2;
  724. 80045fa: 440a add r2, r1
  725. 80045fc: fbb2 f2f4 udiv r2, r2, r4
  726. 8004600: 0092 lsls r2, r2, #2
  727. 8004602: 6402 str r2, [r0, #64] ; 0x40
  728. tmp &= ((uint32_t)~(DMA_CCR_PL | DMA_CCR_MSIZE | DMA_CCR_PSIZE | \
  729. DMA_CCR_MINC | DMA_CCR_PINC | DMA_CCR_CIRC | \
  730. DMA_CCR_DIR));
  731. /* Prepare the DMA Channel configuration */
  732. tmp |= hdma->Init.Direction |
  733. 8004604: 6884 ldr r4, [r0, #8]
  734. hdma->DmaBaseAddress = DMA2;
  735. 8004606: 63c3 str r3, [r0, #60] ; 0x3c
  736. tmp |= hdma->Init.Direction |
  737. 8004608: 6843 ldr r3, [r0, #4]
  738. tmp = hdma->Instance->CCR;
  739. 800460a: 680a ldr r2, [r1, #0]
  740. tmp |= hdma->Init.Direction |
  741. 800460c: 4323 orrs r3, r4
  742. hdma->Init.PeriphInc | hdma->Init.MemInc |
  743. 800460e: 68c4 ldr r4, [r0, #12]
  744. tmp &= ((uint32_t)~(DMA_CCR_PL | DMA_CCR_MSIZE | DMA_CCR_PSIZE | \
  745. 8004610: f422 527f bic.w r2, r2, #16320 ; 0x3fc0
  746. hdma->Init.PeriphInc | hdma->Init.MemInc |
  747. 8004614: 4323 orrs r3, r4
  748. 8004616: 6904 ldr r4, [r0, #16]
  749. tmp &= ((uint32_t)~(DMA_CCR_PL | DMA_CCR_MSIZE | DMA_CCR_PSIZE | \
  750. 8004618: f022 0230 bic.w r2, r2, #48 ; 0x30
  751. hdma->Init.PeriphInc | hdma->Init.MemInc |
  752. 800461c: 4323 orrs r3, r4
  753. hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment |
  754. 800461e: 6944 ldr r4, [r0, #20]
  755. 8004620: 4323 orrs r3, r4
  756. 8004622: 6984 ldr r4, [r0, #24]
  757. 8004624: 4323 orrs r3, r4
  758. hdma->Init.Mode | hdma->Init.Priority;
  759. 8004626: 69c4 ldr r4, [r0, #28]
  760. 8004628: 4323 orrs r3, r4
  761. tmp |= hdma->Init.Direction |
  762. 800462a: 4313 orrs r3, r2
  763. /* Write to DMA Channel CR register */
  764. hdma->Instance->CCR = tmp;
  765. 800462c: 600b str r3, [r1, #0]
  766. /* Initialise the error code */
  767. hdma->ErrorCode = HAL_DMA_ERROR_NONE;
  768. /* Initialize the DMA state*/
  769. hdma->State = HAL_DMA_STATE_READY;
  770. 800462e: 2201 movs r2, #1
  771. hdma->ErrorCode = HAL_DMA_ERROR_NONE;
  772. 8004630: 2300 movs r3, #0
  773. hdma->State = HAL_DMA_STATE_READY;
  774. 8004632: f880 2021 strb.w r2, [r0, #33] ; 0x21
  775. hdma->ErrorCode = HAL_DMA_ERROR_NONE;
  776. 8004636: 6383 str r3, [r0, #56] ; 0x38
  777. /* Allocate lock resource and initialize it */
  778. hdma->Lock = HAL_UNLOCKED;
  779. 8004638: f880 3020 strb.w r3, [r0, #32]
  780. return HAL_OK;
  781. 800463c: 4618 mov r0, r3
  782. 800463e: bd10 pop {r4, pc}
  783. hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2;
  784. 8004640: 4b06 ldr r3, [pc, #24] ; (800465c <HAL_DMA_Init+0x78>)
  785. 8004642: 440b add r3, r1
  786. 8004644: fbb3 f3f4 udiv r3, r3, r4
  787. 8004648: 009b lsls r3, r3, #2
  788. 800464a: 6403 str r3, [r0, #64] ; 0x40
  789. hdma->DmaBaseAddress = DMA2;
  790. 800464c: 4b04 ldr r3, [pc, #16] ; (8004660 <HAL_DMA_Init+0x7c>)
  791. 800464e: e7d9 b.n 8004604 <HAL_DMA_Init+0x20>
  792. return HAL_ERROR;
  793. 8004650: 2001 movs r0, #1
  794. }
  795. 8004652: bd10 pop {r4, pc}
  796. 8004654: 40020407 .word 0x40020407
  797. 8004658: bffdfff8 .word 0xbffdfff8
  798. 800465c: bffdfbf8 .word 0xbffdfbf8
  799. 8004660: 40020400 .word 0x40020400
  800. 08004664 <HAL_DMA_Abort_IT>:
  801. */
  802. HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
  803. {
  804. HAL_StatusTypeDef status = HAL_OK;
  805. if(HAL_DMA_STATE_BUSY != hdma->State)
  806. 8004664: f890 3021 ldrb.w r3, [r0, #33] ; 0x21
  807. {
  808. 8004668: b510 push {r4, lr}
  809. if(HAL_DMA_STATE_BUSY != hdma->State)
  810. 800466a: 2b02 cmp r3, #2
  811. 800466c: d003 beq.n 8004676 <HAL_DMA_Abort_IT+0x12>
  812. {
  813. /* no transfer ongoing */
  814. hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
  815. 800466e: 2304 movs r3, #4
  816. 8004670: 6383 str r3, [r0, #56] ; 0x38
  817. status = HAL_ERROR;
  818. 8004672: 2001 movs r0, #1
  819. 8004674: bd10 pop {r4, pc}
  820. }
  821. else
  822. {
  823. /* Disable DMA IT */
  824. __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
  825. 8004676: 6803 ldr r3, [r0, #0]
  826. 8004678: 681a ldr r2, [r3, #0]
  827. 800467a: f022 020e bic.w r2, r2, #14
  828. 800467e: 601a str r2, [r3, #0]
  829. /* Disable the channel */
  830. __HAL_DMA_DISABLE(hdma);
  831. 8004680: 681a ldr r2, [r3, #0]
  832. 8004682: f022 0201 bic.w r2, r2, #1
  833. 8004686: 601a str r2, [r3, #0]
  834. /* Clear all flags */
  835. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_GI_FLAG_INDEX(hdma));
  836. 8004688: 4a29 ldr r2, [pc, #164] ; (8004730 <HAL_DMA_Abort_IT+0xcc>)
  837. 800468a: 4293 cmp r3, r2
  838. 800468c: d924 bls.n 80046d8 <HAL_DMA_Abort_IT+0x74>
  839. 800468e: f502 7262 add.w r2, r2, #904 ; 0x388
  840. 8004692: 4293 cmp r3, r2
  841. 8004694: d019 beq.n 80046ca <HAL_DMA_Abort_IT+0x66>
  842. 8004696: 3214 adds r2, #20
  843. 8004698: 4293 cmp r3, r2
  844. 800469a: d018 beq.n 80046ce <HAL_DMA_Abort_IT+0x6a>
  845. 800469c: 3214 adds r2, #20
  846. 800469e: 4293 cmp r3, r2
  847. 80046a0: d017 beq.n 80046d2 <HAL_DMA_Abort_IT+0x6e>
  848. 80046a2: 3214 adds r2, #20
  849. 80046a4: 4293 cmp r3, r2
  850. 80046a6: bf0c ite eq
  851. 80046a8: f44f 5380 moveq.w r3, #4096 ; 0x1000
  852. 80046ac: f44f 3380 movne.w r3, #65536 ; 0x10000
  853. 80046b0: 4a20 ldr r2, [pc, #128] ; (8004734 <HAL_DMA_Abort_IT+0xd0>)
  854. 80046b2: 6053 str r3, [r2, #4]
  855. /* Change the DMA state */
  856. hdma->State = HAL_DMA_STATE_READY;
  857. 80046b4: 2301 movs r3, #1
  858. /* Process Unlocked */
  859. __HAL_UNLOCK(hdma);
  860. 80046b6: 2400 movs r4, #0
  861. hdma->State = HAL_DMA_STATE_READY;
  862. 80046b8: f880 3021 strb.w r3, [r0, #33] ; 0x21
  863. /* Call User Abort callback */
  864. if(hdma->XferAbortCallback != NULL)
  865. 80046bc: 6b43 ldr r3, [r0, #52] ; 0x34
  866. __HAL_UNLOCK(hdma);
  867. 80046be: f880 4020 strb.w r4, [r0, #32]
  868. if(hdma->XferAbortCallback != NULL)
  869. 80046c2: b39b cbz r3, 800472c <HAL_DMA_Abort_IT+0xc8>
  870. {
  871. hdma->XferAbortCallback(hdma);
  872. 80046c4: 4798 blx r3
  873. HAL_StatusTypeDef status = HAL_OK;
  874. 80046c6: 4620 mov r0, r4
  875. 80046c8: bd10 pop {r4, pc}
  876. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_GI_FLAG_INDEX(hdma));
  877. 80046ca: 2301 movs r3, #1
  878. 80046cc: e7f0 b.n 80046b0 <HAL_DMA_Abort_IT+0x4c>
  879. 80046ce: 2310 movs r3, #16
  880. 80046d0: e7ee b.n 80046b0 <HAL_DMA_Abort_IT+0x4c>
  881. 80046d2: f44f 7380 mov.w r3, #256 ; 0x100
  882. 80046d6: e7eb b.n 80046b0 <HAL_DMA_Abort_IT+0x4c>
  883. 80046d8: 4917 ldr r1, [pc, #92] ; (8004738 <HAL_DMA_Abort_IT+0xd4>)
  884. 80046da: 428b cmp r3, r1
  885. 80046dc: d016 beq.n 800470c <HAL_DMA_Abort_IT+0xa8>
  886. 80046de: 3114 adds r1, #20
  887. 80046e0: 428b cmp r3, r1
  888. 80046e2: d015 beq.n 8004710 <HAL_DMA_Abort_IT+0xac>
  889. 80046e4: 3114 adds r1, #20
  890. 80046e6: 428b cmp r3, r1
  891. 80046e8: d014 beq.n 8004714 <HAL_DMA_Abort_IT+0xb0>
  892. 80046ea: 3114 adds r1, #20
  893. 80046ec: 428b cmp r3, r1
  894. 80046ee: d014 beq.n 800471a <HAL_DMA_Abort_IT+0xb6>
  895. 80046f0: 3114 adds r1, #20
  896. 80046f2: 428b cmp r3, r1
  897. 80046f4: d014 beq.n 8004720 <HAL_DMA_Abort_IT+0xbc>
  898. 80046f6: 3114 adds r1, #20
  899. 80046f8: 428b cmp r3, r1
  900. 80046fa: d014 beq.n 8004726 <HAL_DMA_Abort_IT+0xc2>
  901. 80046fc: 4293 cmp r3, r2
  902. 80046fe: bf14 ite ne
  903. 8004700: f44f 3380 movne.w r3, #65536 ; 0x10000
  904. 8004704: f04f 7380 moveq.w r3, #16777216 ; 0x1000000
  905. 8004708: 4a0c ldr r2, [pc, #48] ; (800473c <HAL_DMA_Abort_IT+0xd8>)
  906. 800470a: e7d2 b.n 80046b2 <HAL_DMA_Abort_IT+0x4e>
  907. 800470c: 2301 movs r3, #1
  908. 800470e: e7fb b.n 8004708 <HAL_DMA_Abort_IT+0xa4>
  909. 8004710: 2310 movs r3, #16
  910. 8004712: e7f9 b.n 8004708 <HAL_DMA_Abort_IT+0xa4>
  911. 8004714: f44f 7380 mov.w r3, #256 ; 0x100
  912. 8004718: e7f6 b.n 8004708 <HAL_DMA_Abort_IT+0xa4>
  913. 800471a: f44f 5380 mov.w r3, #4096 ; 0x1000
  914. 800471e: e7f3 b.n 8004708 <HAL_DMA_Abort_IT+0xa4>
  915. 8004720: f44f 3380 mov.w r3, #65536 ; 0x10000
  916. 8004724: e7f0 b.n 8004708 <HAL_DMA_Abort_IT+0xa4>
  917. 8004726: f44f 1380 mov.w r3, #1048576 ; 0x100000
  918. 800472a: e7ed b.n 8004708 <HAL_DMA_Abort_IT+0xa4>
  919. HAL_StatusTypeDef status = HAL_OK;
  920. 800472c: 4618 mov r0, r3
  921. }
  922. }
  923. return status;
  924. }
  925. 800472e: bd10 pop {r4, pc}
  926. 8004730: 40020080 .word 0x40020080
  927. 8004734: 40020400 .word 0x40020400
  928. 8004738: 40020008 .word 0x40020008
  929. 800473c: 40020000 .word 0x40020000
  930. 08004740 <HAL_DMA_IRQHandler>:
  931. * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
  932. * the configuration information for the specified DMA Channel.
  933. * @retval None
  934. */
  935. void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
  936. {
  937. 8004740: b470 push {r4, r5, r6}
  938. uint32_t flag_it = hdma->DmaBaseAddress->ISR;
  939. uint32_t source_it = hdma->Instance->CCR;
  940. /* Half Transfer Complete Interrupt management ******************************/
  941. if (((flag_it & (DMA_FLAG_HT1 << hdma->ChannelIndex)) != RESET) && ((source_it & DMA_IT_HT) != RESET))
  942. 8004742: 2504 movs r5, #4
  943. uint32_t flag_it = hdma->DmaBaseAddress->ISR;
  944. 8004744: 6bc6 ldr r6, [r0, #60] ; 0x3c
  945. if (((flag_it & (DMA_FLAG_HT1 << hdma->ChannelIndex)) != RESET) && ((source_it & DMA_IT_HT) != RESET))
  946. 8004746: 6c02 ldr r2, [r0, #64] ; 0x40
  947. uint32_t flag_it = hdma->DmaBaseAddress->ISR;
  948. 8004748: 6834 ldr r4, [r6, #0]
  949. uint32_t source_it = hdma->Instance->CCR;
  950. 800474a: 6803 ldr r3, [r0, #0]
  951. if (((flag_it & (DMA_FLAG_HT1 << hdma->ChannelIndex)) != RESET) && ((source_it & DMA_IT_HT) != RESET))
  952. 800474c: 4095 lsls r5, r2
  953. 800474e: 4225 tst r5, r4
  954. uint32_t source_it = hdma->Instance->CCR;
  955. 8004750: 6819 ldr r1, [r3, #0]
  956. if (((flag_it & (DMA_FLAG_HT1 << hdma->ChannelIndex)) != RESET) && ((source_it & DMA_IT_HT) != RESET))
  957. 8004752: d055 beq.n 8004800 <HAL_DMA_IRQHandler+0xc0>
  958. 8004754: 074d lsls r5, r1, #29
  959. 8004756: d553 bpl.n 8004800 <HAL_DMA_IRQHandler+0xc0>
  960. {
  961. /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */
  962. if((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U)
  963. 8004758: 681a ldr r2, [r3, #0]
  964. 800475a: 0696 lsls r6, r2, #26
  965. {
  966. /* Disable the half transfer interrupt */
  967. __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT);
  968. 800475c: bf5e ittt pl
  969. 800475e: 681a ldrpl r2, [r3, #0]
  970. 8004760: f022 0204 bicpl.w r2, r2, #4
  971. 8004764: 601a strpl r2, [r3, #0]
  972. }
  973. /* Clear the half transfer complete flag */
  974. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_HT_FLAG_INDEX(hdma));
  975. 8004766: 4a60 ldr r2, [pc, #384] ; (80048e8 <HAL_DMA_IRQHandler+0x1a8>)
  976. 8004768: 4293 cmp r3, r2
  977. 800476a: d91f bls.n 80047ac <HAL_DMA_IRQHandler+0x6c>
  978. 800476c: f502 7262 add.w r2, r2, #904 ; 0x388
  979. 8004770: 4293 cmp r3, r2
  980. 8004772: d014 beq.n 800479e <HAL_DMA_IRQHandler+0x5e>
  981. 8004774: 3214 adds r2, #20
  982. 8004776: 4293 cmp r3, r2
  983. 8004778: d013 beq.n 80047a2 <HAL_DMA_IRQHandler+0x62>
  984. 800477a: 3214 adds r2, #20
  985. 800477c: 4293 cmp r3, r2
  986. 800477e: d012 beq.n 80047a6 <HAL_DMA_IRQHandler+0x66>
  987. 8004780: 3214 adds r2, #20
  988. 8004782: 4293 cmp r3, r2
  989. 8004784: bf0c ite eq
  990. 8004786: f44f 4380 moveq.w r3, #16384 ; 0x4000
  991. 800478a: f44f 2380 movne.w r3, #262144 ; 0x40000
  992. 800478e: 4a57 ldr r2, [pc, #348] ; (80048ec <HAL_DMA_IRQHandler+0x1ac>)
  993. 8004790: 6053 str r3, [r2, #4]
  994. /* DMA peripheral state is not updated in Half Transfer */
  995. /* but in Transfer Complete case */
  996. if(hdma->XferHalfCpltCallback != NULL)
  997. 8004792: 6ac3 ldr r3, [r0, #44] ; 0x2c
  998. hdma->State = HAL_DMA_STATE_READY;
  999. /* Process Unlocked */
  1000. __HAL_UNLOCK(hdma);
  1001. if (hdma->XferErrorCallback != NULL)
  1002. 8004794: 2b00 cmp r3, #0
  1003. 8004796: f000 80a5 beq.w 80048e4 <HAL_DMA_IRQHandler+0x1a4>
  1004. /* Transfer error callback */
  1005. hdma->XferErrorCallback(hdma);
  1006. }
  1007. }
  1008. return;
  1009. }
  1010. 800479a: bc70 pop {r4, r5, r6}
  1011. hdma->XferErrorCallback(hdma);
  1012. 800479c: 4718 bx r3
  1013. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_HT_FLAG_INDEX(hdma));
  1014. 800479e: 2304 movs r3, #4
  1015. 80047a0: e7f5 b.n 800478e <HAL_DMA_IRQHandler+0x4e>
  1016. 80047a2: 2340 movs r3, #64 ; 0x40
  1017. 80047a4: e7f3 b.n 800478e <HAL_DMA_IRQHandler+0x4e>
  1018. 80047a6: f44f 6380 mov.w r3, #1024 ; 0x400
  1019. 80047aa: e7f0 b.n 800478e <HAL_DMA_IRQHandler+0x4e>
  1020. 80047ac: 4950 ldr r1, [pc, #320] ; (80048f0 <HAL_DMA_IRQHandler+0x1b0>)
  1021. 80047ae: 428b cmp r3, r1
  1022. 80047b0: d016 beq.n 80047e0 <HAL_DMA_IRQHandler+0xa0>
  1023. 80047b2: 3114 adds r1, #20
  1024. 80047b4: 428b cmp r3, r1
  1025. 80047b6: d015 beq.n 80047e4 <HAL_DMA_IRQHandler+0xa4>
  1026. 80047b8: 3114 adds r1, #20
  1027. 80047ba: 428b cmp r3, r1
  1028. 80047bc: d014 beq.n 80047e8 <HAL_DMA_IRQHandler+0xa8>
  1029. 80047be: 3114 adds r1, #20
  1030. 80047c0: 428b cmp r3, r1
  1031. 80047c2: d014 beq.n 80047ee <HAL_DMA_IRQHandler+0xae>
  1032. 80047c4: 3114 adds r1, #20
  1033. 80047c6: 428b cmp r3, r1
  1034. 80047c8: d014 beq.n 80047f4 <HAL_DMA_IRQHandler+0xb4>
  1035. 80047ca: 3114 adds r1, #20
  1036. 80047cc: 428b cmp r3, r1
  1037. 80047ce: d014 beq.n 80047fa <HAL_DMA_IRQHandler+0xba>
  1038. 80047d0: 4293 cmp r3, r2
  1039. 80047d2: bf14 ite ne
  1040. 80047d4: f44f 2380 movne.w r3, #262144 ; 0x40000
  1041. 80047d8: f04f 6380 moveq.w r3, #67108864 ; 0x4000000
  1042. 80047dc: 4a45 ldr r2, [pc, #276] ; (80048f4 <HAL_DMA_IRQHandler+0x1b4>)
  1043. 80047de: e7d7 b.n 8004790 <HAL_DMA_IRQHandler+0x50>
  1044. 80047e0: 2304 movs r3, #4
  1045. 80047e2: e7fb b.n 80047dc <HAL_DMA_IRQHandler+0x9c>
  1046. 80047e4: 2340 movs r3, #64 ; 0x40
  1047. 80047e6: e7f9 b.n 80047dc <HAL_DMA_IRQHandler+0x9c>
  1048. 80047e8: f44f 6380 mov.w r3, #1024 ; 0x400
  1049. 80047ec: e7f6 b.n 80047dc <HAL_DMA_IRQHandler+0x9c>
  1050. 80047ee: f44f 4380 mov.w r3, #16384 ; 0x4000
  1051. 80047f2: e7f3 b.n 80047dc <HAL_DMA_IRQHandler+0x9c>
  1052. 80047f4: f44f 2380 mov.w r3, #262144 ; 0x40000
  1053. 80047f8: e7f0 b.n 80047dc <HAL_DMA_IRQHandler+0x9c>
  1054. 80047fa: f44f 0380 mov.w r3, #4194304 ; 0x400000
  1055. 80047fe: e7ed b.n 80047dc <HAL_DMA_IRQHandler+0x9c>
  1056. else if (((flag_it & (DMA_FLAG_TC1 << hdma->ChannelIndex)) != RESET) && ((source_it & DMA_IT_TC) != RESET))
  1057. 8004800: 2502 movs r5, #2
  1058. 8004802: 4095 lsls r5, r2
  1059. 8004804: 4225 tst r5, r4
  1060. 8004806: d057 beq.n 80048b8 <HAL_DMA_IRQHandler+0x178>
  1061. 8004808: 078d lsls r5, r1, #30
  1062. 800480a: d555 bpl.n 80048b8 <HAL_DMA_IRQHandler+0x178>
  1063. if((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U)
  1064. 800480c: 681a ldr r2, [r3, #0]
  1065. 800480e: 0694 lsls r4, r2, #26
  1066. 8004810: d406 bmi.n 8004820 <HAL_DMA_IRQHandler+0xe0>
  1067. __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC);
  1068. 8004812: 681a ldr r2, [r3, #0]
  1069. 8004814: f022 020a bic.w r2, r2, #10
  1070. 8004818: 601a str r2, [r3, #0]
  1071. hdma->State = HAL_DMA_STATE_READY;
  1072. 800481a: 2201 movs r2, #1
  1073. 800481c: f880 2021 strb.w r2, [r0, #33] ; 0x21
  1074. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_TC_FLAG_INDEX(hdma));
  1075. 8004820: 4a31 ldr r2, [pc, #196] ; (80048e8 <HAL_DMA_IRQHandler+0x1a8>)
  1076. 8004822: 4293 cmp r3, r2
  1077. 8004824: d91e bls.n 8004864 <HAL_DMA_IRQHandler+0x124>
  1078. 8004826: f502 7262 add.w r2, r2, #904 ; 0x388
  1079. 800482a: 4293 cmp r3, r2
  1080. 800482c: d013 beq.n 8004856 <HAL_DMA_IRQHandler+0x116>
  1081. 800482e: 3214 adds r2, #20
  1082. 8004830: 4293 cmp r3, r2
  1083. 8004832: d012 beq.n 800485a <HAL_DMA_IRQHandler+0x11a>
  1084. 8004834: 3214 adds r2, #20
  1085. 8004836: 4293 cmp r3, r2
  1086. 8004838: d011 beq.n 800485e <HAL_DMA_IRQHandler+0x11e>
  1087. 800483a: 3214 adds r2, #20
  1088. 800483c: 4293 cmp r3, r2
  1089. 800483e: bf0c ite eq
  1090. 8004840: f44f 5300 moveq.w r3, #8192 ; 0x2000
  1091. 8004844: f44f 3300 movne.w r3, #131072 ; 0x20000
  1092. 8004848: 4a28 ldr r2, [pc, #160] ; (80048ec <HAL_DMA_IRQHandler+0x1ac>)
  1093. 800484a: 6053 str r3, [r2, #4]
  1094. __HAL_UNLOCK(hdma);
  1095. 800484c: 2300 movs r3, #0
  1096. 800484e: f880 3020 strb.w r3, [r0, #32]
  1097. if(hdma->XferCpltCallback != NULL)
  1098. 8004852: 6a83 ldr r3, [r0, #40] ; 0x28
  1099. 8004854: e79e b.n 8004794 <HAL_DMA_IRQHandler+0x54>
  1100. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_TC_FLAG_INDEX(hdma));
  1101. 8004856: 2302 movs r3, #2
  1102. 8004858: e7f6 b.n 8004848 <HAL_DMA_IRQHandler+0x108>
  1103. 800485a: 2320 movs r3, #32
  1104. 800485c: e7f4 b.n 8004848 <HAL_DMA_IRQHandler+0x108>
  1105. 800485e: f44f 7300 mov.w r3, #512 ; 0x200
  1106. 8004862: e7f1 b.n 8004848 <HAL_DMA_IRQHandler+0x108>
  1107. 8004864: 4922 ldr r1, [pc, #136] ; (80048f0 <HAL_DMA_IRQHandler+0x1b0>)
  1108. 8004866: 428b cmp r3, r1
  1109. 8004868: d016 beq.n 8004898 <HAL_DMA_IRQHandler+0x158>
  1110. 800486a: 3114 adds r1, #20
  1111. 800486c: 428b cmp r3, r1
  1112. 800486e: d015 beq.n 800489c <HAL_DMA_IRQHandler+0x15c>
  1113. 8004870: 3114 adds r1, #20
  1114. 8004872: 428b cmp r3, r1
  1115. 8004874: d014 beq.n 80048a0 <HAL_DMA_IRQHandler+0x160>
  1116. 8004876: 3114 adds r1, #20
  1117. 8004878: 428b cmp r3, r1
  1118. 800487a: d014 beq.n 80048a6 <HAL_DMA_IRQHandler+0x166>
  1119. 800487c: 3114 adds r1, #20
  1120. 800487e: 428b cmp r3, r1
  1121. 8004880: d014 beq.n 80048ac <HAL_DMA_IRQHandler+0x16c>
  1122. 8004882: 3114 adds r1, #20
  1123. 8004884: 428b cmp r3, r1
  1124. 8004886: d014 beq.n 80048b2 <HAL_DMA_IRQHandler+0x172>
  1125. 8004888: 4293 cmp r3, r2
  1126. 800488a: bf14 ite ne
  1127. 800488c: f44f 3300 movne.w r3, #131072 ; 0x20000
  1128. 8004890: f04f 7300 moveq.w r3, #33554432 ; 0x2000000
  1129. 8004894: 4a17 ldr r2, [pc, #92] ; (80048f4 <HAL_DMA_IRQHandler+0x1b4>)
  1130. 8004896: e7d8 b.n 800484a <HAL_DMA_IRQHandler+0x10a>
  1131. 8004898: 2302 movs r3, #2
  1132. 800489a: e7fb b.n 8004894 <HAL_DMA_IRQHandler+0x154>
  1133. 800489c: 2320 movs r3, #32
  1134. 800489e: e7f9 b.n 8004894 <HAL_DMA_IRQHandler+0x154>
  1135. 80048a0: f44f 7300 mov.w r3, #512 ; 0x200
  1136. 80048a4: e7f6 b.n 8004894 <HAL_DMA_IRQHandler+0x154>
  1137. 80048a6: f44f 5300 mov.w r3, #8192 ; 0x2000
  1138. 80048aa: e7f3 b.n 8004894 <HAL_DMA_IRQHandler+0x154>
  1139. 80048ac: f44f 3300 mov.w r3, #131072 ; 0x20000
  1140. 80048b0: e7f0 b.n 8004894 <HAL_DMA_IRQHandler+0x154>
  1141. 80048b2: f44f 1300 mov.w r3, #2097152 ; 0x200000
  1142. 80048b6: e7ed b.n 8004894 <HAL_DMA_IRQHandler+0x154>
  1143. else if (( RESET != (flag_it & (DMA_FLAG_TE1 << hdma->ChannelIndex))) && (RESET != (source_it & DMA_IT_TE)))
  1144. 80048b8: 2508 movs r5, #8
  1145. 80048ba: 4095 lsls r5, r2
  1146. 80048bc: 4225 tst r5, r4
  1147. 80048be: d011 beq.n 80048e4 <HAL_DMA_IRQHandler+0x1a4>
  1148. 80048c0: 0709 lsls r1, r1, #28
  1149. 80048c2: d50f bpl.n 80048e4 <HAL_DMA_IRQHandler+0x1a4>
  1150. __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
  1151. 80048c4: 6819 ldr r1, [r3, #0]
  1152. 80048c6: f021 010e bic.w r1, r1, #14
  1153. 80048ca: 6019 str r1, [r3, #0]
  1154. hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << hdma->ChannelIndex);
  1155. 80048cc: 2301 movs r3, #1
  1156. 80048ce: fa03 f202 lsl.w r2, r3, r2
  1157. 80048d2: 6072 str r2, [r6, #4]
  1158. hdma->ErrorCode = HAL_DMA_ERROR_TE;
  1159. 80048d4: 6383 str r3, [r0, #56] ; 0x38
  1160. hdma->State = HAL_DMA_STATE_READY;
  1161. 80048d6: f880 3021 strb.w r3, [r0, #33] ; 0x21
  1162. __HAL_UNLOCK(hdma);
  1163. 80048da: 2300 movs r3, #0
  1164. 80048dc: f880 3020 strb.w r3, [r0, #32]
  1165. if (hdma->XferErrorCallback != NULL)
  1166. 80048e0: 6b03 ldr r3, [r0, #48] ; 0x30
  1167. 80048e2: e757 b.n 8004794 <HAL_DMA_IRQHandler+0x54>
  1168. }
  1169. 80048e4: bc70 pop {r4, r5, r6}
  1170. 80048e6: 4770 bx lr
  1171. 80048e8: 40020080 .word 0x40020080
  1172. 80048ec: 40020400 .word 0x40020400
  1173. 80048f0: 40020008 .word 0x40020008
  1174. 80048f4: 40020000 .word 0x40020000
  1175. 080048f8 <HAL_GPIO_Init>:
  1176. * @param GPIO_Init: pointer to a GPIO_InitTypeDef structure that contains
  1177. * the configuration information for the specified GPIO peripheral.
  1178. * @retval None
  1179. */
  1180. void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
  1181. {
  1182. 80048f8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
  1183. uint32_t position;
  1184. uint32_t ioposition = 0x00U;
  1185. uint32_t iocurrent = 0x00U;
  1186. uint32_t temp = 0x00U;
  1187. uint32_t config = 0x00U;
  1188. 80048fc: 2200 movs r2, #0
  1189. assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
  1190. assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
  1191. assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
  1192. /* Configure the port pins */
  1193. for (position = 0U; position < GPIO_NUMBER; position++)
  1194. 80048fe: 4616 mov r6, r2
  1195. /*--------------------- EXTI Mode Configuration ------------------------*/
  1196. /* Configure the External Interrupt or event for the current IO */
  1197. if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
  1198. {
  1199. /* Enable AFIO Clock */
  1200. __HAL_RCC_AFIO_CLK_ENABLE();
  1201. 8004900: 4f6c ldr r7, [pc, #432] ; (8004ab4 <HAL_GPIO_Init+0x1bc>)
  1202. 8004902: 4b6d ldr r3, [pc, #436] ; (8004ab8 <HAL_GPIO_Init+0x1c0>)
  1203. temp = AFIO->EXTICR[position >> 2U];
  1204. CLEAR_BIT(temp, (0x0FU) << (4U * (position & 0x03U)));
  1205. SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
  1206. 8004904: f8df e1b8 ldr.w lr, [pc, #440] ; 8004ac0 <HAL_GPIO_Init+0x1c8>
  1207. switch (GPIO_Init->Mode)
  1208. 8004908: f8df c1b8 ldr.w ip, [pc, #440] ; 8004ac4 <HAL_GPIO_Init+0x1cc>
  1209. ioposition = (0x01U << position);
  1210. 800490c: f04f 0801 mov.w r8, #1
  1211. iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
  1212. 8004910: 680c ldr r4, [r1, #0]
  1213. ioposition = (0x01U << position);
  1214. 8004912: fa08 f806 lsl.w r8, r8, r6
  1215. iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
  1216. 8004916: ea08 0404 and.w r4, r8, r4
  1217. if (iocurrent == ioposition)
  1218. 800491a: 45a0 cmp r8, r4
  1219. 800491c: f040 8085 bne.w 8004a2a <HAL_GPIO_Init+0x132>
  1220. switch (GPIO_Init->Mode)
  1221. 8004920: 684d ldr r5, [r1, #4]
  1222. 8004922: 2d12 cmp r5, #18
  1223. 8004924: f000 80b7 beq.w 8004a96 <HAL_GPIO_Init+0x19e>
  1224. 8004928: f200 808d bhi.w 8004a46 <HAL_GPIO_Init+0x14e>
  1225. 800492c: 2d02 cmp r5, #2
  1226. 800492e: f000 80af beq.w 8004a90 <HAL_GPIO_Init+0x198>
  1227. 8004932: f200 8081 bhi.w 8004a38 <HAL_GPIO_Init+0x140>
  1228. 8004936: 2d00 cmp r5, #0
  1229. 8004938: f000 8091 beq.w 8004a5e <HAL_GPIO_Init+0x166>
  1230. 800493c: 2d01 cmp r5, #1
  1231. 800493e: f000 80a5 beq.w 8004a8c <HAL_GPIO_Init+0x194>
  1232. MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset));
  1233. 8004942: f04f 090f mov.w r9, #15
  1234. configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH;
  1235. 8004946: 2cff cmp r4, #255 ; 0xff
  1236. 8004948: bf93 iteet ls
  1237. 800494a: 4682 movls sl, r0
  1238. 800494c: f106 4580 addhi.w r5, r6, #1073741824 ; 0x40000000
  1239. 8004950: 3d08 subhi r5, #8
  1240. 8004952: f8d0 b000 ldrls.w fp, [r0]
  1241. 8004956: bf92 itee ls
  1242. 8004958: 00b5 lslls r5, r6, #2
  1243. 800495a: f8d0 b004 ldrhi.w fp, [r0, #4]
  1244. 800495e: 00ad lslhi r5, r5, #2
  1245. MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset));
  1246. 8004960: fa09 f805 lsl.w r8, r9, r5
  1247. 8004964: ea2b 0808 bic.w r8, fp, r8
  1248. 8004968: fa02 f505 lsl.w r5, r2, r5
  1249. configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH;
  1250. 800496c: bf88 it hi
  1251. 800496e: f100 0a04 addhi.w sl, r0, #4
  1252. MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset));
  1253. 8004972: ea48 0505 orr.w r5, r8, r5
  1254. 8004976: f8ca 5000 str.w r5, [sl]
  1255. if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
  1256. 800497a: f8d1 a004 ldr.w sl, [r1, #4]
  1257. 800497e: f01a 5f80 tst.w sl, #268435456 ; 0x10000000
  1258. 8004982: d052 beq.n 8004a2a <HAL_GPIO_Init+0x132>
  1259. __HAL_RCC_AFIO_CLK_ENABLE();
  1260. 8004984: 69bd ldr r5, [r7, #24]
  1261. 8004986: f026 0803 bic.w r8, r6, #3
  1262. 800498a: f045 0501 orr.w r5, r5, #1
  1263. 800498e: 61bd str r5, [r7, #24]
  1264. 8004990: 69bd ldr r5, [r7, #24]
  1265. 8004992: f108 4880 add.w r8, r8, #1073741824 ; 0x40000000
  1266. 8004996: f005 0501 and.w r5, r5, #1
  1267. 800499a: 9501 str r5, [sp, #4]
  1268. 800499c: f508 3880 add.w r8, r8, #65536 ; 0x10000
  1269. CLEAR_BIT(temp, (0x0FU) << (4U * (position & 0x03U)));
  1270. 80049a0: f006 0b03 and.w fp, r6, #3
  1271. __HAL_RCC_AFIO_CLK_ENABLE();
  1272. 80049a4: 9d01 ldr r5, [sp, #4]
  1273. CLEAR_BIT(temp, (0x0FU) << (4U * (position & 0x03U)));
  1274. 80049a6: ea4f 0b8b mov.w fp, fp, lsl #2
  1275. temp = AFIO->EXTICR[position >> 2U];
  1276. 80049aa: f8d8 5008 ldr.w r5, [r8, #8]
  1277. CLEAR_BIT(temp, (0x0FU) << (4U * (position & 0x03U)));
  1278. 80049ae: fa09 f90b lsl.w r9, r9, fp
  1279. 80049b2: ea25 0909 bic.w r9, r5, r9
  1280. SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
  1281. 80049b6: 4d41 ldr r5, [pc, #260] ; (8004abc <HAL_GPIO_Init+0x1c4>)
  1282. 80049b8: 42a8 cmp r0, r5
  1283. 80049ba: d071 beq.n 8004aa0 <HAL_GPIO_Init+0x1a8>
  1284. 80049bc: f505 6580 add.w r5, r5, #1024 ; 0x400
  1285. 80049c0: 42a8 cmp r0, r5
  1286. 80049c2: d06f beq.n 8004aa4 <HAL_GPIO_Init+0x1ac>
  1287. 80049c4: f505 6580 add.w r5, r5, #1024 ; 0x400
  1288. 80049c8: 42a8 cmp r0, r5
  1289. 80049ca: d06d beq.n 8004aa8 <HAL_GPIO_Init+0x1b0>
  1290. 80049cc: f505 6580 add.w r5, r5, #1024 ; 0x400
  1291. 80049d0: 42a8 cmp r0, r5
  1292. 80049d2: d06b beq.n 8004aac <HAL_GPIO_Init+0x1b4>
  1293. 80049d4: f505 6580 add.w r5, r5, #1024 ; 0x400
  1294. 80049d8: 42a8 cmp r0, r5
  1295. 80049da: d069 beq.n 8004ab0 <HAL_GPIO_Init+0x1b8>
  1296. 80049dc: 4570 cmp r0, lr
  1297. 80049de: bf0c ite eq
  1298. 80049e0: 2505 moveq r5, #5
  1299. 80049e2: 2506 movne r5, #6
  1300. 80049e4: fa05 f50b lsl.w r5, r5, fp
  1301. 80049e8: ea45 0509 orr.w r5, r5, r9
  1302. AFIO->EXTICR[position >> 2U] = temp;
  1303. 80049ec: f8c8 5008 str.w r5, [r8, #8]
  1304. /* Configure the interrupt mask */
  1305. if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
  1306. {
  1307. SET_BIT(EXTI->IMR, iocurrent);
  1308. 80049f0: 681d ldr r5, [r3, #0]
  1309. if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
  1310. 80049f2: f41a 3f80 tst.w sl, #65536 ; 0x10000
  1311. SET_BIT(EXTI->IMR, iocurrent);
  1312. 80049f6: bf14 ite ne
  1313. 80049f8: 4325 orrne r5, r4
  1314. }
  1315. else
  1316. {
  1317. CLEAR_BIT(EXTI->IMR, iocurrent);
  1318. 80049fa: 43a5 biceq r5, r4
  1319. 80049fc: 601d str r5, [r3, #0]
  1320. }
  1321. /* Configure the event mask */
  1322. if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
  1323. {
  1324. SET_BIT(EXTI->EMR, iocurrent);
  1325. 80049fe: 685d ldr r5, [r3, #4]
  1326. if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
  1327. 8004a00: f41a 3f00 tst.w sl, #131072 ; 0x20000
  1328. SET_BIT(EXTI->EMR, iocurrent);
  1329. 8004a04: bf14 ite ne
  1330. 8004a06: 4325 orrne r5, r4
  1331. }
  1332. else
  1333. {
  1334. CLEAR_BIT(EXTI->EMR, iocurrent);
  1335. 8004a08: 43a5 biceq r5, r4
  1336. 8004a0a: 605d str r5, [r3, #4]
  1337. }
  1338. /* Enable or disable the rising trigger */
  1339. if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
  1340. {
  1341. SET_BIT(EXTI->RTSR, iocurrent);
  1342. 8004a0c: 689d ldr r5, [r3, #8]
  1343. if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
  1344. 8004a0e: f41a 1f80 tst.w sl, #1048576 ; 0x100000
  1345. SET_BIT(EXTI->RTSR, iocurrent);
  1346. 8004a12: bf14 ite ne
  1347. 8004a14: 4325 orrne r5, r4
  1348. }
  1349. else
  1350. {
  1351. CLEAR_BIT(EXTI->RTSR, iocurrent);
  1352. 8004a16: 43a5 biceq r5, r4
  1353. 8004a18: 609d str r5, [r3, #8]
  1354. }
  1355. /* Enable or disable the falling trigger */
  1356. if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
  1357. {
  1358. SET_BIT(EXTI->FTSR, iocurrent);
  1359. 8004a1a: 68dd ldr r5, [r3, #12]
  1360. if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
  1361. 8004a1c: f41a 1f00 tst.w sl, #2097152 ; 0x200000
  1362. SET_BIT(EXTI->FTSR, iocurrent);
  1363. 8004a20: bf14 ite ne
  1364. 8004a22: 432c orrne r4, r5
  1365. }
  1366. else
  1367. {
  1368. CLEAR_BIT(EXTI->FTSR, iocurrent);
  1369. 8004a24: ea25 0404 biceq.w r4, r5, r4
  1370. 8004a28: 60dc str r4, [r3, #12]
  1371. for (position = 0U; position < GPIO_NUMBER; position++)
  1372. 8004a2a: 3601 adds r6, #1
  1373. 8004a2c: 2e10 cmp r6, #16
  1374. 8004a2e: f47f af6d bne.w 800490c <HAL_GPIO_Init+0x14>
  1375. }
  1376. }
  1377. }
  1378. }
  1379. }
  1380. 8004a32: b003 add sp, #12
  1381. 8004a34: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  1382. switch (GPIO_Init->Mode)
  1383. 8004a38: 2d03 cmp r5, #3
  1384. 8004a3a: d025 beq.n 8004a88 <HAL_GPIO_Init+0x190>
  1385. 8004a3c: 2d11 cmp r5, #17
  1386. 8004a3e: d180 bne.n 8004942 <HAL_GPIO_Init+0x4a>
  1387. config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_OD;
  1388. 8004a40: 68ca ldr r2, [r1, #12]
  1389. 8004a42: 3204 adds r2, #4
  1390. break;
  1391. 8004a44: e77d b.n 8004942 <HAL_GPIO_Init+0x4a>
  1392. switch (GPIO_Init->Mode)
  1393. 8004a46: 4565 cmp r5, ip
  1394. 8004a48: d009 beq.n 8004a5e <HAL_GPIO_Init+0x166>
  1395. 8004a4a: d812 bhi.n 8004a72 <HAL_GPIO_Init+0x17a>
  1396. 8004a4c: f8df 9078 ldr.w r9, [pc, #120] ; 8004ac8 <HAL_GPIO_Init+0x1d0>
  1397. 8004a50: 454d cmp r5, r9
  1398. 8004a52: d004 beq.n 8004a5e <HAL_GPIO_Init+0x166>
  1399. 8004a54: f509 3980 add.w r9, r9, #65536 ; 0x10000
  1400. 8004a58: 454d cmp r5, r9
  1401. 8004a5a: f47f af72 bne.w 8004942 <HAL_GPIO_Init+0x4a>
  1402. if (GPIO_Init->Pull == GPIO_NOPULL)
  1403. 8004a5e: 688a ldr r2, [r1, #8]
  1404. 8004a60: b1e2 cbz r2, 8004a9c <HAL_GPIO_Init+0x1a4>
  1405. else if (GPIO_Init->Pull == GPIO_PULLUP)
  1406. 8004a62: 2a01 cmp r2, #1
  1407. GPIOx->BSRR = ioposition;
  1408. 8004a64: bf0c ite eq
  1409. 8004a66: f8c0 8010 streq.w r8, [r0, #16]
  1410. GPIOx->BRR = ioposition;
  1411. 8004a6a: f8c0 8014 strne.w r8, [r0, #20]
  1412. config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD;
  1413. 8004a6e: 2208 movs r2, #8
  1414. 8004a70: e767 b.n 8004942 <HAL_GPIO_Init+0x4a>
  1415. switch (GPIO_Init->Mode)
  1416. 8004a72: f8df 9058 ldr.w r9, [pc, #88] ; 8004acc <HAL_GPIO_Init+0x1d4>
  1417. 8004a76: 454d cmp r5, r9
  1418. 8004a78: d0f1 beq.n 8004a5e <HAL_GPIO_Init+0x166>
  1419. 8004a7a: f509 3980 add.w r9, r9, #65536 ; 0x10000
  1420. 8004a7e: 454d cmp r5, r9
  1421. 8004a80: d0ed beq.n 8004a5e <HAL_GPIO_Init+0x166>
  1422. 8004a82: f5a9 1980 sub.w r9, r9, #1048576 ; 0x100000
  1423. 8004a86: e7e7 b.n 8004a58 <HAL_GPIO_Init+0x160>
  1424. config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG;
  1425. 8004a88: 2200 movs r2, #0
  1426. 8004a8a: e75a b.n 8004942 <HAL_GPIO_Init+0x4a>
  1427. config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_PP;
  1428. 8004a8c: 68ca ldr r2, [r1, #12]
  1429. break;
  1430. 8004a8e: e758 b.n 8004942 <HAL_GPIO_Init+0x4a>
  1431. config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_PP;
  1432. 8004a90: 68ca ldr r2, [r1, #12]
  1433. 8004a92: 3208 adds r2, #8
  1434. break;
  1435. 8004a94: e755 b.n 8004942 <HAL_GPIO_Init+0x4a>
  1436. config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_OD;
  1437. 8004a96: 68ca ldr r2, [r1, #12]
  1438. 8004a98: 320c adds r2, #12
  1439. break;
  1440. 8004a9a: e752 b.n 8004942 <HAL_GPIO_Init+0x4a>
  1441. config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_FLOATING;
  1442. 8004a9c: 2204 movs r2, #4
  1443. 8004a9e: e750 b.n 8004942 <HAL_GPIO_Init+0x4a>
  1444. SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
  1445. 8004aa0: 2500 movs r5, #0
  1446. 8004aa2: e79f b.n 80049e4 <HAL_GPIO_Init+0xec>
  1447. 8004aa4: 2501 movs r5, #1
  1448. 8004aa6: e79d b.n 80049e4 <HAL_GPIO_Init+0xec>
  1449. 8004aa8: 2502 movs r5, #2
  1450. 8004aaa: e79b b.n 80049e4 <HAL_GPIO_Init+0xec>
  1451. 8004aac: 2503 movs r5, #3
  1452. 8004aae: e799 b.n 80049e4 <HAL_GPIO_Init+0xec>
  1453. 8004ab0: 2504 movs r5, #4
  1454. 8004ab2: e797 b.n 80049e4 <HAL_GPIO_Init+0xec>
  1455. 8004ab4: 40021000 .word 0x40021000
  1456. 8004ab8: 40010400 .word 0x40010400
  1457. 8004abc: 40010800 .word 0x40010800
  1458. 8004ac0: 40011c00 .word 0x40011c00
  1459. 8004ac4: 10210000 .word 0x10210000
  1460. 8004ac8: 10110000 .word 0x10110000
  1461. 8004acc: 10310000 .word 0x10310000
  1462. 08004ad0 <HAL_GPIO_WritePin>:
  1463. {
  1464. /* Check the parameters */
  1465. assert_param(IS_GPIO_PIN(GPIO_Pin));
  1466. assert_param(IS_GPIO_PIN_ACTION(PinState));
  1467. if (PinState != GPIO_PIN_RESET)
  1468. 8004ad0: b10a cbz r2, 8004ad6 <HAL_GPIO_WritePin+0x6>
  1469. {
  1470. GPIOx->BSRR = GPIO_Pin;
  1471. }
  1472. else
  1473. {
  1474. GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;
  1475. 8004ad2: 6101 str r1, [r0, #16]
  1476. 8004ad4: 4770 bx lr
  1477. 8004ad6: 0409 lsls r1, r1, #16
  1478. 8004ad8: e7fb b.n 8004ad2 <HAL_GPIO_WritePin+0x2>
  1479. 08004ada <HAL_GPIO_TogglePin>:
  1480. void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
  1481. {
  1482. /* Check the parameters */
  1483. assert_param(IS_GPIO_PIN(GPIO_Pin));
  1484. GPIOx->ODR ^= GPIO_Pin;
  1485. 8004ada: 68c3 ldr r3, [r0, #12]
  1486. 8004adc: 4059 eors r1, r3
  1487. 8004ade: 60c1 str r1, [r0, #12]
  1488. 8004ae0: 4770 bx lr
  1489. ...
  1490. 08004ae4 <HAL_RCC_OscConfig>:
  1491. /* Check the parameters */
  1492. assert_param(RCC_OscInitStruct != NULL);
  1493. assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType));
  1494. /*------------------------------- HSE Configuration ------------------------*/
  1495. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
  1496. 8004ae4: 6803 ldr r3, [r0, #0]
  1497. {
  1498. 8004ae6: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
  1499. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
  1500. 8004aea: 07db lsls r3, r3, #31
  1501. {
  1502. 8004aec: 4605 mov r5, r0
  1503. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
  1504. 8004aee: d410 bmi.n 8004b12 <HAL_RCC_OscConfig+0x2e>
  1505. }
  1506. }
  1507. }
  1508. }
  1509. /*----------------------------- HSI Configuration --------------------------*/
  1510. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
  1511. 8004af0: 682b ldr r3, [r5, #0]
  1512. 8004af2: 079f lsls r7, r3, #30
  1513. 8004af4: d45e bmi.n 8004bb4 <HAL_RCC_OscConfig+0xd0>
  1514. }
  1515. }
  1516. }
  1517. }
  1518. /*------------------------------ LSI Configuration -------------------------*/
  1519. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
  1520. 8004af6: 682b ldr r3, [r5, #0]
  1521. 8004af8: 0719 lsls r1, r3, #28
  1522. 8004afa: f100 8095 bmi.w 8004c28 <HAL_RCC_OscConfig+0x144>
  1523. }
  1524. }
  1525. }
  1526. }
  1527. /*------------------------------ LSE Configuration -------------------------*/
  1528. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
  1529. 8004afe: 682b ldr r3, [r5, #0]
  1530. 8004b00: 075a lsls r2, r3, #29
  1531. 8004b02: f100 80bf bmi.w 8004c84 <HAL_RCC_OscConfig+0x1a0>
  1532. #endif /* RCC_CR_PLL2ON */
  1533. /*-------------------------------- PLL Configuration -----------------------*/
  1534. /* Check the parameters */
  1535. assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState));
  1536. if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE)
  1537. 8004b06: 69ea ldr r2, [r5, #28]
  1538. 8004b08: 2a00 cmp r2, #0
  1539. 8004b0a: f040 812d bne.w 8004d68 <HAL_RCC_OscConfig+0x284>
  1540. {
  1541. return HAL_ERROR;
  1542. }
  1543. }
  1544. return HAL_OK;
  1545. 8004b0e: 2000 movs r0, #0
  1546. 8004b10: e014 b.n 8004b3c <HAL_RCC_OscConfig+0x58>
  1547. if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE)
  1548. 8004b12: 4c90 ldr r4, [pc, #576] ; (8004d54 <HAL_RCC_OscConfig+0x270>)
  1549. 8004b14: 6863 ldr r3, [r4, #4]
  1550. 8004b16: f003 030c and.w r3, r3, #12
  1551. 8004b1a: 2b04 cmp r3, #4
  1552. 8004b1c: d007 beq.n 8004b2e <HAL_RCC_OscConfig+0x4a>
  1553. || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE)))
  1554. 8004b1e: 6863 ldr r3, [r4, #4]
  1555. 8004b20: f003 030c and.w r3, r3, #12
  1556. 8004b24: 2b08 cmp r3, #8
  1557. 8004b26: d10c bne.n 8004b42 <HAL_RCC_OscConfig+0x5e>
  1558. 8004b28: 6863 ldr r3, [r4, #4]
  1559. 8004b2a: 03de lsls r6, r3, #15
  1560. 8004b2c: d509 bpl.n 8004b42 <HAL_RCC_OscConfig+0x5e>
  1561. if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
  1562. 8004b2e: 6823 ldr r3, [r4, #0]
  1563. 8004b30: 039c lsls r4, r3, #14
  1564. 8004b32: d5dd bpl.n 8004af0 <HAL_RCC_OscConfig+0xc>
  1565. 8004b34: 686b ldr r3, [r5, #4]
  1566. 8004b36: 2b00 cmp r3, #0
  1567. 8004b38: d1da bne.n 8004af0 <HAL_RCC_OscConfig+0xc>
  1568. return HAL_ERROR;
  1569. 8004b3a: 2001 movs r0, #1
  1570. }
  1571. 8004b3c: b002 add sp, #8
  1572. 8004b3e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  1573. __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
  1574. 8004b42: 686b ldr r3, [r5, #4]
  1575. 8004b44: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
  1576. 8004b48: d110 bne.n 8004b6c <HAL_RCC_OscConfig+0x88>
  1577. 8004b4a: 6823 ldr r3, [r4, #0]
  1578. 8004b4c: f443 3380 orr.w r3, r3, #65536 ; 0x10000
  1579. 8004b50: 6023 str r3, [r4, #0]
  1580. tickstart = HAL_GetTick();
  1581. 8004b52: f7ff fba9 bl 80042a8 <HAL_GetTick>
  1582. 8004b56: 4606 mov r6, r0
  1583. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
  1584. 8004b58: 6823 ldr r3, [r4, #0]
  1585. 8004b5a: 0398 lsls r0, r3, #14
  1586. 8004b5c: d4c8 bmi.n 8004af0 <HAL_RCC_OscConfig+0xc>
  1587. if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE)
  1588. 8004b5e: f7ff fba3 bl 80042a8 <HAL_GetTick>
  1589. 8004b62: 1b80 subs r0, r0, r6
  1590. 8004b64: 2864 cmp r0, #100 ; 0x64
  1591. 8004b66: d9f7 bls.n 8004b58 <HAL_RCC_OscConfig+0x74>
  1592. return HAL_TIMEOUT;
  1593. 8004b68: 2003 movs r0, #3
  1594. 8004b6a: e7e7 b.n 8004b3c <HAL_RCC_OscConfig+0x58>
  1595. __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
  1596. 8004b6c: b99b cbnz r3, 8004b96 <HAL_RCC_OscConfig+0xb2>
  1597. 8004b6e: 6823 ldr r3, [r4, #0]
  1598. 8004b70: f423 3380 bic.w r3, r3, #65536 ; 0x10000
  1599. 8004b74: 6023 str r3, [r4, #0]
  1600. 8004b76: 6823 ldr r3, [r4, #0]
  1601. 8004b78: f423 2380 bic.w r3, r3, #262144 ; 0x40000
  1602. 8004b7c: 6023 str r3, [r4, #0]
  1603. tickstart = HAL_GetTick();
  1604. 8004b7e: f7ff fb93 bl 80042a8 <HAL_GetTick>
  1605. 8004b82: 4606 mov r6, r0
  1606. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
  1607. 8004b84: 6823 ldr r3, [r4, #0]
  1608. 8004b86: 0399 lsls r1, r3, #14
  1609. 8004b88: d5b2 bpl.n 8004af0 <HAL_RCC_OscConfig+0xc>
  1610. if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE)
  1611. 8004b8a: f7ff fb8d bl 80042a8 <HAL_GetTick>
  1612. 8004b8e: 1b80 subs r0, r0, r6
  1613. 8004b90: 2864 cmp r0, #100 ; 0x64
  1614. 8004b92: d9f7 bls.n 8004b84 <HAL_RCC_OscConfig+0xa0>
  1615. 8004b94: e7e8 b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1616. __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
  1617. 8004b96: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000
  1618. 8004b9a: 6823 ldr r3, [r4, #0]
  1619. 8004b9c: d103 bne.n 8004ba6 <HAL_RCC_OscConfig+0xc2>
  1620. 8004b9e: f443 2380 orr.w r3, r3, #262144 ; 0x40000
  1621. 8004ba2: 6023 str r3, [r4, #0]
  1622. 8004ba4: e7d1 b.n 8004b4a <HAL_RCC_OscConfig+0x66>
  1623. 8004ba6: f423 3380 bic.w r3, r3, #65536 ; 0x10000
  1624. 8004baa: 6023 str r3, [r4, #0]
  1625. 8004bac: 6823 ldr r3, [r4, #0]
  1626. 8004bae: f423 2380 bic.w r3, r3, #262144 ; 0x40000
  1627. 8004bb2: e7cd b.n 8004b50 <HAL_RCC_OscConfig+0x6c>
  1628. if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI)
  1629. 8004bb4: 4c67 ldr r4, [pc, #412] ; (8004d54 <HAL_RCC_OscConfig+0x270>)
  1630. 8004bb6: 6863 ldr r3, [r4, #4]
  1631. 8004bb8: f013 0f0c tst.w r3, #12
  1632. 8004bbc: d007 beq.n 8004bce <HAL_RCC_OscConfig+0xea>
  1633. || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2)))
  1634. 8004bbe: 6863 ldr r3, [r4, #4]
  1635. 8004bc0: f003 030c and.w r3, r3, #12
  1636. 8004bc4: 2b08 cmp r3, #8
  1637. 8004bc6: d110 bne.n 8004bea <HAL_RCC_OscConfig+0x106>
  1638. 8004bc8: 6863 ldr r3, [r4, #4]
  1639. 8004bca: 03da lsls r2, r3, #15
  1640. 8004bcc: d40d bmi.n 8004bea <HAL_RCC_OscConfig+0x106>
  1641. if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON))
  1642. 8004bce: 6823 ldr r3, [r4, #0]
  1643. 8004bd0: 079b lsls r3, r3, #30
  1644. 8004bd2: d502 bpl.n 8004bda <HAL_RCC_OscConfig+0xf6>
  1645. 8004bd4: 692b ldr r3, [r5, #16]
  1646. 8004bd6: 2b01 cmp r3, #1
  1647. 8004bd8: d1af bne.n 8004b3a <HAL_RCC_OscConfig+0x56>
  1648. __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
  1649. 8004bda: 6823 ldr r3, [r4, #0]
  1650. 8004bdc: 696a ldr r2, [r5, #20]
  1651. 8004bde: f023 03f8 bic.w r3, r3, #248 ; 0xf8
  1652. 8004be2: ea43 03c2 orr.w r3, r3, r2, lsl #3
  1653. 8004be6: 6023 str r3, [r4, #0]
  1654. 8004be8: e785 b.n 8004af6 <HAL_RCC_OscConfig+0x12>
  1655. if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF)
  1656. 8004bea: 692a ldr r2, [r5, #16]
  1657. 8004bec: 4b5a ldr r3, [pc, #360] ; (8004d58 <HAL_RCC_OscConfig+0x274>)
  1658. 8004bee: b16a cbz r2, 8004c0c <HAL_RCC_OscConfig+0x128>
  1659. __HAL_RCC_HSI_ENABLE();
  1660. 8004bf0: 2201 movs r2, #1
  1661. 8004bf2: 601a str r2, [r3, #0]
  1662. tickstart = HAL_GetTick();
  1663. 8004bf4: f7ff fb58 bl 80042a8 <HAL_GetTick>
  1664. 8004bf8: 4606 mov r6, r0
  1665. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
  1666. 8004bfa: 6823 ldr r3, [r4, #0]
  1667. 8004bfc: 079f lsls r7, r3, #30
  1668. 8004bfe: d4ec bmi.n 8004bda <HAL_RCC_OscConfig+0xf6>
  1669. if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE)
  1670. 8004c00: f7ff fb52 bl 80042a8 <HAL_GetTick>
  1671. 8004c04: 1b80 subs r0, r0, r6
  1672. 8004c06: 2802 cmp r0, #2
  1673. 8004c08: d9f7 bls.n 8004bfa <HAL_RCC_OscConfig+0x116>
  1674. 8004c0a: e7ad b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1675. __HAL_RCC_HSI_DISABLE();
  1676. 8004c0c: 601a str r2, [r3, #0]
  1677. tickstart = HAL_GetTick();
  1678. 8004c0e: f7ff fb4b bl 80042a8 <HAL_GetTick>
  1679. 8004c12: 4606 mov r6, r0
  1680. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
  1681. 8004c14: 6823 ldr r3, [r4, #0]
  1682. 8004c16: 0798 lsls r0, r3, #30
  1683. 8004c18: f57f af6d bpl.w 8004af6 <HAL_RCC_OscConfig+0x12>
  1684. if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE)
  1685. 8004c1c: f7ff fb44 bl 80042a8 <HAL_GetTick>
  1686. 8004c20: 1b80 subs r0, r0, r6
  1687. 8004c22: 2802 cmp r0, #2
  1688. 8004c24: d9f6 bls.n 8004c14 <HAL_RCC_OscConfig+0x130>
  1689. 8004c26: e79f b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1690. if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF)
  1691. 8004c28: 69aa ldr r2, [r5, #24]
  1692. 8004c2a: 4c4a ldr r4, [pc, #296] ; (8004d54 <HAL_RCC_OscConfig+0x270>)
  1693. 8004c2c: 4b4b ldr r3, [pc, #300] ; (8004d5c <HAL_RCC_OscConfig+0x278>)
  1694. 8004c2e: b1da cbz r2, 8004c68 <HAL_RCC_OscConfig+0x184>
  1695. __HAL_RCC_LSI_ENABLE();
  1696. 8004c30: 2201 movs r2, #1
  1697. 8004c32: 601a str r2, [r3, #0]
  1698. tickstart = HAL_GetTick();
  1699. 8004c34: f7ff fb38 bl 80042a8 <HAL_GetTick>
  1700. 8004c38: 4606 mov r6, r0
  1701. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
  1702. 8004c3a: 6a63 ldr r3, [r4, #36] ; 0x24
  1703. 8004c3c: 079b lsls r3, r3, #30
  1704. 8004c3e: d50d bpl.n 8004c5c <HAL_RCC_OscConfig+0x178>
  1705. * @param mdelay: specifies the delay time length, in milliseconds.
  1706. * @retval None
  1707. */
  1708. static void RCC_Delay(uint32_t mdelay)
  1709. {
  1710. __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U);
  1711. 8004c40: f44f 52fa mov.w r2, #8000 ; 0x1f40
  1712. 8004c44: 4b46 ldr r3, [pc, #280] ; (8004d60 <HAL_RCC_OscConfig+0x27c>)
  1713. 8004c46: 681b ldr r3, [r3, #0]
  1714. 8004c48: fbb3 f3f2 udiv r3, r3, r2
  1715. 8004c4c: 9301 str r3, [sp, #4]
  1716. \brief No Operation
  1717. \details No Operation does nothing. This instruction can be used for code alignment purposes.
  1718. */
  1719. __attribute__((always_inline)) __STATIC_INLINE void __NOP(void)
  1720. {
  1721. __ASM volatile ("nop");
  1722. 8004c4e: bf00 nop
  1723. do
  1724. {
  1725. __NOP();
  1726. }
  1727. while (Delay --);
  1728. 8004c50: 9b01 ldr r3, [sp, #4]
  1729. 8004c52: 1e5a subs r2, r3, #1
  1730. 8004c54: 9201 str r2, [sp, #4]
  1731. 8004c56: 2b00 cmp r3, #0
  1732. 8004c58: d1f9 bne.n 8004c4e <HAL_RCC_OscConfig+0x16a>
  1733. 8004c5a: e750 b.n 8004afe <HAL_RCC_OscConfig+0x1a>
  1734. if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE)
  1735. 8004c5c: f7ff fb24 bl 80042a8 <HAL_GetTick>
  1736. 8004c60: 1b80 subs r0, r0, r6
  1737. 8004c62: 2802 cmp r0, #2
  1738. 8004c64: d9e9 bls.n 8004c3a <HAL_RCC_OscConfig+0x156>
  1739. 8004c66: e77f b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1740. __HAL_RCC_LSI_DISABLE();
  1741. 8004c68: 601a str r2, [r3, #0]
  1742. tickstart = HAL_GetTick();
  1743. 8004c6a: f7ff fb1d bl 80042a8 <HAL_GetTick>
  1744. 8004c6e: 4606 mov r6, r0
  1745. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
  1746. 8004c70: 6a63 ldr r3, [r4, #36] ; 0x24
  1747. 8004c72: 079f lsls r7, r3, #30
  1748. 8004c74: f57f af43 bpl.w 8004afe <HAL_RCC_OscConfig+0x1a>
  1749. if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE)
  1750. 8004c78: f7ff fb16 bl 80042a8 <HAL_GetTick>
  1751. 8004c7c: 1b80 subs r0, r0, r6
  1752. 8004c7e: 2802 cmp r0, #2
  1753. 8004c80: d9f6 bls.n 8004c70 <HAL_RCC_OscConfig+0x18c>
  1754. 8004c82: e771 b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1755. if(__HAL_RCC_PWR_IS_CLK_DISABLED())
  1756. 8004c84: 4c33 ldr r4, [pc, #204] ; (8004d54 <HAL_RCC_OscConfig+0x270>)
  1757. 8004c86: 69e3 ldr r3, [r4, #28]
  1758. 8004c88: 00d8 lsls r0, r3, #3
  1759. 8004c8a: d424 bmi.n 8004cd6 <HAL_RCC_OscConfig+0x1f2>
  1760. pwrclkchanged = SET;
  1761. 8004c8c: 2701 movs r7, #1
  1762. __HAL_RCC_PWR_CLK_ENABLE();
  1763. 8004c8e: 69e3 ldr r3, [r4, #28]
  1764. 8004c90: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
  1765. 8004c94: 61e3 str r3, [r4, #28]
  1766. 8004c96: 69e3 ldr r3, [r4, #28]
  1767. 8004c98: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
  1768. 8004c9c: 9300 str r3, [sp, #0]
  1769. 8004c9e: 9b00 ldr r3, [sp, #0]
  1770. if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
  1771. 8004ca0: 4e30 ldr r6, [pc, #192] ; (8004d64 <HAL_RCC_OscConfig+0x280>)
  1772. 8004ca2: 6833 ldr r3, [r6, #0]
  1773. 8004ca4: 05d9 lsls r1, r3, #23
  1774. 8004ca6: d518 bpl.n 8004cda <HAL_RCC_OscConfig+0x1f6>
  1775. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1776. 8004ca8: 68eb ldr r3, [r5, #12]
  1777. 8004caa: 2b01 cmp r3, #1
  1778. 8004cac: d126 bne.n 8004cfc <HAL_RCC_OscConfig+0x218>
  1779. 8004cae: 6a23 ldr r3, [r4, #32]
  1780. 8004cb0: f043 0301 orr.w r3, r3, #1
  1781. 8004cb4: 6223 str r3, [r4, #32]
  1782. tickstart = HAL_GetTick();
  1783. 8004cb6: f7ff faf7 bl 80042a8 <HAL_GetTick>
  1784. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1785. 8004cba: f241 3688 movw r6, #5000 ; 0x1388
  1786. tickstart = HAL_GetTick();
  1787. 8004cbe: 4680 mov r8, r0
  1788. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
  1789. 8004cc0: 6a23 ldr r3, [r4, #32]
  1790. 8004cc2: 079b lsls r3, r3, #30
  1791. 8004cc4: d53f bpl.n 8004d46 <HAL_RCC_OscConfig+0x262>
  1792. if(pwrclkchanged == SET)
  1793. 8004cc6: 2f00 cmp r7, #0
  1794. 8004cc8: f43f af1d beq.w 8004b06 <HAL_RCC_OscConfig+0x22>
  1795. __HAL_RCC_PWR_CLK_DISABLE();
  1796. 8004ccc: 69e3 ldr r3, [r4, #28]
  1797. 8004cce: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
  1798. 8004cd2: 61e3 str r3, [r4, #28]
  1799. 8004cd4: e717 b.n 8004b06 <HAL_RCC_OscConfig+0x22>
  1800. FlagStatus pwrclkchanged = RESET;
  1801. 8004cd6: 2700 movs r7, #0
  1802. 8004cd8: e7e2 b.n 8004ca0 <HAL_RCC_OscConfig+0x1bc>
  1803. SET_BIT(PWR->CR, PWR_CR_DBP);
  1804. 8004cda: 6833 ldr r3, [r6, #0]
  1805. 8004cdc: f443 7380 orr.w r3, r3, #256 ; 0x100
  1806. 8004ce0: 6033 str r3, [r6, #0]
  1807. tickstart = HAL_GetTick();
  1808. 8004ce2: f7ff fae1 bl 80042a8 <HAL_GetTick>
  1809. 8004ce6: 4680 mov r8, r0
  1810. while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
  1811. 8004ce8: 6833 ldr r3, [r6, #0]
  1812. 8004cea: 05da lsls r2, r3, #23
  1813. 8004cec: d4dc bmi.n 8004ca8 <HAL_RCC_OscConfig+0x1c4>
  1814. if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
  1815. 8004cee: f7ff fadb bl 80042a8 <HAL_GetTick>
  1816. 8004cf2: eba0 0008 sub.w r0, r0, r8
  1817. 8004cf6: 2864 cmp r0, #100 ; 0x64
  1818. 8004cf8: d9f6 bls.n 8004ce8 <HAL_RCC_OscConfig+0x204>
  1819. 8004cfa: e735 b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1820. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1821. 8004cfc: b9ab cbnz r3, 8004d2a <HAL_RCC_OscConfig+0x246>
  1822. 8004cfe: 6a23 ldr r3, [r4, #32]
  1823. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1824. 8004d00: f241 3888 movw r8, #5000 ; 0x1388
  1825. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1826. 8004d04: f023 0301 bic.w r3, r3, #1
  1827. 8004d08: 6223 str r3, [r4, #32]
  1828. 8004d0a: 6a23 ldr r3, [r4, #32]
  1829. 8004d0c: f023 0304 bic.w r3, r3, #4
  1830. 8004d10: 6223 str r3, [r4, #32]
  1831. tickstart = HAL_GetTick();
  1832. 8004d12: f7ff fac9 bl 80042a8 <HAL_GetTick>
  1833. 8004d16: 4606 mov r6, r0
  1834. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
  1835. 8004d18: 6a23 ldr r3, [r4, #32]
  1836. 8004d1a: 0798 lsls r0, r3, #30
  1837. 8004d1c: d5d3 bpl.n 8004cc6 <HAL_RCC_OscConfig+0x1e2>
  1838. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1839. 8004d1e: f7ff fac3 bl 80042a8 <HAL_GetTick>
  1840. 8004d22: 1b80 subs r0, r0, r6
  1841. 8004d24: 4540 cmp r0, r8
  1842. 8004d26: d9f7 bls.n 8004d18 <HAL_RCC_OscConfig+0x234>
  1843. 8004d28: e71e b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1844. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1845. 8004d2a: 2b05 cmp r3, #5
  1846. 8004d2c: 6a23 ldr r3, [r4, #32]
  1847. 8004d2e: d103 bne.n 8004d38 <HAL_RCC_OscConfig+0x254>
  1848. 8004d30: f043 0304 orr.w r3, r3, #4
  1849. 8004d34: 6223 str r3, [r4, #32]
  1850. 8004d36: e7ba b.n 8004cae <HAL_RCC_OscConfig+0x1ca>
  1851. 8004d38: f023 0301 bic.w r3, r3, #1
  1852. 8004d3c: 6223 str r3, [r4, #32]
  1853. 8004d3e: 6a23 ldr r3, [r4, #32]
  1854. 8004d40: f023 0304 bic.w r3, r3, #4
  1855. 8004d44: e7b6 b.n 8004cb4 <HAL_RCC_OscConfig+0x1d0>
  1856. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1857. 8004d46: f7ff faaf bl 80042a8 <HAL_GetTick>
  1858. 8004d4a: eba0 0008 sub.w r0, r0, r8
  1859. 8004d4e: 42b0 cmp r0, r6
  1860. 8004d50: d9b6 bls.n 8004cc0 <HAL_RCC_OscConfig+0x1dc>
  1861. 8004d52: e709 b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1862. 8004d54: 40021000 .word 0x40021000
  1863. 8004d58: 42420000 .word 0x42420000
  1864. 8004d5c: 42420480 .word 0x42420480
  1865. 8004d60: 20000008 .word 0x20000008
  1866. 8004d64: 40007000 .word 0x40007000
  1867. if(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK)
  1868. 8004d68: 4c22 ldr r4, [pc, #136] ; (8004df4 <HAL_RCC_OscConfig+0x310>)
  1869. 8004d6a: 6863 ldr r3, [r4, #4]
  1870. 8004d6c: f003 030c and.w r3, r3, #12
  1871. 8004d70: 2b08 cmp r3, #8
  1872. 8004d72: f43f aee2 beq.w 8004b3a <HAL_RCC_OscConfig+0x56>
  1873. 8004d76: 2300 movs r3, #0
  1874. 8004d78: 4e1f ldr r6, [pc, #124] ; (8004df8 <HAL_RCC_OscConfig+0x314>)
  1875. if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
  1876. 8004d7a: 2a02 cmp r2, #2
  1877. __HAL_RCC_PLL_DISABLE();
  1878. 8004d7c: 6033 str r3, [r6, #0]
  1879. if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
  1880. 8004d7e: d12b bne.n 8004dd8 <HAL_RCC_OscConfig+0x2f4>
  1881. tickstart = HAL_GetTick();
  1882. 8004d80: f7ff fa92 bl 80042a8 <HAL_GetTick>
  1883. 8004d84: 4607 mov r7, r0
  1884. while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
  1885. 8004d86: 6823 ldr r3, [r4, #0]
  1886. 8004d88: 0199 lsls r1, r3, #6
  1887. 8004d8a: d41f bmi.n 8004dcc <HAL_RCC_OscConfig+0x2e8>
  1888. if(RCC_OscInitStruct->PLL.PLLSource == RCC_PLLSOURCE_HSE)
  1889. 8004d8c: 6a2b ldr r3, [r5, #32]
  1890. 8004d8e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
  1891. 8004d92: d105 bne.n 8004da0 <HAL_RCC_OscConfig+0x2bc>
  1892. __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue);
  1893. 8004d94: 6862 ldr r2, [r4, #4]
  1894. 8004d96: 68a9 ldr r1, [r5, #8]
  1895. 8004d98: f422 3200 bic.w r2, r2, #131072 ; 0x20000
  1896. 8004d9c: 430a orrs r2, r1
  1897. 8004d9e: 6062 str r2, [r4, #4]
  1898. __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource,
  1899. 8004da0: 6a69 ldr r1, [r5, #36] ; 0x24
  1900. 8004da2: 6862 ldr r2, [r4, #4]
  1901. 8004da4: 430b orrs r3, r1
  1902. 8004da6: f422 1274 bic.w r2, r2, #3997696 ; 0x3d0000
  1903. 8004daa: 4313 orrs r3, r2
  1904. 8004dac: 6063 str r3, [r4, #4]
  1905. __HAL_RCC_PLL_ENABLE();
  1906. 8004dae: 2301 movs r3, #1
  1907. 8004db0: 6033 str r3, [r6, #0]
  1908. tickstart = HAL_GetTick();
  1909. 8004db2: f7ff fa79 bl 80042a8 <HAL_GetTick>
  1910. 8004db6: 4605 mov r5, r0
  1911. while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
  1912. 8004db8: 6823 ldr r3, [r4, #0]
  1913. 8004dba: 019a lsls r2, r3, #6
  1914. 8004dbc: f53f aea7 bmi.w 8004b0e <HAL_RCC_OscConfig+0x2a>
  1915. if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE)
  1916. 8004dc0: f7ff fa72 bl 80042a8 <HAL_GetTick>
  1917. 8004dc4: 1b40 subs r0, r0, r5
  1918. 8004dc6: 2802 cmp r0, #2
  1919. 8004dc8: d9f6 bls.n 8004db8 <HAL_RCC_OscConfig+0x2d4>
  1920. 8004dca: e6cd b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1921. if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE)
  1922. 8004dcc: f7ff fa6c bl 80042a8 <HAL_GetTick>
  1923. 8004dd0: 1bc0 subs r0, r0, r7
  1924. 8004dd2: 2802 cmp r0, #2
  1925. 8004dd4: d9d7 bls.n 8004d86 <HAL_RCC_OscConfig+0x2a2>
  1926. 8004dd6: e6c7 b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1927. tickstart = HAL_GetTick();
  1928. 8004dd8: f7ff fa66 bl 80042a8 <HAL_GetTick>
  1929. 8004ddc: 4605 mov r5, r0
  1930. while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
  1931. 8004dde: 6823 ldr r3, [r4, #0]
  1932. 8004de0: 019b lsls r3, r3, #6
  1933. 8004de2: f57f ae94 bpl.w 8004b0e <HAL_RCC_OscConfig+0x2a>
  1934. if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE)
  1935. 8004de6: f7ff fa5f bl 80042a8 <HAL_GetTick>
  1936. 8004dea: 1b40 subs r0, r0, r5
  1937. 8004dec: 2802 cmp r0, #2
  1938. 8004dee: d9f6 bls.n 8004dde <HAL_RCC_OscConfig+0x2fa>
  1939. 8004df0: e6ba b.n 8004b68 <HAL_RCC_OscConfig+0x84>
  1940. 8004df2: bf00 nop
  1941. 8004df4: 40021000 .word 0x40021000
  1942. 8004df8: 42420060 .word 0x42420060
  1943. 08004dfc <HAL_RCC_GetSysClockFreq>:
  1944. {
  1945. 8004dfc: b530 push {r4, r5, lr}
  1946. const uint8_t aPLLMULFactorTable[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16};
  1947. 8004dfe: 4b19 ldr r3, [pc, #100] ; (8004e64 <HAL_RCC_GetSysClockFreq+0x68>)
  1948. {
  1949. 8004e00: b087 sub sp, #28
  1950. const uint8_t aPLLMULFactorTable[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16};
  1951. 8004e02: ac02 add r4, sp, #8
  1952. 8004e04: f103 0510 add.w r5, r3, #16
  1953. 8004e08: 4622 mov r2, r4
  1954. 8004e0a: 6818 ldr r0, [r3, #0]
  1955. 8004e0c: 6859 ldr r1, [r3, #4]
  1956. 8004e0e: 3308 adds r3, #8
  1957. 8004e10: c203 stmia r2!, {r0, r1}
  1958. 8004e12: 42ab cmp r3, r5
  1959. 8004e14: 4614 mov r4, r2
  1960. 8004e16: d1f7 bne.n 8004e08 <HAL_RCC_GetSysClockFreq+0xc>
  1961. const uint8_t aPredivFactorTable[2] = {1, 2};
  1962. 8004e18: 2301 movs r3, #1
  1963. 8004e1a: f88d 3004 strb.w r3, [sp, #4]
  1964. 8004e1e: 2302 movs r3, #2
  1965. tmpreg = RCC->CFGR;
  1966. 8004e20: 4911 ldr r1, [pc, #68] ; (8004e68 <HAL_RCC_GetSysClockFreq+0x6c>)
  1967. const uint8_t aPredivFactorTable[2] = {1, 2};
  1968. 8004e22: f88d 3005 strb.w r3, [sp, #5]
  1969. tmpreg = RCC->CFGR;
  1970. 8004e26: 684b ldr r3, [r1, #4]
  1971. switch (tmpreg & RCC_CFGR_SWS)
  1972. 8004e28: f003 020c and.w r2, r3, #12
  1973. 8004e2c: 2a08 cmp r2, #8
  1974. 8004e2e: d117 bne.n 8004e60 <HAL_RCC_GetSysClockFreq+0x64>
  1975. pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos];
  1976. 8004e30: f3c3 4283 ubfx r2, r3, #18, #4
  1977. 8004e34: a806 add r0, sp, #24
  1978. 8004e36: 4402 add r2, r0
  1979. if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2)
  1980. 8004e38: 03db lsls r3, r3, #15
  1981. pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos];
  1982. 8004e3a: f812 2c10 ldrb.w r2, [r2, #-16]
  1983. if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2)
  1984. 8004e3e: d50c bpl.n 8004e5a <HAL_RCC_GetSysClockFreq+0x5e>
  1985. prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos];
  1986. 8004e40: 684b ldr r3, [r1, #4]
  1987. pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv);
  1988. 8004e42: 480a ldr r0, [pc, #40] ; (8004e6c <HAL_RCC_GetSysClockFreq+0x70>)
  1989. prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos];
  1990. 8004e44: f3c3 4340 ubfx r3, r3, #17, #1
  1991. pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv);
  1992. 8004e48: 4350 muls r0, r2
  1993. prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR & RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos];
  1994. 8004e4a: aa06 add r2, sp, #24
  1995. 8004e4c: 4413 add r3, r2
  1996. 8004e4e: f813 3c14 ldrb.w r3, [r3, #-20]
  1997. pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv);
  1998. 8004e52: fbb0 f0f3 udiv r0, r0, r3
  1999. }
  2000. 8004e56: b007 add sp, #28
  2001. 8004e58: bd30 pop {r4, r5, pc}
  2002. pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul);
  2003. 8004e5a: 4805 ldr r0, [pc, #20] ; (8004e70 <HAL_RCC_GetSysClockFreq+0x74>)
  2004. 8004e5c: 4350 muls r0, r2
  2005. 8004e5e: e7fa b.n 8004e56 <HAL_RCC_GetSysClockFreq+0x5a>
  2006. sysclockfreq = HSE_VALUE;
  2007. 8004e60: 4802 ldr r0, [pc, #8] ; (8004e6c <HAL_RCC_GetSysClockFreq+0x70>)
  2008. return sysclockfreq;
  2009. 8004e62: e7f8 b.n 8004e56 <HAL_RCC_GetSysClockFreq+0x5a>
  2010. 8004e64: 080069f8 .word 0x080069f8
  2011. 8004e68: 40021000 .word 0x40021000
  2012. 8004e6c: 007a1200 .word 0x007a1200
  2013. 8004e70: 003d0900 .word 0x003d0900
  2014. 08004e74 <HAL_RCC_ClockConfig>:
  2015. if(FLatency > (FLASH->ACR & FLASH_ACR_LATENCY))
  2016. 8004e74: 4a54 ldr r2, [pc, #336] ; (8004fc8 <HAL_RCC_ClockConfig+0x154>)
  2017. {
  2018. 8004e76: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  2019. if(FLatency > (FLASH->ACR & FLASH_ACR_LATENCY))
  2020. 8004e7a: 6813 ldr r3, [r2, #0]
  2021. {
  2022. 8004e7c: 4605 mov r5, r0
  2023. if(FLatency > (FLASH->ACR & FLASH_ACR_LATENCY))
  2024. 8004e7e: f003 0307 and.w r3, r3, #7
  2025. 8004e82: 428b cmp r3, r1
  2026. {
  2027. 8004e84: 460e mov r6, r1
  2028. if(FLatency > (FLASH->ACR & FLASH_ACR_LATENCY))
  2029. 8004e86: d32a bcc.n 8004ede <HAL_RCC_ClockConfig+0x6a>
  2030. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
  2031. 8004e88: 6829 ldr r1, [r5, #0]
  2032. 8004e8a: 078c lsls r4, r1, #30
  2033. 8004e8c: d434 bmi.n 8004ef8 <HAL_RCC_ClockConfig+0x84>
  2034. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
  2035. 8004e8e: 07ca lsls r2, r1, #31
  2036. 8004e90: d447 bmi.n 8004f22 <HAL_RCC_ClockConfig+0xae>
  2037. if(FLatency < (FLASH->ACR & FLASH_ACR_LATENCY))
  2038. 8004e92: 4a4d ldr r2, [pc, #308] ; (8004fc8 <HAL_RCC_ClockConfig+0x154>)
  2039. 8004e94: 6813 ldr r3, [r2, #0]
  2040. 8004e96: f003 0307 and.w r3, r3, #7
  2041. 8004e9a: 429e cmp r6, r3
  2042. 8004e9c: f0c0 8082 bcc.w 8004fa4 <HAL_RCC_ClockConfig+0x130>
  2043. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
  2044. 8004ea0: 682a ldr r2, [r5, #0]
  2045. 8004ea2: 4c4a ldr r4, [pc, #296] ; (8004fcc <HAL_RCC_ClockConfig+0x158>)
  2046. 8004ea4: f012 0f04 tst.w r2, #4
  2047. 8004ea8: f040 8087 bne.w 8004fba <HAL_RCC_ClockConfig+0x146>
  2048. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
  2049. 8004eac: 0713 lsls r3, r2, #28
  2050. 8004eae: d506 bpl.n 8004ebe <HAL_RCC_ClockConfig+0x4a>
  2051. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3));
  2052. 8004eb0: 6863 ldr r3, [r4, #4]
  2053. 8004eb2: 692a ldr r2, [r5, #16]
  2054. 8004eb4: f423 5360 bic.w r3, r3, #14336 ; 0x3800
  2055. 8004eb8: ea43 03c2 orr.w r3, r3, r2, lsl #3
  2056. 8004ebc: 6063 str r3, [r4, #4]
  2057. SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos];
  2058. 8004ebe: f7ff ff9d bl 8004dfc <HAL_RCC_GetSysClockFreq>
  2059. 8004ec2: 6863 ldr r3, [r4, #4]
  2060. 8004ec4: 4a42 ldr r2, [pc, #264] ; (8004fd0 <HAL_RCC_ClockConfig+0x15c>)
  2061. 8004ec6: f3c3 1303 ubfx r3, r3, #4, #4
  2062. 8004eca: 5cd3 ldrb r3, [r2, r3]
  2063. 8004ecc: 40d8 lsrs r0, r3
  2064. 8004ece: 4b41 ldr r3, [pc, #260] ; (8004fd4 <HAL_RCC_ClockConfig+0x160>)
  2065. 8004ed0: 6018 str r0, [r3, #0]
  2066. HAL_InitTick (TICK_INT_PRIORITY);
  2067. 8004ed2: 2000 movs r0, #0
  2068. 8004ed4: f7ff f9a6 bl 8004224 <HAL_InitTick>
  2069. return HAL_OK;
  2070. 8004ed8: 2000 movs r0, #0
  2071. }
  2072. 8004eda: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2073. __HAL_FLASH_SET_LATENCY(FLatency);
  2074. 8004ede: 6813 ldr r3, [r2, #0]
  2075. 8004ee0: f023 0307 bic.w r3, r3, #7
  2076. 8004ee4: 430b orrs r3, r1
  2077. 8004ee6: 6013 str r3, [r2, #0]
  2078. if((FLASH->ACR & FLASH_ACR_LATENCY) != FLatency)
  2079. 8004ee8: 6813 ldr r3, [r2, #0]
  2080. 8004eea: f003 0307 and.w r3, r3, #7
  2081. 8004eee: 4299 cmp r1, r3
  2082. 8004ef0: d0ca beq.n 8004e88 <HAL_RCC_ClockConfig+0x14>
  2083. return HAL_ERROR;
  2084. 8004ef2: 2001 movs r0, #1
  2085. 8004ef4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2086. 8004ef8: 4b34 ldr r3, [pc, #208] ; (8004fcc <HAL_RCC_ClockConfig+0x158>)
  2087. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
  2088. 8004efa: f011 0f04 tst.w r1, #4
  2089. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16);
  2090. 8004efe: bf1e ittt ne
  2091. 8004f00: 685a ldrne r2, [r3, #4]
  2092. 8004f02: f442 62e0 orrne.w r2, r2, #1792 ; 0x700
  2093. 8004f06: 605a strne r2, [r3, #4]
  2094. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
  2095. 8004f08: 0708 lsls r0, r1, #28
  2096. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3));
  2097. 8004f0a: bf42 ittt mi
  2098. 8004f0c: 685a ldrmi r2, [r3, #4]
  2099. 8004f0e: f442 5260 orrmi.w r2, r2, #14336 ; 0x3800
  2100. 8004f12: 605a strmi r2, [r3, #4]
  2101. MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider);
  2102. 8004f14: 685a ldr r2, [r3, #4]
  2103. 8004f16: 68a8 ldr r0, [r5, #8]
  2104. 8004f18: f022 02f0 bic.w r2, r2, #240 ; 0xf0
  2105. 8004f1c: 4302 orrs r2, r0
  2106. 8004f1e: 605a str r2, [r3, #4]
  2107. 8004f20: e7b5 b.n 8004e8e <HAL_RCC_ClockConfig+0x1a>
  2108. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  2109. 8004f22: 686a ldr r2, [r5, #4]
  2110. 8004f24: 4c29 ldr r4, [pc, #164] ; (8004fcc <HAL_RCC_ClockConfig+0x158>)
  2111. 8004f26: 2a01 cmp r2, #1
  2112. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
  2113. 8004f28: 6823 ldr r3, [r4, #0]
  2114. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  2115. 8004f2a: d11c bne.n 8004f66 <HAL_RCC_ClockConfig+0xf2>
  2116. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
  2117. 8004f2c: f413 3f00 tst.w r3, #131072 ; 0x20000
  2118. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
  2119. 8004f30: d0df beq.n 8004ef2 <HAL_RCC_ClockConfig+0x7e>
  2120. __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
  2121. 8004f32: 6863 ldr r3, [r4, #4]
  2122. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  2123. 8004f34: f241 3888 movw r8, #5000 ; 0x1388
  2124. __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
  2125. 8004f38: f023 0303 bic.w r3, r3, #3
  2126. 8004f3c: 4313 orrs r3, r2
  2127. 8004f3e: 6063 str r3, [r4, #4]
  2128. tickstart = HAL_GetTick();
  2129. 8004f40: f7ff f9b2 bl 80042a8 <HAL_GetTick>
  2130. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  2131. 8004f44: 686b ldr r3, [r5, #4]
  2132. tickstart = HAL_GetTick();
  2133. 8004f46: 4607 mov r7, r0
  2134. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  2135. 8004f48: 2b01 cmp r3, #1
  2136. 8004f4a: d114 bne.n 8004f76 <HAL_RCC_ClockConfig+0x102>
  2137. while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE)
  2138. 8004f4c: 6863 ldr r3, [r4, #4]
  2139. 8004f4e: f003 030c and.w r3, r3, #12
  2140. 8004f52: 2b04 cmp r3, #4
  2141. 8004f54: d09d beq.n 8004e92 <HAL_RCC_ClockConfig+0x1e>
  2142. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  2143. 8004f56: f7ff f9a7 bl 80042a8 <HAL_GetTick>
  2144. 8004f5a: 1bc0 subs r0, r0, r7
  2145. 8004f5c: 4540 cmp r0, r8
  2146. 8004f5e: d9f5 bls.n 8004f4c <HAL_RCC_ClockConfig+0xd8>
  2147. return HAL_TIMEOUT;
  2148. 8004f60: 2003 movs r0, #3
  2149. 8004f62: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2150. else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
  2151. 8004f66: 2a02 cmp r2, #2
  2152. 8004f68: d102 bne.n 8004f70 <HAL_RCC_ClockConfig+0xfc>
  2153. if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
  2154. 8004f6a: f013 7f00 tst.w r3, #33554432 ; 0x2000000
  2155. 8004f6e: e7df b.n 8004f30 <HAL_RCC_ClockConfig+0xbc>
  2156. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
  2157. 8004f70: f013 0f02 tst.w r3, #2
  2158. 8004f74: e7dc b.n 8004f30 <HAL_RCC_ClockConfig+0xbc>
  2159. else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
  2160. 8004f76: 2b02 cmp r3, #2
  2161. 8004f78: d10f bne.n 8004f9a <HAL_RCC_ClockConfig+0x126>
  2162. while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK)
  2163. 8004f7a: 6863 ldr r3, [r4, #4]
  2164. 8004f7c: f003 030c and.w r3, r3, #12
  2165. 8004f80: 2b08 cmp r3, #8
  2166. 8004f82: d086 beq.n 8004e92 <HAL_RCC_ClockConfig+0x1e>
  2167. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  2168. 8004f84: f7ff f990 bl 80042a8 <HAL_GetTick>
  2169. 8004f88: 1bc0 subs r0, r0, r7
  2170. 8004f8a: 4540 cmp r0, r8
  2171. 8004f8c: d9f5 bls.n 8004f7a <HAL_RCC_ClockConfig+0x106>
  2172. 8004f8e: e7e7 b.n 8004f60 <HAL_RCC_ClockConfig+0xec>
  2173. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  2174. 8004f90: f7ff f98a bl 80042a8 <HAL_GetTick>
  2175. 8004f94: 1bc0 subs r0, r0, r7
  2176. 8004f96: 4540 cmp r0, r8
  2177. 8004f98: d8e2 bhi.n 8004f60 <HAL_RCC_ClockConfig+0xec>
  2178. while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI)
  2179. 8004f9a: 6863 ldr r3, [r4, #4]
  2180. 8004f9c: f013 0f0c tst.w r3, #12
  2181. 8004fa0: d1f6 bne.n 8004f90 <HAL_RCC_ClockConfig+0x11c>
  2182. 8004fa2: e776 b.n 8004e92 <HAL_RCC_ClockConfig+0x1e>
  2183. __HAL_FLASH_SET_LATENCY(FLatency);
  2184. 8004fa4: 6813 ldr r3, [r2, #0]
  2185. 8004fa6: f023 0307 bic.w r3, r3, #7
  2186. 8004faa: 4333 orrs r3, r6
  2187. 8004fac: 6013 str r3, [r2, #0]
  2188. if((FLASH->ACR & FLASH_ACR_LATENCY) != FLatency)
  2189. 8004fae: 6813 ldr r3, [r2, #0]
  2190. 8004fb0: f003 0307 and.w r3, r3, #7
  2191. 8004fb4: 429e cmp r6, r3
  2192. 8004fb6: d19c bne.n 8004ef2 <HAL_RCC_ClockConfig+0x7e>
  2193. 8004fb8: e772 b.n 8004ea0 <HAL_RCC_ClockConfig+0x2c>
  2194. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider);
  2195. 8004fba: 6863 ldr r3, [r4, #4]
  2196. 8004fbc: 68e9 ldr r1, [r5, #12]
  2197. 8004fbe: f423 63e0 bic.w r3, r3, #1792 ; 0x700
  2198. 8004fc2: 430b orrs r3, r1
  2199. 8004fc4: 6063 str r3, [r4, #4]
  2200. 8004fc6: e771 b.n 8004eac <HAL_RCC_ClockConfig+0x38>
  2201. 8004fc8: 40022000 .word 0x40022000
  2202. 8004fcc: 40021000 .word 0x40021000
  2203. 8004fd0: 08006a15 .word 0x08006a15
  2204. 8004fd4: 20000008 .word 0x20000008
  2205. 08004fd8 <HAL_RCC_GetPCLK1Freq>:
  2206. return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]);
  2207. 8004fd8: 4b04 ldr r3, [pc, #16] ; (8004fec <HAL_RCC_GetPCLK1Freq+0x14>)
  2208. 8004fda: 4a05 ldr r2, [pc, #20] ; (8004ff0 <HAL_RCC_GetPCLK1Freq+0x18>)
  2209. 8004fdc: 685b ldr r3, [r3, #4]
  2210. 8004fde: f3c3 2302 ubfx r3, r3, #8, #3
  2211. 8004fe2: 5cd3 ldrb r3, [r2, r3]
  2212. 8004fe4: 4a03 ldr r2, [pc, #12] ; (8004ff4 <HAL_RCC_GetPCLK1Freq+0x1c>)
  2213. 8004fe6: 6810 ldr r0, [r2, #0]
  2214. }
  2215. 8004fe8: 40d8 lsrs r0, r3
  2216. 8004fea: 4770 bx lr
  2217. 8004fec: 40021000 .word 0x40021000
  2218. 8004ff0: 08006a25 .word 0x08006a25
  2219. 8004ff4: 20000008 .word 0x20000008
  2220. 08004ff8 <HAL_RCC_GetPCLK2Freq>:
  2221. return (HAL_RCC_GetHCLKFreq()>> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]);
  2222. 8004ff8: 4b04 ldr r3, [pc, #16] ; (800500c <HAL_RCC_GetPCLK2Freq+0x14>)
  2223. 8004ffa: 4a05 ldr r2, [pc, #20] ; (8005010 <HAL_RCC_GetPCLK2Freq+0x18>)
  2224. 8004ffc: 685b ldr r3, [r3, #4]
  2225. 8004ffe: f3c3 23c2 ubfx r3, r3, #11, #3
  2226. 8005002: 5cd3 ldrb r3, [r2, r3]
  2227. 8005004: 4a03 ldr r2, [pc, #12] ; (8005014 <HAL_RCC_GetPCLK2Freq+0x1c>)
  2228. 8005006: 6810 ldr r0, [r2, #0]
  2229. }
  2230. 8005008: 40d8 lsrs r0, r3
  2231. 800500a: 4770 bx lr
  2232. 800500c: 40021000 .word 0x40021000
  2233. 8005010: 08006a25 .word 0x08006a25
  2234. 8005014: 20000008 .word 0x20000008
  2235. 08005018 <HAL_RCCEx_PeriphCLKConfig>:
  2236. /* Check the parameters */
  2237. assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection));
  2238. /*------------------------------- RTC/LCD Configuration ------------------------*/
  2239. if ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC))
  2240. 8005018: 6803 ldr r3, [r0, #0]
  2241. {
  2242. 800501a: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
  2243. if ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC))
  2244. 800501e: 07d9 lsls r1, r3, #31
  2245. {
  2246. 8005020: 4605 mov r5, r0
  2247. if ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC))
  2248. 8005022: d520 bpl.n 8005066 <HAL_RCCEx_PeriphCLKConfig+0x4e>
  2249. FlagStatus pwrclkchanged = RESET;
  2250. /* As soon as function is called to change RTC clock source, activation of the
  2251. power domain is done. */
  2252. /* Requires to enable write access to Backup Domain of necessary */
  2253. if(__HAL_RCC_PWR_IS_CLK_DISABLED())
  2254. 8005024: 4c35 ldr r4, [pc, #212] ; (80050fc <HAL_RCCEx_PeriphCLKConfig+0xe4>)
  2255. 8005026: 69e3 ldr r3, [r4, #28]
  2256. 8005028: 00da lsls r2, r3, #3
  2257. 800502a: d432 bmi.n 8005092 <HAL_RCCEx_PeriphCLKConfig+0x7a>
  2258. {
  2259. __HAL_RCC_PWR_CLK_ENABLE();
  2260. pwrclkchanged = SET;
  2261. 800502c: 2701 movs r7, #1
  2262. __HAL_RCC_PWR_CLK_ENABLE();
  2263. 800502e: 69e3 ldr r3, [r4, #28]
  2264. 8005030: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
  2265. 8005034: 61e3 str r3, [r4, #28]
  2266. 8005036: 69e3 ldr r3, [r4, #28]
  2267. 8005038: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
  2268. 800503c: 9301 str r3, [sp, #4]
  2269. 800503e: 9b01 ldr r3, [sp, #4]
  2270. }
  2271. if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
  2272. 8005040: 4e2f ldr r6, [pc, #188] ; (8005100 <HAL_RCCEx_PeriphCLKConfig+0xe8>)
  2273. 8005042: 6833 ldr r3, [r6, #0]
  2274. 8005044: 05db lsls r3, r3, #23
  2275. 8005046: d526 bpl.n 8005096 <HAL_RCCEx_PeriphCLKConfig+0x7e>
  2276. }
  2277. }
  2278. }
  2279. /* Reset the Backup domain only if the RTC Clock source selection is modified from reset value */
  2280. temp_reg = (RCC->BDCR & RCC_BDCR_RTCSEL);
  2281. 8005048: 6a23 ldr r3, [r4, #32]
  2282. if((temp_reg != 0x00000000U) && (temp_reg != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL)))
  2283. 800504a: f413 7340 ands.w r3, r3, #768 ; 0x300
  2284. 800504e: d136 bne.n 80050be <HAL_RCCEx_PeriphCLKConfig+0xa6>
  2285. return HAL_TIMEOUT;
  2286. }
  2287. }
  2288. }
  2289. }
  2290. __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection);
  2291. 8005050: 6a23 ldr r3, [r4, #32]
  2292. 8005052: 686a ldr r2, [r5, #4]
  2293. 8005054: f423 7340 bic.w r3, r3, #768 ; 0x300
  2294. 8005058: 4313 orrs r3, r2
  2295. 800505a: 6223 str r3, [r4, #32]
  2296. /* Require to disable power clock if necessary */
  2297. if(pwrclkchanged == SET)
  2298. 800505c: b11f cbz r7, 8005066 <HAL_RCCEx_PeriphCLKConfig+0x4e>
  2299. {
  2300. __HAL_RCC_PWR_CLK_DISABLE();
  2301. 800505e: 69e3 ldr r3, [r4, #28]
  2302. 8005060: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
  2303. 8005064: 61e3 str r3, [r4, #28]
  2304. }
  2305. }
  2306. /*------------------------------ ADC clock Configuration ------------------*/
  2307. if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC)
  2308. 8005066: 6828 ldr r0, [r5, #0]
  2309. 8005068: 0783 lsls r3, r0, #30
  2310. 800506a: d506 bpl.n 800507a <HAL_RCCEx_PeriphCLKConfig+0x62>
  2311. {
  2312. /* Check the parameters */
  2313. assert_param(IS_RCC_ADCPLLCLK_DIV(PeriphClkInit->AdcClockSelection));
  2314. /* Configure the ADC clock source */
  2315. __HAL_RCC_ADC_CONFIG(PeriphClkInit->AdcClockSelection);
  2316. 800506c: 4a23 ldr r2, [pc, #140] ; (80050fc <HAL_RCCEx_PeriphCLKConfig+0xe4>)
  2317. 800506e: 68a9 ldr r1, [r5, #8]
  2318. 8005070: 6853 ldr r3, [r2, #4]
  2319. 8005072: f423 4340 bic.w r3, r3, #49152 ; 0xc000
  2320. 8005076: 430b orrs r3, r1
  2321. 8005078: 6053 str r3, [r2, #4]
  2322. #if defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6)\
  2323. || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)\
  2324. || defined(STM32F105xC) || defined(STM32F107xC)
  2325. /*------------------------------ USB clock Configuration ------------------*/
  2326. if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USB) == RCC_PERIPHCLK_USB)
  2327. 800507a: f010 0010 ands.w r0, r0, #16
  2328. 800507e: d01b beq.n 80050b8 <HAL_RCCEx_PeriphCLKConfig+0xa0>
  2329. {
  2330. /* Check the parameters */
  2331. assert_param(IS_RCC_USBPLLCLK_DIV(PeriphClkInit->UsbClockSelection));
  2332. /* Configure the USB clock source */
  2333. __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection);
  2334. 8005080: 4a1e ldr r2, [pc, #120] ; (80050fc <HAL_RCCEx_PeriphCLKConfig+0xe4>)
  2335. 8005082: 6969 ldr r1, [r5, #20]
  2336. 8005084: 6853 ldr r3, [r2, #4]
  2337. }
  2338. #endif /* STM32F102x6 || STM32F102xB || STM32F103x6 || STM32F103xB || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */
  2339. return HAL_OK;
  2340. 8005086: 2000 movs r0, #0
  2341. __HAL_RCC_USB_CONFIG(PeriphClkInit->UsbClockSelection);
  2342. 8005088: f423 0380 bic.w r3, r3, #4194304 ; 0x400000
  2343. 800508c: 430b orrs r3, r1
  2344. 800508e: 6053 str r3, [r2, #4]
  2345. 8005090: e012 b.n 80050b8 <HAL_RCCEx_PeriphCLKConfig+0xa0>
  2346. FlagStatus pwrclkchanged = RESET;
  2347. 8005092: 2700 movs r7, #0
  2348. 8005094: e7d4 b.n 8005040 <HAL_RCCEx_PeriphCLKConfig+0x28>
  2349. SET_BIT(PWR->CR, PWR_CR_DBP);
  2350. 8005096: 6833 ldr r3, [r6, #0]
  2351. 8005098: f443 7380 orr.w r3, r3, #256 ; 0x100
  2352. 800509c: 6033 str r3, [r6, #0]
  2353. tickstart = HAL_GetTick();
  2354. 800509e: f7ff f903 bl 80042a8 <HAL_GetTick>
  2355. 80050a2: 4680 mov r8, r0
  2356. while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
  2357. 80050a4: 6833 ldr r3, [r6, #0]
  2358. 80050a6: 05d8 lsls r0, r3, #23
  2359. 80050a8: d4ce bmi.n 8005048 <HAL_RCCEx_PeriphCLKConfig+0x30>
  2360. if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
  2361. 80050aa: f7ff f8fd bl 80042a8 <HAL_GetTick>
  2362. 80050ae: eba0 0008 sub.w r0, r0, r8
  2363. 80050b2: 2864 cmp r0, #100 ; 0x64
  2364. 80050b4: d9f6 bls.n 80050a4 <HAL_RCCEx_PeriphCLKConfig+0x8c>
  2365. return HAL_TIMEOUT;
  2366. 80050b6: 2003 movs r0, #3
  2367. }
  2368. 80050b8: b002 add sp, #8
  2369. 80050ba: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2370. if((temp_reg != 0x00000000U) && (temp_reg != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL)))
  2371. 80050be: 686a ldr r2, [r5, #4]
  2372. 80050c0: f402 7240 and.w r2, r2, #768 ; 0x300
  2373. 80050c4: 4293 cmp r3, r2
  2374. 80050c6: d0c3 beq.n 8005050 <HAL_RCCEx_PeriphCLKConfig+0x38>
  2375. __HAL_RCC_BACKUPRESET_FORCE();
  2376. 80050c8: 2001 movs r0, #1
  2377. 80050ca: 4a0e ldr r2, [pc, #56] ; (8005104 <HAL_RCCEx_PeriphCLKConfig+0xec>)
  2378. temp_reg = (RCC->BDCR & ~(RCC_BDCR_RTCSEL));
  2379. 80050cc: 6a23 ldr r3, [r4, #32]
  2380. __HAL_RCC_BACKUPRESET_FORCE();
  2381. 80050ce: 6010 str r0, [r2, #0]
  2382. __HAL_RCC_BACKUPRESET_RELEASE();
  2383. 80050d0: 2000 movs r0, #0
  2384. temp_reg = (RCC->BDCR & ~(RCC_BDCR_RTCSEL));
  2385. 80050d2: f423 7140 bic.w r1, r3, #768 ; 0x300
  2386. __HAL_RCC_BACKUPRESET_RELEASE();
  2387. 80050d6: 6010 str r0, [r2, #0]
  2388. RCC->BDCR = temp_reg;
  2389. 80050d8: 6221 str r1, [r4, #32]
  2390. if (HAL_IS_BIT_SET(temp_reg, RCC_BDCR_LSEON))
  2391. 80050da: 07d9 lsls r1, r3, #31
  2392. 80050dc: d5b8 bpl.n 8005050 <HAL_RCCEx_PeriphCLKConfig+0x38>
  2393. tickstart = HAL_GetTick();
  2394. 80050de: f7ff f8e3 bl 80042a8 <HAL_GetTick>
  2395. if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
  2396. 80050e2: f241 3888 movw r8, #5000 ; 0x1388
  2397. tickstart = HAL_GetTick();
  2398. 80050e6: 4606 mov r6, r0
  2399. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
  2400. 80050e8: 6a23 ldr r3, [r4, #32]
  2401. 80050ea: 079a lsls r2, r3, #30
  2402. 80050ec: d4b0 bmi.n 8005050 <HAL_RCCEx_PeriphCLKConfig+0x38>
  2403. if((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
  2404. 80050ee: f7ff f8db bl 80042a8 <HAL_GetTick>
  2405. 80050f2: 1b80 subs r0, r0, r6
  2406. 80050f4: 4540 cmp r0, r8
  2407. 80050f6: d9f7 bls.n 80050e8 <HAL_RCCEx_PeriphCLKConfig+0xd0>
  2408. 80050f8: e7dd b.n 80050b6 <HAL_RCCEx_PeriphCLKConfig+0x9e>
  2409. 80050fa: bf00 nop
  2410. 80050fc: 40021000 .word 0x40021000
  2411. 8005100: 40007000 .word 0x40007000
  2412. 8005104: 42420440 .word 0x42420440
  2413. 08005108 <HAL_TIM_OC_DelayElapsedCallback>:
  2414. 8005108: 4770 bx lr
  2415. 0800510a <HAL_TIM_IC_CaptureCallback>:
  2416. 800510a: 4770 bx lr
  2417. 0800510c <HAL_TIM_PWM_PulseFinishedCallback>:
  2418. 800510c: 4770 bx lr
  2419. 0800510e <HAL_TIM_TriggerCallback>:
  2420. 800510e: 4770 bx lr
  2421. 08005110 <HAL_TIM_IRQHandler>:
  2422. * @retval None
  2423. */
  2424. void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
  2425. {
  2426. /* Capture compare 1 event */
  2427. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
  2428. 8005110: 6803 ldr r3, [r0, #0]
  2429. {
  2430. 8005112: b510 push {r4, lr}
  2431. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
  2432. 8005114: 691a ldr r2, [r3, #16]
  2433. {
  2434. 8005116: 4604 mov r4, r0
  2435. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
  2436. 8005118: 0791 lsls r1, r2, #30
  2437. 800511a: d50e bpl.n 800513a <HAL_TIM_IRQHandler+0x2a>
  2438. {
  2439. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) !=RESET)
  2440. 800511c: 68da ldr r2, [r3, #12]
  2441. 800511e: 0792 lsls r2, r2, #30
  2442. 8005120: d50b bpl.n 800513a <HAL_TIM_IRQHandler+0x2a>
  2443. {
  2444. {
  2445. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
  2446. 8005122: f06f 0202 mvn.w r2, #2
  2447. 8005126: 611a str r2, [r3, #16]
  2448. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
  2449. 8005128: 2201 movs r2, #1
  2450. /* Input capture event */
  2451. if((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
  2452. 800512a: 699b ldr r3, [r3, #24]
  2453. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
  2454. 800512c: 7702 strb r2, [r0, #28]
  2455. if((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
  2456. 800512e: 079b lsls r3, r3, #30
  2457. 8005130: d077 beq.n 8005222 <HAL_TIM_IRQHandler+0x112>
  2458. {
  2459. HAL_TIM_IC_CaptureCallback(htim);
  2460. 8005132: f7ff ffea bl 800510a <HAL_TIM_IC_CaptureCallback>
  2461. else
  2462. {
  2463. HAL_TIM_OC_DelayElapsedCallback(htim);
  2464. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2465. }
  2466. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  2467. 8005136: 2300 movs r3, #0
  2468. 8005138: 7723 strb r3, [r4, #28]
  2469. }
  2470. }
  2471. }
  2472. /* Capture compare 2 event */
  2473. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
  2474. 800513a: 6823 ldr r3, [r4, #0]
  2475. 800513c: 691a ldr r2, [r3, #16]
  2476. 800513e: 0750 lsls r0, r2, #29
  2477. 8005140: d510 bpl.n 8005164 <HAL_TIM_IRQHandler+0x54>
  2478. {
  2479. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) !=RESET)
  2480. 8005142: 68da ldr r2, [r3, #12]
  2481. 8005144: 0751 lsls r1, r2, #29
  2482. 8005146: d50d bpl.n 8005164 <HAL_TIM_IRQHandler+0x54>
  2483. {
  2484. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
  2485. 8005148: f06f 0204 mvn.w r2, #4
  2486. 800514c: 611a str r2, [r3, #16]
  2487. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
  2488. 800514e: 2202 movs r2, #2
  2489. /* Input capture event */
  2490. if((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
  2491. 8005150: 699b ldr r3, [r3, #24]
  2492. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
  2493. 8005152: 7722 strb r2, [r4, #28]
  2494. if((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
  2495. 8005154: f413 7f40 tst.w r3, #768 ; 0x300
  2496. {
  2497. HAL_TIM_IC_CaptureCallback(htim);
  2498. 8005158: 4620 mov r0, r4
  2499. if((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
  2500. 800515a: d068 beq.n 800522e <HAL_TIM_IRQHandler+0x11e>
  2501. HAL_TIM_IC_CaptureCallback(htim);
  2502. 800515c: f7ff ffd5 bl 800510a <HAL_TIM_IC_CaptureCallback>
  2503. else
  2504. {
  2505. HAL_TIM_OC_DelayElapsedCallback(htim);
  2506. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2507. }
  2508. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  2509. 8005160: 2300 movs r3, #0
  2510. 8005162: 7723 strb r3, [r4, #28]
  2511. }
  2512. }
  2513. /* Capture compare 3 event */
  2514. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
  2515. 8005164: 6823 ldr r3, [r4, #0]
  2516. 8005166: 691a ldr r2, [r3, #16]
  2517. 8005168: 0712 lsls r2, r2, #28
  2518. 800516a: d50f bpl.n 800518c <HAL_TIM_IRQHandler+0x7c>
  2519. {
  2520. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) !=RESET)
  2521. 800516c: 68da ldr r2, [r3, #12]
  2522. 800516e: 0710 lsls r0, r2, #28
  2523. 8005170: d50c bpl.n 800518c <HAL_TIM_IRQHandler+0x7c>
  2524. {
  2525. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
  2526. 8005172: f06f 0208 mvn.w r2, #8
  2527. 8005176: 611a str r2, [r3, #16]
  2528. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
  2529. 8005178: 2204 movs r2, #4
  2530. /* Input capture event */
  2531. if((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
  2532. 800517a: 69db ldr r3, [r3, #28]
  2533. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
  2534. 800517c: 7722 strb r2, [r4, #28]
  2535. if((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
  2536. 800517e: 0799 lsls r1, r3, #30
  2537. {
  2538. HAL_TIM_IC_CaptureCallback(htim);
  2539. 8005180: 4620 mov r0, r4
  2540. if((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
  2541. 8005182: d05a beq.n 800523a <HAL_TIM_IRQHandler+0x12a>
  2542. HAL_TIM_IC_CaptureCallback(htim);
  2543. 8005184: f7ff ffc1 bl 800510a <HAL_TIM_IC_CaptureCallback>
  2544. else
  2545. {
  2546. HAL_TIM_OC_DelayElapsedCallback(htim);
  2547. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2548. }
  2549. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  2550. 8005188: 2300 movs r3, #0
  2551. 800518a: 7723 strb r3, [r4, #28]
  2552. }
  2553. }
  2554. /* Capture compare 4 event */
  2555. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
  2556. 800518c: 6823 ldr r3, [r4, #0]
  2557. 800518e: 691a ldr r2, [r3, #16]
  2558. 8005190: 06d2 lsls r2, r2, #27
  2559. 8005192: d510 bpl.n 80051b6 <HAL_TIM_IRQHandler+0xa6>
  2560. {
  2561. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) !=RESET)
  2562. 8005194: 68da ldr r2, [r3, #12]
  2563. 8005196: 06d0 lsls r0, r2, #27
  2564. 8005198: d50d bpl.n 80051b6 <HAL_TIM_IRQHandler+0xa6>
  2565. {
  2566. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
  2567. 800519a: f06f 0210 mvn.w r2, #16
  2568. 800519e: 611a str r2, [r3, #16]
  2569. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
  2570. 80051a0: 2208 movs r2, #8
  2571. /* Input capture event */
  2572. if((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
  2573. 80051a2: 69db ldr r3, [r3, #28]
  2574. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
  2575. 80051a4: 7722 strb r2, [r4, #28]
  2576. if((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
  2577. 80051a6: f413 7f40 tst.w r3, #768 ; 0x300
  2578. {
  2579. HAL_TIM_IC_CaptureCallback(htim);
  2580. 80051aa: 4620 mov r0, r4
  2581. if((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
  2582. 80051ac: d04b beq.n 8005246 <HAL_TIM_IRQHandler+0x136>
  2583. HAL_TIM_IC_CaptureCallback(htim);
  2584. 80051ae: f7ff ffac bl 800510a <HAL_TIM_IC_CaptureCallback>
  2585. else
  2586. {
  2587. HAL_TIM_OC_DelayElapsedCallback(htim);
  2588. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2589. }
  2590. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  2591. 80051b2: 2300 movs r3, #0
  2592. 80051b4: 7723 strb r3, [r4, #28]
  2593. }
  2594. }
  2595. /* TIM Update event */
  2596. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
  2597. 80051b6: 6823 ldr r3, [r4, #0]
  2598. 80051b8: 691a ldr r2, [r3, #16]
  2599. 80051ba: 07d1 lsls r1, r2, #31
  2600. 80051bc: d508 bpl.n 80051d0 <HAL_TIM_IRQHandler+0xc0>
  2601. {
  2602. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) !=RESET)
  2603. 80051be: 68da ldr r2, [r3, #12]
  2604. 80051c0: 07d2 lsls r2, r2, #31
  2605. 80051c2: d505 bpl.n 80051d0 <HAL_TIM_IRQHandler+0xc0>
  2606. {
  2607. __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
  2608. 80051c4: f06f 0201 mvn.w r2, #1
  2609. HAL_TIM_PeriodElapsedCallback(htim);
  2610. 80051c8: 4620 mov r0, r4
  2611. __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
  2612. 80051ca: 611a str r2, [r3, #16]
  2613. HAL_TIM_PeriodElapsedCallback(htim);
  2614. 80051cc: f000 fb14 bl 80057f8 <HAL_TIM_PeriodElapsedCallback>
  2615. }
  2616. }
  2617. /* TIM Break input event */
  2618. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
  2619. 80051d0: 6823 ldr r3, [r4, #0]
  2620. 80051d2: 691a ldr r2, [r3, #16]
  2621. 80051d4: 0610 lsls r0, r2, #24
  2622. 80051d6: d508 bpl.n 80051ea <HAL_TIM_IRQHandler+0xda>
  2623. {
  2624. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) !=RESET)
  2625. 80051d8: 68da ldr r2, [r3, #12]
  2626. 80051da: 0611 lsls r1, r2, #24
  2627. 80051dc: d505 bpl.n 80051ea <HAL_TIM_IRQHandler+0xda>
  2628. {
  2629. __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
  2630. 80051de: f06f 0280 mvn.w r2, #128 ; 0x80
  2631. HAL_TIMEx_BreakCallback(htim);
  2632. 80051e2: 4620 mov r0, r4
  2633. __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
  2634. 80051e4: 611a str r2, [r3, #16]
  2635. HAL_TIMEx_BreakCallback(htim);
  2636. 80051e6: f000 f8be bl 8005366 <HAL_TIMEx_BreakCallback>
  2637. }
  2638. }
  2639. /* TIM Trigger detection event */
  2640. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
  2641. 80051ea: 6823 ldr r3, [r4, #0]
  2642. 80051ec: 691a ldr r2, [r3, #16]
  2643. 80051ee: 0652 lsls r2, r2, #25
  2644. 80051f0: d508 bpl.n 8005204 <HAL_TIM_IRQHandler+0xf4>
  2645. {
  2646. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) !=RESET)
  2647. 80051f2: 68da ldr r2, [r3, #12]
  2648. 80051f4: 0650 lsls r0, r2, #25
  2649. 80051f6: d505 bpl.n 8005204 <HAL_TIM_IRQHandler+0xf4>
  2650. {
  2651. __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
  2652. 80051f8: f06f 0240 mvn.w r2, #64 ; 0x40
  2653. HAL_TIM_TriggerCallback(htim);
  2654. 80051fc: 4620 mov r0, r4
  2655. __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
  2656. 80051fe: 611a str r2, [r3, #16]
  2657. HAL_TIM_TriggerCallback(htim);
  2658. 8005200: f7ff ff85 bl 800510e <HAL_TIM_TriggerCallback>
  2659. }
  2660. }
  2661. /* TIM commutation event */
  2662. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
  2663. 8005204: 6823 ldr r3, [r4, #0]
  2664. 8005206: 691a ldr r2, [r3, #16]
  2665. 8005208: 0691 lsls r1, r2, #26
  2666. 800520a: d522 bpl.n 8005252 <HAL_TIM_IRQHandler+0x142>
  2667. {
  2668. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) !=RESET)
  2669. 800520c: 68da ldr r2, [r3, #12]
  2670. 800520e: 0692 lsls r2, r2, #26
  2671. 8005210: d51f bpl.n 8005252 <HAL_TIM_IRQHandler+0x142>
  2672. {
  2673. __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
  2674. 8005212: f06f 0220 mvn.w r2, #32
  2675. HAL_TIMEx_CommutationCallback(htim);
  2676. 8005216: 4620 mov r0, r4
  2677. }
  2678. }
  2679. }
  2680. 8005218: e8bd 4010 ldmia.w sp!, {r4, lr}
  2681. __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
  2682. 800521c: 611a str r2, [r3, #16]
  2683. HAL_TIMEx_CommutationCallback(htim);
  2684. 800521e: f000 b8a1 b.w 8005364 <HAL_TIMEx_CommutationCallback>
  2685. HAL_TIM_OC_DelayElapsedCallback(htim);
  2686. 8005222: f7ff ff71 bl 8005108 <HAL_TIM_OC_DelayElapsedCallback>
  2687. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2688. 8005226: 4620 mov r0, r4
  2689. 8005228: f7ff ff70 bl 800510c <HAL_TIM_PWM_PulseFinishedCallback>
  2690. 800522c: e783 b.n 8005136 <HAL_TIM_IRQHandler+0x26>
  2691. HAL_TIM_OC_DelayElapsedCallback(htim);
  2692. 800522e: f7ff ff6b bl 8005108 <HAL_TIM_OC_DelayElapsedCallback>
  2693. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2694. 8005232: 4620 mov r0, r4
  2695. 8005234: f7ff ff6a bl 800510c <HAL_TIM_PWM_PulseFinishedCallback>
  2696. 8005238: e792 b.n 8005160 <HAL_TIM_IRQHandler+0x50>
  2697. HAL_TIM_OC_DelayElapsedCallback(htim);
  2698. 800523a: f7ff ff65 bl 8005108 <HAL_TIM_OC_DelayElapsedCallback>
  2699. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2700. 800523e: 4620 mov r0, r4
  2701. 8005240: f7ff ff64 bl 800510c <HAL_TIM_PWM_PulseFinishedCallback>
  2702. 8005244: e7a0 b.n 8005188 <HAL_TIM_IRQHandler+0x78>
  2703. HAL_TIM_OC_DelayElapsedCallback(htim);
  2704. 8005246: f7ff ff5f bl 8005108 <HAL_TIM_OC_DelayElapsedCallback>
  2705. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2706. 800524a: 4620 mov r0, r4
  2707. 800524c: f7ff ff5e bl 800510c <HAL_TIM_PWM_PulseFinishedCallback>
  2708. 8005250: e7af b.n 80051b2 <HAL_TIM_IRQHandler+0xa2>
  2709. 8005252: bd10 pop {r4, pc}
  2710. 08005254 <TIM_Base_SetConfig>:
  2711. {
  2712. uint32_t tmpcr1 = 0U;
  2713. tmpcr1 = TIMx->CR1;
  2714. /* Set TIM Time Base Unit parameters ---------------------------------------*/
  2715. if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
  2716. 8005254: 4a24 ldr r2, [pc, #144] ; (80052e8 <TIM_Base_SetConfig+0x94>)
  2717. tmpcr1 = TIMx->CR1;
  2718. 8005256: 6803 ldr r3, [r0, #0]
  2719. if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
  2720. 8005258: 4290 cmp r0, r2
  2721. 800525a: d012 beq.n 8005282 <TIM_Base_SetConfig+0x2e>
  2722. 800525c: f502 6200 add.w r2, r2, #2048 ; 0x800
  2723. 8005260: 4290 cmp r0, r2
  2724. 8005262: d00e beq.n 8005282 <TIM_Base_SetConfig+0x2e>
  2725. 8005264: f1b0 4f80 cmp.w r0, #1073741824 ; 0x40000000
  2726. 8005268: d00b beq.n 8005282 <TIM_Base_SetConfig+0x2e>
  2727. 800526a: f5a2 3298 sub.w r2, r2, #77824 ; 0x13000
  2728. 800526e: 4290 cmp r0, r2
  2729. 8005270: d007 beq.n 8005282 <TIM_Base_SetConfig+0x2e>
  2730. 8005272: f502 6280 add.w r2, r2, #1024 ; 0x400
  2731. 8005276: 4290 cmp r0, r2
  2732. 8005278: d003 beq.n 8005282 <TIM_Base_SetConfig+0x2e>
  2733. 800527a: f502 6280 add.w r2, r2, #1024 ; 0x400
  2734. 800527e: 4290 cmp r0, r2
  2735. 8005280: d11d bne.n 80052be <TIM_Base_SetConfig+0x6a>
  2736. {
  2737. /* Select the Counter Mode */
  2738. tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
  2739. tmpcr1 |= Structure->CounterMode;
  2740. 8005282: 684a ldr r2, [r1, #4]
  2741. tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
  2742. 8005284: f023 0370 bic.w r3, r3, #112 ; 0x70
  2743. tmpcr1 |= Structure->CounterMode;
  2744. 8005288: 4313 orrs r3, r2
  2745. }
  2746. if(IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
  2747. 800528a: 4a17 ldr r2, [pc, #92] ; (80052e8 <TIM_Base_SetConfig+0x94>)
  2748. 800528c: 4290 cmp r0, r2
  2749. 800528e: d012 beq.n 80052b6 <TIM_Base_SetConfig+0x62>
  2750. 8005290: f502 6200 add.w r2, r2, #2048 ; 0x800
  2751. 8005294: 4290 cmp r0, r2
  2752. 8005296: d00e beq.n 80052b6 <TIM_Base_SetConfig+0x62>
  2753. 8005298: f1b0 4f80 cmp.w r0, #1073741824 ; 0x40000000
  2754. 800529c: d00b beq.n 80052b6 <TIM_Base_SetConfig+0x62>
  2755. 800529e: f5a2 3298 sub.w r2, r2, #77824 ; 0x13000
  2756. 80052a2: 4290 cmp r0, r2
  2757. 80052a4: d007 beq.n 80052b6 <TIM_Base_SetConfig+0x62>
  2758. 80052a6: f502 6280 add.w r2, r2, #1024 ; 0x400
  2759. 80052aa: 4290 cmp r0, r2
  2760. 80052ac: d003 beq.n 80052b6 <TIM_Base_SetConfig+0x62>
  2761. 80052ae: f502 6280 add.w r2, r2, #1024 ; 0x400
  2762. 80052b2: 4290 cmp r0, r2
  2763. 80052b4: d103 bne.n 80052be <TIM_Base_SetConfig+0x6a>
  2764. {
  2765. /* Set the clock division */
  2766. tmpcr1 &= ~TIM_CR1_CKD;
  2767. tmpcr1 |= (uint32_t)Structure->ClockDivision;
  2768. 80052b6: 68ca ldr r2, [r1, #12]
  2769. tmpcr1 &= ~TIM_CR1_CKD;
  2770. 80052b8: f423 7340 bic.w r3, r3, #768 ; 0x300
  2771. tmpcr1 |= (uint32_t)Structure->ClockDivision;
  2772. 80052bc: 4313 orrs r3, r2
  2773. }
  2774. /* Set the auto-reload preload */
  2775. tmpcr1 &= ~TIM_CR1_ARPE;
  2776. tmpcr1 |= (uint32_t)Structure->AutoReloadPreload;
  2777. 80052be: 694a ldr r2, [r1, #20]
  2778. tmpcr1 &= ~TIM_CR1_ARPE;
  2779. 80052c0: f023 0380 bic.w r3, r3, #128 ; 0x80
  2780. tmpcr1 |= (uint32_t)Structure->AutoReloadPreload;
  2781. 80052c4: 4313 orrs r3, r2
  2782. TIMx->CR1 = tmpcr1;
  2783. 80052c6: 6003 str r3, [r0, #0]
  2784. /* Set the Autoreload value */
  2785. TIMx->ARR = (uint32_t)Structure->Period ;
  2786. 80052c8: 688b ldr r3, [r1, #8]
  2787. 80052ca: 62c3 str r3, [r0, #44] ; 0x2c
  2788. /* Set the Prescaler value */
  2789. TIMx->PSC = (uint32_t)Structure->Prescaler;
  2790. 80052cc: 680b ldr r3, [r1, #0]
  2791. 80052ce: 6283 str r3, [r0, #40] ; 0x28
  2792. if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
  2793. 80052d0: 4b05 ldr r3, [pc, #20] ; (80052e8 <TIM_Base_SetConfig+0x94>)
  2794. 80052d2: 4298 cmp r0, r3
  2795. 80052d4: d003 beq.n 80052de <TIM_Base_SetConfig+0x8a>
  2796. 80052d6: f503 6300 add.w r3, r3, #2048 ; 0x800
  2797. 80052da: 4298 cmp r0, r3
  2798. 80052dc: d101 bne.n 80052e2 <TIM_Base_SetConfig+0x8e>
  2799. {
  2800. /* Set the Repetition Counter value */
  2801. TIMx->RCR = Structure->RepetitionCounter;
  2802. 80052de: 690b ldr r3, [r1, #16]
  2803. 80052e0: 6303 str r3, [r0, #48] ; 0x30
  2804. }
  2805. /* Generate an update event to reload the Prescaler
  2806. and the repetition counter(only for TIM1 and TIM8) value immediatly */
  2807. TIMx->EGR = TIM_EGR_UG;
  2808. 80052e2: 2301 movs r3, #1
  2809. 80052e4: 6143 str r3, [r0, #20]
  2810. 80052e6: 4770 bx lr
  2811. 80052e8: 40012c00 .word 0x40012c00
  2812. 080052ec <HAL_TIM_Base_Init>:
  2813. {
  2814. 80052ec: b510 push {r4, lr}
  2815. if(htim == NULL)
  2816. 80052ee: 4604 mov r4, r0
  2817. 80052f0: b1a0 cbz r0, 800531c <HAL_TIM_Base_Init+0x30>
  2818. if(htim->State == HAL_TIM_STATE_RESET)
  2819. 80052f2: f890 303d ldrb.w r3, [r0, #61] ; 0x3d
  2820. 80052f6: f003 02ff and.w r2, r3, #255 ; 0xff
  2821. 80052fa: b91b cbnz r3, 8005304 <HAL_TIM_Base_Init+0x18>
  2822. htim->Lock = HAL_UNLOCKED;
  2823. 80052fc: f880 203c strb.w r2, [r0, #60] ; 0x3c
  2824. HAL_TIM_Base_MspInit(htim);
  2825. 8005300: f000 fd26 bl 8005d50 <HAL_TIM_Base_MspInit>
  2826. htim->State= HAL_TIM_STATE_BUSY;
  2827. 8005304: 2302 movs r3, #2
  2828. TIM_Base_SetConfig(htim->Instance, &htim->Init);
  2829. 8005306: 6820 ldr r0, [r4, #0]
  2830. htim->State= HAL_TIM_STATE_BUSY;
  2831. 8005308: f884 303d strb.w r3, [r4, #61] ; 0x3d
  2832. TIM_Base_SetConfig(htim->Instance, &htim->Init);
  2833. 800530c: 1d21 adds r1, r4, #4
  2834. 800530e: f7ff ffa1 bl 8005254 <TIM_Base_SetConfig>
  2835. htim->State= HAL_TIM_STATE_READY;
  2836. 8005312: 2301 movs r3, #1
  2837. return HAL_OK;
  2838. 8005314: 2000 movs r0, #0
  2839. htim->State= HAL_TIM_STATE_READY;
  2840. 8005316: f884 303d strb.w r3, [r4, #61] ; 0x3d
  2841. return HAL_OK;
  2842. 800531a: bd10 pop {r4, pc}
  2843. return HAL_ERROR;
  2844. 800531c: 2001 movs r0, #1
  2845. }
  2846. 800531e: bd10 pop {r4, pc}
  2847. 08005320 <HAL_TIMEx_MasterConfigSynchronization>:
  2848. /* Check the parameters */
  2849. assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance));
  2850. assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger));
  2851. assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode));
  2852. __HAL_LOCK(htim);
  2853. 8005320: f890 303c ldrb.w r3, [r0, #60] ; 0x3c
  2854. {
  2855. 8005324: b510 push {r4, lr}
  2856. __HAL_LOCK(htim);
  2857. 8005326: 2b01 cmp r3, #1
  2858. 8005328: f04f 0302 mov.w r3, #2
  2859. 800532c: d018 beq.n 8005360 <HAL_TIMEx_MasterConfigSynchronization+0x40>
  2860. htim->State = HAL_TIM_STATE_BUSY;
  2861. 800532e: f880 303d strb.w r3, [r0, #61] ; 0x3d
  2862. /* Reset the MMS Bits */
  2863. htim->Instance->CR2 &= ~TIM_CR2_MMS;
  2864. 8005332: 6803 ldr r3, [r0, #0]
  2865. /* Select the TRGO source */
  2866. htim->Instance->CR2 |= sMasterConfig->MasterOutputTrigger;
  2867. 8005334: 680c ldr r4, [r1, #0]
  2868. htim->Instance->CR2 &= ~TIM_CR2_MMS;
  2869. 8005336: 685a ldr r2, [r3, #4]
  2870. /* Reset the MSM Bit */
  2871. htim->Instance->SMCR &= ~TIM_SMCR_MSM;
  2872. /* Set or Reset the MSM Bit */
  2873. htim->Instance->SMCR |= sMasterConfig->MasterSlaveMode;
  2874. 8005338: 6849 ldr r1, [r1, #4]
  2875. htim->Instance->CR2 &= ~TIM_CR2_MMS;
  2876. 800533a: f022 0270 bic.w r2, r2, #112 ; 0x70
  2877. 800533e: 605a str r2, [r3, #4]
  2878. htim->Instance->CR2 |= sMasterConfig->MasterOutputTrigger;
  2879. 8005340: 685a ldr r2, [r3, #4]
  2880. 8005342: 4322 orrs r2, r4
  2881. 8005344: 605a str r2, [r3, #4]
  2882. htim->Instance->SMCR &= ~TIM_SMCR_MSM;
  2883. 8005346: 689a ldr r2, [r3, #8]
  2884. 8005348: f022 0280 bic.w r2, r2, #128 ; 0x80
  2885. 800534c: 609a str r2, [r3, #8]
  2886. htim->Instance->SMCR |= sMasterConfig->MasterSlaveMode;
  2887. 800534e: 689a ldr r2, [r3, #8]
  2888. 8005350: 430a orrs r2, r1
  2889. 8005352: 609a str r2, [r3, #8]
  2890. htim->State = HAL_TIM_STATE_READY;
  2891. 8005354: 2301 movs r3, #1
  2892. 8005356: f880 303d strb.w r3, [r0, #61] ; 0x3d
  2893. __HAL_UNLOCK(htim);
  2894. 800535a: 2300 movs r3, #0
  2895. 800535c: f880 303c strb.w r3, [r0, #60] ; 0x3c
  2896. __HAL_LOCK(htim);
  2897. 8005360: 4618 mov r0, r3
  2898. return HAL_OK;
  2899. }
  2900. 8005362: bd10 pop {r4, pc}
  2901. 08005364 <HAL_TIMEx_CommutationCallback>:
  2902. 8005364: 4770 bx lr
  2903. 08005366 <HAL_TIMEx_BreakCallback>:
  2904. * @brief Hall Break detection callback in non blocking mode
  2905. * @param htim : TIM handle
  2906. * @retval None
  2907. */
  2908. __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim)
  2909. {
  2910. 8005366: 4770 bx lr
  2911. 08005368 <UART_EndRxTransfer>:
  2912. * @retval None
  2913. */
  2914. static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
  2915. {
  2916. /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  2917. CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
  2918. 8005368: 6803 ldr r3, [r0, #0]
  2919. 800536a: 68da ldr r2, [r3, #12]
  2920. 800536c: f422 7290 bic.w r2, r2, #288 ; 0x120
  2921. 8005370: 60da str r2, [r3, #12]
  2922. CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  2923. 8005372: 695a ldr r2, [r3, #20]
  2924. 8005374: f022 0201 bic.w r2, r2, #1
  2925. 8005378: 615a str r2, [r3, #20]
  2926. /* At end of Rx process, restore huart->RxState to Ready */
  2927. huart->RxState = HAL_UART_STATE_READY;
  2928. 800537a: 2320 movs r3, #32
  2929. 800537c: f880 303a strb.w r3, [r0, #58] ; 0x3a
  2930. 8005380: 4770 bx lr
  2931. ...
  2932. 08005384 <UART_SetConfig>:
  2933. * @param huart: pointer to a UART_HandleTypeDef structure that contains
  2934. * the configuration information for the specified UART module.
  2935. * @retval None
  2936. */
  2937. static void UART_SetConfig(UART_HandleTypeDef *huart)
  2938. {
  2939. 8005384: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
  2940. assert_param(IS_UART_MODE(huart->Init.Mode));
  2941. /*------- UART-associated USART registers setting : CR2 Configuration ------*/
  2942. /* Configure the UART Stop Bits: Set STOP[13:12] bits according
  2943. * to huart->Init.StopBits value */
  2944. MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
  2945. 8005388: 6805 ldr r5, [r0, #0]
  2946. 800538a: 68c2 ldr r2, [r0, #12]
  2947. 800538c: 692b ldr r3, [r5, #16]
  2948. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling;
  2949. MODIFY_REG(huart->Instance->CR1,
  2950. (uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8),
  2951. tmpreg);
  2952. #else
  2953. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode;
  2954. 800538e: 6901 ldr r1, [r0, #16]
  2955. MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
  2956. 8005390: f423 5340 bic.w r3, r3, #12288 ; 0x3000
  2957. 8005394: 4313 orrs r3, r2
  2958. 8005396: 612b str r3, [r5, #16]
  2959. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode;
  2960. 8005398: 6883 ldr r3, [r0, #8]
  2961. MODIFY_REG(huart->Instance->CR1,
  2962. 800539a: 68ea ldr r2, [r5, #12]
  2963. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode;
  2964. 800539c: 430b orrs r3, r1
  2965. 800539e: 6941 ldr r1, [r0, #20]
  2966. MODIFY_REG(huart->Instance->CR1,
  2967. 80053a0: f422 52b0 bic.w r2, r2, #5632 ; 0x1600
  2968. 80053a4: f022 020c bic.w r2, r2, #12
  2969. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode;
  2970. 80053a8: 430b orrs r3, r1
  2971. MODIFY_REG(huart->Instance->CR1,
  2972. 80053aa: 4313 orrs r3, r2
  2973. 80053ac: 60eb str r3, [r5, #12]
  2974. tmpreg);
  2975. #endif /* USART_CR1_OVER8 */
  2976. /*------- UART-associated USART registers setting : CR3 Configuration ------*/
  2977. /* Configure the UART HFC: Set CTSE and RTSE bits according to huart->Init.HwFlowCtl value */
  2978. MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl);
  2979. 80053ae: 696b ldr r3, [r5, #20]
  2980. 80053b0: 6982 ldr r2, [r0, #24]
  2981. 80053b2: f423 7340 bic.w r3, r3, #768 ; 0x300
  2982. 80053b6: 4313 orrs r3, r2
  2983. 80053b8: 616b str r3, [r5, #20]
  2984. huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  2985. }
  2986. }
  2987. #else
  2988. /*-------------------------- USART BRR Configuration ---------------------*/
  2989. if(huart->Instance == USART1)
  2990. 80053ba: 4b40 ldr r3, [pc, #256] ; (80054bc <UART_SetConfig+0x138>)
  2991. {
  2992. 80053bc: 4681 mov r9, r0
  2993. if(huart->Instance == USART1)
  2994. 80053be: 429d cmp r5, r3
  2995. 80053c0: f04f 0419 mov.w r4, #25
  2996. 80053c4: d146 bne.n 8005454 <UART_SetConfig+0xd0>
  2997. {
  2998. huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  2999. 80053c6: f7ff fe17 bl 8004ff8 <HAL_RCC_GetPCLK2Freq>
  3000. 80053ca: fb04 f300 mul.w r3, r4, r0
  3001. 80053ce: f8d9 6004 ldr.w r6, [r9, #4]
  3002. 80053d2: f04f 0864 mov.w r8, #100 ; 0x64
  3003. 80053d6: 00b6 lsls r6, r6, #2
  3004. 80053d8: fbb3 f3f6 udiv r3, r3, r6
  3005. 80053dc: fbb3 f3f8 udiv r3, r3, r8
  3006. 80053e0: 011e lsls r6, r3, #4
  3007. 80053e2: f7ff fe09 bl 8004ff8 <HAL_RCC_GetPCLK2Freq>
  3008. 80053e6: 4360 muls r0, r4
  3009. 80053e8: f8d9 3004 ldr.w r3, [r9, #4]
  3010. 80053ec: 009b lsls r3, r3, #2
  3011. 80053ee: fbb0 f7f3 udiv r7, r0, r3
  3012. 80053f2: f7ff fe01 bl 8004ff8 <HAL_RCC_GetPCLK2Freq>
  3013. 80053f6: 4360 muls r0, r4
  3014. 80053f8: f8d9 3004 ldr.w r3, [r9, #4]
  3015. 80053fc: 009b lsls r3, r3, #2
  3016. 80053fe: fbb0 f3f3 udiv r3, r0, r3
  3017. 8005402: fbb3 f3f8 udiv r3, r3, r8
  3018. 8005406: fb08 7313 mls r3, r8, r3, r7
  3019. 800540a: 011b lsls r3, r3, #4
  3020. 800540c: 3332 adds r3, #50 ; 0x32
  3021. 800540e: fbb3 f3f8 udiv r3, r3, r8
  3022. 8005412: f003 07f0 and.w r7, r3, #240 ; 0xf0
  3023. 8005416: f7ff fdef bl 8004ff8 <HAL_RCC_GetPCLK2Freq>
  3024. 800541a: 4360 muls r0, r4
  3025. 800541c: f8d9 2004 ldr.w r2, [r9, #4]
  3026. 8005420: 0092 lsls r2, r2, #2
  3027. 8005422: fbb0 faf2 udiv sl, r0, r2
  3028. 8005426: f7ff fde7 bl 8004ff8 <HAL_RCC_GetPCLK2Freq>
  3029. }
  3030. else
  3031. {
  3032. huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  3033. 800542a: 4360 muls r0, r4
  3034. 800542c: f8d9 3004 ldr.w r3, [r9, #4]
  3035. 8005430: 009b lsls r3, r3, #2
  3036. 8005432: fbb0 f3f3 udiv r3, r0, r3
  3037. 8005436: fbb3 f3f8 udiv r3, r3, r8
  3038. 800543a: fb08 a313 mls r3, r8, r3, sl
  3039. 800543e: 011b lsls r3, r3, #4
  3040. 8005440: 3332 adds r3, #50 ; 0x32
  3041. 8005442: fbb3 f3f8 udiv r3, r3, r8
  3042. 8005446: f003 030f and.w r3, r3, #15
  3043. 800544a: 433b orrs r3, r7
  3044. 800544c: 4433 add r3, r6
  3045. 800544e: 60ab str r3, [r5, #8]
  3046. 8005450: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
  3047. 8005454: f7ff fdc0 bl 8004fd8 <HAL_RCC_GetPCLK1Freq>
  3048. 8005458: fb04 f300 mul.w r3, r4, r0
  3049. 800545c: f8d9 6004 ldr.w r6, [r9, #4]
  3050. 8005460: f04f 0864 mov.w r8, #100 ; 0x64
  3051. 8005464: 00b6 lsls r6, r6, #2
  3052. 8005466: fbb3 f3f6 udiv r3, r3, r6
  3053. 800546a: fbb3 f3f8 udiv r3, r3, r8
  3054. 800546e: 011e lsls r6, r3, #4
  3055. 8005470: f7ff fdb2 bl 8004fd8 <HAL_RCC_GetPCLK1Freq>
  3056. 8005474: 4360 muls r0, r4
  3057. 8005476: f8d9 3004 ldr.w r3, [r9, #4]
  3058. 800547a: 009b lsls r3, r3, #2
  3059. 800547c: fbb0 f7f3 udiv r7, r0, r3
  3060. 8005480: f7ff fdaa bl 8004fd8 <HAL_RCC_GetPCLK1Freq>
  3061. 8005484: 4360 muls r0, r4
  3062. 8005486: f8d9 3004 ldr.w r3, [r9, #4]
  3063. 800548a: 009b lsls r3, r3, #2
  3064. 800548c: fbb0 f3f3 udiv r3, r0, r3
  3065. 8005490: fbb3 f3f8 udiv r3, r3, r8
  3066. 8005494: fb08 7313 mls r3, r8, r3, r7
  3067. 8005498: 011b lsls r3, r3, #4
  3068. 800549a: 3332 adds r3, #50 ; 0x32
  3069. 800549c: fbb3 f3f8 udiv r3, r3, r8
  3070. 80054a0: f003 07f0 and.w r7, r3, #240 ; 0xf0
  3071. 80054a4: f7ff fd98 bl 8004fd8 <HAL_RCC_GetPCLK1Freq>
  3072. 80054a8: 4360 muls r0, r4
  3073. 80054aa: f8d9 2004 ldr.w r2, [r9, #4]
  3074. 80054ae: 0092 lsls r2, r2, #2
  3075. 80054b0: fbb0 faf2 udiv sl, r0, r2
  3076. 80054b4: f7ff fd90 bl 8004fd8 <HAL_RCC_GetPCLK1Freq>
  3077. 80054b8: e7b7 b.n 800542a <UART_SetConfig+0xa6>
  3078. 80054ba: bf00 nop
  3079. 80054bc: 40013800 .word 0x40013800
  3080. 080054c0 <UART_WaitOnFlagUntilTimeout.constprop.3>:
  3081. static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
  3082. 80054c0: b5f8 push {r3, r4, r5, r6, r7, lr}
  3083. 80054c2: 4604 mov r4, r0
  3084. 80054c4: 460e mov r6, r1
  3085. 80054c6: 4617 mov r7, r2
  3086. 80054c8: 461d mov r5, r3
  3087. while((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
  3088. 80054ca: 6821 ldr r1, [r4, #0]
  3089. 80054cc: 680b ldr r3, [r1, #0]
  3090. 80054ce: ea36 0303 bics.w r3, r6, r3
  3091. 80054d2: d101 bne.n 80054d8 <UART_WaitOnFlagUntilTimeout.constprop.3+0x18>
  3092. return HAL_OK;
  3093. 80054d4: 2000 movs r0, #0
  3094. }
  3095. 80054d6: bdf8 pop {r3, r4, r5, r6, r7, pc}
  3096. if(Timeout != HAL_MAX_DELAY)
  3097. 80054d8: 1c6b adds r3, r5, #1
  3098. 80054da: d0f7 beq.n 80054cc <UART_WaitOnFlagUntilTimeout.constprop.3+0xc>
  3099. if((Timeout == 0U)||((HAL_GetTick() - Tickstart ) > Timeout))
  3100. 80054dc: b995 cbnz r5, 8005504 <UART_WaitOnFlagUntilTimeout.constprop.3+0x44>
  3101. CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
  3102. 80054de: 6823 ldr r3, [r4, #0]
  3103. __HAL_UNLOCK(huart);
  3104. 80054e0: 2003 movs r0, #3
  3105. CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
  3106. 80054e2: 68da ldr r2, [r3, #12]
  3107. 80054e4: f422 72d0 bic.w r2, r2, #416 ; 0x1a0
  3108. 80054e8: 60da str r2, [r3, #12]
  3109. CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  3110. 80054ea: 695a ldr r2, [r3, #20]
  3111. 80054ec: f022 0201 bic.w r2, r2, #1
  3112. 80054f0: 615a str r2, [r3, #20]
  3113. huart->gState = HAL_UART_STATE_READY;
  3114. 80054f2: 2320 movs r3, #32
  3115. 80054f4: f884 3039 strb.w r3, [r4, #57] ; 0x39
  3116. huart->RxState = HAL_UART_STATE_READY;
  3117. 80054f8: f884 303a strb.w r3, [r4, #58] ; 0x3a
  3118. __HAL_UNLOCK(huart);
  3119. 80054fc: 2300 movs r3, #0
  3120. 80054fe: f884 3038 strb.w r3, [r4, #56] ; 0x38
  3121. 8005502: bdf8 pop {r3, r4, r5, r6, r7, pc}
  3122. if((Timeout == 0U)||((HAL_GetTick() - Tickstart ) > Timeout))
  3123. 8005504: f7fe fed0 bl 80042a8 <HAL_GetTick>
  3124. 8005508: 1bc0 subs r0, r0, r7
  3125. 800550a: 4285 cmp r5, r0
  3126. 800550c: d2dd bcs.n 80054ca <UART_WaitOnFlagUntilTimeout.constprop.3+0xa>
  3127. 800550e: e7e6 b.n 80054de <UART_WaitOnFlagUntilTimeout.constprop.3+0x1e>
  3128. 08005510 <HAL_UART_Init>:
  3129. {
  3130. 8005510: b510 push {r4, lr}
  3131. if(huart == NULL)
  3132. 8005512: 4604 mov r4, r0
  3133. 8005514: b340 cbz r0, 8005568 <HAL_UART_Init+0x58>
  3134. if(huart->gState == HAL_UART_STATE_RESET)
  3135. 8005516: f890 3039 ldrb.w r3, [r0, #57] ; 0x39
  3136. 800551a: f003 02ff and.w r2, r3, #255 ; 0xff
  3137. 800551e: b91b cbnz r3, 8005528 <HAL_UART_Init+0x18>
  3138. huart->Lock = HAL_UNLOCKED;
  3139. 8005520: f880 2038 strb.w r2, [r0, #56] ; 0x38
  3140. HAL_UART_MspInit(huart);
  3141. 8005524: f000 fc28 bl 8005d78 <HAL_UART_MspInit>
  3142. huart->gState = HAL_UART_STATE_BUSY;
  3143. 8005528: 2324 movs r3, #36 ; 0x24
  3144. __HAL_UART_DISABLE(huart);
  3145. 800552a: 6822 ldr r2, [r4, #0]
  3146. huart->gState = HAL_UART_STATE_BUSY;
  3147. 800552c: f884 3039 strb.w r3, [r4, #57] ; 0x39
  3148. __HAL_UART_DISABLE(huart);
  3149. 8005530: 68d3 ldr r3, [r2, #12]
  3150. UART_SetConfig(huart);
  3151. 8005532: 4620 mov r0, r4
  3152. __HAL_UART_DISABLE(huart);
  3153. 8005534: f423 5300 bic.w r3, r3, #8192 ; 0x2000
  3154. 8005538: 60d3 str r3, [r2, #12]
  3155. UART_SetConfig(huart);
  3156. 800553a: f7ff ff23 bl 8005384 <UART_SetConfig>
  3157. CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
  3158. 800553e: 6823 ldr r3, [r4, #0]
  3159. huart->ErrorCode = HAL_UART_ERROR_NONE;
  3160. 8005540: 2000 movs r0, #0
  3161. CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
  3162. 8005542: 691a ldr r2, [r3, #16]
  3163. 8005544: f422 4290 bic.w r2, r2, #18432 ; 0x4800
  3164. 8005548: 611a str r2, [r3, #16]
  3165. CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
  3166. 800554a: 695a ldr r2, [r3, #20]
  3167. 800554c: f022 022a bic.w r2, r2, #42 ; 0x2a
  3168. 8005550: 615a str r2, [r3, #20]
  3169. __HAL_UART_ENABLE(huart);
  3170. 8005552: 68da ldr r2, [r3, #12]
  3171. 8005554: f442 5200 orr.w r2, r2, #8192 ; 0x2000
  3172. 8005558: 60da str r2, [r3, #12]
  3173. huart->gState= HAL_UART_STATE_READY;
  3174. 800555a: 2320 movs r3, #32
  3175. huart->ErrorCode = HAL_UART_ERROR_NONE;
  3176. 800555c: 63e0 str r0, [r4, #60] ; 0x3c
  3177. huart->gState= HAL_UART_STATE_READY;
  3178. 800555e: f884 3039 strb.w r3, [r4, #57] ; 0x39
  3179. huart->RxState= HAL_UART_STATE_READY;
  3180. 8005562: f884 303a strb.w r3, [r4, #58] ; 0x3a
  3181. return HAL_OK;
  3182. 8005566: bd10 pop {r4, pc}
  3183. return HAL_ERROR;
  3184. 8005568: 2001 movs r0, #1
  3185. }
  3186. 800556a: bd10 pop {r4, pc}
  3187. 0800556c <HAL_UART_Transmit>:
  3188. {
  3189. 800556c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  3190. 8005570: 461f mov r7, r3
  3191. if(huart->gState == HAL_UART_STATE_READY)
  3192. 8005572: f890 3039 ldrb.w r3, [r0, #57] ; 0x39
  3193. {
  3194. 8005576: 4604 mov r4, r0
  3195. if(huart->gState == HAL_UART_STATE_READY)
  3196. 8005578: 2b20 cmp r3, #32
  3197. {
  3198. 800557a: 460d mov r5, r1
  3199. 800557c: 4690 mov r8, r2
  3200. if(huart->gState == HAL_UART_STATE_READY)
  3201. 800557e: d14e bne.n 800561e <HAL_UART_Transmit+0xb2>
  3202. if((pData == NULL) || (Size == 0U))
  3203. 8005580: 2900 cmp r1, #0
  3204. 8005582: d049 beq.n 8005618 <HAL_UART_Transmit+0xac>
  3205. 8005584: 2a00 cmp r2, #0
  3206. 8005586: d047 beq.n 8005618 <HAL_UART_Transmit+0xac>
  3207. __HAL_LOCK(huart);
  3208. 8005588: f890 3038 ldrb.w r3, [r0, #56] ; 0x38
  3209. 800558c: 2b01 cmp r3, #1
  3210. 800558e: d046 beq.n 800561e <HAL_UART_Transmit+0xb2>
  3211. 8005590: 2301 movs r3, #1
  3212. 8005592: f880 3038 strb.w r3, [r0, #56] ; 0x38
  3213. huart->ErrorCode = HAL_UART_ERROR_NONE;
  3214. 8005596: 2300 movs r3, #0
  3215. 8005598: 63c3 str r3, [r0, #60] ; 0x3c
  3216. huart->gState = HAL_UART_STATE_BUSY_TX;
  3217. 800559a: 2321 movs r3, #33 ; 0x21
  3218. 800559c: f880 3039 strb.w r3, [r0, #57] ; 0x39
  3219. tickstart = HAL_GetTick();
  3220. 80055a0: f7fe fe82 bl 80042a8 <HAL_GetTick>
  3221. 80055a4: 4606 mov r6, r0
  3222. huart->TxXferSize = Size;
  3223. 80055a6: f8a4 8024 strh.w r8, [r4, #36] ; 0x24
  3224. huart->TxXferCount = Size;
  3225. 80055aa: f8a4 8026 strh.w r8, [r4, #38] ; 0x26
  3226. while(huart->TxXferCount > 0U)
  3227. 80055ae: 8ce3 ldrh r3, [r4, #38] ; 0x26
  3228. 80055b0: b29b uxth r3, r3
  3229. 80055b2: b96b cbnz r3, 80055d0 <HAL_UART_Transmit+0x64>
  3230. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK)
  3231. 80055b4: 463b mov r3, r7
  3232. 80055b6: 4632 mov r2, r6
  3233. 80055b8: 2140 movs r1, #64 ; 0x40
  3234. 80055ba: 4620 mov r0, r4
  3235. 80055bc: f7ff ff80 bl 80054c0 <UART_WaitOnFlagUntilTimeout.constprop.3>
  3236. 80055c0: b9a8 cbnz r0, 80055ee <HAL_UART_Transmit+0x82>
  3237. huart->gState = HAL_UART_STATE_READY;
  3238. 80055c2: 2320 movs r3, #32
  3239. __HAL_UNLOCK(huart);
  3240. 80055c4: f884 0038 strb.w r0, [r4, #56] ; 0x38
  3241. huart->gState = HAL_UART_STATE_READY;
  3242. 80055c8: f884 3039 strb.w r3, [r4, #57] ; 0x39
  3243. return HAL_OK;
  3244. 80055cc: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  3245. huart->TxXferCount--;
  3246. 80055d0: 8ce3 ldrh r3, [r4, #38] ; 0x26
  3247. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  3248. 80055d2: 4632 mov r2, r6
  3249. huart->TxXferCount--;
  3250. 80055d4: 3b01 subs r3, #1
  3251. 80055d6: b29b uxth r3, r3
  3252. 80055d8: 84e3 strh r3, [r4, #38] ; 0x26
  3253. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  3254. 80055da: 68a3 ldr r3, [r4, #8]
  3255. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  3256. 80055dc: 2180 movs r1, #128 ; 0x80
  3257. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  3258. 80055de: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
  3259. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  3260. 80055e2: 4620 mov r0, r4
  3261. 80055e4: 463b mov r3, r7
  3262. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  3263. 80055e6: d10e bne.n 8005606 <HAL_UART_Transmit+0x9a>
  3264. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  3265. 80055e8: f7ff ff6a bl 80054c0 <UART_WaitOnFlagUntilTimeout.constprop.3>
  3266. 80055ec: b110 cbz r0, 80055f4 <HAL_UART_Transmit+0x88>
  3267. return HAL_TIMEOUT;
  3268. 80055ee: 2003 movs r0, #3
  3269. 80055f0: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  3270. huart->Instance->DR = (*tmp & (uint16_t)0x01FF);
  3271. 80055f4: 882b ldrh r3, [r5, #0]
  3272. 80055f6: 6822 ldr r2, [r4, #0]
  3273. 80055f8: f3c3 0308 ubfx r3, r3, #0, #9
  3274. 80055fc: 6053 str r3, [r2, #4]
  3275. if(huart->Init.Parity == UART_PARITY_NONE)
  3276. 80055fe: 6923 ldr r3, [r4, #16]
  3277. 8005600: b943 cbnz r3, 8005614 <HAL_UART_Transmit+0xa8>
  3278. pData +=2U;
  3279. 8005602: 3502 adds r5, #2
  3280. 8005604: e7d3 b.n 80055ae <HAL_UART_Transmit+0x42>
  3281. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  3282. 8005606: f7ff ff5b bl 80054c0 <UART_WaitOnFlagUntilTimeout.constprop.3>
  3283. 800560a: 2800 cmp r0, #0
  3284. 800560c: d1ef bne.n 80055ee <HAL_UART_Transmit+0x82>
  3285. huart->Instance->DR = (*pData++ & (uint8_t)0xFF);
  3286. 800560e: 6823 ldr r3, [r4, #0]
  3287. 8005610: 782a ldrb r2, [r5, #0]
  3288. 8005612: 605a str r2, [r3, #4]
  3289. 8005614: 3501 adds r5, #1
  3290. 8005616: e7ca b.n 80055ae <HAL_UART_Transmit+0x42>
  3291. return HAL_ERROR;
  3292. 8005618: 2001 movs r0, #1
  3293. 800561a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  3294. return HAL_BUSY;
  3295. 800561e: 2002 movs r0, #2
  3296. }
  3297. 8005620: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  3298. 08005624 <HAL_UART_TxCpltCallback>:
  3299. 8005624: 4770 bx lr
  3300. 08005626 <HAL_UART_RxCpltCallback>:
  3301. 8005626: 4770 bx lr
  3302. 08005628 <UART_Receive_IT>:
  3303. if(huart->RxState == HAL_UART_STATE_BUSY_RX)
  3304. 8005628: f890 303a ldrb.w r3, [r0, #58] ; 0x3a
  3305. {
  3306. 800562c: b510 push {r4, lr}
  3307. if(huart->RxState == HAL_UART_STATE_BUSY_RX)
  3308. 800562e: 2b22 cmp r3, #34 ; 0x22
  3309. 8005630: d136 bne.n 80056a0 <UART_Receive_IT+0x78>
  3310. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  3311. 8005632: 6883 ldr r3, [r0, #8]
  3312. 8005634: 6901 ldr r1, [r0, #16]
  3313. 8005636: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
  3314. 800563a: 6802 ldr r2, [r0, #0]
  3315. 800563c: 6a83 ldr r3, [r0, #40] ; 0x28
  3316. 800563e: d123 bne.n 8005688 <UART_Receive_IT+0x60>
  3317. *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF);
  3318. 8005640: 6852 ldr r2, [r2, #4]
  3319. if(huart->Init.Parity == UART_PARITY_NONE)
  3320. 8005642: b9e9 cbnz r1, 8005680 <UART_Receive_IT+0x58>
  3321. *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF);
  3322. 8005644: f3c2 0208 ubfx r2, r2, #0, #9
  3323. 8005648: f823 2b02 strh.w r2, [r3], #2
  3324. huart->pRxBuffPtr += 1U;
  3325. 800564c: 6283 str r3, [r0, #40] ; 0x28
  3326. if(--huart->RxXferCount == 0U)
  3327. 800564e: 8dc4 ldrh r4, [r0, #46] ; 0x2e
  3328. 8005650: 3c01 subs r4, #1
  3329. 8005652: b2a4 uxth r4, r4
  3330. 8005654: 85c4 strh r4, [r0, #46] ; 0x2e
  3331. 8005656: b98c cbnz r4, 800567c <UART_Receive_IT+0x54>
  3332. __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE);
  3333. 8005658: 6803 ldr r3, [r0, #0]
  3334. 800565a: 68da ldr r2, [r3, #12]
  3335. 800565c: f022 0220 bic.w r2, r2, #32
  3336. 8005660: 60da str r2, [r3, #12]
  3337. __HAL_UART_DISABLE_IT(huart, UART_IT_PE);
  3338. 8005662: 68da ldr r2, [r3, #12]
  3339. 8005664: f422 7280 bic.w r2, r2, #256 ; 0x100
  3340. 8005668: 60da str r2, [r3, #12]
  3341. __HAL_UART_DISABLE_IT(huart, UART_IT_ERR);
  3342. 800566a: 695a ldr r2, [r3, #20]
  3343. 800566c: f022 0201 bic.w r2, r2, #1
  3344. 8005670: 615a str r2, [r3, #20]
  3345. huart->RxState = HAL_UART_STATE_READY;
  3346. 8005672: 2320 movs r3, #32
  3347. 8005674: f880 303a strb.w r3, [r0, #58] ; 0x3a
  3348. HAL_UART_RxCpltCallback(huart);
  3349. 8005678: f7ff ffd5 bl 8005626 <HAL_UART_RxCpltCallback>
  3350. if(--huart->RxXferCount == 0U)
  3351. 800567c: 2000 movs r0, #0
  3352. }
  3353. 800567e: bd10 pop {r4, pc}
  3354. *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x00FF);
  3355. 8005680: b2d2 uxtb r2, r2
  3356. 8005682: f823 2b01 strh.w r2, [r3], #1
  3357. 8005686: e7e1 b.n 800564c <UART_Receive_IT+0x24>
  3358. if(huart->Init.Parity == UART_PARITY_NONE)
  3359. 8005688: b921 cbnz r1, 8005694 <UART_Receive_IT+0x6c>
  3360. *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF);
  3361. 800568a: 1c59 adds r1, r3, #1
  3362. 800568c: 6852 ldr r2, [r2, #4]
  3363. 800568e: 6281 str r1, [r0, #40] ; 0x28
  3364. *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F);
  3365. 8005690: 701a strb r2, [r3, #0]
  3366. 8005692: e7dc b.n 800564e <UART_Receive_IT+0x26>
  3367. 8005694: 6852 ldr r2, [r2, #4]
  3368. 8005696: 1c59 adds r1, r3, #1
  3369. 8005698: 6281 str r1, [r0, #40] ; 0x28
  3370. 800569a: f002 027f and.w r2, r2, #127 ; 0x7f
  3371. 800569e: e7f7 b.n 8005690 <UART_Receive_IT+0x68>
  3372. return HAL_BUSY;
  3373. 80056a0: 2002 movs r0, #2
  3374. 80056a2: bd10 pop {r4, pc}
  3375. 080056a4 <HAL_UART_ErrorCallback>:
  3376. 80056a4: 4770 bx lr
  3377. ...
  3378. 080056a8 <HAL_UART_IRQHandler>:
  3379. uint32_t isrflags = READ_REG(huart->Instance->SR);
  3380. 80056a8: 6803 ldr r3, [r0, #0]
  3381. {
  3382. 80056aa: b570 push {r4, r5, r6, lr}
  3383. uint32_t isrflags = READ_REG(huart->Instance->SR);
  3384. 80056ac: 681a ldr r2, [r3, #0]
  3385. {
  3386. 80056ae: 4604 mov r4, r0
  3387. if(errorflags == RESET)
  3388. 80056b0: 0716 lsls r6, r2, #28
  3389. uint32_t cr1its = READ_REG(huart->Instance->CR1);
  3390. 80056b2: 68d9 ldr r1, [r3, #12]
  3391. uint32_t cr3its = READ_REG(huart->Instance->CR3);
  3392. 80056b4: 695d ldr r5, [r3, #20]
  3393. if(errorflags == RESET)
  3394. 80056b6: d107 bne.n 80056c8 <HAL_UART_IRQHandler+0x20>
  3395. if(((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
  3396. 80056b8: 0696 lsls r6, r2, #26
  3397. 80056ba: d55a bpl.n 8005772 <HAL_UART_IRQHandler+0xca>
  3398. 80056bc: 068d lsls r5, r1, #26
  3399. 80056be: d558 bpl.n 8005772 <HAL_UART_IRQHandler+0xca>
  3400. }
  3401. 80056c0: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
  3402. UART_Receive_IT(huart);
  3403. 80056c4: f7ff bfb0 b.w 8005628 <UART_Receive_IT>
  3404. if((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
  3405. 80056c8: f015 0501 ands.w r5, r5, #1
  3406. 80056cc: d102 bne.n 80056d4 <HAL_UART_IRQHandler+0x2c>
  3407. 80056ce: f411 7f90 tst.w r1, #288 ; 0x120
  3408. 80056d2: d04e beq.n 8005772 <HAL_UART_IRQHandler+0xca>
  3409. if(((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
  3410. 80056d4: 07d3 lsls r3, r2, #31
  3411. 80056d6: d505 bpl.n 80056e4 <HAL_UART_IRQHandler+0x3c>
  3412. 80056d8: 05ce lsls r6, r1, #23
  3413. huart->ErrorCode |= HAL_UART_ERROR_PE;
  3414. 80056da: bf42 ittt mi
  3415. 80056dc: 6be3 ldrmi r3, [r4, #60] ; 0x3c
  3416. 80056de: f043 0301 orrmi.w r3, r3, #1
  3417. 80056e2: 63e3 strmi r3, [r4, #60] ; 0x3c
  3418. if(((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  3419. 80056e4: 0750 lsls r0, r2, #29
  3420. 80056e6: d504 bpl.n 80056f2 <HAL_UART_IRQHandler+0x4a>
  3421. 80056e8: b11d cbz r5, 80056f2 <HAL_UART_IRQHandler+0x4a>
  3422. huart->ErrorCode |= HAL_UART_ERROR_NE;
  3423. 80056ea: 6be3 ldr r3, [r4, #60] ; 0x3c
  3424. 80056ec: f043 0302 orr.w r3, r3, #2
  3425. 80056f0: 63e3 str r3, [r4, #60] ; 0x3c
  3426. if(((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  3427. 80056f2: 0793 lsls r3, r2, #30
  3428. 80056f4: d504 bpl.n 8005700 <HAL_UART_IRQHandler+0x58>
  3429. 80056f6: b11d cbz r5, 8005700 <HAL_UART_IRQHandler+0x58>
  3430. huart->ErrorCode |= HAL_UART_ERROR_FE;
  3431. 80056f8: 6be3 ldr r3, [r4, #60] ; 0x3c
  3432. 80056fa: f043 0304 orr.w r3, r3, #4
  3433. 80056fe: 63e3 str r3, [r4, #60] ; 0x3c
  3434. if(((isrflags & USART_SR_ORE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  3435. 8005700: 0716 lsls r6, r2, #28
  3436. 8005702: d504 bpl.n 800570e <HAL_UART_IRQHandler+0x66>
  3437. 8005704: b11d cbz r5, 800570e <HAL_UART_IRQHandler+0x66>
  3438. huart->ErrorCode |= HAL_UART_ERROR_ORE;
  3439. 8005706: 6be3 ldr r3, [r4, #60] ; 0x3c
  3440. 8005708: f043 0308 orr.w r3, r3, #8
  3441. 800570c: 63e3 str r3, [r4, #60] ; 0x3c
  3442. if(huart->ErrorCode != HAL_UART_ERROR_NONE)
  3443. 800570e: 6be3 ldr r3, [r4, #60] ; 0x3c
  3444. 8005710: 2b00 cmp r3, #0
  3445. 8005712: d066 beq.n 80057e2 <HAL_UART_IRQHandler+0x13a>
  3446. if(((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
  3447. 8005714: 0695 lsls r5, r2, #26
  3448. 8005716: d504 bpl.n 8005722 <HAL_UART_IRQHandler+0x7a>
  3449. 8005718: 0688 lsls r0, r1, #26
  3450. 800571a: d502 bpl.n 8005722 <HAL_UART_IRQHandler+0x7a>
  3451. UART_Receive_IT(huart);
  3452. 800571c: 4620 mov r0, r4
  3453. 800571e: f7ff ff83 bl 8005628 <UART_Receive_IT>
  3454. dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  3455. 8005722: 6823 ldr r3, [r4, #0]
  3456. UART_EndRxTransfer(huart);
  3457. 8005724: 4620 mov r0, r4
  3458. dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  3459. 8005726: 695d ldr r5, [r3, #20]
  3460. if(((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest)
  3461. 8005728: 6be2 ldr r2, [r4, #60] ; 0x3c
  3462. 800572a: 0711 lsls r1, r2, #28
  3463. 800572c: d402 bmi.n 8005734 <HAL_UART_IRQHandler+0x8c>
  3464. 800572e: f015 0540 ands.w r5, r5, #64 ; 0x40
  3465. 8005732: d01a beq.n 800576a <HAL_UART_IRQHandler+0xc2>
  3466. UART_EndRxTransfer(huart);
  3467. 8005734: f7ff fe18 bl 8005368 <UART_EndRxTransfer>
  3468. if(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  3469. 8005738: 6823 ldr r3, [r4, #0]
  3470. 800573a: 695a ldr r2, [r3, #20]
  3471. 800573c: 0652 lsls r2, r2, #25
  3472. 800573e: d510 bpl.n 8005762 <HAL_UART_IRQHandler+0xba>
  3473. CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  3474. 8005740: 695a ldr r2, [r3, #20]
  3475. if(huart->hdmarx != NULL)
  3476. 8005742: 6b60 ldr r0, [r4, #52] ; 0x34
  3477. CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  3478. 8005744: f022 0240 bic.w r2, r2, #64 ; 0x40
  3479. 8005748: 615a str r2, [r3, #20]
  3480. if(huart->hdmarx != NULL)
  3481. 800574a: b150 cbz r0, 8005762 <HAL_UART_IRQHandler+0xba>
  3482. huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError;
  3483. 800574c: 4b25 ldr r3, [pc, #148] ; (80057e4 <HAL_UART_IRQHandler+0x13c>)
  3484. 800574e: 6343 str r3, [r0, #52] ; 0x34
  3485. if(HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
  3486. 8005750: f7fe ff88 bl 8004664 <HAL_DMA_Abort_IT>
  3487. 8005754: 2800 cmp r0, #0
  3488. 8005756: d044 beq.n 80057e2 <HAL_UART_IRQHandler+0x13a>
  3489. huart->hdmarx->XferAbortCallback(huart->hdmarx);
  3490. 8005758: 6b60 ldr r0, [r4, #52] ; 0x34
  3491. }
  3492. 800575a: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
  3493. huart->hdmarx->XferAbortCallback(huart->hdmarx);
  3494. 800575e: 6b43 ldr r3, [r0, #52] ; 0x34
  3495. 8005760: 4718 bx r3
  3496. HAL_UART_ErrorCallback(huart);
  3497. 8005762: 4620 mov r0, r4
  3498. 8005764: f7ff ff9e bl 80056a4 <HAL_UART_ErrorCallback>
  3499. 8005768: bd70 pop {r4, r5, r6, pc}
  3500. HAL_UART_ErrorCallback(huart);
  3501. 800576a: f7ff ff9b bl 80056a4 <HAL_UART_ErrorCallback>
  3502. huart->ErrorCode = HAL_UART_ERROR_NONE;
  3503. 800576e: 63e5 str r5, [r4, #60] ; 0x3c
  3504. 8005770: bd70 pop {r4, r5, r6, pc}
  3505. if(((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
  3506. 8005772: 0616 lsls r6, r2, #24
  3507. 8005774: d527 bpl.n 80057c6 <HAL_UART_IRQHandler+0x11e>
  3508. 8005776: 060d lsls r5, r1, #24
  3509. 8005778: d525 bpl.n 80057c6 <HAL_UART_IRQHandler+0x11e>
  3510. if(huart->gState == HAL_UART_STATE_BUSY_TX)
  3511. 800577a: f894 2039 ldrb.w r2, [r4, #57] ; 0x39
  3512. 800577e: 2a21 cmp r2, #33 ; 0x21
  3513. 8005780: d12f bne.n 80057e2 <HAL_UART_IRQHandler+0x13a>
  3514. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  3515. 8005782: 68a2 ldr r2, [r4, #8]
  3516. 8005784: f5b2 5f80 cmp.w r2, #4096 ; 0x1000
  3517. 8005788: 6a22 ldr r2, [r4, #32]
  3518. 800578a: d117 bne.n 80057bc <HAL_UART_IRQHandler+0x114>
  3519. huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
  3520. 800578c: 8811 ldrh r1, [r2, #0]
  3521. 800578e: f3c1 0108 ubfx r1, r1, #0, #9
  3522. 8005792: 6059 str r1, [r3, #4]
  3523. if(huart->Init.Parity == UART_PARITY_NONE)
  3524. 8005794: 6921 ldr r1, [r4, #16]
  3525. 8005796: b979 cbnz r1, 80057b8 <HAL_UART_IRQHandler+0x110>
  3526. huart->pTxBuffPtr += 2U;
  3527. 8005798: 3202 adds r2, #2
  3528. huart->pTxBuffPtr += 1U;
  3529. 800579a: 6222 str r2, [r4, #32]
  3530. if(--huart->TxXferCount == 0U)
  3531. 800579c: 8ce2 ldrh r2, [r4, #38] ; 0x26
  3532. 800579e: 3a01 subs r2, #1
  3533. 80057a0: b292 uxth r2, r2
  3534. 80057a2: 84e2 strh r2, [r4, #38] ; 0x26
  3535. 80057a4: b9ea cbnz r2, 80057e2 <HAL_UART_IRQHandler+0x13a>
  3536. __HAL_UART_DISABLE_IT(huart, UART_IT_TXE);
  3537. 80057a6: 68da ldr r2, [r3, #12]
  3538. 80057a8: f022 0280 bic.w r2, r2, #128 ; 0x80
  3539. 80057ac: 60da str r2, [r3, #12]
  3540. __HAL_UART_ENABLE_IT(huart, UART_IT_TC);
  3541. 80057ae: 68da ldr r2, [r3, #12]
  3542. 80057b0: f042 0240 orr.w r2, r2, #64 ; 0x40
  3543. 80057b4: 60da str r2, [r3, #12]
  3544. 80057b6: bd70 pop {r4, r5, r6, pc}
  3545. huart->pTxBuffPtr += 1U;
  3546. 80057b8: 3201 adds r2, #1
  3547. 80057ba: e7ee b.n 800579a <HAL_UART_IRQHandler+0xf2>
  3548. huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF);
  3549. 80057bc: 1c51 adds r1, r2, #1
  3550. 80057be: 6221 str r1, [r4, #32]
  3551. 80057c0: 7812 ldrb r2, [r2, #0]
  3552. 80057c2: 605a str r2, [r3, #4]
  3553. 80057c4: e7ea b.n 800579c <HAL_UART_IRQHandler+0xf4>
  3554. if(((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
  3555. 80057c6: 0650 lsls r0, r2, #25
  3556. 80057c8: d50b bpl.n 80057e2 <HAL_UART_IRQHandler+0x13a>
  3557. 80057ca: 064a lsls r2, r1, #25
  3558. 80057cc: d509 bpl.n 80057e2 <HAL_UART_IRQHandler+0x13a>
  3559. __HAL_UART_DISABLE_IT(huart, UART_IT_TC);
  3560. 80057ce: 68da ldr r2, [r3, #12]
  3561. HAL_UART_TxCpltCallback(huart);
  3562. 80057d0: 4620 mov r0, r4
  3563. __HAL_UART_DISABLE_IT(huart, UART_IT_TC);
  3564. 80057d2: f022 0240 bic.w r2, r2, #64 ; 0x40
  3565. 80057d6: 60da str r2, [r3, #12]
  3566. huart->gState = HAL_UART_STATE_READY;
  3567. 80057d8: 2320 movs r3, #32
  3568. 80057da: f884 3039 strb.w r3, [r4, #57] ; 0x39
  3569. HAL_UART_TxCpltCallback(huart);
  3570. 80057de: f7ff ff21 bl 8005624 <HAL_UART_TxCpltCallback>
  3571. 80057e2: bd70 pop {r4, r5, r6, pc}
  3572. 80057e4: 080057e9 .word 0x080057e9
  3573. 080057e8 <UART_DMAAbortOnError>:
  3574. {
  3575. 80057e8: b508 push {r3, lr}
  3576. huart->RxXferCount = 0x00U;
  3577. 80057ea: 2300 movs r3, #0
  3578. UART_HandleTypeDef* huart = ( UART_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
  3579. 80057ec: 6a40 ldr r0, [r0, #36] ; 0x24
  3580. huart->RxXferCount = 0x00U;
  3581. 80057ee: 85c3 strh r3, [r0, #46] ; 0x2e
  3582. huart->TxXferCount = 0x00U;
  3583. 80057f0: 84c3 strh r3, [r0, #38] ; 0x26
  3584. HAL_UART_ErrorCallback(huart);
  3585. 80057f2: f7ff ff57 bl 80056a4 <HAL_UART_ErrorCallback>
  3586. 80057f6: bd08 pop {r3, pc}
  3587. 080057f8 <HAL_TIM_PeriodElapsedCallback>:
  3588. __IO uint32_t ADCvalue[ADC_EA];
  3589. #if 1 // PYJ.2019.07.26_BEGIN --
  3590. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  3591. {
  3592. if(htim->Instance == TIM6){
  3593. 80057f8: 6802 ldr r2, [r0, #0]
  3594. 80057fa: 4b08 ldr r3, [pc, #32] ; (800581c <HAL_TIM_PeriodElapsedCallback+0x24>)
  3595. 80057fc: 429a cmp r2, r3
  3596. 80057fe: d10b bne.n 8005818 <HAL_TIM_PeriodElapsedCallback+0x20>
  3597. UartTimerCnt++;
  3598. 8005800: 4a07 ldr r2, [pc, #28] ; (8005820 <HAL_TIM_PeriodElapsedCallback+0x28>)
  3599. 8005802: 6813 ldr r3, [r2, #0]
  3600. 8005804: 3301 adds r3, #1
  3601. 8005806: 6013 str r3, [r2, #0]
  3602. LedTimerCnt++;
  3603. 8005808: 4a06 ldr r2, [pc, #24] ; (8005824 <HAL_TIM_PeriodElapsedCallback+0x2c>)
  3604. 800580a: 6813 ldr r3, [r2, #0]
  3605. 800580c: 3301 adds r3, #1
  3606. 800580e: 6013 str r3, [r2, #0]
  3607. FirmwareTimerCnt++;
  3608. 8005810: 4a05 ldr r2, [pc, #20] ; (8005828 <HAL_TIM_PeriodElapsedCallback+0x30>)
  3609. 8005812: 6813 ldr r3, [r2, #0]
  3610. 8005814: 3301 adds r3, #1
  3611. 8005816: 6013 str r3, [r2, #0]
  3612. 8005818: 4770 bx lr
  3613. 800581a: bf00 nop
  3614. 800581c: 40001000 .word 0x40001000
  3615. 8005820: 20000094 .word 0x20000094
  3616. 8005824: 20000090 .word 0x20000090
  3617. 8005828: 2000008c .word 0x2000008c
  3618. 0800582c <_write>:
  3619. }
  3620. }
  3621. #endif // PYJ.2019.07.26_END --
  3622. int _write (int file, uint8_t *ptr, uint16_t len)
  3623. {
  3624. 800582c: b510 push {r4, lr}
  3625. 800582e: 4614 mov r4, r2
  3626. HAL_UART_Transmit (&huart1, ptr, len, 10);
  3627. 8005830: 230a movs r3, #10
  3628. 8005832: 4802 ldr r0, [pc, #8] ; (800583c <_write+0x10>)
  3629. 8005834: f7ff fe9a bl 800556c <HAL_UART_Transmit>
  3630. return len;
  3631. }
  3632. 8005838: 4620 mov r0, r4
  3633. 800583a: bd10 pop {r4, pc}
  3634. 800583c: 200000d8 .word 0x200000d8
  3635. 08005840 <SystemClock_Config>:
  3636. /**
  3637. * @brief System Clock Configuration
  3638. * @retval None
  3639. */
  3640. void SystemClock_Config(void)
  3641. {
  3642. 8005840: b510 push {r4, lr}
  3643. 8005842: b096 sub sp, #88 ; 0x58
  3644. RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  3645. 8005844: 2228 movs r2, #40 ; 0x28
  3646. 8005846: 2100 movs r1, #0
  3647. 8005848: a80c add r0, sp, #48 ; 0x30
  3648. 800584a: f000 fb97 bl 8005f7c <memset>
  3649. RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  3650. 800584e: 2214 movs r2, #20
  3651. 8005850: 2100 movs r1, #0
  3652. 8005852: a801 add r0, sp, #4
  3653. 8005854: f000 fb92 bl 8005f7c <memset>
  3654. RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
  3655. 8005858: 2218 movs r2, #24
  3656. 800585a: 2100 movs r1, #0
  3657. 800585c: eb0d 0002 add.w r0, sp, r2
  3658. 8005860: f000 fb8c bl 8005f7c <memset>
  3659. /** Initializes the CPU, AHB and APB busses clocks
  3660. */
  3661. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  3662. RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  3663. 8005864: 2301 movs r3, #1
  3664. 8005866: 9310 str r3, [sp, #64] ; 0x40
  3665. RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  3666. 8005868: 2310 movs r3, #16
  3667. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  3668. 800586a: 2402 movs r4, #2
  3669. RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  3670. 800586c: 9311 str r3, [sp, #68] ; 0x44
  3671. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  3672. RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
  3673. RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL15;
  3674. 800586e: f44f 1350 mov.w r3, #3407872 ; 0x340000
  3675. if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  3676. 8005872: a80c add r0, sp, #48 ; 0x30
  3677. RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL15;
  3678. 8005874: 9315 str r3, [sp, #84] ; 0x54
  3679. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  3680. 8005876: 940c str r4, [sp, #48] ; 0x30
  3681. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  3682. 8005878: 9413 str r4, [sp, #76] ; 0x4c
  3683. if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  3684. 800587a: f7ff f933 bl 8004ae4 <HAL_RCC_OscConfig>
  3685. {
  3686. Error_Handler();
  3687. }
  3688. /** Initializes the CPU, AHB and APB busses clocks
  3689. */
  3690. RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  3691. 800587e: 230f movs r3, #15
  3692. |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  3693. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  3694. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  3695. RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  3696. 8005880: f44f 6280 mov.w r2, #1024 ; 0x400
  3697. RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  3698. 8005884: 9301 str r3, [sp, #4]
  3699. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  3700. 8005886: 2300 movs r3, #0
  3701. RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  3702. if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  3703. 8005888: 4621 mov r1, r4
  3704. 800588a: a801 add r0, sp, #4
  3705. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  3706. 800588c: 9303 str r3, [sp, #12]
  3707. RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  3708. 800588e: 9204 str r2, [sp, #16]
  3709. RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  3710. 8005890: 9305 str r3, [sp, #20]
  3711. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  3712. 8005892: 9402 str r4, [sp, #8]
  3713. if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  3714. 8005894: f7ff faee bl 8004e74 <HAL_RCC_ClockConfig>
  3715. {
  3716. Error_Handler();
  3717. }
  3718. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
  3719. PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;
  3720. 8005898: f44f 4300 mov.w r3, #32768 ; 0x8000
  3721. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  3722. 800589c: a806 add r0, sp, #24
  3723. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
  3724. 800589e: 9406 str r4, [sp, #24]
  3725. PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;
  3726. 80058a0: 9308 str r3, [sp, #32]
  3727. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  3728. 80058a2: f7ff fbb9 bl 8005018 <HAL_RCCEx_PeriphCLKConfig>
  3729. {
  3730. Error_Handler();
  3731. }
  3732. }
  3733. 80058a6: b016 add sp, #88 ; 0x58
  3734. 80058a8: bd10 pop {r4, pc}
  3735. ...
  3736. 080058ac <main>:
  3737. {
  3738. 80058ac: b580 push {r7, lr}
  3739. static void MX_GPIO_Init(void)
  3740. {
  3741. GPIO_InitTypeDef GPIO_InitStruct = {0};
  3742. /* GPIO Ports Clock Enable */
  3743. __HAL_RCC_GPIOE_CLK_ENABLE();
  3744. 80058ae: 4db1 ldr r5, [pc, #708] ; (8005b74 <main+0x2c8>)
  3745. {
  3746. 80058b0: b08c sub sp, #48 ; 0x30
  3747. HAL_Init();
  3748. 80058b2: f7fe fcdb bl 800426c <HAL_Init>
  3749. SystemClock_Config();
  3750. 80058b6: f7ff ffc3 bl 8005840 <SystemClock_Config>
  3751. GPIO_InitTypeDef GPIO_InitStruct = {0};
  3752. 80058ba: 2210 movs r2, #16
  3753. 80058bc: 2100 movs r1, #0
  3754. 80058be: a808 add r0, sp, #32
  3755. 80058c0: f000 fb5c bl 8005f7c <memset>
  3756. __HAL_RCC_GPIOE_CLK_ENABLE();
  3757. 80058c4: 69ab ldr r3, [r5, #24]
  3758. __HAL_RCC_GPIOB_CLK_ENABLE();
  3759. __HAL_RCC_GPIOD_CLK_ENABLE();
  3760. __HAL_RCC_GPIOG_CLK_ENABLE();
  3761. /*Configure GPIO pin Output Level */
  3762. HAL_GPIO_WritePin(GPIOE, ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin
  3763. 80058c6: 2200 movs r2, #0
  3764. __HAL_RCC_GPIOE_CLK_ENABLE();
  3765. 80058c8: f043 0340 orr.w r3, r3, #64 ; 0x40
  3766. 80058cc: 61ab str r3, [r5, #24]
  3767. 80058ce: 69ab ldr r3, [r5, #24]
  3768. HAL_GPIO_WritePin(GPIOE, ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin
  3769. 80058d0: 217f movs r1, #127 ; 0x7f
  3770. __HAL_RCC_GPIOE_CLK_ENABLE();
  3771. 80058d2: f003 0340 and.w r3, r3, #64 ; 0x40
  3772. 80058d6: 9301 str r3, [sp, #4]
  3773. 80058d8: 9b01 ldr r3, [sp, #4]
  3774. __HAL_RCC_GPIOC_CLK_ENABLE();
  3775. 80058da: 69ab ldr r3, [r5, #24]
  3776. HAL_GPIO_WritePin(GPIOE, ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin
  3777. 80058dc: 48a6 ldr r0, [pc, #664] ; (8005b78 <main+0x2cc>)
  3778. __HAL_RCC_GPIOC_CLK_ENABLE();
  3779. 80058de: f043 0310 orr.w r3, r3, #16
  3780. 80058e2: 61ab str r3, [r5, #24]
  3781. 80058e4: 69ab ldr r3, [r5, #24]
  3782. /*Configure GPIO pins : ATT_EN_1_8G_DL1_Pin ATT_EN_1_8G_DL2_Pin ATT_EN_1_8G_UL1_Pin ATT_EN_1_8G_UL2_Pin
  3783. ATT_EN_1_8G_UL3_Pin PATH_EN_2_1G_DL_Pin PATH_EN_2_1G_UL_Pin */
  3784. GPIO_InitStruct.Pin = ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin
  3785. |ATT_EN_1_8G_UL3_Pin|PATH_EN_2_1G_DL_Pin|PATH_EN_2_1G_UL_Pin;
  3786. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3787. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3788. 80058e6: 2400 movs r4, #0
  3789. __HAL_RCC_GPIOC_CLK_ENABLE();
  3790. 80058e8: f003 0310 and.w r3, r3, #16
  3791. 80058ec: 9302 str r3, [sp, #8]
  3792. 80058ee: 9b02 ldr r3, [sp, #8]
  3793. __HAL_RCC_GPIOF_CLK_ENABLE();
  3794. 80058f0: 69ab ldr r3, [r5, #24]
  3795. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3796. 80058f2: 2601 movs r6, #1
  3797. __HAL_RCC_GPIOF_CLK_ENABLE();
  3798. 80058f4: f043 0380 orr.w r3, r3, #128 ; 0x80
  3799. 80058f8: 61ab str r3, [r5, #24]
  3800. 80058fa: 69ab ldr r3, [r5, #24]
  3801. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3802. 80058fc: 2702 movs r7, #2
  3803. __HAL_RCC_GPIOF_CLK_ENABLE();
  3804. 80058fe: f003 0380 and.w r3, r3, #128 ; 0x80
  3805. 8005902: 9303 str r3, [sp, #12]
  3806. 8005904: 9b03 ldr r3, [sp, #12]
  3807. __HAL_RCC_GPIOA_CLK_ENABLE();
  3808. 8005906: 69ab ldr r3, [r5, #24]
  3809. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3810. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3811. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  3812. /*Configure GPIO pins : PLL_LD_1_8G_DL_Pin PLL_LD_1_8G_UL_Pin */
  3813. GPIO_InitStruct.Pin = PLL_LD_1_8G_DL_Pin|PLL_LD_1_8G_UL_Pin;
  3814. 8005908: f04f 080c mov.w r8, #12
  3815. __HAL_RCC_GPIOA_CLK_ENABLE();
  3816. 800590c: f043 0304 orr.w r3, r3, #4
  3817. 8005910: 61ab str r3, [r5, #24]
  3818. 8005912: 69ab ldr r3, [r5, #24]
  3819. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3820. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  3821. /*Configure GPIO pin : PATH_EN_3_5G_H_Pin */
  3822. GPIO_InitStruct.Pin = PATH_EN_3_5G_H_Pin;
  3823. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  3824. 8005914: f04f 0903 mov.w r9, #3
  3825. __HAL_RCC_GPIOA_CLK_ENABLE();
  3826. 8005918: f003 0304 and.w r3, r3, #4
  3827. 800591c: 9304 str r3, [sp, #16]
  3828. 800591e: 9b04 ldr r3, [sp, #16]
  3829. __HAL_RCC_GPIOB_CLK_ENABLE();
  3830. 8005920: 69ab ldr r3, [r5, #24]
  3831. hadc1.Init.NbrOfConversion = 14;
  3832. 8005922: f04f 0a0e mov.w sl, #14
  3833. __HAL_RCC_GPIOB_CLK_ENABLE();
  3834. 8005926: f043 0308 orr.w r3, r3, #8
  3835. 800592a: 61ab str r3, [r5, #24]
  3836. 800592c: 69ab ldr r3, [r5, #24]
  3837. 800592e: f003 0308 and.w r3, r3, #8
  3838. 8005932: 9305 str r3, [sp, #20]
  3839. 8005934: 9b05 ldr r3, [sp, #20]
  3840. __HAL_RCC_GPIOD_CLK_ENABLE();
  3841. 8005936: 69ab ldr r3, [r5, #24]
  3842. 8005938: f043 0320 orr.w r3, r3, #32
  3843. 800593c: 61ab str r3, [r5, #24]
  3844. 800593e: 69ab ldr r3, [r5, #24]
  3845. 8005940: f003 0320 and.w r3, r3, #32
  3846. 8005944: 9306 str r3, [sp, #24]
  3847. 8005946: 9b06 ldr r3, [sp, #24]
  3848. __HAL_RCC_GPIOG_CLK_ENABLE();
  3849. 8005948: 69ab ldr r3, [r5, #24]
  3850. 800594a: f443 7380 orr.w r3, r3, #256 ; 0x100
  3851. 800594e: 61ab str r3, [r5, #24]
  3852. 8005950: 69ab ldr r3, [r5, #24]
  3853. 8005952: f403 7380 and.w r3, r3, #256 ; 0x100
  3854. 8005956: 9307 str r3, [sp, #28]
  3855. 8005958: 9b07 ldr r3, [sp, #28]
  3856. HAL_GPIO_WritePin(GPIOE, ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin
  3857. 800595a: f7ff f8b9 bl 8004ad0 <HAL_GPIO_WritePin>
  3858. HAL_GPIO_WritePin(GPIOC, ATT_EN_1_8G_UL4_Pin|PATH_EN_1_8G_DL_Pin|PATH_EN_1_8G_UL_Pin|PLL_EN_3_5G_L_Pin
  3859. 800595e: 2200 movs r2, #0
  3860. 8005960: f24e 01c0 movw r1, #57536 ; 0xe0c0
  3861. 8005964: 4885 ldr r0, [pc, #532] ; (8005b7c <main+0x2d0>)
  3862. 8005966: f7ff f8b3 bl 8004ad0 <HAL_GPIO_WritePin>
  3863. HAL_GPIO_WritePin(GPIOF, PLL_EN_1_8G_DL_Pin|PLL_EN_1_8G_UL_Pin|ATT_EN_2_1G_DL1_Pin|ATT_EN_2_1G_DL2_Pin
  3864. 800596a: 2200 movs r2, #0
  3865. 800596c: f240 31f3 movw r1, #1011 ; 0x3f3
  3866. 8005970: 4883 ldr r0, [pc, #524] ; (8005b80 <main+0x2d4>)
  3867. 8005972: f7ff f8ad bl 8004ad0 <HAL_GPIO_WritePin>
  3868. HAL_GPIO_WritePin(GPIOD, PLL_DATA_Pin|PLL_CLK_Pin|ATT_DATA_Pin|ATT_CLK_Pin
  3869. 8005976: 2200 movs r2, #0
  3870. 8005978: f648 71ff movw r1, #36863 ; 0x8fff
  3871. 800597c: 4881 ldr r0, [pc, #516] ; (8005b84 <main+0x2d8>)
  3872. 800597e: f7ff f8a7 bl 8004ad0 <HAL_GPIO_WritePin>
  3873. HAL_GPIO_WritePin(GPIOG, DA_SYNC_Pin|DA_SCLK_Pin|DA_DIN_Pin|_T_SYNC_UL_Pin
  3874. 8005982: 2200 movs r2, #0
  3875. 8005984: f647 51fc movw r1, #32252 ; 0x7dfc
  3876. 8005988: 487f ldr r0, [pc, #508] ; (8005b88 <main+0x2dc>)
  3877. 800598a: f7ff f8a1 bl 8004ad0 <HAL_GPIO_WritePin>
  3878. HAL_GPIO_WritePin(GPIOB, PLL_EN_2_1G_DL_Pin|PLL_EN_2_1G_UL_Pin, GPIO_PIN_RESET);
  3879. 800598e: 2200 movs r2, #0
  3880. 8005990: 2118 movs r1, #24
  3881. 8005992: 487e ldr r0, [pc, #504] ; (8005b8c <main+0x2e0>)
  3882. 8005994: f7ff f89c bl 8004ad0 <HAL_GPIO_WritePin>
  3883. GPIO_InitStruct.Pin = ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin
  3884. 8005998: 237f movs r3, #127 ; 0x7f
  3885. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  3886. 800599a: a908 add r1, sp, #32
  3887. 800599c: 4876 ldr r0, [pc, #472] ; (8005b78 <main+0x2cc>)
  3888. GPIO_InitStruct.Pin = ATT_EN_1_8G_DL1_Pin|ATT_EN_1_8G_DL2_Pin|ATT_EN_1_8G_UL1_Pin|ATT_EN_1_8G_UL2_Pin
  3889. 800599e: 9308 str r3, [sp, #32]
  3890. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3891. 80059a0: 9609 str r6, [sp, #36] ; 0x24
  3892. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3893. 80059a2: 940a str r4, [sp, #40] ; 0x28
  3894. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3895. 80059a4: 970b str r7, [sp, #44] ; 0x2c
  3896. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  3897. 80059a6: f7fe ffa7 bl 80048f8 <HAL_GPIO_Init>
  3898. GPIO_InitStruct.Pin = ATT_EN_1_8G_UL4_Pin|PATH_EN_1_8G_DL_Pin|PATH_EN_1_8G_UL_Pin|PLL_EN_3_5G_L_Pin
  3899. 80059aa: f24e 03c0 movw r3, #57536 ; 0xe0c0
  3900. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  3901. 80059ae: a908 add r1, sp, #32
  3902. 80059b0: 4872 ldr r0, [pc, #456] ; (8005b7c <main+0x2d0>)
  3903. GPIO_InitStruct.Pin = ATT_EN_1_8G_UL4_Pin|PATH_EN_1_8G_DL_Pin|PATH_EN_1_8G_UL_Pin|PLL_EN_3_5G_L_Pin
  3904. 80059b2: 9308 str r3, [sp, #32]
  3905. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3906. 80059b4: 9609 str r6, [sp, #36] ; 0x24
  3907. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3908. 80059b6: 940a str r4, [sp, #40] ; 0x28
  3909. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3910. 80059b8: 970b str r7, [sp, #44] ; 0x2c
  3911. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  3912. 80059ba: f7fe ff9d bl 80048f8 <HAL_GPIO_Init>
  3913. GPIO_InitStruct.Pin = PLL_EN_1_8G_DL_Pin|PLL_EN_1_8G_UL_Pin|ATT_EN_2_1G_DL1_Pin|ATT_EN_2_1G_DL2_Pin
  3914. 80059be: f240 33f3 movw r3, #1011 ; 0x3f3
  3915. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  3916. 80059c2: a908 add r1, sp, #32
  3917. 80059c4: 486e ldr r0, [pc, #440] ; (8005b80 <main+0x2d4>)
  3918. GPIO_InitStruct.Pin = PLL_EN_1_8G_DL_Pin|PLL_EN_1_8G_UL_Pin|ATT_EN_2_1G_DL1_Pin|ATT_EN_2_1G_DL2_Pin
  3919. 80059c6: 9308 str r3, [sp, #32]
  3920. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3921. 80059c8: 9609 str r6, [sp, #36] ; 0x24
  3922. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3923. 80059ca: 940a str r4, [sp, #40] ; 0x28
  3924. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3925. 80059cc: 970b str r7, [sp, #44] ; 0x2c
  3926. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  3927. 80059ce: f7fe ff93 bl 80048f8 <HAL_GPIO_Init>
  3928. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  3929. 80059d2: a908 add r1, sp, #32
  3930. 80059d4: 486a ldr r0, [pc, #424] ; (8005b80 <main+0x2d4>)
  3931. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  3932. 80059d6: 9409 str r4, [sp, #36] ; 0x24
  3933. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3934. 80059d8: 940a str r4, [sp, #40] ; 0x28
  3935. GPIO_InitStruct.Pin = PLL_LD_1_8G_DL_Pin|PLL_LD_1_8G_UL_Pin;
  3936. 80059da: f8cd 8020 str.w r8, [sp, #32]
  3937. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  3938. 80059de: f7fe ff8b bl 80048f8 <HAL_GPIO_Init>
  3939. GPIO_InitStruct.Pin = PLL_DATA_Pin|PLL_CLK_Pin|ATT_DATA_Pin|ATT_CLK_Pin
  3940. 80059e2: f648 73ff movw r3, #36863 ; 0x8fff
  3941. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  3942. 80059e6: a908 add r1, sp, #32
  3943. 80059e8: 4866 ldr r0, [pc, #408] ; (8005b84 <main+0x2d8>)
  3944. GPIO_InitStruct.Pin = PLL_DATA_Pin|PLL_CLK_Pin|ATT_DATA_Pin|ATT_CLK_Pin
  3945. 80059ea: 9308 str r3, [sp, #32]
  3946. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3947. 80059ec: 9609 str r6, [sp, #36] ; 0x24
  3948. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3949. 80059ee: 940a str r4, [sp, #40] ; 0x28
  3950. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3951. 80059f0: 970b str r7, [sp, #44] ; 0x2c
  3952. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  3953. 80059f2: f7fe ff81 bl 80048f8 <HAL_GPIO_Init>
  3954. GPIO_InitStruct.Pin = ALARM_DC_Pin|ALARM_AC_Pin;
  3955. 80059f6: f44f 5340 mov.w r3, #12288 ; 0x3000
  3956. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  3957. 80059fa: a908 add r1, sp, #32
  3958. 80059fc: 4861 ldr r0, [pc, #388] ; (8005b84 <main+0x2d8>)
  3959. GPIO_InitStruct.Pin = ALARM_DC_Pin|ALARM_AC_Pin;
  3960. 80059fe: 9308 str r3, [sp, #32]
  3961. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  3962. 8005a00: 9409 str r4, [sp, #36] ; 0x24
  3963. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3964. 8005a02: 940a str r4, [sp, #40] ; 0x28
  3965. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  3966. 8005a04: f7fe ff78 bl 80048f8 <HAL_GPIO_Init>
  3967. GPIO_InitStruct.Pin = DA_SYNC_Pin|DA_SCLK_Pin|DA_DIN_Pin|_T_SYNC_UL_Pin
  3968. 8005a08: f647 53fc movw r3, #32252 ; 0x7dfc
  3969. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  3970. 8005a0c: a908 add r1, sp, #32
  3971. 8005a0e: 485e ldr r0, [pc, #376] ; (8005b88 <main+0x2dc>)
  3972. GPIO_InitStruct.Pin = DA_SYNC_Pin|DA_SCLK_Pin|DA_DIN_Pin|_T_SYNC_UL_Pin
  3973. 8005a10: 9308 str r3, [sp, #32]
  3974. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3975. 8005a12: 9609 str r6, [sp, #36] ; 0x24
  3976. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3977. 8005a14: 940a str r4, [sp, #40] ; 0x28
  3978. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3979. 8005a16: 970b str r7, [sp, #44] ; 0x2c
  3980. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  3981. 8005a18: f7fe ff6e bl 80048f8 <HAL_GPIO_Init>
  3982. GPIO_InitStruct.Pin = PLL_LD_3_5G_L_Pin|PLL_LD_3_5G_H_Pin;
  3983. 8005a1c: f44f 7340 mov.w r3, #768 ; 0x300
  3984. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  3985. 8005a20: a908 add r1, sp, #32
  3986. 8005a22: 4856 ldr r0, [pc, #344] ; (8005b7c <main+0x2d0>)
  3987. GPIO_InitStruct.Pin = PLL_LD_3_5G_L_Pin|PLL_LD_3_5G_H_Pin;
  3988. 8005a24: 9308 str r3, [sp, #32]
  3989. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  3990. 8005a26: 9409 str r4, [sp, #36] ; 0x24
  3991. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3992. 8005a28: 940a str r4, [sp, #40] ; 0x28
  3993. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  3994. 8005a2a: f7fe ff65 bl 80048f8 <HAL_GPIO_Init>
  3995. GPIO_InitStruct.Pin = PATH_EN_3_5G_H_Pin;
  3996. 8005a2e: f44f 7300 mov.w r3, #512 ; 0x200
  3997. HAL_GPIO_Init(PATH_EN_3_5G_H_GPIO_Port, &GPIO_InitStruct);
  3998. 8005a32: a908 add r1, sp, #32
  3999. 8005a34: 4854 ldr r0, [pc, #336] ; (8005b88 <main+0x2dc>)
  4000. GPIO_InitStruct.Pin = PATH_EN_3_5G_H_Pin;
  4001. 8005a36: 9308 str r3, [sp, #32]
  4002. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  4003. 8005a38: f8cd 9024 str.w r9, [sp, #36] ; 0x24
  4004. HAL_GPIO_Init(PATH_EN_3_5G_H_GPIO_Port, &GPIO_InitStruct);
  4005. 8005a3c: f7fe ff5c bl 80048f8 <HAL_GPIO_Init>
  4006. /*Configure GPIO pins : PLL_EN_2_1G_DL_Pin PLL_EN_2_1G_UL_Pin */
  4007. GPIO_InitStruct.Pin = PLL_EN_2_1G_DL_Pin|PLL_EN_2_1G_UL_Pin;
  4008. 8005a40: 2318 movs r3, #24
  4009. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  4010. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4011. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  4012. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  4013. 8005a42: a908 add r1, sp, #32
  4014. 8005a44: 4851 ldr r0, [pc, #324] ; (8005b8c <main+0x2e0>)
  4015. GPIO_InitStruct.Pin = PLL_EN_2_1G_DL_Pin|PLL_EN_2_1G_UL_Pin;
  4016. 8005a46: 9308 str r3, [sp, #32]
  4017. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  4018. 8005a48: 9609 str r6, [sp, #36] ; 0x24
  4019. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4020. 8005a4a: 940a str r4, [sp, #40] ; 0x28
  4021. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  4022. 8005a4c: 970b str r7, [sp, #44] ; 0x2c
  4023. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  4024. 8005a4e: f7fe ff53 bl 80048f8 <HAL_GPIO_Init>
  4025. /*Configure GPIO pins : PLL_LD_2_1G_DL_Pin PLL_LD_2_1G_UL_Pin */
  4026. GPIO_InitStruct.Pin = PLL_LD_2_1G_DL_Pin|PLL_LD_2_1G_UL_Pin;
  4027. 8005a52: 2360 movs r3, #96 ; 0x60
  4028. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  4029. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4030. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  4031. 8005a54: a908 add r1, sp, #32
  4032. 8005a56: 484d ldr r0, [pc, #308] ; (8005b8c <main+0x2e0>)
  4033. GPIO_InitStruct.Pin = PLL_LD_2_1G_DL_Pin|PLL_LD_2_1G_UL_Pin;
  4034. 8005a58: 9308 str r3, [sp, #32]
  4035. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  4036. 8005a5a: 9409 str r4, [sp, #36] ; 0x24
  4037. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4038. 8005a5c: 940a str r4, [sp, #40] ; 0x28
  4039. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  4040. 8005a5e: f7fe ff4b bl 80048f8 <HAL_GPIO_Init>
  4041. __HAL_RCC_DMA1_CLK_ENABLE();
  4042. 8005a62: 696b ldr r3, [r5, #20]
  4043. HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
  4044. 8005a64: 4622 mov r2, r4
  4045. __HAL_RCC_DMA1_CLK_ENABLE();
  4046. 8005a66: 4333 orrs r3, r6
  4047. 8005a68: 616b str r3, [r5, #20]
  4048. 8005a6a: 696b ldr r3, [r5, #20]
  4049. HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
  4050. 8005a6c: 4621 mov r1, r4
  4051. __HAL_RCC_DMA1_CLK_ENABLE();
  4052. 8005a6e: 4033 ands r3, r6
  4053. 8005a70: 9300 str r3, [sp, #0]
  4054. HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
  4055. 8005a72: 200b movs r0, #11
  4056. __HAL_RCC_DMA1_CLK_ENABLE();
  4057. 8005a74: 9b00 ldr r3, [sp, #0]
  4058. HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
  4059. 8005a76: f7fe fd5f bl 8004538 <HAL_NVIC_SetPriority>
  4060. HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
  4061. 8005a7a: 200b movs r0, #11
  4062. hadc1.Instance = ADC1;
  4063. 8005a7c: 4d44 ldr r5, [pc, #272] ; (8005b90 <main+0x2e4>)
  4064. HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
  4065. 8005a7e: f7fe fd8f bl 80045a0 <HAL_NVIC_EnableIRQ>
  4066. hadc1.Instance = ADC1;
  4067. 8005a82: 4b44 ldr r3, [pc, #272] ; (8005b94 <main+0x2e8>)
  4068. if (HAL_ADC_Init(&hadc1) != HAL_OK)
  4069. 8005a84: 4628 mov r0, r5
  4070. hadc1.Instance = ADC1;
  4071. 8005a86: 602b str r3, [r5, #0]
  4072. hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
  4073. 8005a88: f44f 7380 mov.w r3, #256 ; 0x100
  4074. 8005a8c: 60ab str r3, [r5, #8]
  4075. hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  4076. 8005a8e: f44f 2360 mov.w r3, #917504 ; 0xe0000
  4077. hadc1.Init.ContinuousConvMode = ENABLE;
  4078. 8005a92: 60ee str r6, [r5, #12]
  4079. hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  4080. 8005a94: 61eb str r3, [r5, #28]
  4081. hadc1.Init.DiscontinuousConvMode = DISABLE;
  4082. 8005a96: 616c str r4, [r5, #20]
  4083. hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  4084. 8005a98: 606c str r4, [r5, #4]
  4085. ADC_ChannelConfTypeDef sConfig = {0};
  4086. 8005a9a: 9408 str r4, [sp, #32]
  4087. 8005a9c: 9409 str r4, [sp, #36] ; 0x24
  4088. 8005a9e: 940a str r4, [sp, #40] ; 0x28
  4089. hadc1.Init.NbrOfConversion = 14;
  4090. 8005aa0: f8c5 a010 str.w sl, [r5, #16]
  4091. if (HAL_ADC_Init(&hadc1) != HAL_OK)
  4092. 8005aa4: f7fe fcac bl 8004400 <HAL_ADC_Init>
  4093. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4094. 8005aa8: a908 add r1, sp, #32
  4095. 8005aaa: 4628 mov r0, r5
  4096. sConfig.Channel = ADC_CHANNEL_0;
  4097. 8005aac: 9408 str r4, [sp, #32]
  4098. sConfig.Rank = ADC_REGULAR_RANK_1;
  4099. 8005aae: 9609 str r6, [sp, #36] ; 0x24
  4100. sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
  4101. 8005ab0: 940a str r4, [sp, #40] ; 0x28
  4102. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4103. 8005ab2: f7fe fbff bl 80042b4 <HAL_ADC_ConfigChannel>
  4104. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4105. 8005ab6: a908 add r1, sp, #32
  4106. 8005ab8: 4628 mov r0, r5
  4107. sConfig.Rank = ADC_REGULAR_RANK_2;
  4108. 8005aba: 9709 str r7, [sp, #36] ; 0x24
  4109. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4110. 8005abc: f7fe fbfa bl 80042b4 <HAL_ADC_ConfigChannel>
  4111. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4112. 8005ac0: a908 add r1, sp, #32
  4113. 8005ac2: 4628 mov r0, r5
  4114. sConfig.Rank = ADC_REGULAR_RANK_3;
  4115. 8005ac4: f8cd 9024 str.w r9, [sp, #36] ; 0x24
  4116. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4117. 8005ac8: f7fe fbf4 bl 80042b4 <HAL_ADC_ConfigChannel>
  4118. sConfig.Rank = ADC_REGULAR_RANK_4;
  4119. 8005acc: 2304 movs r3, #4
  4120. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4121. 8005ace: a908 add r1, sp, #32
  4122. 8005ad0: 4628 mov r0, r5
  4123. sConfig.Rank = ADC_REGULAR_RANK_4;
  4124. 8005ad2: 9309 str r3, [sp, #36] ; 0x24
  4125. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4126. 8005ad4: f7fe fbee bl 80042b4 <HAL_ADC_ConfigChannel>
  4127. sConfig.Rank = ADC_REGULAR_RANK_5;
  4128. 8005ad8: 2305 movs r3, #5
  4129. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4130. 8005ada: a908 add r1, sp, #32
  4131. 8005adc: 4628 mov r0, r5
  4132. sConfig.Rank = ADC_REGULAR_RANK_5;
  4133. 8005ade: 9309 str r3, [sp, #36] ; 0x24
  4134. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4135. 8005ae0: f7fe fbe8 bl 80042b4 <HAL_ADC_ConfigChannel>
  4136. sConfig.Rank = ADC_REGULAR_RANK_6;
  4137. 8005ae4: 2306 movs r3, #6
  4138. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4139. 8005ae6: a908 add r1, sp, #32
  4140. 8005ae8: 4628 mov r0, r5
  4141. sConfig.Rank = ADC_REGULAR_RANK_6;
  4142. 8005aea: 9309 str r3, [sp, #36] ; 0x24
  4143. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4144. 8005aec: f7fe fbe2 bl 80042b4 <HAL_ADC_ConfigChannel>
  4145. sConfig.Rank = ADC_REGULAR_RANK_7;
  4146. 8005af0: 2307 movs r3, #7
  4147. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4148. 8005af2: a908 add r1, sp, #32
  4149. 8005af4: 4628 mov r0, r5
  4150. sConfig.Rank = ADC_REGULAR_RANK_7;
  4151. 8005af6: 9309 str r3, [sp, #36] ; 0x24
  4152. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4153. 8005af8: f7fe fbdc bl 80042b4 <HAL_ADC_ConfigChannel>
  4154. sConfig.Rank = ADC_REGULAR_RANK_8;
  4155. 8005afc: 2308 movs r3, #8
  4156. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4157. 8005afe: a908 add r1, sp, #32
  4158. 8005b00: 4628 mov r0, r5
  4159. sConfig.Rank = ADC_REGULAR_RANK_8;
  4160. 8005b02: 9309 str r3, [sp, #36] ; 0x24
  4161. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4162. 8005b04: f7fe fbd6 bl 80042b4 <HAL_ADC_ConfigChannel>
  4163. sConfig.Rank = ADC_REGULAR_RANK_9;
  4164. 8005b08: 2309 movs r3, #9
  4165. sConfig.Rank = ADC_REGULAR_RANK_10;
  4166. 8005b0a: 260a movs r6, #10
  4167. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4168. 8005b0c: a908 add r1, sp, #32
  4169. 8005b0e: 4628 mov r0, r5
  4170. sConfig.Rank = ADC_REGULAR_RANK_9;
  4171. 8005b10: 9309 str r3, [sp, #36] ; 0x24
  4172. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4173. 8005b12: f7fe fbcf bl 80042b4 <HAL_ADC_ConfigChannel>
  4174. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4175. 8005b16: a908 add r1, sp, #32
  4176. 8005b18: 4628 mov r0, r5
  4177. sConfig.Rank = ADC_REGULAR_RANK_10;
  4178. 8005b1a: 9609 str r6, [sp, #36] ; 0x24
  4179. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4180. 8005b1c: f7fe fbca bl 80042b4 <HAL_ADC_ConfigChannel>
  4181. sConfig.Rank = ADC_REGULAR_RANK_11;
  4182. 8005b20: 230b movs r3, #11
  4183. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4184. 8005b22: a908 add r1, sp, #32
  4185. 8005b24: 4628 mov r0, r5
  4186. sConfig.Rank = ADC_REGULAR_RANK_11;
  4187. 8005b26: 9309 str r3, [sp, #36] ; 0x24
  4188. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4189. 8005b28: f7fe fbc4 bl 80042b4 <HAL_ADC_ConfigChannel>
  4190. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4191. 8005b2c: a908 add r1, sp, #32
  4192. 8005b2e: 4628 mov r0, r5
  4193. sConfig.Rank = ADC_REGULAR_RANK_12;
  4194. 8005b30: f8cd 8024 str.w r8, [sp, #36] ; 0x24
  4195. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4196. 8005b34: f7fe fbbe bl 80042b4 <HAL_ADC_ConfigChannel>
  4197. sConfig.Rank = ADC_REGULAR_RANK_13;
  4198. 8005b38: 230d movs r3, #13
  4199. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4200. 8005b3a: a908 add r1, sp, #32
  4201. 8005b3c: 4628 mov r0, r5
  4202. sConfig.Rank = ADC_REGULAR_RANK_13;
  4203. 8005b3e: 9309 str r3, [sp, #36] ; 0x24
  4204. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4205. 8005b40: f7fe fbb8 bl 80042b4 <HAL_ADC_ConfigChannel>
  4206. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4207. 8005b44: a908 add r1, sp, #32
  4208. 8005b46: 4628 mov r0, r5
  4209. sConfig.Rank = ADC_REGULAR_RANK_14;
  4210. 8005b48: f8cd a024 str.w sl, [sp, #36] ; 0x24
  4211. if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  4212. 8005b4c: f7fe fbb2 bl 80042b4 <HAL_ADC_ConfigChannel>
  4213. huart1.Init.BaudRate = 115200;
  4214. 8005b50: f44f 33e1 mov.w r3, #115200 ; 0x1c200
  4215. huart1.Instance = USART1;
  4216. 8005b54: 4810 ldr r0, [pc, #64] ; (8005b98 <main+0x2ec>)
  4217. huart1.Init.BaudRate = 115200;
  4218. 8005b56: 4a11 ldr r2, [pc, #68] ; (8005b9c <main+0x2f0>)
  4219. huart1.Init.WordLength = UART_WORDLENGTH_8B;
  4220. 8005b58: 6084 str r4, [r0, #8]
  4221. huart1.Init.BaudRate = 115200;
  4222. 8005b5a: e880 000c stmia.w r0, {r2, r3}
  4223. huart1.Init.StopBits = UART_STOPBITS_1;
  4224. 8005b5e: 60c4 str r4, [r0, #12]
  4225. huart1.Init.Parity = UART_PARITY_NONE;
  4226. 8005b60: 6104 str r4, [r0, #16]
  4227. huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  4228. 8005b62: 6184 str r4, [r0, #24]
  4229. huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  4230. 8005b64: 61c4 str r4, [r0, #28]
  4231. huart1.Init.Mode = UART_MODE_TX_RX;
  4232. 8005b66: f8c0 8014 str.w r8, [r0, #20]
  4233. if (HAL_UART_Init(&huart1) != HAL_OK)
  4234. 8005b6a: f7ff fcd1 bl 8005510 <HAL_UART_Init>
  4235. htim6.Init.Prescaler = 6000-1;
  4236. 8005b6e: f241 736f movw r3, #5999 ; 0x176f
  4237. 8005b72: e015 b.n 8005ba0 <main+0x2f4>
  4238. 8005b74: 40021000 .word 0x40021000
  4239. 8005b78: 40011800 .word 0x40011800
  4240. 8005b7c: 40011000 .word 0x40011000
  4241. 8005b80: 40011c00 .word 0x40011c00
  4242. 8005b84: 40011400 .word 0x40011400
  4243. 8005b88: 40012000 .word 0x40012000
  4244. 8005b8c: 40010c00 .word 0x40010c00
  4245. 8005b90: 200000a8 .word 0x200000a8
  4246. 8005b94: 40012400 .word 0x40012400
  4247. 8005b98: 200000d8 .word 0x200000d8
  4248. 8005b9c: 40013800 .word 0x40013800
  4249. htim6.Instance = TIM6;
  4250. 8005ba0: 4d1c ldr r5, [pc, #112] ; (8005c14 <main+0x368>)
  4251. htim6.Init.Prescaler = 6000-1;
  4252. 8005ba2: 491d ldr r1, [pc, #116] ; (8005c18 <main+0x36c>)
  4253. if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
  4254. 8005ba4: 4628 mov r0, r5
  4255. htim6.Init.Prescaler = 6000-1;
  4256. 8005ba6: e885 000a stmia.w r5, {r1, r3}
  4257. htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
  4258. 8005baa: 60ac str r4, [r5, #8]
  4259. htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  4260. 8005bac: 61ac str r4, [r5, #24]
  4261. TIM_MasterConfigTypeDef sMasterConfig = {0};
  4262. 8005bae: 9408 str r4, [sp, #32]
  4263. 8005bb0: 9409 str r4, [sp, #36] ; 0x24
  4264. htim6.Init.Period = 10;
  4265. 8005bb2: 60ee str r6, [r5, #12]
  4266. if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
  4267. 8005bb4: f7ff fb9a bl 80052ec <HAL_TIM_Base_Init>
  4268. if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
  4269. 8005bb8: a908 add r1, sp, #32
  4270. 8005bba: 4628 mov r0, r5
  4271. sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  4272. 8005bbc: 9408 str r4, [sp, #32]
  4273. sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  4274. 8005bbe: 9409 str r4, [sp, #36] ; 0x24
  4275. if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
  4276. 8005bc0: f7ff fbae bl 8005320 <HAL_TIMEx_MasterConfigSynchronization>
  4277. HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
  4278. 8005bc4: 4622 mov r2, r4
  4279. 8005bc6: 4621 mov r1, r4
  4280. 8005bc8: 2025 movs r0, #37 ; 0x25
  4281. 8005bca: f7fe fcb5 bl 8004538 <HAL_NVIC_SetPriority>
  4282. HAL_NVIC_EnableIRQ(USART1_IRQn);
  4283. 8005bce: 2025 movs r0, #37 ; 0x25
  4284. 8005bd0: f7fe fce6 bl 80045a0 <HAL_NVIC_EnableIRQ>
  4285. HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
  4286. 8005bd4: 4622 mov r2, r4
  4287. 8005bd6: 4621 mov r1, r4
  4288. 8005bd8: 2036 movs r0, #54 ; 0x36
  4289. 8005bda: f7fe fcad bl 8004538 <HAL_NVIC_SetPriority>
  4290. HAL_NVIC_EnableIRQ(TIM6_IRQn);
  4291. 8005bde: 2036 movs r0, #54 ; 0x36
  4292. 8005be0: f7fe fcde bl 80045a0 <HAL_NVIC_EnableIRQ>
  4293. setbuf(stdout, NULL);
  4294. 8005be4: 4b0d ldr r3, [pc, #52] ; (8005c1c <main+0x370>)
  4295. 8005be6: 4621 mov r1, r4
  4296. 8005be8: 681b ldr r3, [r3, #0]
  4297. if(LedTimerCnt > 500){HAL_GPIO_TogglePin(BOOT_LED_GPIO_Port,GPIO_PIN_14);LedTimerCnt = 0;}
  4298. 8005bea: 4c0d ldr r4, [pc, #52] ; (8005c20 <main+0x374>)
  4299. setbuf(stdout, NULL);
  4300. 8005bec: 6898 ldr r0, [r3, #8]
  4301. 8005bee: f000 fa31 bl 8006054 <setbuf>
  4302. printf("UART Start \r\n");
  4303. 8005bf2: 480c ldr r0, [pc, #48] ; (8005c24 <main+0x378>)
  4304. 8005bf4: f000 fa26 bl 8006044 <puts>
  4305. if(LedTimerCnt > 500){HAL_GPIO_TogglePin(BOOT_LED_GPIO_Port,GPIO_PIN_14);LedTimerCnt = 0;}
  4306. 8005bf8: 4d0b ldr r5, [pc, #44] ; (8005c28 <main+0x37c>)
  4307. 8005bfa: 6823 ldr r3, [r4, #0]
  4308. 8005bfc: f5b3 7ffa cmp.w r3, #500 ; 0x1f4
  4309. 8005c00: d9fb bls.n 8005bfa <main+0x34e>
  4310. 8005c02: f44f 4180 mov.w r1, #16384 ; 0x4000
  4311. 8005c06: 4628 mov r0, r5
  4312. 8005c08: f7fe ff67 bl 8004ada <HAL_GPIO_TogglePin>
  4313. 8005c0c: 2300 movs r3, #0
  4314. 8005c0e: 6023 str r3, [r4, #0]
  4315. 8005c10: e7f3 b.n 8005bfa <main+0x34e>
  4316. 8005c12: bf00 nop
  4317. 8005c14: 2000015c .word 0x2000015c
  4318. 8005c18: 40001000 .word 0x40001000
  4319. 8005c1c: 2000000c .word 0x2000000c
  4320. 8005c20: 20000090 .word 0x20000090
  4321. 8005c24: 08006a08 .word 0x08006a08
  4322. 8005c28: 40012000 .word 0x40012000
  4323. 08005c2c <Error_Handler>:
  4324. /**
  4325. * @brief This function is executed in case of error occurrence.
  4326. * @retval None
  4327. */
  4328. void Error_Handler(void)
  4329. {
  4330. 8005c2c: 4770 bx lr
  4331. ...
  4332. 08005c30 <HAL_MspInit>:
  4333. {
  4334. /* USER CODE BEGIN MspInit 0 */
  4335. /* USER CODE END MspInit 0 */
  4336. __HAL_RCC_AFIO_CLK_ENABLE();
  4337. 8005c30: 4b0e ldr r3, [pc, #56] ; (8005c6c <HAL_MspInit+0x3c>)
  4338. {
  4339. 8005c32: b082 sub sp, #8
  4340. __HAL_RCC_AFIO_CLK_ENABLE();
  4341. 8005c34: 699a ldr r2, [r3, #24]
  4342. 8005c36: f042 0201 orr.w r2, r2, #1
  4343. 8005c3a: 619a str r2, [r3, #24]
  4344. 8005c3c: 699a ldr r2, [r3, #24]
  4345. 8005c3e: f002 0201 and.w r2, r2, #1
  4346. 8005c42: 9200 str r2, [sp, #0]
  4347. 8005c44: 9a00 ldr r2, [sp, #0]
  4348. __HAL_RCC_PWR_CLK_ENABLE();
  4349. 8005c46: 69da ldr r2, [r3, #28]
  4350. 8005c48: f042 5280 orr.w r2, r2, #268435456 ; 0x10000000
  4351. 8005c4c: 61da str r2, [r3, #28]
  4352. 8005c4e: 69db ldr r3, [r3, #28]
  4353. /* System interrupt init*/
  4354. /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
  4355. */
  4356. __HAL_AFIO_REMAP_SWJ_NOJTAG();
  4357. 8005c50: 4a07 ldr r2, [pc, #28] ; (8005c70 <HAL_MspInit+0x40>)
  4358. __HAL_RCC_PWR_CLK_ENABLE();
  4359. 8005c52: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
  4360. 8005c56: 9301 str r3, [sp, #4]
  4361. 8005c58: 9b01 ldr r3, [sp, #4]
  4362. __HAL_AFIO_REMAP_SWJ_NOJTAG();
  4363. 8005c5a: 6853 ldr r3, [r2, #4]
  4364. 8005c5c: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000
  4365. 8005c60: f043 7300 orr.w r3, r3, #33554432 ; 0x2000000
  4366. 8005c64: 6053 str r3, [r2, #4]
  4367. /* USER CODE BEGIN MspInit 1 */
  4368. /* USER CODE END MspInit 1 */
  4369. }
  4370. 8005c66: b002 add sp, #8
  4371. 8005c68: 4770 bx lr
  4372. 8005c6a: bf00 nop
  4373. 8005c6c: 40021000 .word 0x40021000
  4374. 8005c70: 40010000 .word 0x40010000
  4375. 08005c74 <HAL_ADC_MspInit>:
  4376. * @param hadc: ADC handle pointer
  4377. * @retval None
  4378. */
  4379. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  4380. {
  4381. GPIO_InitTypeDef GPIO_InitStruct = {0};
  4382. 8005c74: 2210 movs r2, #16
  4383. {
  4384. 8005c76: b530 push {r4, r5, lr}
  4385. 8005c78: 4605 mov r5, r0
  4386. 8005c7a: b089 sub sp, #36 ; 0x24
  4387. GPIO_InitTypeDef GPIO_InitStruct = {0};
  4388. 8005c7c: eb0d 0002 add.w r0, sp, r2
  4389. 8005c80: 2100 movs r1, #0
  4390. 8005c82: f000 f97b bl 8005f7c <memset>
  4391. if(hadc->Instance==ADC1)
  4392. 8005c86: 682a ldr r2, [r5, #0]
  4393. 8005c88: 4b2b ldr r3, [pc, #172] ; (8005d38 <HAL_ADC_MspInit+0xc4>)
  4394. 8005c8a: 429a cmp r2, r3
  4395. 8005c8c: d152 bne.n 8005d34 <HAL_ADC_MspInit+0xc0>
  4396. {
  4397. /* USER CODE BEGIN ADC1_MspInit 0 */
  4398. /* USER CODE END ADC1_MspInit 0 */
  4399. /* Peripheral clock enable */
  4400. __HAL_RCC_ADC1_CLK_ENABLE();
  4401. 8005c8e: f503 436c add.w r3, r3, #60416 ; 0xec00
  4402. 8005c92: 699a ldr r2, [r3, #24]
  4403. PA7 ------> ADC1_IN7
  4404. PB0 ------> ADC1_IN8
  4405. PB1 ------> ADC1_IN9
  4406. */
  4407. GPIO_InitStruct.Pin = DET_3_5G_UL_IN_Pin|DET_3_5G_UL_OUT_Pin|RFU_TEMP_Pin|_28V_DET_Pin;
  4408. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  4409. 8005c94: 2403 movs r4, #3
  4410. __HAL_RCC_ADC1_CLK_ENABLE();
  4411. 8005c96: f442 7200 orr.w r2, r2, #512 ; 0x200
  4412. 8005c9a: 619a str r2, [r3, #24]
  4413. 8005c9c: 699a ldr r2, [r3, #24]
  4414. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  4415. 8005c9e: a904 add r1, sp, #16
  4416. __HAL_RCC_ADC1_CLK_ENABLE();
  4417. 8005ca0: f402 7200 and.w r2, r2, #512 ; 0x200
  4418. 8005ca4: 9200 str r2, [sp, #0]
  4419. 8005ca6: 9a00 ldr r2, [sp, #0]
  4420. __HAL_RCC_GPIOC_CLK_ENABLE();
  4421. 8005ca8: 699a ldr r2, [r3, #24]
  4422. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  4423. 8005caa: 4824 ldr r0, [pc, #144] ; (8005d3c <HAL_ADC_MspInit+0xc8>)
  4424. __HAL_RCC_GPIOC_CLK_ENABLE();
  4425. 8005cac: f042 0210 orr.w r2, r2, #16
  4426. 8005cb0: 619a str r2, [r3, #24]
  4427. 8005cb2: 699a ldr r2, [r3, #24]
  4428. 8005cb4: f002 0210 and.w r2, r2, #16
  4429. 8005cb8: 9201 str r2, [sp, #4]
  4430. 8005cba: 9a01 ldr r2, [sp, #4]
  4431. __HAL_RCC_GPIOA_CLK_ENABLE();
  4432. 8005cbc: 699a ldr r2, [r3, #24]
  4433. 8005cbe: f042 0204 orr.w r2, r2, #4
  4434. 8005cc2: 619a str r2, [r3, #24]
  4435. 8005cc4: 699a ldr r2, [r3, #24]
  4436. 8005cc6: f002 0204 and.w r2, r2, #4
  4437. 8005cca: 9202 str r2, [sp, #8]
  4438. 8005ccc: 9a02 ldr r2, [sp, #8]
  4439. __HAL_RCC_GPIOB_CLK_ENABLE();
  4440. 8005cce: 699a ldr r2, [r3, #24]
  4441. 8005cd0: f042 0208 orr.w r2, r2, #8
  4442. 8005cd4: 619a str r2, [r3, #24]
  4443. 8005cd6: 699b ldr r3, [r3, #24]
  4444. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  4445. 8005cd8: 9405 str r4, [sp, #20]
  4446. __HAL_RCC_GPIOB_CLK_ENABLE();
  4447. 8005cda: f003 0308 and.w r3, r3, #8
  4448. 8005cde: 9303 str r3, [sp, #12]
  4449. 8005ce0: 9b03 ldr r3, [sp, #12]
  4450. GPIO_InitStruct.Pin = DET_3_5G_UL_IN_Pin|DET_3_5G_UL_OUT_Pin|RFU_TEMP_Pin|_28V_DET_Pin;
  4451. 8005ce2: 230f movs r3, #15
  4452. 8005ce4: 9304 str r3, [sp, #16]
  4453. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  4454. 8005ce6: f7fe fe07 bl 80048f8 <HAL_GPIO_Init>
  4455. GPIO_InitStruct.Pin = DET_1_8G_DL_IN_Pin|DET_1_8G_DL_OUT_Pin|DET_1_8G_UL_IN_Pin|DET_1_8G_UL_OUT_Pin
  4456. 8005cea: 23ff movs r3, #255 ; 0xff
  4457. |DET_2_1G_DL_IN_Pin|DET_2_1G_DL_OUT_Pin|DET_2_1G_UL_IN_Pin|DET_2_1G_UL_OUT_Pin;
  4458. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  4459. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4460. 8005cec: a904 add r1, sp, #16
  4461. 8005cee: 4814 ldr r0, [pc, #80] ; (8005d40 <HAL_ADC_MspInit+0xcc>)
  4462. GPIO_InitStruct.Pin = DET_1_8G_DL_IN_Pin|DET_1_8G_DL_OUT_Pin|DET_1_8G_UL_IN_Pin|DET_1_8G_UL_OUT_Pin
  4463. 8005cf0: 9304 str r3, [sp, #16]
  4464. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  4465. 8005cf2: 9405 str r4, [sp, #20]
  4466. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4467. 8005cf4: f7fe fe00 bl 80048f8 <HAL_GPIO_Init>
  4468. GPIO_InitStruct.Pin = DET_3_5G_DL_IN_Pin|DET_3_5G_DL_OUT_Pin;
  4469. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  4470. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  4471. 8005cf8: 4812 ldr r0, [pc, #72] ; (8005d44 <HAL_ADC_MspInit+0xd0>)
  4472. 8005cfa: a904 add r1, sp, #16
  4473. GPIO_InitStruct.Pin = DET_3_5G_DL_IN_Pin|DET_3_5G_DL_OUT_Pin;
  4474. 8005cfc: 9404 str r4, [sp, #16]
  4475. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  4476. 8005cfe: 9405 str r4, [sp, #20]
  4477. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  4478. 8005d00: f7fe fdfa bl 80048f8 <HAL_GPIO_Init>
  4479. /* ADC1 DMA Init */
  4480. /* ADC1 Init */
  4481. hdma_adc1.Instance = DMA1_Channel1;
  4482. hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
  4483. hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
  4484. hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
  4485. 8005d04: 2280 movs r2, #128 ; 0x80
  4486. hdma_adc1.Instance = DMA1_Channel1;
  4487. 8005d06: 4c10 ldr r4, [pc, #64] ; (8005d48 <HAL_ADC_MspInit+0xd4>)
  4488. 8005d08: 4b10 ldr r3, [pc, #64] ; (8005d4c <HAL_ADC_MspInit+0xd8>)
  4489. hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
  4490. 8005d0a: 60e2 str r2, [r4, #12]
  4491. hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
  4492. 8005d0c: f44f 7200 mov.w r2, #512 ; 0x200
  4493. hdma_adc1.Instance = DMA1_Channel1;
  4494. 8005d10: 6023 str r3, [r4, #0]
  4495. hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
  4496. 8005d12: 6122 str r2, [r4, #16]
  4497. hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
  4498. 8005d14: 2300 movs r3, #0
  4499. hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
  4500. 8005d16: f44f 6200 mov.w r2, #2048 ; 0x800
  4501. hdma_adc1.Init.Mode = DMA_NORMAL;
  4502. hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
  4503. if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
  4504. 8005d1a: 4620 mov r0, r4
  4505. hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
  4506. 8005d1c: 6063 str r3, [r4, #4]
  4507. hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
  4508. 8005d1e: 60a3 str r3, [r4, #8]
  4509. hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
  4510. 8005d20: 6162 str r2, [r4, #20]
  4511. hdma_adc1.Init.Mode = DMA_NORMAL;
  4512. 8005d22: 61a3 str r3, [r4, #24]
  4513. hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
  4514. 8005d24: 61e3 str r3, [r4, #28]
  4515. if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
  4516. 8005d26: f7fe fc5d bl 80045e4 <HAL_DMA_Init>
  4517. 8005d2a: b108 cbz r0, 8005d30 <HAL_ADC_MspInit+0xbc>
  4518. {
  4519. Error_Handler();
  4520. 8005d2c: f7ff ff7e bl 8005c2c <Error_Handler>
  4521. }
  4522. __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc1);
  4523. 8005d30: 622c str r4, [r5, #32]
  4524. 8005d32: 6265 str r5, [r4, #36] ; 0x24
  4525. /* USER CODE BEGIN ADC1_MspInit 1 */
  4526. /* USER CODE END ADC1_MspInit 1 */
  4527. }
  4528. }
  4529. 8005d34: b009 add sp, #36 ; 0x24
  4530. 8005d36: bd30 pop {r4, r5, pc}
  4531. 8005d38: 40012400 .word 0x40012400
  4532. 8005d3c: 40011000 .word 0x40011000
  4533. 8005d40: 40010800 .word 0x40010800
  4534. 8005d44: 40010c00 .word 0x40010c00
  4535. 8005d48: 20000118 .word 0x20000118
  4536. 8005d4c: 40020008 .word 0x40020008
  4537. 08005d50 <HAL_TIM_Base_MspInit>:
  4538. * @param htim_base: TIM_Base handle pointer
  4539. * @retval None
  4540. */
  4541. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  4542. {
  4543. if(htim_base->Instance==TIM6)
  4544. 8005d50: 6802 ldr r2, [r0, #0]
  4545. 8005d52: 4b08 ldr r3, [pc, #32] ; (8005d74 <HAL_TIM_Base_MspInit+0x24>)
  4546. {
  4547. 8005d54: b082 sub sp, #8
  4548. if(htim_base->Instance==TIM6)
  4549. 8005d56: 429a cmp r2, r3
  4550. 8005d58: d10a bne.n 8005d70 <HAL_TIM_Base_MspInit+0x20>
  4551. {
  4552. /* USER CODE BEGIN TIM6_MspInit 0 */
  4553. /* USER CODE END TIM6_MspInit 0 */
  4554. /* Peripheral clock enable */
  4555. __HAL_RCC_TIM6_CLK_ENABLE();
  4556. 8005d5a: f503 3300 add.w r3, r3, #131072 ; 0x20000
  4557. 8005d5e: 69da ldr r2, [r3, #28]
  4558. 8005d60: f042 0210 orr.w r2, r2, #16
  4559. 8005d64: 61da str r2, [r3, #28]
  4560. 8005d66: 69db ldr r3, [r3, #28]
  4561. 8005d68: f003 0310 and.w r3, r3, #16
  4562. 8005d6c: 9301 str r3, [sp, #4]
  4563. 8005d6e: 9b01 ldr r3, [sp, #4]
  4564. /* USER CODE BEGIN TIM6_MspInit 1 */
  4565. /* USER CODE END TIM6_MspInit 1 */
  4566. }
  4567. }
  4568. 8005d70: b002 add sp, #8
  4569. 8005d72: 4770 bx lr
  4570. 8005d74: 40001000 .word 0x40001000
  4571. 08005d78 <HAL_UART_MspInit>:
  4572. * This function configures the hardware resources used in this example
  4573. * @param huart: UART handle pointer
  4574. * @retval None
  4575. */
  4576. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  4577. {
  4578. 8005d78: b510 push {r4, lr}
  4579. 8005d7a: 4604 mov r4, r0
  4580. 8005d7c: b086 sub sp, #24
  4581. GPIO_InitTypeDef GPIO_InitStruct = {0};
  4582. 8005d7e: 2210 movs r2, #16
  4583. 8005d80: 2100 movs r1, #0
  4584. 8005d82: a802 add r0, sp, #8
  4585. 8005d84: f000 f8fa bl 8005f7c <memset>
  4586. if(huart->Instance==USART1)
  4587. 8005d88: 6822 ldr r2, [r4, #0]
  4588. 8005d8a: 4b17 ldr r3, [pc, #92] ; (8005de8 <HAL_UART_MspInit+0x70>)
  4589. 8005d8c: 429a cmp r2, r3
  4590. 8005d8e: d128 bne.n 8005de2 <HAL_UART_MspInit+0x6a>
  4591. {
  4592. /* USER CODE BEGIN USART1_MspInit 0 */
  4593. /* USER CODE END USART1_MspInit 0 */
  4594. /* Peripheral clock enable */
  4595. __HAL_RCC_USART1_CLK_ENABLE();
  4596. 8005d90: f503 4358 add.w r3, r3, #55296 ; 0xd800
  4597. 8005d94: 699a ldr r2, [r3, #24]
  4598. PA10 ------> USART1_RX
  4599. */
  4600. GPIO_InitStruct.Pin = GPIO_PIN_9;
  4601. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  4602. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  4603. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4604. 8005d96: a902 add r1, sp, #8
  4605. __HAL_RCC_USART1_CLK_ENABLE();
  4606. 8005d98: f442 4280 orr.w r2, r2, #16384 ; 0x4000
  4607. 8005d9c: 619a str r2, [r3, #24]
  4608. 8005d9e: 699a ldr r2, [r3, #24]
  4609. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4610. 8005da0: 4812 ldr r0, [pc, #72] ; (8005dec <HAL_UART_MspInit+0x74>)
  4611. __HAL_RCC_USART1_CLK_ENABLE();
  4612. 8005da2: f402 4280 and.w r2, r2, #16384 ; 0x4000
  4613. 8005da6: 9200 str r2, [sp, #0]
  4614. 8005da8: 9a00 ldr r2, [sp, #0]
  4615. __HAL_RCC_GPIOA_CLK_ENABLE();
  4616. 8005daa: 699a ldr r2, [r3, #24]
  4617. 8005dac: f042 0204 orr.w r2, r2, #4
  4618. 8005db0: 619a str r2, [r3, #24]
  4619. 8005db2: 699b ldr r3, [r3, #24]
  4620. 8005db4: f003 0304 and.w r3, r3, #4
  4621. 8005db8: 9301 str r3, [sp, #4]
  4622. 8005dba: 9b01 ldr r3, [sp, #4]
  4623. GPIO_InitStruct.Pin = GPIO_PIN_9;
  4624. 8005dbc: f44f 7300 mov.w r3, #512 ; 0x200
  4625. 8005dc0: 9302 str r3, [sp, #8]
  4626. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  4627. 8005dc2: 2302 movs r3, #2
  4628. 8005dc4: 9303 str r3, [sp, #12]
  4629. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  4630. 8005dc6: 2303 movs r3, #3
  4631. 8005dc8: 9305 str r3, [sp, #20]
  4632. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4633. 8005dca: f7fe fd95 bl 80048f8 <HAL_GPIO_Init>
  4634. GPIO_InitStruct.Pin = GPIO_PIN_10;
  4635. 8005dce: f44f 6380 mov.w r3, #1024 ; 0x400
  4636. 8005dd2: 9302 str r3, [sp, #8]
  4637. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  4638. 8005dd4: 2300 movs r3, #0
  4639. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4640. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4641. 8005dd6: a902 add r1, sp, #8
  4642. 8005dd8: 4804 ldr r0, [pc, #16] ; (8005dec <HAL_UART_MspInit+0x74>)
  4643. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  4644. 8005dda: 9303 str r3, [sp, #12]
  4645. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4646. 8005ddc: 9304 str r3, [sp, #16]
  4647. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4648. 8005dde: f7fe fd8b bl 80048f8 <HAL_GPIO_Init>
  4649. /* USER CODE BEGIN USART1_MspInit 1 */
  4650. /* USER CODE END USART1_MspInit 1 */
  4651. }
  4652. }
  4653. 8005de2: b006 add sp, #24
  4654. 8005de4: bd10 pop {r4, pc}
  4655. 8005de6: bf00 nop
  4656. 8005de8: 40013800 .word 0x40013800
  4657. 8005dec: 40010800 .word 0x40010800
  4658. 08005df0 <NMI_Handler>:
  4659. 8005df0: 4770 bx lr
  4660. 08005df2 <HardFault_Handler>:
  4661. /**
  4662. * @brief This function handles Hard fault interrupt.
  4663. */
  4664. void HardFault_Handler(void)
  4665. {
  4666. 8005df2: e7fe b.n 8005df2 <HardFault_Handler>
  4667. 08005df4 <MemManage_Handler>:
  4668. /**
  4669. * @brief This function handles Memory management fault.
  4670. */
  4671. void MemManage_Handler(void)
  4672. {
  4673. 8005df4: e7fe b.n 8005df4 <MemManage_Handler>
  4674. 08005df6 <BusFault_Handler>:
  4675. /**
  4676. * @brief This function handles Prefetch fault, memory access fault.
  4677. */
  4678. void BusFault_Handler(void)
  4679. {
  4680. 8005df6: e7fe b.n 8005df6 <BusFault_Handler>
  4681. 08005df8 <UsageFault_Handler>:
  4682. /**
  4683. * @brief This function handles Undefined instruction or illegal state.
  4684. */
  4685. void UsageFault_Handler(void)
  4686. {
  4687. 8005df8: e7fe b.n 8005df8 <UsageFault_Handler>
  4688. 08005dfa <SVC_Handler>:
  4689. 8005dfa: 4770 bx lr
  4690. 08005dfc <DebugMon_Handler>:
  4691. 8005dfc: 4770 bx lr
  4692. 08005dfe <PendSV_Handler>:
  4693. /**
  4694. * @brief This function handles Pendable request for system service.
  4695. */
  4696. void PendSV_Handler(void)
  4697. {
  4698. 8005dfe: 4770 bx lr
  4699. 08005e00 <SysTick_Handler>:
  4700. void SysTick_Handler(void)
  4701. {
  4702. /* USER CODE BEGIN SysTick_IRQn 0 */
  4703. /* USER CODE END SysTick_IRQn 0 */
  4704. HAL_IncTick();
  4705. 8005e00: f7fe ba46 b.w 8004290 <HAL_IncTick>
  4706. 08005e04 <DMA1_Channel1_IRQHandler>:
  4707. void DMA1_Channel1_IRQHandler(void)
  4708. {
  4709. /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
  4710. /* USER CODE END DMA1_Channel1_IRQn 0 */
  4711. HAL_DMA_IRQHandler(&hdma_adc1);
  4712. 8005e04: 4801 ldr r0, [pc, #4] ; (8005e0c <DMA1_Channel1_IRQHandler+0x8>)
  4713. 8005e06: f7fe bc9b b.w 8004740 <HAL_DMA_IRQHandler>
  4714. 8005e0a: bf00 nop
  4715. 8005e0c: 20000118 .word 0x20000118
  4716. 08005e10 <USART1_IRQHandler>:
  4717. void USART1_IRQHandler(void)
  4718. {
  4719. /* USER CODE BEGIN USART1_IRQn 0 */
  4720. /* USER CODE END USART1_IRQn 0 */
  4721. HAL_UART_IRQHandler(&huart1);
  4722. 8005e10: 4801 ldr r0, [pc, #4] ; (8005e18 <USART1_IRQHandler+0x8>)
  4723. 8005e12: f7ff bc49 b.w 80056a8 <HAL_UART_IRQHandler>
  4724. 8005e16: bf00 nop
  4725. 8005e18: 200000d8 .word 0x200000d8
  4726. 08005e1c <TIM6_IRQHandler>:
  4727. void TIM6_IRQHandler(void)
  4728. {
  4729. /* USER CODE BEGIN TIM6_IRQn 0 */
  4730. /* USER CODE END TIM6_IRQn 0 */
  4731. HAL_TIM_IRQHandler(&htim6);
  4732. 8005e1c: 4801 ldr r0, [pc, #4] ; (8005e24 <TIM6_IRQHandler+0x8>)
  4733. 8005e1e: f7ff b977 b.w 8005110 <HAL_TIM_IRQHandler>
  4734. 8005e22: bf00 nop
  4735. 8005e24: 2000015c .word 0x2000015c
  4736. 08005e28 <_read>:
  4737. _kill(status, -1);
  4738. while (1) {} /* Make sure we hang here */
  4739. }
  4740. __attribute__((weak)) int _read(int file, char *ptr, int len)
  4741. {
  4742. 8005e28: b570 push {r4, r5, r6, lr}
  4743. 8005e2a: 460e mov r6, r1
  4744. 8005e2c: 4615 mov r5, r2
  4745. int DataIdx;
  4746. for (DataIdx = 0; DataIdx < len; DataIdx++)
  4747. 8005e2e: 460c mov r4, r1
  4748. 8005e30: 1ba3 subs r3, r4, r6
  4749. 8005e32: 429d cmp r5, r3
  4750. 8005e34: dc01 bgt.n 8005e3a <_read+0x12>
  4751. {
  4752. *ptr++ = __io_getchar();
  4753. }
  4754. return len;
  4755. }
  4756. 8005e36: 4628 mov r0, r5
  4757. 8005e38: bd70 pop {r4, r5, r6, pc}
  4758. *ptr++ = __io_getchar();
  4759. 8005e3a: f3af 8000 nop.w
  4760. 8005e3e: f804 0b01 strb.w r0, [r4], #1
  4761. 8005e42: e7f5 b.n 8005e30 <_read+0x8>
  4762. 08005e44 <_sbrk>:
  4763. }
  4764. return len;
  4765. }
  4766. caddr_t _sbrk(int incr)
  4767. {
  4768. 8005e44: b508 push {r3, lr}
  4769. extern char end asm("end");
  4770. static char *heap_end;
  4771. char *prev_heap_end;
  4772. if (heap_end == 0)
  4773. 8005e46: 4b0a ldr r3, [pc, #40] ; (8005e70 <_sbrk+0x2c>)
  4774. {
  4775. 8005e48: 4602 mov r2, r0
  4776. if (heap_end == 0)
  4777. 8005e4a: 6819 ldr r1, [r3, #0]
  4778. 8005e4c: b909 cbnz r1, 8005e52 <_sbrk+0xe>
  4779. heap_end = &end;
  4780. 8005e4e: 4909 ldr r1, [pc, #36] ; (8005e74 <_sbrk+0x30>)
  4781. 8005e50: 6019 str r1, [r3, #0]
  4782. prev_heap_end = heap_end;
  4783. if (heap_end + incr > stack_ptr)
  4784. 8005e52: 4669 mov r1, sp
  4785. prev_heap_end = heap_end;
  4786. 8005e54: 6818 ldr r0, [r3, #0]
  4787. if (heap_end + incr > stack_ptr)
  4788. 8005e56: 4402 add r2, r0
  4789. 8005e58: 428a cmp r2, r1
  4790. 8005e5a: d906 bls.n 8005e6a <_sbrk+0x26>
  4791. {
  4792. // write(1, "Heap and stack collision\n", 25);
  4793. // abort();
  4794. errno = ENOMEM;
  4795. 8005e5c: f000 f864 bl 8005f28 <__errno>
  4796. 8005e60: 230c movs r3, #12
  4797. 8005e62: 6003 str r3, [r0, #0]
  4798. return (caddr_t) -1;
  4799. 8005e64: f04f 30ff mov.w r0, #4294967295
  4800. 8005e68: bd08 pop {r3, pc}
  4801. }
  4802. heap_end += incr;
  4803. 8005e6a: 601a str r2, [r3, #0]
  4804. return (caddr_t) prev_heap_end;
  4805. }
  4806. 8005e6c: bd08 pop {r3, pc}
  4807. 8005e6e: bf00 nop
  4808. 8005e70: 20000098 .word 0x20000098
  4809. 8005e74: 200001d8 .word 0x200001d8
  4810. 08005e78 <_close>:
  4811. int _close(int file)
  4812. {
  4813. return -1;
  4814. }
  4815. 8005e78: f04f 30ff mov.w r0, #4294967295
  4816. 8005e7c: 4770 bx lr
  4817. 08005e7e <_fstat>:
  4818. int _fstat(int file, struct stat *st)
  4819. {
  4820. st->st_mode = S_IFCHR;
  4821. 8005e7e: f44f 5300 mov.w r3, #8192 ; 0x2000
  4822. return 0;
  4823. }
  4824. 8005e82: 2000 movs r0, #0
  4825. st->st_mode = S_IFCHR;
  4826. 8005e84: 604b str r3, [r1, #4]
  4827. }
  4828. 8005e86: 4770 bx lr
  4829. 08005e88 <_isatty>:
  4830. int _isatty(int file)
  4831. {
  4832. return 1;
  4833. }
  4834. 8005e88: 2001 movs r0, #1
  4835. 8005e8a: 4770 bx lr
  4836. 08005e8c <_lseek>:
  4837. int _lseek(int file, int ptr, int dir)
  4838. {
  4839. return 0;
  4840. }
  4841. 8005e8c: 2000 movs r0, #0
  4842. 8005e8e: 4770 bx lr
  4843. 08005e90 <SystemInit>:
  4844. */
  4845. void SystemInit (void)
  4846. {
  4847. /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  4848. /* Set HSION bit */
  4849. RCC->CR |= 0x00000001U;
  4850. 8005e90: 4b0e ldr r3, [pc, #56] ; (8005ecc <SystemInit+0x3c>)
  4851. 8005e92: 681a ldr r2, [r3, #0]
  4852. 8005e94: f042 0201 orr.w r2, r2, #1
  4853. 8005e98: 601a str r2, [r3, #0]
  4854. /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
  4855. #if !defined(STM32F105xC) && !defined(STM32F107xC)
  4856. RCC->CFGR &= 0xF8FF0000U;
  4857. 8005e9a: 6859 ldr r1, [r3, #4]
  4858. 8005e9c: 4a0c ldr r2, [pc, #48] ; (8005ed0 <SystemInit+0x40>)
  4859. 8005e9e: 400a ands r2, r1
  4860. 8005ea0: 605a str r2, [r3, #4]
  4861. #else
  4862. RCC->CFGR &= 0xF0FF0000U;
  4863. #endif /* STM32F105xC */
  4864. /* Reset HSEON, CSSON and PLLON bits */
  4865. RCC->CR &= 0xFEF6FFFFU;
  4866. 8005ea2: 681a ldr r2, [r3, #0]
  4867. 8005ea4: f022 7284 bic.w r2, r2, #17301504 ; 0x1080000
  4868. 8005ea8: f422 3280 bic.w r2, r2, #65536 ; 0x10000
  4869. 8005eac: 601a str r2, [r3, #0]
  4870. /* Reset HSEBYP bit */
  4871. RCC->CR &= 0xFFFBFFFFU;
  4872. 8005eae: 681a ldr r2, [r3, #0]
  4873. 8005eb0: f422 2280 bic.w r2, r2, #262144 ; 0x40000
  4874. 8005eb4: 601a str r2, [r3, #0]
  4875. /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
  4876. RCC->CFGR &= 0xFF80FFFFU;
  4877. 8005eb6: 685a ldr r2, [r3, #4]
  4878. 8005eb8: f422 02fe bic.w r2, r2, #8323072 ; 0x7f0000
  4879. 8005ebc: 605a str r2, [r3, #4]
  4880. /* Reset CFGR2 register */
  4881. RCC->CFGR2 = 0x00000000U;
  4882. #else
  4883. /* Disable all interrupts and clear pending bits */
  4884. RCC->CIR = 0x009F0000U;
  4885. 8005ebe: f44f 021f mov.w r2, #10420224 ; 0x9f0000
  4886. 8005ec2: 609a str r2, [r3, #8]
  4887. #endif
  4888. #ifdef VECT_TAB_SRAM
  4889. SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
  4890. #else
  4891. SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
  4892. 8005ec4: 4a03 ldr r2, [pc, #12] ; (8005ed4 <SystemInit+0x44>)
  4893. 8005ec6: 4b04 ldr r3, [pc, #16] ; (8005ed8 <SystemInit+0x48>)
  4894. 8005ec8: 609a str r2, [r3, #8]
  4895. 8005eca: 4770 bx lr
  4896. 8005ecc: 40021000 .word 0x40021000
  4897. 8005ed0: f8ff0000 .word 0xf8ff0000
  4898. 8005ed4: 08004000 .word 0x08004000
  4899. 8005ed8: e000ed00 .word 0xe000ed00
  4900. 08005edc <Reset_Handler>:
  4901. .weak Reset_Handler
  4902. .type Reset_Handler, %function
  4903. Reset_Handler:
  4904. /* Copy the data segment initializers from flash to SRAM */
  4905. movs r1, #0
  4906. 8005edc: 2100 movs r1, #0
  4907. b LoopCopyDataInit
  4908. 8005ede: e003 b.n 8005ee8 <LoopCopyDataInit>
  4909. 08005ee0 <CopyDataInit>:
  4910. CopyDataInit:
  4911. ldr r3, =_sidata
  4912. 8005ee0: 4b0b ldr r3, [pc, #44] ; (8005f10 <LoopFillZerobss+0x14>)
  4913. ldr r3, [r3, r1]
  4914. 8005ee2: 585b ldr r3, [r3, r1]
  4915. str r3, [r0, r1]
  4916. 8005ee4: 5043 str r3, [r0, r1]
  4917. adds r1, r1, #4
  4918. 8005ee6: 3104 adds r1, #4
  4919. 08005ee8 <LoopCopyDataInit>:
  4920. LoopCopyDataInit:
  4921. ldr r0, =_sdata
  4922. 8005ee8: 480a ldr r0, [pc, #40] ; (8005f14 <LoopFillZerobss+0x18>)
  4923. ldr r3, =_edata
  4924. 8005eea: 4b0b ldr r3, [pc, #44] ; (8005f18 <LoopFillZerobss+0x1c>)
  4925. adds r2, r0, r1
  4926. 8005eec: 1842 adds r2, r0, r1
  4927. cmp r2, r3
  4928. 8005eee: 429a cmp r2, r3
  4929. bcc CopyDataInit
  4930. 8005ef0: d3f6 bcc.n 8005ee0 <CopyDataInit>
  4931. ldr r2, =_sbss
  4932. 8005ef2: 4a0a ldr r2, [pc, #40] ; (8005f1c <LoopFillZerobss+0x20>)
  4933. b LoopFillZerobss
  4934. 8005ef4: e002 b.n 8005efc <LoopFillZerobss>
  4935. 08005ef6 <FillZerobss>:
  4936. /* Zero fill the bss segment. */
  4937. FillZerobss:
  4938. movs r3, #0
  4939. 8005ef6: 2300 movs r3, #0
  4940. str r3, [r2], #4
  4941. 8005ef8: f842 3b04 str.w r3, [r2], #4
  4942. 08005efc <LoopFillZerobss>:
  4943. LoopFillZerobss:
  4944. ldr r3, = _ebss
  4945. 8005efc: 4b08 ldr r3, [pc, #32] ; (8005f20 <LoopFillZerobss+0x24>)
  4946. cmp r2, r3
  4947. 8005efe: 429a cmp r2, r3
  4948. bcc FillZerobss
  4949. 8005f00: d3f9 bcc.n 8005ef6 <FillZerobss>
  4950. /* Call the clock system intitialization function.*/
  4951. bl SystemInit
  4952. 8005f02: f7ff ffc5 bl 8005e90 <SystemInit>
  4953. /* Call static constructors */
  4954. bl __libc_init_array
  4955. 8005f06: f000 f815 bl 8005f34 <__libc_init_array>
  4956. /* Call the application's entry point.*/
  4957. bl main
  4958. 8005f0a: f7ff fccf bl 80058ac <main>
  4959. bx lr
  4960. 8005f0e: 4770 bx lr
  4961. ldr r3, =_sidata
  4962. 8005f10: 08006a9c .word 0x08006a9c
  4963. ldr r0, =_sdata
  4964. 8005f14: 20000000 .word 0x20000000
  4965. ldr r3, =_edata
  4966. 8005f18: 20000070 .word 0x20000070
  4967. ldr r2, =_sbss
  4968. 8005f1c: 20000070 .word 0x20000070
  4969. ldr r3, = _ebss
  4970. 8005f20: 200001d8 .word 0x200001d8
  4971. 08005f24 <ADC1_2_IRQHandler>:
  4972. * @retval : None
  4973. */
  4974. .section .text.Default_Handler,"ax",%progbits
  4975. Default_Handler:
  4976. Infinite_Loop:
  4977. b Infinite_Loop
  4978. 8005f24: e7fe b.n 8005f24 <ADC1_2_IRQHandler>
  4979. ...
  4980. 08005f28 <__errno>:
  4981. 8005f28: 4b01 ldr r3, [pc, #4] ; (8005f30 <__errno+0x8>)
  4982. 8005f2a: 6818 ldr r0, [r3, #0]
  4983. 8005f2c: 4770 bx lr
  4984. 8005f2e: bf00 nop
  4985. 8005f30: 2000000c .word 0x2000000c
  4986. 08005f34 <__libc_init_array>:
  4987. 8005f34: b570 push {r4, r5, r6, lr}
  4988. 8005f36: 2500 movs r5, #0
  4989. 8005f38: 4e0c ldr r6, [pc, #48] ; (8005f6c <__libc_init_array+0x38>)
  4990. 8005f3a: 4c0d ldr r4, [pc, #52] ; (8005f70 <__libc_init_array+0x3c>)
  4991. 8005f3c: 1ba4 subs r4, r4, r6
  4992. 8005f3e: 10a4 asrs r4, r4, #2
  4993. 8005f40: 42a5 cmp r5, r4
  4994. 8005f42: d109 bne.n 8005f58 <__libc_init_array+0x24>
  4995. 8005f44: f000 fd4c bl 80069e0 <_init>
  4996. 8005f48: 2500 movs r5, #0
  4997. 8005f4a: 4e0a ldr r6, [pc, #40] ; (8005f74 <__libc_init_array+0x40>)
  4998. 8005f4c: 4c0a ldr r4, [pc, #40] ; (8005f78 <__libc_init_array+0x44>)
  4999. 8005f4e: 1ba4 subs r4, r4, r6
  5000. 8005f50: 10a4 asrs r4, r4, #2
  5001. 8005f52: 42a5 cmp r5, r4
  5002. 8005f54: d105 bne.n 8005f62 <__libc_init_array+0x2e>
  5003. 8005f56: bd70 pop {r4, r5, r6, pc}
  5004. 8005f58: f856 3025 ldr.w r3, [r6, r5, lsl #2]
  5005. 8005f5c: 4798 blx r3
  5006. 8005f5e: 3501 adds r5, #1
  5007. 8005f60: e7ee b.n 8005f40 <__libc_init_array+0xc>
  5008. 8005f62: f856 3025 ldr.w r3, [r6, r5, lsl #2]
  5009. 8005f66: 4798 blx r3
  5010. 8005f68: 3501 adds r5, #1
  5011. 8005f6a: e7f2 b.n 8005f52 <__libc_init_array+0x1e>
  5012. 8005f6c: 08006a94 .word 0x08006a94
  5013. 8005f70: 08006a94 .word 0x08006a94
  5014. 8005f74: 08006a94 .word 0x08006a94
  5015. 8005f78: 08006a98 .word 0x08006a98
  5016. 08005f7c <memset>:
  5017. 8005f7c: 4603 mov r3, r0
  5018. 8005f7e: 4402 add r2, r0
  5019. 8005f80: 4293 cmp r3, r2
  5020. 8005f82: d100 bne.n 8005f86 <memset+0xa>
  5021. 8005f84: 4770 bx lr
  5022. 8005f86: f803 1b01 strb.w r1, [r3], #1
  5023. 8005f8a: e7f9 b.n 8005f80 <memset+0x4>
  5024. 08005f8c <_puts_r>:
  5025. 8005f8c: b570 push {r4, r5, r6, lr}
  5026. 8005f8e: 460e mov r6, r1
  5027. 8005f90: 4605 mov r5, r0
  5028. 8005f92: b118 cbz r0, 8005f9c <_puts_r+0x10>
  5029. 8005f94: 6983 ldr r3, [r0, #24]
  5030. 8005f96: b90b cbnz r3, 8005f9c <_puts_r+0x10>
  5031. 8005f98: f000 fac4 bl 8006524 <__sinit>
  5032. 8005f9c: 69ab ldr r3, [r5, #24]
  5033. 8005f9e: 68ac ldr r4, [r5, #8]
  5034. 8005fa0: b913 cbnz r3, 8005fa8 <_puts_r+0x1c>
  5035. 8005fa2: 4628 mov r0, r5
  5036. 8005fa4: f000 fabe bl 8006524 <__sinit>
  5037. 8005fa8: 4b23 ldr r3, [pc, #140] ; (8006038 <_puts_r+0xac>)
  5038. 8005faa: 429c cmp r4, r3
  5039. 8005fac: d117 bne.n 8005fde <_puts_r+0x52>
  5040. 8005fae: 686c ldr r4, [r5, #4]
  5041. 8005fb0: 89a3 ldrh r3, [r4, #12]
  5042. 8005fb2: 071b lsls r3, r3, #28
  5043. 8005fb4: d51d bpl.n 8005ff2 <_puts_r+0x66>
  5044. 8005fb6: 6923 ldr r3, [r4, #16]
  5045. 8005fb8: b1db cbz r3, 8005ff2 <_puts_r+0x66>
  5046. 8005fba: 3e01 subs r6, #1
  5047. 8005fbc: 68a3 ldr r3, [r4, #8]
  5048. 8005fbe: f816 1f01 ldrb.w r1, [r6, #1]!
  5049. 8005fc2: 3b01 subs r3, #1
  5050. 8005fc4: 60a3 str r3, [r4, #8]
  5051. 8005fc6: b9e9 cbnz r1, 8006004 <_puts_r+0x78>
  5052. 8005fc8: 2b00 cmp r3, #0
  5053. 8005fca: da2e bge.n 800602a <_puts_r+0x9e>
  5054. 8005fcc: 4622 mov r2, r4
  5055. 8005fce: 210a movs r1, #10
  5056. 8005fd0: 4628 mov r0, r5
  5057. 8005fd2: f000 f8f5 bl 80061c0 <__swbuf_r>
  5058. 8005fd6: 3001 adds r0, #1
  5059. 8005fd8: d011 beq.n 8005ffe <_puts_r+0x72>
  5060. 8005fda: 200a movs r0, #10
  5061. 8005fdc: bd70 pop {r4, r5, r6, pc}
  5062. 8005fde: 4b17 ldr r3, [pc, #92] ; (800603c <_puts_r+0xb0>)
  5063. 8005fe0: 429c cmp r4, r3
  5064. 8005fe2: d101 bne.n 8005fe8 <_puts_r+0x5c>
  5065. 8005fe4: 68ac ldr r4, [r5, #8]
  5066. 8005fe6: e7e3 b.n 8005fb0 <_puts_r+0x24>
  5067. 8005fe8: 4b15 ldr r3, [pc, #84] ; (8006040 <_puts_r+0xb4>)
  5068. 8005fea: 429c cmp r4, r3
  5069. 8005fec: bf08 it eq
  5070. 8005fee: 68ec ldreq r4, [r5, #12]
  5071. 8005ff0: e7de b.n 8005fb0 <_puts_r+0x24>
  5072. 8005ff2: 4621 mov r1, r4
  5073. 8005ff4: 4628 mov r0, r5
  5074. 8005ff6: f000 f935 bl 8006264 <__swsetup_r>
  5075. 8005ffa: 2800 cmp r0, #0
  5076. 8005ffc: d0dd beq.n 8005fba <_puts_r+0x2e>
  5077. 8005ffe: f04f 30ff mov.w r0, #4294967295
  5078. 8006002: bd70 pop {r4, r5, r6, pc}
  5079. 8006004: 2b00 cmp r3, #0
  5080. 8006006: da04 bge.n 8006012 <_puts_r+0x86>
  5081. 8006008: 69a2 ldr r2, [r4, #24]
  5082. 800600a: 4293 cmp r3, r2
  5083. 800600c: db06 blt.n 800601c <_puts_r+0x90>
  5084. 800600e: 290a cmp r1, #10
  5085. 8006010: d004 beq.n 800601c <_puts_r+0x90>
  5086. 8006012: 6823 ldr r3, [r4, #0]
  5087. 8006014: 1c5a adds r2, r3, #1
  5088. 8006016: 6022 str r2, [r4, #0]
  5089. 8006018: 7019 strb r1, [r3, #0]
  5090. 800601a: e7cf b.n 8005fbc <_puts_r+0x30>
  5091. 800601c: 4622 mov r2, r4
  5092. 800601e: 4628 mov r0, r5
  5093. 8006020: f000 f8ce bl 80061c0 <__swbuf_r>
  5094. 8006024: 3001 adds r0, #1
  5095. 8006026: d1c9 bne.n 8005fbc <_puts_r+0x30>
  5096. 8006028: e7e9 b.n 8005ffe <_puts_r+0x72>
  5097. 800602a: 200a movs r0, #10
  5098. 800602c: 6823 ldr r3, [r4, #0]
  5099. 800602e: 1c5a adds r2, r3, #1
  5100. 8006030: 6022 str r2, [r4, #0]
  5101. 8006032: 7018 strb r0, [r3, #0]
  5102. 8006034: bd70 pop {r4, r5, r6, pc}
  5103. 8006036: bf00 nop
  5104. 8006038: 08006a54 .word 0x08006a54
  5105. 800603c: 08006a74 .word 0x08006a74
  5106. 8006040: 08006a34 .word 0x08006a34
  5107. 08006044 <puts>:
  5108. 8006044: 4b02 ldr r3, [pc, #8] ; (8006050 <puts+0xc>)
  5109. 8006046: 4601 mov r1, r0
  5110. 8006048: 6818 ldr r0, [r3, #0]
  5111. 800604a: f7ff bf9f b.w 8005f8c <_puts_r>
  5112. 800604e: bf00 nop
  5113. 8006050: 2000000c .word 0x2000000c
  5114. 08006054 <setbuf>:
  5115. 8006054: 2900 cmp r1, #0
  5116. 8006056: f44f 6380 mov.w r3, #1024 ; 0x400
  5117. 800605a: bf0c ite eq
  5118. 800605c: 2202 moveq r2, #2
  5119. 800605e: 2200 movne r2, #0
  5120. 8006060: f000 b800 b.w 8006064 <setvbuf>
  5121. 08006064 <setvbuf>:
  5122. 8006064: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
  5123. 8006068: 461d mov r5, r3
  5124. 800606a: 4b51 ldr r3, [pc, #324] ; (80061b0 <setvbuf+0x14c>)
  5125. 800606c: 4604 mov r4, r0
  5126. 800606e: 681e ldr r6, [r3, #0]
  5127. 8006070: 460f mov r7, r1
  5128. 8006072: 4690 mov r8, r2
  5129. 8006074: b126 cbz r6, 8006080 <setvbuf+0x1c>
  5130. 8006076: 69b3 ldr r3, [r6, #24]
  5131. 8006078: b913 cbnz r3, 8006080 <setvbuf+0x1c>
  5132. 800607a: 4630 mov r0, r6
  5133. 800607c: f000 fa52 bl 8006524 <__sinit>
  5134. 8006080: 4b4c ldr r3, [pc, #304] ; (80061b4 <setvbuf+0x150>)
  5135. 8006082: 429c cmp r4, r3
  5136. 8006084: d152 bne.n 800612c <setvbuf+0xc8>
  5137. 8006086: 6874 ldr r4, [r6, #4]
  5138. 8006088: f1b8 0f02 cmp.w r8, #2
  5139. 800608c: d006 beq.n 800609c <setvbuf+0x38>
  5140. 800608e: f1b8 0f01 cmp.w r8, #1
  5141. 8006092: f200 8089 bhi.w 80061a8 <setvbuf+0x144>
  5142. 8006096: 2d00 cmp r5, #0
  5143. 8006098: f2c0 8086 blt.w 80061a8 <setvbuf+0x144>
  5144. 800609c: 4621 mov r1, r4
  5145. 800609e: 4630 mov r0, r6
  5146. 80060a0: f000 f9d6 bl 8006450 <_fflush_r>
  5147. 80060a4: 6b61 ldr r1, [r4, #52] ; 0x34
  5148. 80060a6: b141 cbz r1, 80060ba <setvbuf+0x56>
  5149. 80060a8: f104 0344 add.w r3, r4, #68 ; 0x44
  5150. 80060ac: 4299 cmp r1, r3
  5151. 80060ae: d002 beq.n 80060b6 <setvbuf+0x52>
  5152. 80060b0: 4630 mov r0, r6
  5153. 80060b2: f000 fb2d bl 8006710 <_free_r>
  5154. 80060b6: 2300 movs r3, #0
  5155. 80060b8: 6363 str r3, [r4, #52] ; 0x34
  5156. 80060ba: 2300 movs r3, #0
  5157. 80060bc: 61a3 str r3, [r4, #24]
  5158. 80060be: 6063 str r3, [r4, #4]
  5159. 80060c0: 89a3 ldrh r3, [r4, #12]
  5160. 80060c2: 061b lsls r3, r3, #24
  5161. 80060c4: d503 bpl.n 80060ce <setvbuf+0x6a>
  5162. 80060c6: 6921 ldr r1, [r4, #16]
  5163. 80060c8: 4630 mov r0, r6
  5164. 80060ca: f000 fb21 bl 8006710 <_free_r>
  5165. 80060ce: 89a3 ldrh r3, [r4, #12]
  5166. 80060d0: f1b8 0f02 cmp.w r8, #2
  5167. 80060d4: f423 634a bic.w r3, r3, #3232 ; 0xca0
  5168. 80060d8: f023 0303 bic.w r3, r3, #3
  5169. 80060dc: 81a3 strh r3, [r4, #12]
  5170. 80060de: d05d beq.n 800619c <setvbuf+0x138>
  5171. 80060e0: ab01 add r3, sp, #4
  5172. 80060e2: 466a mov r2, sp
  5173. 80060e4: 4621 mov r1, r4
  5174. 80060e6: 4630 mov r0, r6
  5175. 80060e8: f000 faa6 bl 8006638 <__swhatbuf_r>
  5176. 80060ec: 89a3 ldrh r3, [r4, #12]
  5177. 80060ee: 4318 orrs r0, r3
  5178. 80060f0: 81a0 strh r0, [r4, #12]
  5179. 80060f2: bb2d cbnz r5, 8006140 <setvbuf+0xdc>
  5180. 80060f4: 9d00 ldr r5, [sp, #0]
  5181. 80060f6: 4628 mov r0, r5
  5182. 80060f8: f000 fb02 bl 8006700 <malloc>
  5183. 80060fc: 4607 mov r7, r0
  5184. 80060fe: 2800 cmp r0, #0
  5185. 8006100: d14e bne.n 80061a0 <setvbuf+0x13c>
  5186. 8006102: f8dd 9000 ldr.w r9, [sp]
  5187. 8006106: 45a9 cmp r9, r5
  5188. 8006108: d13c bne.n 8006184 <setvbuf+0x120>
  5189. 800610a: f04f 30ff mov.w r0, #4294967295
  5190. 800610e: 89a3 ldrh r3, [r4, #12]
  5191. 8006110: f043 0302 orr.w r3, r3, #2
  5192. 8006114: 81a3 strh r3, [r4, #12]
  5193. 8006116: 2300 movs r3, #0
  5194. 8006118: 60a3 str r3, [r4, #8]
  5195. 800611a: f104 0347 add.w r3, r4, #71 ; 0x47
  5196. 800611e: 6023 str r3, [r4, #0]
  5197. 8006120: 6123 str r3, [r4, #16]
  5198. 8006122: 2301 movs r3, #1
  5199. 8006124: 6163 str r3, [r4, #20]
  5200. 8006126: b003 add sp, #12
  5201. 8006128: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
  5202. 800612c: 4b22 ldr r3, [pc, #136] ; (80061b8 <setvbuf+0x154>)
  5203. 800612e: 429c cmp r4, r3
  5204. 8006130: d101 bne.n 8006136 <setvbuf+0xd2>
  5205. 8006132: 68b4 ldr r4, [r6, #8]
  5206. 8006134: e7a8 b.n 8006088 <setvbuf+0x24>
  5207. 8006136: 4b21 ldr r3, [pc, #132] ; (80061bc <setvbuf+0x158>)
  5208. 8006138: 429c cmp r4, r3
  5209. 800613a: bf08 it eq
  5210. 800613c: 68f4 ldreq r4, [r6, #12]
  5211. 800613e: e7a3 b.n 8006088 <setvbuf+0x24>
  5212. 8006140: 2f00 cmp r7, #0
  5213. 8006142: d0d8 beq.n 80060f6 <setvbuf+0x92>
  5214. 8006144: 69b3 ldr r3, [r6, #24]
  5215. 8006146: b913 cbnz r3, 800614e <setvbuf+0xea>
  5216. 8006148: 4630 mov r0, r6
  5217. 800614a: f000 f9eb bl 8006524 <__sinit>
  5218. 800614e: f1b8 0f01 cmp.w r8, #1
  5219. 8006152: bf08 it eq
  5220. 8006154: 89a3 ldrheq r3, [r4, #12]
  5221. 8006156: 6027 str r7, [r4, #0]
  5222. 8006158: bf04 itt eq
  5223. 800615a: f043 0301 orreq.w r3, r3, #1
  5224. 800615e: 81a3 strheq r3, [r4, #12]
  5225. 8006160: 89a3 ldrh r3, [r4, #12]
  5226. 8006162: 6127 str r7, [r4, #16]
  5227. 8006164: f013 0008 ands.w r0, r3, #8
  5228. 8006168: 6165 str r5, [r4, #20]
  5229. 800616a: d01b beq.n 80061a4 <setvbuf+0x140>
  5230. 800616c: f013 0001 ands.w r0, r3, #1
  5231. 8006170: f04f 0300 mov.w r3, #0
  5232. 8006174: bf1f itttt ne
  5233. 8006176: 426d negne r5, r5
  5234. 8006178: 60a3 strne r3, [r4, #8]
  5235. 800617a: 61a5 strne r5, [r4, #24]
  5236. 800617c: 4618 movne r0, r3
  5237. 800617e: bf08 it eq
  5238. 8006180: 60a5 streq r5, [r4, #8]
  5239. 8006182: e7d0 b.n 8006126 <setvbuf+0xc2>
  5240. 8006184: 4648 mov r0, r9
  5241. 8006186: f000 fabb bl 8006700 <malloc>
  5242. 800618a: 4607 mov r7, r0
  5243. 800618c: 2800 cmp r0, #0
  5244. 800618e: d0bc beq.n 800610a <setvbuf+0xa6>
  5245. 8006190: 89a3 ldrh r3, [r4, #12]
  5246. 8006192: 464d mov r5, r9
  5247. 8006194: f043 0380 orr.w r3, r3, #128 ; 0x80
  5248. 8006198: 81a3 strh r3, [r4, #12]
  5249. 800619a: e7d3 b.n 8006144 <setvbuf+0xe0>
  5250. 800619c: 2000 movs r0, #0
  5251. 800619e: e7b6 b.n 800610e <setvbuf+0xaa>
  5252. 80061a0: 46a9 mov r9, r5
  5253. 80061a2: e7f5 b.n 8006190 <setvbuf+0x12c>
  5254. 80061a4: 60a0 str r0, [r4, #8]
  5255. 80061a6: e7be b.n 8006126 <setvbuf+0xc2>
  5256. 80061a8: f04f 30ff mov.w r0, #4294967295
  5257. 80061ac: e7bb b.n 8006126 <setvbuf+0xc2>
  5258. 80061ae: bf00 nop
  5259. 80061b0: 2000000c .word 0x2000000c
  5260. 80061b4: 08006a54 .word 0x08006a54
  5261. 80061b8: 08006a74 .word 0x08006a74
  5262. 80061bc: 08006a34 .word 0x08006a34
  5263. 080061c0 <__swbuf_r>:
  5264. 80061c0: b5f8 push {r3, r4, r5, r6, r7, lr}
  5265. 80061c2: 460e mov r6, r1
  5266. 80061c4: 4614 mov r4, r2
  5267. 80061c6: 4605 mov r5, r0
  5268. 80061c8: b118 cbz r0, 80061d2 <__swbuf_r+0x12>
  5269. 80061ca: 6983 ldr r3, [r0, #24]
  5270. 80061cc: b90b cbnz r3, 80061d2 <__swbuf_r+0x12>
  5271. 80061ce: f000 f9a9 bl 8006524 <__sinit>
  5272. 80061d2: 4b21 ldr r3, [pc, #132] ; (8006258 <__swbuf_r+0x98>)
  5273. 80061d4: 429c cmp r4, r3
  5274. 80061d6: d12a bne.n 800622e <__swbuf_r+0x6e>
  5275. 80061d8: 686c ldr r4, [r5, #4]
  5276. 80061da: 69a3 ldr r3, [r4, #24]
  5277. 80061dc: 60a3 str r3, [r4, #8]
  5278. 80061de: 89a3 ldrh r3, [r4, #12]
  5279. 80061e0: 071a lsls r2, r3, #28
  5280. 80061e2: d52e bpl.n 8006242 <__swbuf_r+0x82>
  5281. 80061e4: 6923 ldr r3, [r4, #16]
  5282. 80061e6: b363 cbz r3, 8006242 <__swbuf_r+0x82>
  5283. 80061e8: 6923 ldr r3, [r4, #16]
  5284. 80061ea: 6820 ldr r0, [r4, #0]
  5285. 80061ec: b2f6 uxtb r6, r6
  5286. 80061ee: 1ac0 subs r0, r0, r3
  5287. 80061f0: 6963 ldr r3, [r4, #20]
  5288. 80061f2: 4637 mov r7, r6
  5289. 80061f4: 4298 cmp r0, r3
  5290. 80061f6: db04 blt.n 8006202 <__swbuf_r+0x42>
  5291. 80061f8: 4621 mov r1, r4
  5292. 80061fa: 4628 mov r0, r5
  5293. 80061fc: f000 f928 bl 8006450 <_fflush_r>
  5294. 8006200: bb28 cbnz r0, 800624e <__swbuf_r+0x8e>
  5295. 8006202: 68a3 ldr r3, [r4, #8]
  5296. 8006204: 3001 adds r0, #1
  5297. 8006206: 3b01 subs r3, #1
  5298. 8006208: 60a3 str r3, [r4, #8]
  5299. 800620a: 6823 ldr r3, [r4, #0]
  5300. 800620c: 1c5a adds r2, r3, #1
  5301. 800620e: 6022 str r2, [r4, #0]
  5302. 8006210: 701e strb r6, [r3, #0]
  5303. 8006212: 6963 ldr r3, [r4, #20]
  5304. 8006214: 4298 cmp r0, r3
  5305. 8006216: d004 beq.n 8006222 <__swbuf_r+0x62>
  5306. 8006218: 89a3 ldrh r3, [r4, #12]
  5307. 800621a: 07db lsls r3, r3, #31
  5308. 800621c: d519 bpl.n 8006252 <__swbuf_r+0x92>
  5309. 800621e: 2e0a cmp r6, #10
  5310. 8006220: d117 bne.n 8006252 <__swbuf_r+0x92>
  5311. 8006222: 4621 mov r1, r4
  5312. 8006224: 4628 mov r0, r5
  5313. 8006226: f000 f913 bl 8006450 <_fflush_r>
  5314. 800622a: b190 cbz r0, 8006252 <__swbuf_r+0x92>
  5315. 800622c: e00f b.n 800624e <__swbuf_r+0x8e>
  5316. 800622e: 4b0b ldr r3, [pc, #44] ; (800625c <__swbuf_r+0x9c>)
  5317. 8006230: 429c cmp r4, r3
  5318. 8006232: d101 bne.n 8006238 <__swbuf_r+0x78>
  5319. 8006234: 68ac ldr r4, [r5, #8]
  5320. 8006236: e7d0 b.n 80061da <__swbuf_r+0x1a>
  5321. 8006238: 4b09 ldr r3, [pc, #36] ; (8006260 <__swbuf_r+0xa0>)
  5322. 800623a: 429c cmp r4, r3
  5323. 800623c: bf08 it eq
  5324. 800623e: 68ec ldreq r4, [r5, #12]
  5325. 8006240: e7cb b.n 80061da <__swbuf_r+0x1a>
  5326. 8006242: 4621 mov r1, r4
  5327. 8006244: 4628 mov r0, r5
  5328. 8006246: f000 f80d bl 8006264 <__swsetup_r>
  5329. 800624a: 2800 cmp r0, #0
  5330. 800624c: d0cc beq.n 80061e8 <__swbuf_r+0x28>
  5331. 800624e: f04f 37ff mov.w r7, #4294967295
  5332. 8006252: 4638 mov r0, r7
  5333. 8006254: bdf8 pop {r3, r4, r5, r6, r7, pc}
  5334. 8006256: bf00 nop
  5335. 8006258: 08006a54 .word 0x08006a54
  5336. 800625c: 08006a74 .word 0x08006a74
  5337. 8006260: 08006a34 .word 0x08006a34
  5338. 08006264 <__swsetup_r>:
  5339. 8006264: 4b32 ldr r3, [pc, #200] ; (8006330 <__swsetup_r+0xcc>)
  5340. 8006266: b570 push {r4, r5, r6, lr}
  5341. 8006268: 681d ldr r5, [r3, #0]
  5342. 800626a: 4606 mov r6, r0
  5343. 800626c: 460c mov r4, r1
  5344. 800626e: b125 cbz r5, 800627a <__swsetup_r+0x16>
  5345. 8006270: 69ab ldr r3, [r5, #24]
  5346. 8006272: b913 cbnz r3, 800627a <__swsetup_r+0x16>
  5347. 8006274: 4628 mov r0, r5
  5348. 8006276: f000 f955 bl 8006524 <__sinit>
  5349. 800627a: 4b2e ldr r3, [pc, #184] ; (8006334 <__swsetup_r+0xd0>)
  5350. 800627c: 429c cmp r4, r3
  5351. 800627e: d10f bne.n 80062a0 <__swsetup_r+0x3c>
  5352. 8006280: 686c ldr r4, [r5, #4]
  5353. 8006282: f9b4 300c ldrsh.w r3, [r4, #12]
  5354. 8006286: b29a uxth r2, r3
  5355. 8006288: 0715 lsls r5, r2, #28
  5356. 800628a: d42c bmi.n 80062e6 <__swsetup_r+0x82>
  5357. 800628c: 06d0 lsls r0, r2, #27
  5358. 800628e: d411 bmi.n 80062b4 <__swsetup_r+0x50>
  5359. 8006290: 2209 movs r2, #9
  5360. 8006292: 6032 str r2, [r6, #0]
  5361. 8006294: f043 0340 orr.w r3, r3, #64 ; 0x40
  5362. 8006298: 81a3 strh r3, [r4, #12]
  5363. 800629a: f04f 30ff mov.w r0, #4294967295
  5364. 800629e: bd70 pop {r4, r5, r6, pc}
  5365. 80062a0: 4b25 ldr r3, [pc, #148] ; (8006338 <__swsetup_r+0xd4>)
  5366. 80062a2: 429c cmp r4, r3
  5367. 80062a4: d101 bne.n 80062aa <__swsetup_r+0x46>
  5368. 80062a6: 68ac ldr r4, [r5, #8]
  5369. 80062a8: e7eb b.n 8006282 <__swsetup_r+0x1e>
  5370. 80062aa: 4b24 ldr r3, [pc, #144] ; (800633c <__swsetup_r+0xd8>)
  5371. 80062ac: 429c cmp r4, r3
  5372. 80062ae: bf08 it eq
  5373. 80062b0: 68ec ldreq r4, [r5, #12]
  5374. 80062b2: e7e6 b.n 8006282 <__swsetup_r+0x1e>
  5375. 80062b4: 0751 lsls r1, r2, #29
  5376. 80062b6: d512 bpl.n 80062de <__swsetup_r+0x7a>
  5377. 80062b8: 6b61 ldr r1, [r4, #52] ; 0x34
  5378. 80062ba: b141 cbz r1, 80062ce <__swsetup_r+0x6a>
  5379. 80062bc: f104 0344 add.w r3, r4, #68 ; 0x44
  5380. 80062c0: 4299 cmp r1, r3
  5381. 80062c2: d002 beq.n 80062ca <__swsetup_r+0x66>
  5382. 80062c4: 4630 mov r0, r6
  5383. 80062c6: f000 fa23 bl 8006710 <_free_r>
  5384. 80062ca: 2300 movs r3, #0
  5385. 80062cc: 6363 str r3, [r4, #52] ; 0x34
  5386. 80062ce: 89a3 ldrh r3, [r4, #12]
  5387. 80062d0: f023 0324 bic.w r3, r3, #36 ; 0x24
  5388. 80062d4: 81a3 strh r3, [r4, #12]
  5389. 80062d6: 2300 movs r3, #0
  5390. 80062d8: 6063 str r3, [r4, #4]
  5391. 80062da: 6923 ldr r3, [r4, #16]
  5392. 80062dc: 6023 str r3, [r4, #0]
  5393. 80062de: 89a3 ldrh r3, [r4, #12]
  5394. 80062e0: f043 0308 orr.w r3, r3, #8
  5395. 80062e4: 81a3 strh r3, [r4, #12]
  5396. 80062e6: 6923 ldr r3, [r4, #16]
  5397. 80062e8: b94b cbnz r3, 80062fe <__swsetup_r+0x9a>
  5398. 80062ea: 89a3 ldrh r3, [r4, #12]
  5399. 80062ec: f403 7320 and.w r3, r3, #640 ; 0x280
  5400. 80062f0: f5b3 7f00 cmp.w r3, #512 ; 0x200
  5401. 80062f4: d003 beq.n 80062fe <__swsetup_r+0x9a>
  5402. 80062f6: 4621 mov r1, r4
  5403. 80062f8: 4630 mov r0, r6
  5404. 80062fa: f000 f9c1 bl 8006680 <__smakebuf_r>
  5405. 80062fe: 89a2 ldrh r2, [r4, #12]
  5406. 8006300: f012 0301 ands.w r3, r2, #1
  5407. 8006304: d00c beq.n 8006320 <__swsetup_r+0xbc>
  5408. 8006306: 2300 movs r3, #0
  5409. 8006308: 60a3 str r3, [r4, #8]
  5410. 800630a: 6963 ldr r3, [r4, #20]
  5411. 800630c: 425b negs r3, r3
  5412. 800630e: 61a3 str r3, [r4, #24]
  5413. 8006310: 6923 ldr r3, [r4, #16]
  5414. 8006312: b953 cbnz r3, 800632a <__swsetup_r+0xc6>
  5415. 8006314: f9b4 300c ldrsh.w r3, [r4, #12]
  5416. 8006318: f013 0080 ands.w r0, r3, #128 ; 0x80
  5417. 800631c: d1ba bne.n 8006294 <__swsetup_r+0x30>
  5418. 800631e: bd70 pop {r4, r5, r6, pc}
  5419. 8006320: 0792 lsls r2, r2, #30
  5420. 8006322: bf58 it pl
  5421. 8006324: 6963 ldrpl r3, [r4, #20]
  5422. 8006326: 60a3 str r3, [r4, #8]
  5423. 8006328: e7f2 b.n 8006310 <__swsetup_r+0xac>
  5424. 800632a: 2000 movs r0, #0
  5425. 800632c: e7f7 b.n 800631e <__swsetup_r+0xba>
  5426. 800632e: bf00 nop
  5427. 8006330: 2000000c .word 0x2000000c
  5428. 8006334: 08006a54 .word 0x08006a54
  5429. 8006338: 08006a74 .word 0x08006a74
  5430. 800633c: 08006a34 .word 0x08006a34
  5431. 08006340 <__sflush_r>:
  5432. 8006340: 898a ldrh r2, [r1, #12]
  5433. 8006342: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  5434. 8006346: 4605 mov r5, r0
  5435. 8006348: 0710 lsls r0, r2, #28
  5436. 800634a: 460c mov r4, r1
  5437. 800634c: d45a bmi.n 8006404 <__sflush_r+0xc4>
  5438. 800634e: 684b ldr r3, [r1, #4]
  5439. 8006350: 2b00 cmp r3, #0
  5440. 8006352: dc05 bgt.n 8006360 <__sflush_r+0x20>
  5441. 8006354: 6c0b ldr r3, [r1, #64] ; 0x40
  5442. 8006356: 2b00 cmp r3, #0
  5443. 8006358: dc02 bgt.n 8006360 <__sflush_r+0x20>
  5444. 800635a: 2000 movs r0, #0
  5445. 800635c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  5446. 8006360: 6ae6 ldr r6, [r4, #44] ; 0x2c
  5447. 8006362: 2e00 cmp r6, #0
  5448. 8006364: d0f9 beq.n 800635a <__sflush_r+0x1a>
  5449. 8006366: 2300 movs r3, #0
  5450. 8006368: f412 5280 ands.w r2, r2, #4096 ; 0x1000
  5451. 800636c: 682f ldr r7, [r5, #0]
  5452. 800636e: 602b str r3, [r5, #0]
  5453. 8006370: d033 beq.n 80063da <__sflush_r+0x9a>
  5454. 8006372: 6d60 ldr r0, [r4, #84] ; 0x54
  5455. 8006374: 89a3 ldrh r3, [r4, #12]
  5456. 8006376: 075a lsls r2, r3, #29
  5457. 8006378: d505 bpl.n 8006386 <__sflush_r+0x46>
  5458. 800637a: 6863 ldr r3, [r4, #4]
  5459. 800637c: 1ac0 subs r0, r0, r3
  5460. 800637e: 6b63 ldr r3, [r4, #52] ; 0x34
  5461. 8006380: b10b cbz r3, 8006386 <__sflush_r+0x46>
  5462. 8006382: 6c23 ldr r3, [r4, #64] ; 0x40
  5463. 8006384: 1ac0 subs r0, r0, r3
  5464. 8006386: 2300 movs r3, #0
  5465. 8006388: 4602 mov r2, r0
  5466. 800638a: 6ae6 ldr r6, [r4, #44] ; 0x2c
  5467. 800638c: 6a21 ldr r1, [r4, #32]
  5468. 800638e: 4628 mov r0, r5
  5469. 8006390: 47b0 blx r6
  5470. 8006392: 1c43 adds r3, r0, #1
  5471. 8006394: 89a3 ldrh r3, [r4, #12]
  5472. 8006396: d106 bne.n 80063a6 <__sflush_r+0x66>
  5473. 8006398: 6829 ldr r1, [r5, #0]
  5474. 800639a: 291d cmp r1, #29
  5475. 800639c: d84b bhi.n 8006436 <__sflush_r+0xf6>
  5476. 800639e: 4a2b ldr r2, [pc, #172] ; (800644c <__sflush_r+0x10c>)
  5477. 80063a0: 40ca lsrs r2, r1
  5478. 80063a2: 07d6 lsls r6, r2, #31
  5479. 80063a4: d547 bpl.n 8006436 <__sflush_r+0xf6>
  5480. 80063a6: 2200 movs r2, #0
  5481. 80063a8: 6062 str r2, [r4, #4]
  5482. 80063aa: 6922 ldr r2, [r4, #16]
  5483. 80063ac: 04d9 lsls r1, r3, #19
  5484. 80063ae: 6022 str r2, [r4, #0]
  5485. 80063b0: d504 bpl.n 80063bc <__sflush_r+0x7c>
  5486. 80063b2: 1c42 adds r2, r0, #1
  5487. 80063b4: d101 bne.n 80063ba <__sflush_r+0x7a>
  5488. 80063b6: 682b ldr r3, [r5, #0]
  5489. 80063b8: b903 cbnz r3, 80063bc <__sflush_r+0x7c>
  5490. 80063ba: 6560 str r0, [r4, #84] ; 0x54
  5491. 80063bc: 6b61 ldr r1, [r4, #52] ; 0x34
  5492. 80063be: 602f str r7, [r5, #0]
  5493. 80063c0: 2900 cmp r1, #0
  5494. 80063c2: d0ca beq.n 800635a <__sflush_r+0x1a>
  5495. 80063c4: f104 0344 add.w r3, r4, #68 ; 0x44
  5496. 80063c8: 4299 cmp r1, r3
  5497. 80063ca: d002 beq.n 80063d2 <__sflush_r+0x92>
  5498. 80063cc: 4628 mov r0, r5
  5499. 80063ce: f000 f99f bl 8006710 <_free_r>
  5500. 80063d2: 2000 movs r0, #0
  5501. 80063d4: 6360 str r0, [r4, #52] ; 0x34
  5502. 80063d6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  5503. 80063da: 6a21 ldr r1, [r4, #32]
  5504. 80063dc: 2301 movs r3, #1
  5505. 80063de: 4628 mov r0, r5
  5506. 80063e0: 47b0 blx r6
  5507. 80063e2: 1c41 adds r1, r0, #1
  5508. 80063e4: d1c6 bne.n 8006374 <__sflush_r+0x34>
  5509. 80063e6: 682b ldr r3, [r5, #0]
  5510. 80063e8: 2b00 cmp r3, #0
  5511. 80063ea: d0c3 beq.n 8006374 <__sflush_r+0x34>
  5512. 80063ec: 2b1d cmp r3, #29
  5513. 80063ee: d001 beq.n 80063f4 <__sflush_r+0xb4>
  5514. 80063f0: 2b16 cmp r3, #22
  5515. 80063f2: d101 bne.n 80063f8 <__sflush_r+0xb8>
  5516. 80063f4: 602f str r7, [r5, #0]
  5517. 80063f6: e7b0 b.n 800635a <__sflush_r+0x1a>
  5518. 80063f8: 89a3 ldrh r3, [r4, #12]
  5519. 80063fa: f043 0340 orr.w r3, r3, #64 ; 0x40
  5520. 80063fe: 81a3 strh r3, [r4, #12]
  5521. 8006400: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  5522. 8006404: 690f ldr r7, [r1, #16]
  5523. 8006406: 2f00 cmp r7, #0
  5524. 8006408: d0a7 beq.n 800635a <__sflush_r+0x1a>
  5525. 800640a: 0793 lsls r3, r2, #30
  5526. 800640c: bf18 it ne
  5527. 800640e: 2300 movne r3, #0
  5528. 8006410: 680e ldr r6, [r1, #0]
  5529. 8006412: bf08 it eq
  5530. 8006414: 694b ldreq r3, [r1, #20]
  5531. 8006416: eba6 0807 sub.w r8, r6, r7
  5532. 800641a: 600f str r7, [r1, #0]
  5533. 800641c: 608b str r3, [r1, #8]
  5534. 800641e: f1b8 0f00 cmp.w r8, #0
  5535. 8006422: dd9a ble.n 800635a <__sflush_r+0x1a>
  5536. 8006424: 4643 mov r3, r8
  5537. 8006426: 463a mov r2, r7
  5538. 8006428: 6a21 ldr r1, [r4, #32]
  5539. 800642a: 4628 mov r0, r5
  5540. 800642c: 6aa6 ldr r6, [r4, #40] ; 0x28
  5541. 800642e: 47b0 blx r6
  5542. 8006430: 2800 cmp r0, #0
  5543. 8006432: dc07 bgt.n 8006444 <__sflush_r+0x104>
  5544. 8006434: 89a3 ldrh r3, [r4, #12]
  5545. 8006436: f043 0340 orr.w r3, r3, #64 ; 0x40
  5546. 800643a: 81a3 strh r3, [r4, #12]
  5547. 800643c: f04f 30ff mov.w r0, #4294967295
  5548. 8006440: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  5549. 8006444: 4407 add r7, r0
  5550. 8006446: eba8 0800 sub.w r8, r8, r0
  5551. 800644a: e7e8 b.n 800641e <__sflush_r+0xde>
  5552. 800644c: 20400001 .word 0x20400001
  5553. 08006450 <_fflush_r>:
  5554. 8006450: b538 push {r3, r4, r5, lr}
  5555. 8006452: 690b ldr r3, [r1, #16]
  5556. 8006454: 4605 mov r5, r0
  5557. 8006456: 460c mov r4, r1
  5558. 8006458: b1db cbz r3, 8006492 <_fflush_r+0x42>
  5559. 800645a: b118 cbz r0, 8006464 <_fflush_r+0x14>
  5560. 800645c: 6983 ldr r3, [r0, #24]
  5561. 800645e: b90b cbnz r3, 8006464 <_fflush_r+0x14>
  5562. 8006460: f000 f860 bl 8006524 <__sinit>
  5563. 8006464: 4b0c ldr r3, [pc, #48] ; (8006498 <_fflush_r+0x48>)
  5564. 8006466: 429c cmp r4, r3
  5565. 8006468: d109 bne.n 800647e <_fflush_r+0x2e>
  5566. 800646a: 686c ldr r4, [r5, #4]
  5567. 800646c: f9b4 300c ldrsh.w r3, [r4, #12]
  5568. 8006470: b17b cbz r3, 8006492 <_fflush_r+0x42>
  5569. 8006472: 4621 mov r1, r4
  5570. 8006474: 4628 mov r0, r5
  5571. 8006476: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr}
  5572. 800647a: f7ff bf61 b.w 8006340 <__sflush_r>
  5573. 800647e: 4b07 ldr r3, [pc, #28] ; (800649c <_fflush_r+0x4c>)
  5574. 8006480: 429c cmp r4, r3
  5575. 8006482: d101 bne.n 8006488 <_fflush_r+0x38>
  5576. 8006484: 68ac ldr r4, [r5, #8]
  5577. 8006486: e7f1 b.n 800646c <_fflush_r+0x1c>
  5578. 8006488: 4b05 ldr r3, [pc, #20] ; (80064a0 <_fflush_r+0x50>)
  5579. 800648a: 429c cmp r4, r3
  5580. 800648c: bf08 it eq
  5581. 800648e: 68ec ldreq r4, [r5, #12]
  5582. 8006490: e7ec b.n 800646c <_fflush_r+0x1c>
  5583. 8006492: 2000 movs r0, #0
  5584. 8006494: bd38 pop {r3, r4, r5, pc}
  5585. 8006496: bf00 nop
  5586. 8006498: 08006a54 .word 0x08006a54
  5587. 800649c: 08006a74 .word 0x08006a74
  5588. 80064a0: 08006a34 .word 0x08006a34
  5589. 080064a4 <_cleanup_r>:
  5590. 80064a4: 4901 ldr r1, [pc, #4] ; (80064ac <_cleanup_r+0x8>)
  5591. 80064a6: f000 b8a9 b.w 80065fc <_fwalk_reent>
  5592. 80064aa: bf00 nop
  5593. 80064ac: 08006451 .word 0x08006451
  5594. 080064b0 <std.isra.0>:
  5595. 80064b0: 2300 movs r3, #0
  5596. 80064b2: b510 push {r4, lr}
  5597. 80064b4: 4604 mov r4, r0
  5598. 80064b6: 6003 str r3, [r0, #0]
  5599. 80064b8: 6043 str r3, [r0, #4]
  5600. 80064ba: 6083 str r3, [r0, #8]
  5601. 80064bc: 8181 strh r1, [r0, #12]
  5602. 80064be: 6643 str r3, [r0, #100] ; 0x64
  5603. 80064c0: 81c2 strh r2, [r0, #14]
  5604. 80064c2: 6103 str r3, [r0, #16]
  5605. 80064c4: 6143 str r3, [r0, #20]
  5606. 80064c6: 6183 str r3, [r0, #24]
  5607. 80064c8: 4619 mov r1, r3
  5608. 80064ca: 2208 movs r2, #8
  5609. 80064cc: 305c adds r0, #92 ; 0x5c
  5610. 80064ce: f7ff fd55 bl 8005f7c <memset>
  5611. 80064d2: 4b05 ldr r3, [pc, #20] ; (80064e8 <std.isra.0+0x38>)
  5612. 80064d4: 6224 str r4, [r4, #32]
  5613. 80064d6: 6263 str r3, [r4, #36] ; 0x24
  5614. 80064d8: 4b04 ldr r3, [pc, #16] ; (80064ec <std.isra.0+0x3c>)
  5615. 80064da: 62a3 str r3, [r4, #40] ; 0x28
  5616. 80064dc: 4b04 ldr r3, [pc, #16] ; (80064f0 <std.isra.0+0x40>)
  5617. 80064de: 62e3 str r3, [r4, #44] ; 0x2c
  5618. 80064e0: 4b04 ldr r3, [pc, #16] ; (80064f4 <std.isra.0+0x44>)
  5619. 80064e2: 6323 str r3, [r4, #48] ; 0x30
  5620. 80064e4: bd10 pop {r4, pc}
  5621. 80064e6: bf00 nop
  5622. 80064e8: 08006885 .word 0x08006885
  5623. 80064ec: 080068a7 .word 0x080068a7
  5624. 80064f0: 080068df .word 0x080068df
  5625. 80064f4: 08006903 .word 0x08006903
  5626. 080064f8 <__sfmoreglue>:
  5627. 80064f8: b570 push {r4, r5, r6, lr}
  5628. 80064fa: 2568 movs r5, #104 ; 0x68
  5629. 80064fc: 1e4a subs r2, r1, #1
  5630. 80064fe: 4355 muls r5, r2
  5631. 8006500: 460e mov r6, r1
  5632. 8006502: f105 0174 add.w r1, r5, #116 ; 0x74
  5633. 8006506: f000 f94f bl 80067a8 <_malloc_r>
  5634. 800650a: 4604 mov r4, r0
  5635. 800650c: b140 cbz r0, 8006520 <__sfmoreglue+0x28>
  5636. 800650e: 2100 movs r1, #0
  5637. 8006510: e880 0042 stmia.w r0, {r1, r6}
  5638. 8006514: 300c adds r0, #12
  5639. 8006516: 60a0 str r0, [r4, #8]
  5640. 8006518: f105 0268 add.w r2, r5, #104 ; 0x68
  5641. 800651c: f7ff fd2e bl 8005f7c <memset>
  5642. 8006520: 4620 mov r0, r4
  5643. 8006522: bd70 pop {r4, r5, r6, pc}
  5644. 08006524 <__sinit>:
  5645. 8006524: 6983 ldr r3, [r0, #24]
  5646. 8006526: b510 push {r4, lr}
  5647. 8006528: 4604 mov r4, r0
  5648. 800652a: bb33 cbnz r3, 800657a <__sinit+0x56>
  5649. 800652c: 6483 str r3, [r0, #72] ; 0x48
  5650. 800652e: 64c3 str r3, [r0, #76] ; 0x4c
  5651. 8006530: 6503 str r3, [r0, #80] ; 0x50
  5652. 8006532: 4b12 ldr r3, [pc, #72] ; (800657c <__sinit+0x58>)
  5653. 8006534: 4a12 ldr r2, [pc, #72] ; (8006580 <__sinit+0x5c>)
  5654. 8006536: 681b ldr r3, [r3, #0]
  5655. 8006538: 6282 str r2, [r0, #40] ; 0x28
  5656. 800653a: 4298 cmp r0, r3
  5657. 800653c: bf04 itt eq
  5658. 800653e: 2301 moveq r3, #1
  5659. 8006540: 6183 streq r3, [r0, #24]
  5660. 8006542: f000 f81f bl 8006584 <__sfp>
  5661. 8006546: 6060 str r0, [r4, #4]
  5662. 8006548: 4620 mov r0, r4
  5663. 800654a: f000 f81b bl 8006584 <__sfp>
  5664. 800654e: 60a0 str r0, [r4, #8]
  5665. 8006550: 4620 mov r0, r4
  5666. 8006552: f000 f817 bl 8006584 <__sfp>
  5667. 8006556: 2200 movs r2, #0
  5668. 8006558: 60e0 str r0, [r4, #12]
  5669. 800655a: 2104 movs r1, #4
  5670. 800655c: 6860 ldr r0, [r4, #4]
  5671. 800655e: f7ff ffa7 bl 80064b0 <std.isra.0>
  5672. 8006562: 2201 movs r2, #1
  5673. 8006564: 2109 movs r1, #9
  5674. 8006566: 68a0 ldr r0, [r4, #8]
  5675. 8006568: f7ff ffa2 bl 80064b0 <std.isra.0>
  5676. 800656c: 2202 movs r2, #2
  5677. 800656e: 2112 movs r1, #18
  5678. 8006570: 68e0 ldr r0, [r4, #12]
  5679. 8006572: f7ff ff9d bl 80064b0 <std.isra.0>
  5680. 8006576: 2301 movs r3, #1
  5681. 8006578: 61a3 str r3, [r4, #24]
  5682. 800657a: bd10 pop {r4, pc}
  5683. 800657c: 08006a30 .word 0x08006a30
  5684. 8006580: 080064a5 .word 0x080064a5
  5685. 08006584 <__sfp>:
  5686. 8006584: b5f8 push {r3, r4, r5, r6, r7, lr}
  5687. 8006586: 4b1c ldr r3, [pc, #112] ; (80065f8 <__sfp+0x74>)
  5688. 8006588: 4607 mov r7, r0
  5689. 800658a: 681e ldr r6, [r3, #0]
  5690. 800658c: 69b3 ldr r3, [r6, #24]
  5691. 800658e: b913 cbnz r3, 8006596 <__sfp+0x12>
  5692. 8006590: 4630 mov r0, r6
  5693. 8006592: f7ff ffc7 bl 8006524 <__sinit>
  5694. 8006596: 3648 adds r6, #72 ; 0x48
  5695. 8006598: 68b4 ldr r4, [r6, #8]
  5696. 800659a: 6873 ldr r3, [r6, #4]
  5697. 800659c: 3b01 subs r3, #1
  5698. 800659e: d503 bpl.n 80065a8 <__sfp+0x24>
  5699. 80065a0: 6833 ldr r3, [r6, #0]
  5700. 80065a2: b133 cbz r3, 80065b2 <__sfp+0x2e>
  5701. 80065a4: 6836 ldr r6, [r6, #0]
  5702. 80065a6: e7f7 b.n 8006598 <__sfp+0x14>
  5703. 80065a8: f9b4 500c ldrsh.w r5, [r4, #12]
  5704. 80065ac: b16d cbz r5, 80065ca <__sfp+0x46>
  5705. 80065ae: 3468 adds r4, #104 ; 0x68
  5706. 80065b0: e7f4 b.n 800659c <__sfp+0x18>
  5707. 80065b2: 2104 movs r1, #4
  5708. 80065b4: 4638 mov r0, r7
  5709. 80065b6: f7ff ff9f bl 80064f8 <__sfmoreglue>
  5710. 80065ba: 6030 str r0, [r6, #0]
  5711. 80065bc: 2800 cmp r0, #0
  5712. 80065be: d1f1 bne.n 80065a4 <__sfp+0x20>
  5713. 80065c0: 230c movs r3, #12
  5714. 80065c2: 4604 mov r4, r0
  5715. 80065c4: 603b str r3, [r7, #0]
  5716. 80065c6: 4620 mov r0, r4
  5717. 80065c8: bdf8 pop {r3, r4, r5, r6, r7, pc}
  5718. 80065ca: f64f 73ff movw r3, #65535 ; 0xffff
  5719. 80065ce: 81e3 strh r3, [r4, #14]
  5720. 80065d0: 2301 movs r3, #1
  5721. 80065d2: 6665 str r5, [r4, #100] ; 0x64
  5722. 80065d4: 81a3 strh r3, [r4, #12]
  5723. 80065d6: 6025 str r5, [r4, #0]
  5724. 80065d8: 60a5 str r5, [r4, #8]
  5725. 80065da: 6065 str r5, [r4, #4]
  5726. 80065dc: 6125 str r5, [r4, #16]
  5727. 80065de: 6165 str r5, [r4, #20]
  5728. 80065e0: 61a5 str r5, [r4, #24]
  5729. 80065e2: 2208 movs r2, #8
  5730. 80065e4: 4629 mov r1, r5
  5731. 80065e6: f104 005c add.w r0, r4, #92 ; 0x5c
  5732. 80065ea: f7ff fcc7 bl 8005f7c <memset>
  5733. 80065ee: 6365 str r5, [r4, #52] ; 0x34
  5734. 80065f0: 63a5 str r5, [r4, #56] ; 0x38
  5735. 80065f2: 64a5 str r5, [r4, #72] ; 0x48
  5736. 80065f4: 64e5 str r5, [r4, #76] ; 0x4c
  5737. 80065f6: e7e6 b.n 80065c6 <__sfp+0x42>
  5738. 80065f8: 08006a30 .word 0x08006a30
  5739. 080065fc <_fwalk_reent>:
  5740. 80065fc: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
  5741. 8006600: 4680 mov r8, r0
  5742. 8006602: 4689 mov r9, r1
  5743. 8006604: 2600 movs r6, #0
  5744. 8006606: f100 0448 add.w r4, r0, #72 ; 0x48
  5745. 800660a: b914 cbnz r4, 8006612 <_fwalk_reent+0x16>
  5746. 800660c: 4630 mov r0, r6
  5747. 800660e: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
  5748. 8006612: 68a5 ldr r5, [r4, #8]
  5749. 8006614: 6867 ldr r7, [r4, #4]
  5750. 8006616: 3f01 subs r7, #1
  5751. 8006618: d501 bpl.n 800661e <_fwalk_reent+0x22>
  5752. 800661a: 6824 ldr r4, [r4, #0]
  5753. 800661c: e7f5 b.n 800660a <_fwalk_reent+0xe>
  5754. 800661e: 89ab ldrh r3, [r5, #12]
  5755. 8006620: 2b01 cmp r3, #1
  5756. 8006622: d907 bls.n 8006634 <_fwalk_reent+0x38>
  5757. 8006624: f9b5 300e ldrsh.w r3, [r5, #14]
  5758. 8006628: 3301 adds r3, #1
  5759. 800662a: d003 beq.n 8006634 <_fwalk_reent+0x38>
  5760. 800662c: 4629 mov r1, r5
  5761. 800662e: 4640 mov r0, r8
  5762. 8006630: 47c8 blx r9
  5763. 8006632: 4306 orrs r6, r0
  5764. 8006634: 3568 adds r5, #104 ; 0x68
  5765. 8006636: e7ee b.n 8006616 <_fwalk_reent+0x1a>
  5766. 08006638 <__swhatbuf_r>:
  5767. 8006638: b570 push {r4, r5, r6, lr}
  5768. 800663a: 460e mov r6, r1
  5769. 800663c: f9b1 100e ldrsh.w r1, [r1, #14]
  5770. 8006640: b090 sub sp, #64 ; 0x40
  5771. 8006642: 2900 cmp r1, #0
  5772. 8006644: 4614 mov r4, r2
  5773. 8006646: 461d mov r5, r3
  5774. 8006648: da07 bge.n 800665a <__swhatbuf_r+0x22>
  5775. 800664a: 2300 movs r3, #0
  5776. 800664c: 602b str r3, [r5, #0]
  5777. 800664e: 89b3 ldrh r3, [r6, #12]
  5778. 8006650: 061a lsls r2, r3, #24
  5779. 8006652: d410 bmi.n 8006676 <__swhatbuf_r+0x3e>
  5780. 8006654: f44f 6380 mov.w r3, #1024 ; 0x400
  5781. 8006658: e00e b.n 8006678 <__swhatbuf_r+0x40>
  5782. 800665a: aa01 add r2, sp, #4
  5783. 800665c: f000 f978 bl 8006950 <_fstat_r>
  5784. 8006660: 2800 cmp r0, #0
  5785. 8006662: dbf2 blt.n 800664a <__swhatbuf_r+0x12>
  5786. 8006664: 9a02 ldr r2, [sp, #8]
  5787. 8006666: f402 4270 and.w r2, r2, #61440 ; 0xf000
  5788. 800666a: f5a2 5300 sub.w r3, r2, #8192 ; 0x2000
  5789. 800666e: 425a negs r2, r3
  5790. 8006670: 415a adcs r2, r3
  5791. 8006672: 602a str r2, [r5, #0]
  5792. 8006674: e7ee b.n 8006654 <__swhatbuf_r+0x1c>
  5793. 8006676: 2340 movs r3, #64 ; 0x40
  5794. 8006678: 2000 movs r0, #0
  5795. 800667a: 6023 str r3, [r4, #0]
  5796. 800667c: b010 add sp, #64 ; 0x40
  5797. 800667e: bd70 pop {r4, r5, r6, pc}
  5798. 08006680 <__smakebuf_r>:
  5799. 8006680: 898b ldrh r3, [r1, #12]
  5800. 8006682: b573 push {r0, r1, r4, r5, r6, lr}
  5801. 8006684: 079d lsls r5, r3, #30
  5802. 8006686: 4606 mov r6, r0
  5803. 8006688: 460c mov r4, r1
  5804. 800668a: d507 bpl.n 800669c <__smakebuf_r+0x1c>
  5805. 800668c: f104 0347 add.w r3, r4, #71 ; 0x47
  5806. 8006690: 6023 str r3, [r4, #0]
  5807. 8006692: 6123 str r3, [r4, #16]
  5808. 8006694: 2301 movs r3, #1
  5809. 8006696: 6163 str r3, [r4, #20]
  5810. 8006698: b002 add sp, #8
  5811. 800669a: bd70 pop {r4, r5, r6, pc}
  5812. 800669c: ab01 add r3, sp, #4
  5813. 800669e: 466a mov r2, sp
  5814. 80066a0: f7ff ffca bl 8006638 <__swhatbuf_r>
  5815. 80066a4: 9900 ldr r1, [sp, #0]
  5816. 80066a6: 4605 mov r5, r0
  5817. 80066a8: 4630 mov r0, r6
  5818. 80066aa: f000 f87d bl 80067a8 <_malloc_r>
  5819. 80066ae: b948 cbnz r0, 80066c4 <__smakebuf_r+0x44>
  5820. 80066b0: f9b4 300c ldrsh.w r3, [r4, #12]
  5821. 80066b4: 059a lsls r2, r3, #22
  5822. 80066b6: d4ef bmi.n 8006698 <__smakebuf_r+0x18>
  5823. 80066b8: f023 0303 bic.w r3, r3, #3
  5824. 80066bc: f043 0302 orr.w r3, r3, #2
  5825. 80066c0: 81a3 strh r3, [r4, #12]
  5826. 80066c2: e7e3 b.n 800668c <__smakebuf_r+0xc>
  5827. 80066c4: 4b0d ldr r3, [pc, #52] ; (80066fc <__smakebuf_r+0x7c>)
  5828. 80066c6: 62b3 str r3, [r6, #40] ; 0x28
  5829. 80066c8: 89a3 ldrh r3, [r4, #12]
  5830. 80066ca: 6020 str r0, [r4, #0]
  5831. 80066cc: f043 0380 orr.w r3, r3, #128 ; 0x80
  5832. 80066d0: 81a3 strh r3, [r4, #12]
  5833. 80066d2: 9b00 ldr r3, [sp, #0]
  5834. 80066d4: 6120 str r0, [r4, #16]
  5835. 80066d6: 6163 str r3, [r4, #20]
  5836. 80066d8: 9b01 ldr r3, [sp, #4]
  5837. 80066da: b15b cbz r3, 80066f4 <__smakebuf_r+0x74>
  5838. 80066dc: f9b4 100e ldrsh.w r1, [r4, #14]
  5839. 80066e0: 4630 mov r0, r6
  5840. 80066e2: f000 f947 bl 8006974 <_isatty_r>
  5841. 80066e6: b128 cbz r0, 80066f4 <__smakebuf_r+0x74>
  5842. 80066e8: 89a3 ldrh r3, [r4, #12]
  5843. 80066ea: f023 0303 bic.w r3, r3, #3
  5844. 80066ee: f043 0301 orr.w r3, r3, #1
  5845. 80066f2: 81a3 strh r3, [r4, #12]
  5846. 80066f4: 89a3 ldrh r3, [r4, #12]
  5847. 80066f6: 431d orrs r5, r3
  5848. 80066f8: 81a5 strh r5, [r4, #12]
  5849. 80066fa: e7cd b.n 8006698 <__smakebuf_r+0x18>
  5850. 80066fc: 080064a5 .word 0x080064a5
  5851. 08006700 <malloc>:
  5852. 8006700: 4b02 ldr r3, [pc, #8] ; (800670c <malloc+0xc>)
  5853. 8006702: 4601 mov r1, r0
  5854. 8006704: 6818 ldr r0, [r3, #0]
  5855. 8006706: f000 b84f b.w 80067a8 <_malloc_r>
  5856. 800670a: bf00 nop
  5857. 800670c: 2000000c .word 0x2000000c
  5858. 08006710 <_free_r>:
  5859. 8006710: b538 push {r3, r4, r5, lr}
  5860. 8006712: 4605 mov r5, r0
  5861. 8006714: 2900 cmp r1, #0
  5862. 8006716: d043 beq.n 80067a0 <_free_r+0x90>
  5863. 8006718: f851 3c04 ldr.w r3, [r1, #-4]
  5864. 800671c: 1f0c subs r4, r1, #4
  5865. 800671e: 2b00 cmp r3, #0
  5866. 8006720: bfb8 it lt
  5867. 8006722: 18e4 addlt r4, r4, r3
  5868. 8006724: f000 f948 bl 80069b8 <__malloc_lock>
  5869. 8006728: 4a1e ldr r2, [pc, #120] ; (80067a4 <_free_r+0x94>)
  5870. 800672a: 6813 ldr r3, [r2, #0]
  5871. 800672c: 4610 mov r0, r2
  5872. 800672e: b933 cbnz r3, 800673e <_free_r+0x2e>
  5873. 8006730: 6063 str r3, [r4, #4]
  5874. 8006732: 6014 str r4, [r2, #0]
  5875. 8006734: 4628 mov r0, r5
  5876. 8006736: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr}
  5877. 800673a: f000 b93e b.w 80069ba <__malloc_unlock>
  5878. 800673e: 42a3 cmp r3, r4
  5879. 8006740: d90b bls.n 800675a <_free_r+0x4a>
  5880. 8006742: 6821 ldr r1, [r4, #0]
  5881. 8006744: 1862 adds r2, r4, r1
  5882. 8006746: 4293 cmp r3, r2
  5883. 8006748: bf01 itttt eq
  5884. 800674a: 681a ldreq r2, [r3, #0]
  5885. 800674c: 685b ldreq r3, [r3, #4]
  5886. 800674e: 1852 addeq r2, r2, r1
  5887. 8006750: 6022 streq r2, [r4, #0]
  5888. 8006752: 6063 str r3, [r4, #4]
  5889. 8006754: 6004 str r4, [r0, #0]
  5890. 8006756: e7ed b.n 8006734 <_free_r+0x24>
  5891. 8006758: 4613 mov r3, r2
  5892. 800675a: 685a ldr r2, [r3, #4]
  5893. 800675c: b10a cbz r2, 8006762 <_free_r+0x52>
  5894. 800675e: 42a2 cmp r2, r4
  5895. 8006760: d9fa bls.n 8006758 <_free_r+0x48>
  5896. 8006762: 6819 ldr r1, [r3, #0]
  5897. 8006764: 1858 adds r0, r3, r1
  5898. 8006766: 42a0 cmp r0, r4
  5899. 8006768: d10b bne.n 8006782 <_free_r+0x72>
  5900. 800676a: 6820 ldr r0, [r4, #0]
  5901. 800676c: 4401 add r1, r0
  5902. 800676e: 1858 adds r0, r3, r1
  5903. 8006770: 4282 cmp r2, r0
  5904. 8006772: 6019 str r1, [r3, #0]
  5905. 8006774: d1de bne.n 8006734 <_free_r+0x24>
  5906. 8006776: 6810 ldr r0, [r2, #0]
  5907. 8006778: 6852 ldr r2, [r2, #4]
  5908. 800677a: 4401 add r1, r0
  5909. 800677c: 6019 str r1, [r3, #0]
  5910. 800677e: 605a str r2, [r3, #4]
  5911. 8006780: e7d8 b.n 8006734 <_free_r+0x24>
  5912. 8006782: d902 bls.n 800678a <_free_r+0x7a>
  5913. 8006784: 230c movs r3, #12
  5914. 8006786: 602b str r3, [r5, #0]
  5915. 8006788: e7d4 b.n 8006734 <_free_r+0x24>
  5916. 800678a: 6820 ldr r0, [r4, #0]
  5917. 800678c: 1821 adds r1, r4, r0
  5918. 800678e: 428a cmp r2, r1
  5919. 8006790: bf01 itttt eq
  5920. 8006792: 6811 ldreq r1, [r2, #0]
  5921. 8006794: 6852 ldreq r2, [r2, #4]
  5922. 8006796: 1809 addeq r1, r1, r0
  5923. 8006798: 6021 streq r1, [r4, #0]
  5924. 800679a: 6062 str r2, [r4, #4]
  5925. 800679c: 605c str r4, [r3, #4]
  5926. 800679e: e7c9 b.n 8006734 <_free_r+0x24>
  5927. 80067a0: bd38 pop {r3, r4, r5, pc}
  5928. 80067a2: bf00 nop
  5929. 80067a4: 2000009c .word 0x2000009c
  5930. 080067a8 <_malloc_r>:
  5931. 80067a8: b570 push {r4, r5, r6, lr}
  5932. 80067aa: 1ccd adds r5, r1, #3
  5933. 80067ac: f025 0503 bic.w r5, r5, #3
  5934. 80067b0: 3508 adds r5, #8
  5935. 80067b2: 2d0c cmp r5, #12
  5936. 80067b4: bf38 it cc
  5937. 80067b6: 250c movcc r5, #12
  5938. 80067b8: 2d00 cmp r5, #0
  5939. 80067ba: 4606 mov r6, r0
  5940. 80067bc: db01 blt.n 80067c2 <_malloc_r+0x1a>
  5941. 80067be: 42a9 cmp r1, r5
  5942. 80067c0: d903 bls.n 80067ca <_malloc_r+0x22>
  5943. 80067c2: 230c movs r3, #12
  5944. 80067c4: 6033 str r3, [r6, #0]
  5945. 80067c6: 2000 movs r0, #0
  5946. 80067c8: bd70 pop {r4, r5, r6, pc}
  5947. 80067ca: f000 f8f5 bl 80069b8 <__malloc_lock>
  5948. 80067ce: 4a23 ldr r2, [pc, #140] ; (800685c <_malloc_r+0xb4>)
  5949. 80067d0: 6814 ldr r4, [r2, #0]
  5950. 80067d2: 4621 mov r1, r4
  5951. 80067d4: b991 cbnz r1, 80067fc <_malloc_r+0x54>
  5952. 80067d6: 4c22 ldr r4, [pc, #136] ; (8006860 <_malloc_r+0xb8>)
  5953. 80067d8: 6823 ldr r3, [r4, #0]
  5954. 80067da: b91b cbnz r3, 80067e4 <_malloc_r+0x3c>
  5955. 80067dc: 4630 mov r0, r6
  5956. 80067de: f000 f841 bl 8006864 <_sbrk_r>
  5957. 80067e2: 6020 str r0, [r4, #0]
  5958. 80067e4: 4629 mov r1, r5
  5959. 80067e6: 4630 mov r0, r6
  5960. 80067e8: f000 f83c bl 8006864 <_sbrk_r>
  5961. 80067ec: 1c43 adds r3, r0, #1
  5962. 80067ee: d126 bne.n 800683e <_malloc_r+0x96>
  5963. 80067f0: 230c movs r3, #12
  5964. 80067f2: 4630 mov r0, r6
  5965. 80067f4: 6033 str r3, [r6, #0]
  5966. 80067f6: f000 f8e0 bl 80069ba <__malloc_unlock>
  5967. 80067fa: e7e4 b.n 80067c6 <_malloc_r+0x1e>
  5968. 80067fc: 680b ldr r3, [r1, #0]
  5969. 80067fe: 1b5b subs r3, r3, r5
  5970. 8006800: d41a bmi.n 8006838 <_malloc_r+0x90>
  5971. 8006802: 2b0b cmp r3, #11
  5972. 8006804: d90f bls.n 8006826 <_malloc_r+0x7e>
  5973. 8006806: 600b str r3, [r1, #0]
  5974. 8006808: 18cc adds r4, r1, r3
  5975. 800680a: 50cd str r5, [r1, r3]
  5976. 800680c: 4630 mov r0, r6
  5977. 800680e: f000 f8d4 bl 80069ba <__malloc_unlock>
  5978. 8006812: f104 000b add.w r0, r4, #11
  5979. 8006816: 1d23 adds r3, r4, #4
  5980. 8006818: f020 0007 bic.w r0, r0, #7
  5981. 800681c: 1ac3 subs r3, r0, r3
  5982. 800681e: d01b beq.n 8006858 <_malloc_r+0xb0>
  5983. 8006820: 425a negs r2, r3
  5984. 8006822: 50e2 str r2, [r4, r3]
  5985. 8006824: bd70 pop {r4, r5, r6, pc}
  5986. 8006826: 428c cmp r4, r1
  5987. 8006828: bf0b itete eq
  5988. 800682a: 6863 ldreq r3, [r4, #4]
  5989. 800682c: 684b ldrne r3, [r1, #4]
  5990. 800682e: 6013 streq r3, [r2, #0]
  5991. 8006830: 6063 strne r3, [r4, #4]
  5992. 8006832: bf18 it ne
  5993. 8006834: 460c movne r4, r1
  5994. 8006836: e7e9 b.n 800680c <_malloc_r+0x64>
  5995. 8006838: 460c mov r4, r1
  5996. 800683a: 6849 ldr r1, [r1, #4]
  5997. 800683c: e7ca b.n 80067d4 <_malloc_r+0x2c>
  5998. 800683e: 1cc4 adds r4, r0, #3
  5999. 8006840: f024 0403 bic.w r4, r4, #3
  6000. 8006844: 42a0 cmp r0, r4
  6001. 8006846: d005 beq.n 8006854 <_malloc_r+0xac>
  6002. 8006848: 1a21 subs r1, r4, r0
  6003. 800684a: 4630 mov r0, r6
  6004. 800684c: f000 f80a bl 8006864 <_sbrk_r>
  6005. 8006850: 3001 adds r0, #1
  6006. 8006852: d0cd beq.n 80067f0 <_malloc_r+0x48>
  6007. 8006854: 6025 str r5, [r4, #0]
  6008. 8006856: e7d9 b.n 800680c <_malloc_r+0x64>
  6009. 8006858: bd70 pop {r4, r5, r6, pc}
  6010. 800685a: bf00 nop
  6011. 800685c: 2000009c .word 0x2000009c
  6012. 8006860: 200000a0 .word 0x200000a0
  6013. 08006864 <_sbrk_r>:
  6014. 8006864: b538 push {r3, r4, r5, lr}
  6015. 8006866: 2300 movs r3, #0
  6016. 8006868: 4c05 ldr r4, [pc, #20] ; (8006880 <_sbrk_r+0x1c>)
  6017. 800686a: 4605 mov r5, r0
  6018. 800686c: 4608 mov r0, r1
  6019. 800686e: 6023 str r3, [r4, #0]
  6020. 8006870: f7ff fae8 bl 8005e44 <_sbrk>
  6021. 8006874: 1c43 adds r3, r0, #1
  6022. 8006876: d102 bne.n 800687e <_sbrk_r+0x1a>
  6023. 8006878: 6823 ldr r3, [r4, #0]
  6024. 800687a: b103 cbz r3, 800687e <_sbrk_r+0x1a>
  6025. 800687c: 602b str r3, [r5, #0]
  6026. 800687e: bd38 pop {r3, r4, r5, pc}
  6027. 8006880: 200001d4 .word 0x200001d4
  6028. 08006884 <__sread>:
  6029. 8006884: b510 push {r4, lr}
  6030. 8006886: 460c mov r4, r1
  6031. 8006888: f9b1 100e ldrsh.w r1, [r1, #14]
  6032. 800688c: f000 f896 bl 80069bc <_read_r>
  6033. 8006890: 2800 cmp r0, #0
  6034. 8006892: bfab itete ge
  6035. 8006894: 6d63 ldrge r3, [r4, #84] ; 0x54
  6036. 8006896: 89a3 ldrhlt r3, [r4, #12]
  6037. 8006898: 181b addge r3, r3, r0
  6038. 800689a: f423 5380 biclt.w r3, r3, #4096 ; 0x1000
  6039. 800689e: bfac ite ge
  6040. 80068a0: 6563 strge r3, [r4, #84] ; 0x54
  6041. 80068a2: 81a3 strhlt r3, [r4, #12]
  6042. 80068a4: bd10 pop {r4, pc}
  6043. 080068a6 <__swrite>:
  6044. 80068a6: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  6045. 80068aa: 461f mov r7, r3
  6046. 80068ac: 898b ldrh r3, [r1, #12]
  6047. 80068ae: 4605 mov r5, r0
  6048. 80068b0: 05db lsls r3, r3, #23
  6049. 80068b2: 460c mov r4, r1
  6050. 80068b4: 4616 mov r6, r2
  6051. 80068b6: d505 bpl.n 80068c4 <__swrite+0x1e>
  6052. 80068b8: 2302 movs r3, #2
  6053. 80068ba: 2200 movs r2, #0
  6054. 80068bc: f9b1 100e ldrsh.w r1, [r1, #14]
  6055. 80068c0: f000 f868 bl 8006994 <_lseek_r>
  6056. 80068c4: 89a3 ldrh r3, [r4, #12]
  6057. 80068c6: 4632 mov r2, r6
  6058. 80068c8: f423 5380 bic.w r3, r3, #4096 ; 0x1000
  6059. 80068cc: 81a3 strh r3, [r4, #12]
  6060. 80068ce: f9b4 100e ldrsh.w r1, [r4, #14]
  6061. 80068d2: 463b mov r3, r7
  6062. 80068d4: 4628 mov r0, r5
  6063. 80068d6: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
  6064. 80068da: f000 b817 b.w 800690c <_write_r>
  6065. 080068de <__sseek>:
  6066. 80068de: b510 push {r4, lr}
  6067. 80068e0: 460c mov r4, r1
  6068. 80068e2: f9b1 100e ldrsh.w r1, [r1, #14]
  6069. 80068e6: f000 f855 bl 8006994 <_lseek_r>
  6070. 80068ea: 1c43 adds r3, r0, #1
  6071. 80068ec: 89a3 ldrh r3, [r4, #12]
  6072. 80068ee: bf15 itete ne
  6073. 80068f0: 6560 strne r0, [r4, #84] ; 0x54
  6074. 80068f2: f423 5380 biceq.w r3, r3, #4096 ; 0x1000
  6075. 80068f6: f443 5380 orrne.w r3, r3, #4096 ; 0x1000
  6076. 80068fa: 81a3 strheq r3, [r4, #12]
  6077. 80068fc: bf18 it ne
  6078. 80068fe: 81a3 strhne r3, [r4, #12]
  6079. 8006900: bd10 pop {r4, pc}
  6080. 08006902 <__sclose>:
  6081. 8006902: f9b1 100e ldrsh.w r1, [r1, #14]
  6082. 8006906: f000 b813 b.w 8006930 <_close_r>
  6083. ...
  6084. 0800690c <_write_r>:
  6085. 800690c: b538 push {r3, r4, r5, lr}
  6086. 800690e: 4605 mov r5, r0
  6087. 8006910: 4608 mov r0, r1
  6088. 8006912: 4611 mov r1, r2
  6089. 8006914: 2200 movs r2, #0
  6090. 8006916: 4c05 ldr r4, [pc, #20] ; (800692c <_write_r+0x20>)
  6091. 8006918: 6022 str r2, [r4, #0]
  6092. 800691a: 461a mov r2, r3
  6093. 800691c: f7fe ff86 bl 800582c <_write>
  6094. 8006920: 1c43 adds r3, r0, #1
  6095. 8006922: d102 bne.n 800692a <_write_r+0x1e>
  6096. 8006924: 6823 ldr r3, [r4, #0]
  6097. 8006926: b103 cbz r3, 800692a <_write_r+0x1e>
  6098. 8006928: 602b str r3, [r5, #0]
  6099. 800692a: bd38 pop {r3, r4, r5, pc}
  6100. 800692c: 200001d4 .word 0x200001d4
  6101. 08006930 <_close_r>:
  6102. 8006930: b538 push {r3, r4, r5, lr}
  6103. 8006932: 2300 movs r3, #0
  6104. 8006934: 4c05 ldr r4, [pc, #20] ; (800694c <_close_r+0x1c>)
  6105. 8006936: 4605 mov r5, r0
  6106. 8006938: 4608 mov r0, r1
  6107. 800693a: 6023 str r3, [r4, #0]
  6108. 800693c: f7ff fa9c bl 8005e78 <_close>
  6109. 8006940: 1c43 adds r3, r0, #1
  6110. 8006942: d102 bne.n 800694a <_close_r+0x1a>
  6111. 8006944: 6823 ldr r3, [r4, #0]
  6112. 8006946: b103 cbz r3, 800694a <_close_r+0x1a>
  6113. 8006948: 602b str r3, [r5, #0]
  6114. 800694a: bd38 pop {r3, r4, r5, pc}
  6115. 800694c: 200001d4 .word 0x200001d4
  6116. 08006950 <_fstat_r>:
  6117. 8006950: b538 push {r3, r4, r5, lr}
  6118. 8006952: 2300 movs r3, #0
  6119. 8006954: 4c06 ldr r4, [pc, #24] ; (8006970 <_fstat_r+0x20>)
  6120. 8006956: 4605 mov r5, r0
  6121. 8006958: 4608 mov r0, r1
  6122. 800695a: 4611 mov r1, r2
  6123. 800695c: 6023 str r3, [r4, #0]
  6124. 800695e: f7ff fa8e bl 8005e7e <_fstat>
  6125. 8006962: 1c43 adds r3, r0, #1
  6126. 8006964: d102 bne.n 800696c <_fstat_r+0x1c>
  6127. 8006966: 6823 ldr r3, [r4, #0]
  6128. 8006968: b103 cbz r3, 800696c <_fstat_r+0x1c>
  6129. 800696a: 602b str r3, [r5, #0]
  6130. 800696c: bd38 pop {r3, r4, r5, pc}
  6131. 800696e: bf00 nop
  6132. 8006970: 200001d4 .word 0x200001d4
  6133. 08006974 <_isatty_r>:
  6134. 8006974: b538 push {r3, r4, r5, lr}
  6135. 8006976: 2300 movs r3, #0
  6136. 8006978: 4c05 ldr r4, [pc, #20] ; (8006990 <_isatty_r+0x1c>)
  6137. 800697a: 4605 mov r5, r0
  6138. 800697c: 4608 mov r0, r1
  6139. 800697e: 6023 str r3, [r4, #0]
  6140. 8006980: f7ff fa82 bl 8005e88 <_isatty>
  6141. 8006984: 1c43 adds r3, r0, #1
  6142. 8006986: d102 bne.n 800698e <_isatty_r+0x1a>
  6143. 8006988: 6823 ldr r3, [r4, #0]
  6144. 800698a: b103 cbz r3, 800698e <_isatty_r+0x1a>
  6145. 800698c: 602b str r3, [r5, #0]
  6146. 800698e: bd38 pop {r3, r4, r5, pc}
  6147. 8006990: 200001d4 .word 0x200001d4
  6148. 08006994 <_lseek_r>:
  6149. 8006994: b538 push {r3, r4, r5, lr}
  6150. 8006996: 4605 mov r5, r0
  6151. 8006998: 4608 mov r0, r1
  6152. 800699a: 4611 mov r1, r2
  6153. 800699c: 2200 movs r2, #0
  6154. 800699e: 4c05 ldr r4, [pc, #20] ; (80069b4 <_lseek_r+0x20>)
  6155. 80069a0: 6022 str r2, [r4, #0]
  6156. 80069a2: 461a mov r2, r3
  6157. 80069a4: f7ff fa72 bl 8005e8c <_lseek>
  6158. 80069a8: 1c43 adds r3, r0, #1
  6159. 80069aa: d102 bne.n 80069b2 <_lseek_r+0x1e>
  6160. 80069ac: 6823 ldr r3, [r4, #0]
  6161. 80069ae: b103 cbz r3, 80069b2 <_lseek_r+0x1e>
  6162. 80069b0: 602b str r3, [r5, #0]
  6163. 80069b2: bd38 pop {r3, r4, r5, pc}
  6164. 80069b4: 200001d4 .word 0x200001d4
  6165. 080069b8 <__malloc_lock>:
  6166. 80069b8: 4770 bx lr
  6167. 080069ba <__malloc_unlock>:
  6168. 80069ba: 4770 bx lr
  6169. 080069bc <_read_r>:
  6170. 80069bc: b538 push {r3, r4, r5, lr}
  6171. 80069be: 4605 mov r5, r0
  6172. 80069c0: 4608 mov r0, r1
  6173. 80069c2: 4611 mov r1, r2
  6174. 80069c4: 2200 movs r2, #0
  6175. 80069c6: 4c05 ldr r4, [pc, #20] ; (80069dc <_read_r+0x20>)
  6176. 80069c8: 6022 str r2, [r4, #0]
  6177. 80069ca: 461a mov r2, r3
  6178. 80069cc: f7ff fa2c bl 8005e28 <_read>
  6179. 80069d0: 1c43 adds r3, r0, #1
  6180. 80069d2: d102 bne.n 80069da <_read_r+0x1e>
  6181. 80069d4: 6823 ldr r3, [r4, #0]
  6182. 80069d6: b103 cbz r3, 80069da <_read_r+0x1e>
  6183. 80069d8: 602b str r3, [r5, #0]
  6184. 80069da: bd38 pop {r3, r4, r5, pc}
  6185. 80069dc: 200001d4 .word 0x200001d4
  6186. 080069e0 <_init>:
  6187. 80069e0: b5f8 push {r3, r4, r5, r6, r7, lr}
  6188. 80069e2: bf00 nop
  6189. 80069e4: bcf8 pop {r3, r4, r5, r6, r7}
  6190. 80069e6: bc08 pop {r3}
  6191. 80069e8: 469e mov lr, r3
  6192. 80069ea: 4770 bx lr
  6193. 080069ec <_fini>:
  6194. 80069ec: b5f8 push {r3, r4, r5, r6, r7, lr}
  6195. 80069ee: bf00 nop
  6196. 80069f0: bcf8 pop {r3, r4, r5, r6, r7}
  6197. 80069f2: bc08 pop {r3}
  6198. 80069f4: 469e mov lr, r3
  6199. 80069f6: 4770 bx lr