STM32F100_LoraTestBootloader.list 261 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664
  1. STM32F100_LoraTestBootloader.elf: file format elf32-littlearm
  2. Sections:
  3. Idx Name Size VMA LMA File off Algn
  4. 0 .isr_vector 000001d0 08000000 08000000 00010000 2**0
  5. CONTENTS, ALLOC, LOAD, READONLY, DATA
  6. 1 .text 00002c3c 080001d0 080001d0 000101d0 2**2
  7. CONTENTS, ALLOC, LOAD, READONLY, CODE
  8. 2 .rodata 000001c0 08002e0c 08002e0c 00012e0c 2**2
  9. CONTENTS, ALLOC, LOAD, READONLY, DATA
  10. 3 .init_array 00000004 08002fcc 08002fcc 00012fcc 2**2
  11. CONTENTS, ALLOC, LOAD, DATA
  12. 4 .fini_array 00000004 08002fd0 08002fd0 00012fd0 2**2
  13. CONTENTS, ALLOC, LOAD, DATA
  14. 5 .data 00000074 20000000 08002fd4 00020000 2**2
  15. CONTENTS, ALLOC, LOAD, DATA
  16. 6 .bss 00000214 20000078 08003048 00020078 2**3
  17. ALLOC
  18. 7 ._user_heap_stack 00000600 2000028c 08003048 0002028c 2**0
  19. ALLOC
  20. 8 .ARM.attributes 00000029 00000000 00000000 00020074 2**0
  21. CONTENTS, READONLY
  22. 9 .debug_info 0001566c 00000000 00000000 0002009d 2**0
  23. CONTENTS, READONLY, DEBUGGING
  24. 10 .debug_abbrev 00002eb9 00000000 00000000 00035709 2**0
  25. CONTENTS, READONLY, DEBUGGING
  26. 11 .debug_loc 00007297 00000000 00000000 000385c2 2**0
  27. CONTENTS, READONLY, DEBUGGING
  28. 12 .debug_aranges 00000a00 00000000 00000000 0003f860 2**3
  29. CONTENTS, READONLY, DEBUGGING
  30. 13 .debug_ranges 00000d50 00000000 00000000 00040260 2**3
  31. CONTENTS, READONLY, DEBUGGING
  32. 14 .debug_line 0000600b 00000000 00000000 00040fb0 2**0
  33. CONTENTS, READONLY, DEBUGGING
  34. 15 .debug_str 00003e5c 00000000 00000000 00046fbb 2**0
  35. CONTENTS, READONLY, DEBUGGING
  36. 16 .comment 0000007c 00000000 00000000 0004ae17 2**0
  37. CONTENTS, READONLY
  38. 17 .debug_frame 00002500 00000000 00000000 0004ae94 2**2
  39. CONTENTS, READONLY, DEBUGGING
  40. 18 .stab 00000084 00000000 00000000 0004d394 2**2
  41. CONTENTS, READONLY, DEBUGGING
  42. 19 .stabstr 00000117 00000000 00000000 0004d418 2**0
  43. CONTENTS, READONLY, DEBUGGING
  44. Disassembly of section .text:
  45. 080001d0 <__do_global_dtors_aux>:
  46. 80001d0: b510 push {r4, lr}
  47. 80001d2: 4c05 ldr r4, [pc, #20] ; (80001e8 <__do_global_dtors_aux+0x18>)
  48. 80001d4: 7823 ldrb r3, [r4, #0]
  49. 80001d6: b933 cbnz r3, 80001e6 <__do_global_dtors_aux+0x16>
  50. 80001d8: 4b04 ldr r3, [pc, #16] ; (80001ec <__do_global_dtors_aux+0x1c>)
  51. 80001da: b113 cbz r3, 80001e2 <__do_global_dtors_aux+0x12>
  52. 80001dc: 4804 ldr r0, [pc, #16] ; (80001f0 <__do_global_dtors_aux+0x20>)
  53. 80001de: f3af 8000 nop.w
  54. 80001e2: 2301 movs r3, #1
  55. 80001e4: 7023 strb r3, [r4, #0]
  56. 80001e6: bd10 pop {r4, pc}
  57. 80001e8: 20000078 .word 0x20000078
  58. 80001ec: 00000000 .word 0x00000000
  59. 80001f0: 08002df4 .word 0x08002df4
  60. 080001f4 <frame_dummy>:
  61. 80001f4: b508 push {r3, lr}
  62. 80001f6: 4b03 ldr r3, [pc, #12] ; (8000204 <frame_dummy+0x10>)
  63. 80001f8: b11b cbz r3, 8000202 <frame_dummy+0xe>
  64. 80001fa: 4903 ldr r1, [pc, #12] ; (8000208 <frame_dummy+0x14>)
  65. 80001fc: 4803 ldr r0, [pc, #12] ; (800020c <frame_dummy+0x18>)
  66. 80001fe: f3af 8000 nop.w
  67. 8000202: bd08 pop {r3, pc}
  68. 8000204: 00000000 .word 0x00000000
  69. 8000208: 2000007c .word 0x2000007c
  70. 800020c: 08002df4 .word 0x08002df4
  71. 08000210 <__aeabi_llsr>:
  72. 8000210: 40d0 lsrs r0, r2
  73. 8000212: 1c0b adds r3, r1, #0
  74. 8000214: 40d1 lsrs r1, r2
  75. 8000216: 469c mov ip, r3
  76. 8000218: 3a20 subs r2, #32
  77. 800021a: 40d3 lsrs r3, r2
  78. 800021c: 4318 orrs r0, r3
  79. 800021e: 4252 negs r2, r2
  80. 8000220: 4663 mov r3, ip
  81. 8000222: 4093 lsls r3, r2
  82. 8000224: 4318 orrs r0, r3
  83. 8000226: 4770 bx lr
  84. 08000228 <HAL_InitTick>:
  85. * implementation in user file.
  86. * @param TickPriority Tick interrupt priority.
  87. * @retval HAL status
  88. */
  89. __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
  90. {
  91. 8000228: b538 push {r3, r4, r5, lr}
  92. /* Configure the SysTick to have interrupt in 1ms time basis*/
  93. if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
  94. 800022a: 4b0e ldr r3, [pc, #56] ; (8000264 <HAL_InitTick+0x3c>)
  95. {
  96. 800022c: 4605 mov r5, r0
  97. if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
  98. 800022e: 7818 ldrb r0, [r3, #0]
  99. 8000230: f44f 737a mov.w r3, #1000 ; 0x3e8
  100. 8000234: fbb3 f3f0 udiv r3, r3, r0
  101. 8000238: 4a0b ldr r2, [pc, #44] ; (8000268 <HAL_InitTick+0x40>)
  102. 800023a: 6810 ldr r0, [r2, #0]
  103. 800023c: fbb0 f0f3 udiv r0, r0, r3
  104. 8000240: f000 f898 bl 8000374 <HAL_SYSTICK_Config>
  105. 8000244: 4604 mov r4, r0
  106. 8000246: b958 cbnz r0, 8000260 <HAL_InitTick+0x38>
  107. {
  108. return HAL_ERROR;
  109. }
  110. /* Configure the SysTick IRQ priority */
  111. if (TickPriority < (1UL << __NVIC_PRIO_BITS))
  112. 8000248: 2d0f cmp r5, #15
  113. 800024a: d809 bhi.n 8000260 <HAL_InitTick+0x38>
  114. {
  115. HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
  116. 800024c: 4602 mov r2, r0
  117. 800024e: 4629 mov r1, r5
  118. 8000250: f04f 30ff mov.w r0, #4294967295
  119. 8000254: f000 f84e bl 80002f4 <HAL_NVIC_SetPriority>
  120. uwTickPrio = TickPriority;
  121. 8000258: 4b04 ldr r3, [pc, #16] ; (800026c <HAL_InitTick+0x44>)
  122. 800025a: 4620 mov r0, r4
  123. 800025c: 601d str r5, [r3, #0]
  124. 800025e: bd38 pop {r3, r4, r5, pc}
  125. return HAL_ERROR;
  126. 8000260: 2001 movs r0, #1
  127. return HAL_ERROR;
  128. }
  129. /* Return function status */
  130. return HAL_OK;
  131. }
  132. 8000262: bd38 pop {r3, r4, r5, pc}
  133. 8000264: 20000000 .word 0x20000000
  134. 8000268: 2000000c .word 0x2000000c
  135. 800026c: 20000004 .word 0x20000004
  136. 08000270 <HAL_Init>:
  137. {
  138. 8000270: b508 push {r3, lr}
  139. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
  140. 8000272: 2003 movs r0, #3
  141. 8000274: f000 f82c bl 80002d0 <HAL_NVIC_SetPriorityGrouping>
  142. HAL_InitTick(TICK_INT_PRIORITY);
  143. 8000278: 2000 movs r0, #0
  144. 800027a: f7ff ffd5 bl 8000228 <HAL_InitTick>
  145. HAL_MspInit();
  146. 800027e: f001 fc5b bl 8001b38 <HAL_MspInit>
  147. }
  148. 8000282: 2000 movs r0, #0
  149. 8000284: bd08 pop {r3, pc}
  150. ...
  151. 08000288 <HAL_IncTick>:
  152. * implementations in user file.
  153. * @retval None
  154. */
  155. __weak void HAL_IncTick(void)
  156. {
  157. uwTick += uwTickFreq;
  158. 8000288: 4a03 ldr r2, [pc, #12] ; (8000298 <HAL_IncTick+0x10>)
  159. 800028a: 4b04 ldr r3, [pc, #16] ; (800029c <HAL_IncTick+0x14>)
  160. 800028c: 6811 ldr r1, [r2, #0]
  161. 800028e: 781b ldrb r3, [r3, #0]
  162. 8000290: 440b add r3, r1
  163. 8000292: 6013 str r3, [r2, #0]
  164. 8000294: 4770 bx lr
  165. 8000296: bf00 nop
  166. 8000298: 200000d0 .word 0x200000d0
  167. 800029c: 20000000 .word 0x20000000
  168. 080002a0 <HAL_GetTick>:
  169. * implementations in user file.
  170. * @retval tick value
  171. */
  172. __weak uint32_t HAL_GetTick(void)
  173. {
  174. return uwTick;
  175. 80002a0: 4b01 ldr r3, [pc, #4] ; (80002a8 <HAL_GetTick+0x8>)
  176. 80002a2: 6818 ldr r0, [r3, #0]
  177. }
  178. 80002a4: 4770 bx lr
  179. 80002a6: bf00 nop
  180. 80002a8: 200000d0 .word 0x200000d0
  181. 080002ac <HAL_Delay>:
  182. * implementations in user file.
  183. * @param Delay specifies the delay time length, in milliseconds.
  184. * @retval None
  185. */
  186. __weak void HAL_Delay(uint32_t Delay)
  187. {
  188. 80002ac: b538 push {r3, r4, r5, lr}
  189. 80002ae: 4604 mov r4, r0
  190. uint32_t tickstart = HAL_GetTick();
  191. 80002b0: f7ff fff6 bl 80002a0 <HAL_GetTick>
  192. 80002b4: 4605 mov r5, r0
  193. uint32_t wait = Delay;
  194. /* Add a freq to guarantee minimum wait */
  195. if (wait < HAL_MAX_DELAY)
  196. 80002b6: 1c63 adds r3, r4, #1
  197. {
  198. wait += (uint32_t)(uwTickFreq);
  199. 80002b8: bf1e ittt ne
  200. 80002ba: 4b04 ldrne r3, [pc, #16] ; (80002cc <HAL_Delay+0x20>)
  201. 80002bc: 781b ldrbne r3, [r3, #0]
  202. 80002be: 18e4 addne r4, r4, r3
  203. }
  204. while ((HAL_GetTick() - tickstart) < wait)
  205. 80002c0: f7ff ffee bl 80002a0 <HAL_GetTick>
  206. 80002c4: 1b40 subs r0, r0, r5
  207. 80002c6: 4284 cmp r4, r0
  208. 80002c8: d8fa bhi.n 80002c0 <HAL_Delay+0x14>
  209. {
  210. }
  211. }
  212. 80002ca: bd38 pop {r3, r4, r5, pc}
  213. 80002cc: 20000000 .word 0x20000000
  214. 080002d0 <HAL_NVIC_SetPriorityGrouping>:
  215. __STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
  216. {
  217. uint32_t reg_value;
  218. uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
  219. reg_value = SCB->AIRCR; /* read old register configuration */
  220. 80002d0: 4a07 ldr r2, [pc, #28] ; (80002f0 <HAL_NVIC_SetPriorityGrouping+0x20>)
  221. reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
  222. reg_value = (reg_value |
  223. ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
  224. (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */
  225. 80002d2: 0200 lsls r0, r0, #8
  226. reg_value = SCB->AIRCR; /* read old register configuration */
  227. 80002d4: 68d3 ldr r3, [r2, #12]
  228. (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */
  229. 80002d6: f400 60e0 and.w r0, r0, #1792 ; 0x700
  230. reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
  231. 80002da: f423 63e0 bic.w r3, r3, #1792 ; 0x700
  232. 80002de: 041b lsls r3, r3, #16
  233. 80002e0: 0c1b lsrs r3, r3, #16
  234. 80002e2: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000
  235. 80002e6: f443 3300 orr.w r3, r3, #131072 ; 0x20000
  236. reg_value = (reg_value |
  237. 80002ea: 4303 orrs r3, r0
  238. SCB->AIRCR = reg_value;
  239. 80002ec: 60d3 str r3, [r2, #12]
  240. 80002ee: 4770 bx lr
  241. 80002f0: e000ed00 .word 0xe000ed00
  242. 080002f4 <HAL_NVIC_SetPriority>:
  243. \details Reads the priority grouping field from the NVIC Interrupt Controller.
  244. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
  245. */
  246. __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void)
  247. {
  248. return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
  249. 80002f4: 4b17 ldr r3, [pc, #92] ; (8000354 <HAL_NVIC_SetPriority+0x60>)
  250. * This parameter can be a value between 0 and 15
  251. * A lower priority value indicates a higher priority.
  252. * @retval None
  253. */
  254. void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
  255. {
  256. 80002f6: b530 push {r4, r5, lr}
  257. 80002f8: 68dc ldr r4, [r3, #12]
  258. 80002fa: f3c4 2402 ubfx r4, r4, #8, #3
  259. {
  260. uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
  261. uint32_t PreemptPriorityBits;
  262. uint32_t SubPriorityBits;
  263. PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
  264. 80002fe: f1c4 0307 rsb r3, r4, #7
  265. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  266. 8000302: 1d25 adds r5, r4, #4
  267. PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
  268. 8000304: 2b04 cmp r3, #4
  269. 8000306: bf28 it cs
  270. 8000308: 2304 movcs r3, #4
  271. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  272. 800030a: 2d06 cmp r5, #6
  273. return (
  274. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  275. 800030c: f04f 0501 mov.w r5, #1
  276. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  277. 8000310: bf98 it ls
  278. 8000312: 2400 movls r4, #0
  279. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  280. 8000314: fa05 f303 lsl.w r3, r5, r3
  281. 8000318: f103 33ff add.w r3, r3, #4294967295
  282. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  283. 800031c: bf88 it hi
  284. 800031e: 3c03 subhi r4, #3
  285. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  286. 8000320: 4019 ands r1, r3
  287. 8000322: 40a1 lsls r1, r4
  288. ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
  289. 8000324: fa05 f404 lsl.w r4, r5, r4
  290. 8000328: 3c01 subs r4, #1
  291. 800032a: 4022 ands r2, r4
  292. if ((int32_t)(IRQn) < 0)
  293. 800032c: 2800 cmp r0, #0
  294. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  295. 800032e: ea42 0201 orr.w r2, r2, r1
  296. 8000332: ea4f 1202 mov.w r2, r2, lsl #4
  297. NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  298. 8000336: bfaf iteee ge
  299. 8000338: f100 4060 addge.w r0, r0, #3758096384 ; 0xe0000000
  300. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  301. 800033c: 4b06 ldrlt r3, [pc, #24] ; (8000358 <HAL_NVIC_SetPriority+0x64>)
  302. 800033e: f000 000f andlt.w r0, r0, #15
  303. 8000342: b2d2 uxtblt r2, r2
  304. NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  305. 8000344: bfa5 ittet ge
  306. 8000346: b2d2 uxtbge r2, r2
  307. 8000348: f500 4061 addge.w r0, r0, #57600 ; 0xe100
  308. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  309. 800034c: 541a strblt r2, [r3, r0]
  310. NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  311. 800034e: f880 2300 strbge.w r2, [r0, #768] ; 0x300
  312. 8000352: bd30 pop {r4, r5, pc}
  313. 8000354: e000ed00 .word 0xe000ed00
  314. 8000358: e000ed14 .word 0xe000ed14
  315. 0800035c <HAL_NVIC_EnableIRQ>:
  316. NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
  317. 800035c: 2301 movs r3, #1
  318. 800035e: 0942 lsrs r2, r0, #5
  319. 8000360: f000 001f and.w r0, r0, #31
  320. 8000364: fa03 f000 lsl.w r0, r3, r0
  321. 8000368: 4b01 ldr r3, [pc, #4] ; (8000370 <HAL_NVIC_EnableIRQ+0x14>)
  322. 800036a: f843 0022 str.w r0, [r3, r2, lsl #2]
  323. 800036e: 4770 bx lr
  324. 8000370: e000e100 .word 0xe000e100
  325. 08000374 <HAL_SYSTICK_Config>:
  326. function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
  327. must contain a vendor-specific implementation of this function.
  328. */
  329. __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
  330. {
  331. if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
  332. 8000374: 3801 subs r0, #1
  333. 8000376: f1b0 7f80 cmp.w r0, #16777216 ; 0x1000000
  334. 800037a: d20a bcs.n 8000392 <HAL_SYSTICK_Config+0x1e>
  335. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  336. 800037c: 21f0 movs r1, #240 ; 0xf0
  337. {
  338. return (1UL); /* Reload value impossible */
  339. }
  340. SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
  341. 800037e: 4b06 ldr r3, [pc, #24] ; (8000398 <HAL_SYSTICK_Config+0x24>)
  342. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  343. 8000380: 4a06 ldr r2, [pc, #24] ; (800039c <HAL_SYSTICK_Config+0x28>)
  344. SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
  345. 8000382: 6058 str r0, [r3, #4]
  346. SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  347. 8000384: f882 1023 strb.w r1, [r2, #35] ; 0x23
  348. NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
  349. SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
  350. 8000388: 2000 movs r0, #0
  351. SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
  352. 800038a: 2207 movs r2, #7
  353. SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
  354. 800038c: 6098 str r0, [r3, #8]
  355. SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
  356. 800038e: 601a str r2, [r3, #0]
  357. 8000390: 4770 bx lr
  358. return (1UL); /* Reload value impossible */
  359. 8000392: 2001 movs r0, #1
  360. * - 1 Function failed.
  361. */
  362. uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
  363. {
  364. return SysTick_Config(TicksNumb);
  365. }
  366. 8000394: 4770 bx lr
  367. 8000396: bf00 nop
  368. 8000398: e000e010 .word 0xe000e010
  369. 800039c: e000ed00 .word 0xe000ed00
  370. 080003a0 <HAL_DMA_Abort_IT>:
  371. */
  372. HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
  373. {
  374. HAL_StatusTypeDef status = HAL_OK;
  375. if(HAL_DMA_STATE_BUSY != hdma->State)
  376. 80003a0: f890 3021 ldrb.w r3, [r0, #33] ; 0x21
  377. {
  378. 80003a4: b510 push {r4, lr}
  379. if(HAL_DMA_STATE_BUSY != hdma->State)
  380. 80003a6: 2b02 cmp r3, #2
  381. 80003a8: d003 beq.n 80003b2 <HAL_DMA_Abort_IT+0x12>
  382. {
  383. /* no transfer ongoing */
  384. hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
  385. 80003aa: 2304 movs r3, #4
  386. 80003ac: 6383 str r3, [r0, #56] ; 0x38
  387. status = HAL_ERROR;
  388. 80003ae: 2001 movs r0, #1
  389. 80003b0: bd10 pop {r4, pc}
  390. }
  391. else
  392. {
  393. /* Disable DMA IT */
  394. __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
  395. 80003b2: 6803 ldr r3, [r0, #0]
  396. 80003b4: 681a ldr r2, [r3, #0]
  397. 80003b6: f022 020e bic.w r2, r2, #14
  398. 80003ba: 601a str r2, [r3, #0]
  399. /* Disable the channel */
  400. __HAL_DMA_DISABLE(hdma);
  401. 80003bc: 681a ldr r2, [r3, #0]
  402. 80003be: f022 0201 bic.w r2, r2, #1
  403. 80003c2: 601a str r2, [r3, #0]
  404. /* Clear all flags */
  405. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_GI_FLAG_INDEX(hdma));
  406. 80003c4: 4a18 ldr r2, [pc, #96] ; (8000428 <HAL_DMA_Abort_IT+0x88>)
  407. 80003c6: 4293 cmp r3, r2
  408. 80003c8: d01f beq.n 800040a <HAL_DMA_Abort_IT+0x6a>
  409. 80003ca: 3214 adds r2, #20
  410. 80003cc: 4293 cmp r3, r2
  411. 80003ce: d01e beq.n 800040e <HAL_DMA_Abort_IT+0x6e>
  412. 80003d0: 3214 adds r2, #20
  413. 80003d2: 4293 cmp r3, r2
  414. 80003d4: d01d beq.n 8000412 <HAL_DMA_Abort_IT+0x72>
  415. 80003d6: 3214 adds r2, #20
  416. 80003d8: 4293 cmp r3, r2
  417. 80003da: d01d beq.n 8000418 <HAL_DMA_Abort_IT+0x78>
  418. 80003dc: 3214 adds r2, #20
  419. 80003de: 4293 cmp r3, r2
  420. 80003e0: d01d beq.n 800041e <HAL_DMA_Abort_IT+0x7e>
  421. 80003e2: 3214 adds r2, #20
  422. 80003e4: 4293 cmp r3, r2
  423. 80003e6: bf0c ite eq
  424. 80003e8: f44f 1380 moveq.w r3, #1048576 ; 0x100000
  425. 80003ec: f04f 7380 movne.w r3, #16777216 ; 0x1000000
  426. 80003f0: 4a0e ldr r2, [pc, #56] ; (800042c <HAL_DMA_Abort_IT+0x8c>)
  427. /* Change the DMA state */
  428. hdma->State = HAL_DMA_STATE_READY;
  429. /* Process Unlocked */
  430. __HAL_UNLOCK(hdma);
  431. 80003f2: 2400 movs r4, #0
  432. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_GI_FLAG_INDEX(hdma));
  433. 80003f4: 6053 str r3, [r2, #4]
  434. hdma->State = HAL_DMA_STATE_READY;
  435. 80003f6: 2301 movs r3, #1
  436. 80003f8: f880 3021 strb.w r3, [r0, #33] ; 0x21
  437. /* Call User Abort callback */
  438. if(hdma->XferAbortCallback != NULL)
  439. 80003fc: 6b43 ldr r3, [r0, #52] ; 0x34
  440. __HAL_UNLOCK(hdma);
  441. 80003fe: f880 4020 strb.w r4, [r0, #32]
  442. if(hdma->XferAbortCallback != NULL)
  443. 8000402: b17b cbz r3, 8000424 <HAL_DMA_Abort_IT+0x84>
  444. {
  445. hdma->XferAbortCallback(hdma);
  446. 8000404: 4798 blx r3
  447. HAL_StatusTypeDef status = HAL_OK;
  448. 8000406: 4620 mov r0, r4
  449. 8000408: bd10 pop {r4, pc}
  450. __HAL_DMA_CLEAR_FLAG(hdma, __HAL_DMA_GET_GI_FLAG_INDEX(hdma));
  451. 800040a: 2301 movs r3, #1
  452. 800040c: e7f0 b.n 80003f0 <HAL_DMA_Abort_IT+0x50>
  453. 800040e: 2310 movs r3, #16
  454. 8000410: e7ee b.n 80003f0 <HAL_DMA_Abort_IT+0x50>
  455. 8000412: f44f 7380 mov.w r3, #256 ; 0x100
  456. 8000416: e7eb b.n 80003f0 <HAL_DMA_Abort_IT+0x50>
  457. 8000418: f44f 5380 mov.w r3, #4096 ; 0x1000
  458. 800041c: e7e8 b.n 80003f0 <HAL_DMA_Abort_IT+0x50>
  459. 800041e: f44f 3380 mov.w r3, #65536 ; 0x10000
  460. 8000422: e7e5 b.n 80003f0 <HAL_DMA_Abort_IT+0x50>
  461. HAL_StatusTypeDef status = HAL_OK;
  462. 8000424: 4618 mov r0, r3
  463. }
  464. }
  465. return status;
  466. }
  467. 8000426: bd10 pop {r4, pc}
  468. 8000428: 40020008 .word 0x40020008
  469. 800042c: 40020000 .word 0x40020000
  470. 08000430 <FLASH_SetErrorCode>:
  471. uint32_t flags = 0U;
  472. #if defined(FLASH_BANK2_END)
  473. if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) || __HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR_BANK2))
  474. #else
  475. if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR))
  476. 8000430: 4a11 ldr r2, [pc, #68] ; (8000478 <FLASH_SetErrorCode+0x48>)
  477. 8000432: 68d3 ldr r3, [r2, #12]
  478. 8000434: f013 0310 ands.w r3, r3, #16
  479. 8000438: d005 beq.n 8000446 <FLASH_SetErrorCode+0x16>
  480. #endif /* FLASH_BANK2_END */
  481. {
  482. pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
  483. 800043a: 4910 ldr r1, [pc, #64] ; (800047c <FLASH_SetErrorCode+0x4c>)
  484. 800043c: 69cb ldr r3, [r1, #28]
  485. 800043e: f043 0302 orr.w r3, r3, #2
  486. 8000442: 61cb str r3, [r1, #28]
  487. #if defined(FLASH_BANK2_END)
  488. flags |= FLASH_FLAG_WRPERR | FLASH_FLAG_WRPERR_BANK2;
  489. #else
  490. flags |= FLASH_FLAG_WRPERR;
  491. 8000444: 2310 movs r3, #16
  492. #endif /* FLASH_BANK2_END */
  493. }
  494. #if defined(FLASH_BANK2_END)
  495. if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR) || __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR_BANK2))
  496. #else
  497. if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
  498. 8000446: 68d2 ldr r2, [r2, #12]
  499. 8000448: 0750 lsls r0, r2, #29
  500. 800044a: d506 bpl.n 800045a <FLASH_SetErrorCode+0x2a>
  501. #endif /* FLASH_BANK2_END */
  502. {
  503. pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG;
  504. 800044c: 490b ldr r1, [pc, #44] ; (800047c <FLASH_SetErrorCode+0x4c>)
  505. #if defined(FLASH_BANK2_END)
  506. flags |= FLASH_FLAG_PGERR | FLASH_FLAG_PGERR_BANK2;
  507. #else
  508. flags |= FLASH_FLAG_PGERR;
  509. 800044e: f043 0304 orr.w r3, r3, #4
  510. pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG;
  511. 8000452: 69ca ldr r2, [r1, #28]
  512. 8000454: f042 0201 orr.w r2, r2, #1
  513. 8000458: 61ca str r2, [r1, #28]
  514. #endif /* FLASH_BANK2_END */
  515. }
  516. if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR))
  517. 800045a: 4a07 ldr r2, [pc, #28] ; (8000478 <FLASH_SetErrorCode+0x48>)
  518. 800045c: 69d1 ldr r1, [r2, #28]
  519. 800045e: 07c9 lsls r1, r1, #31
  520. 8000460: d508 bpl.n 8000474 <FLASH_SetErrorCode+0x44>
  521. {
  522. pFlash.ErrorCode |= HAL_FLASH_ERROR_OPTV;
  523. 8000462: 4806 ldr r0, [pc, #24] ; (800047c <FLASH_SetErrorCode+0x4c>)
  524. 8000464: 69c1 ldr r1, [r0, #28]
  525. 8000466: f041 0104 orr.w r1, r1, #4
  526. 800046a: 61c1 str r1, [r0, #28]
  527. __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR);
  528. 800046c: 69d1 ldr r1, [r2, #28]
  529. 800046e: f021 0101 bic.w r1, r1, #1
  530. 8000472: 61d1 str r1, [r2, #28]
  531. }
  532. /* Clear FLASH error pending bits */
  533. __HAL_FLASH_CLEAR_FLAG(flags);
  534. 8000474: 60d3 str r3, [r2, #12]
  535. 8000476: 4770 bx lr
  536. 8000478: 40022000 .word 0x40022000
  537. 800047c: 200000d8 .word 0x200000d8
  538. 08000480 <HAL_FLASH_Unlock>:
  539. if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
  540. 8000480: 4b06 ldr r3, [pc, #24] ; (800049c <HAL_FLASH_Unlock+0x1c>)
  541. 8000482: 6918 ldr r0, [r3, #16]
  542. 8000484: f010 0080 ands.w r0, r0, #128 ; 0x80
  543. 8000488: d007 beq.n 800049a <HAL_FLASH_Unlock+0x1a>
  544. WRITE_REG(FLASH->KEYR, FLASH_KEY1);
  545. 800048a: 4a05 ldr r2, [pc, #20] ; (80004a0 <HAL_FLASH_Unlock+0x20>)
  546. 800048c: 605a str r2, [r3, #4]
  547. WRITE_REG(FLASH->KEYR, FLASH_KEY2);
  548. 800048e: f102 3288 add.w r2, r2, #2290649224 ; 0x88888888
  549. 8000492: 605a str r2, [r3, #4]
  550. if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
  551. 8000494: 6918 ldr r0, [r3, #16]
  552. HAL_StatusTypeDef status = HAL_OK;
  553. 8000496: f3c0 10c0 ubfx r0, r0, #7, #1
  554. }
  555. 800049a: 4770 bx lr
  556. 800049c: 40022000 .word 0x40022000
  557. 80004a0: 45670123 .word 0x45670123
  558. 080004a4 <HAL_FLASH_Lock>:
  559. SET_BIT(FLASH->CR, FLASH_CR_LOCK);
  560. 80004a4: 4a03 ldr r2, [pc, #12] ; (80004b4 <HAL_FLASH_Lock+0x10>)
  561. }
  562. 80004a6: 2000 movs r0, #0
  563. SET_BIT(FLASH->CR, FLASH_CR_LOCK);
  564. 80004a8: 6913 ldr r3, [r2, #16]
  565. 80004aa: f043 0380 orr.w r3, r3, #128 ; 0x80
  566. 80004ae: 6113 str r3, [r2, #16]
  567. }
  568. 80004b0: 4770 bx lr
  569. 80004b2: bf00 nop
  570. 80004b4: 40022000 .word 0x40022000
  571. 080004b8 <FLASH_WaitForLastOperation>:
  572. {
  573. 80004b8: b5f8 push {r3, r4, r5, r6, r7, lr}
  574. 80004ba: 4606 mov r6, r0
  575. uint32_t tickstart = HAL_GetTick();
  576. 80004bc: f7ff fef0 bl 80002a0 <HAL_GetTick>
  577. while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
  578. 80004c0: 4c11 ldr r4, [pc, #68] ; (8000508 <FLASH_WaitForLastOperation+0x50>)
  579. uint32_t tickstart = HAL_GetTick();
  580. 80004c2: 4607 mov r7, r0
  581. 80004c4: 4625 mov r5, r4
  582. while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
  583. 80004c6: 68e3 ldr r3, [r4, #12]
  584. 80004c8: 07d8 lsls r0, r3, #31
  585. 80004ca: d412 bmi.n 80004f2 <FLASH_WaitForLastOperation+0x3a>
  586. if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
  587. 80004cc: 68e3 ldr r3, [r4, #12]
  588. 80004ce: 0699 lsls r1, r3, #26
  589. __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
  590. 80004d0: bf44 itt mi
  591. 80004d2: 2320 movmi r3, #32
  592. 80004d4: 60e3 strmi r3, [r4, #12]
  593. if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||
  594. 80004d6: 68eb ldr r3, [r5, #12]
  595. 80004d8: 06da lsls r2, r3, #27
  596. 80004da: d406 bmi.n 80004ea <FLASH_WaitForLastOperation+0x32>
  597. __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR) ||
  598. 80004dc: 69eb ldr r3, [r5, #28]
  599. if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||
  600. 80004de: 07db lsls r3, r3, #31
  601. 80004e0: d403 bmi.n 80004ea <FLASH_WaitForLastOperation+0x32>
  602. __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
  603. 80004e2: 68e8 ldr r0, [r5, #12]
  604. __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR) ||
  605. 80004e4: f010 0004 ands.w r0, r0, #4
  606. 80004e8: d002 beq.n 80004f0 <FLASH_WaitForLastOperation+0x38>
  607. FLASH_SetErrorCode();
  608. 80004ea: f7ff ffa1 bl 8000430 <FLASH_SetErrorCode>
  609. return HAL_ERROR;
  610. 80004ee: 2001 movs r0, #1
  611. }
  612. 80004f0: bdf8 pop {r3, r4, r5, r6, r7, pc}
  613. if (Timeout != HAL_MAX_DELAY)
  614. 80004f2: 1c73 adds r3, r6, #1
  615. 80004f4: d0e7 beq.n 80004c6 <FLASH_WaitForLastOperation+0xe>
  616. if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout))
  617. 80004f6: b90e cbnz r6, 80004fc <FLASH_WaitForLastOperation+0x44>
  618. return HAL_TIMEOUT;
  619. 80004f8: 2003 movs r0, #3
  620. 80004fa: bdf8 pop {r3, r4, r5, r6, r7, pc}
  621. if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout))
  622. 80004fc: f7ff fed0 bl 80002a0 <HAL_GetTick>
  623. 8000500: 1bc0 subs r0, r0, r7
  624. 8000502: 4286 cmp r6, r0
  625. 8000504: d2df bcs.n 80004c6 <FLASH_WaitForLastOperation+0xe>
  626. 8000506: e7f7 b.n 80004f8 <FLASH_WaitForLastOperation+0x40>
  627. 8000508: 40022000 .word 0x40022000
  628. 0800050c <HAL_FLASH_Program>:
  629. {
  630. 800050c: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
  631. __HAL_LOCK(&pFlash);
  632. 8000510: 4c1f ldr r4, [pc, #124] ; (8000590 <HAL_FLASH_Program+0x84>)
  633. {
  634. 8000512: 4699 mov r9, r3
  635. __HAL_LOCK(&pFlash);
  636. 8000514: 7e23 ldrb r3, [r4, #24]
  637. {
  638. 8000516: 4605 mov r5, r0
  639. __HAL_LOCK(&pFlash);
  640. 8000518: 2b01 cmp r3, #1
  641. {
  642. 800051a: 460f mov r7, r1
  643. 800051c: 4690 mov r8, r2
  644. __HAL_LOCK(&pFlash);
  645. 800051e: d033 beq.n 8000588 <HAL_FLASH_Program+0x7c>
  646. 8000520: 2301 movs r3, #1
  647. status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
  648. 8000522: f24c 3050 movw r0, #50000 ; 0xc350
  649. __HAL_LOCK(&pFlash);
  650. 8000526: 7623 strb r3, [r4, #24]
  651. status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
  652. 8000528: f7ff ffc6 bl 80004b8 <FLASH_WaitForLastOperation>
  653. if(status == HAL_OK)
  654. 800052c: bb40 cbnz r0, 8000580 <HAL_FLASH_Program+0x74>
  655. if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
  656. 800052e: 2d01 cmp r5, #1
  657. 8000530: d003 beq.n 800053a <HAL_FLASH_Program+0x2e>
  658. nbiterations = 4U;
  659. 8000532: 2d02 cmp r5, #2
  660. 8000534: bf0c ite eq
  661. 8000536: 2502 moveq r5, #2
  662. 8000538: 2504 movne r5, #4
  663. 800053a: 2600 movs r6, #0
  664. pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  665. 800053c: 46b2 mov sl, r6
  666. SET_BIT(FLASH->CR, FLASH_CR_PG);
  667. 800053e: f8df b054 ldr.w fp, [pc, #84] ; 8000594 <HAL_FLASH_Program+0x88>
  668. FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index)));
  669. 8000542: 0132 lsls r2, r6, #4
  670. 8000544: 4640 mov r0, r8
  671. 8000546: 4649 mov r1, r9
  672. 8000548: f7ff fe62 bl 8000210 <__aeabi_llsr>
  673. pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  674. 800054c: f8c4 a01c str.w sl, [r4, #28]
  675. SET_BIT(FLASH->CR, FLASH_CR_PG);
  676. 8000550: f8db 3010 ldr.w r3, [fp, #16]
  677. FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index)));
  678. 8000554: b280 uxth r0, r0
  679. SET_BIT(FLASH->CR, FLASH_CR_PG);
  680. 8000556: f043 0301 orr.w r3, r3, #1
  681. 800055a: f8cb 3010 str.w r3, [fp, #16]
  682. *(__IO uint16_t*)Address = Data;
  683. 800055e: f827 0016 strh.w r0, [r7, r6, lsl #1]
  684. status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
  685. 8000562: f24c 3050 movw r0, #50000 ; 0xc350
  686. 8000566: f7ff ffa7 bl 80004b8 <FLASH_WaitForLastOperation>
  687. CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
  688. 800056a: f8db 3010 ldr.w r3, [fp, #16]
  689. 800056e: f023 0301 bic.w r3, r3, #1
  690. 8000572: f8cb 3010 str.w r3, [fp, #16]
  691. if (status != HAL_OK)
  692. 8000576: b918 cbnz r0, 8000580 <HAL_FLASH_Program+0x74>
  693. 8000578: 3601 adds r6, #1
  694. for (index = 0U; index < nbiterations; index++)
  695. 800057a: b2f3 uxtb r3, r6
  696. 800057c: 429d cmp r5, r3
  697. 800057e: d8e0 bhi.n 8000542 <HAL_FLASH_Program+0x36>
  698. __HAL_UNLOCK(&pFlash);
  699. 8000580: 2300 movs r3, #0
  700. 8000582: 7623 strb r3, [r4, #24]
  701. return status;
  702. 8000584: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
  703. __HAL_LOCK(&pFlash);
  704. 8000588: 2002 movs r0, #2
  705. }
  706. 800058a: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
  707. 800058e: bf00 nop
  708. 8000590: 200000d8 .word 0x200000d8
  709. 8000594: 40022000 .word 0x40022000
  710. 08000598 <FLASH_MassErase.isra.0>:
  711. {
  712. /* Check the parameters */
  713. assert_param(IS_FLASH_BANK(Banks));
  714. /* Clean the error context */
  715. pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  716. 8000598: 2200 movs r2, #0
  717. 800059a: 4b06 ldr r3, [pc, #24] ; (80005b4 <FLASH_MassErase.isra.0+0x1c>)
  718. 800059c: 61da str r2, [r3, #28]
  719. #if !defined(FLASH_BANK2_END)
  720. /* Prevent unused argument(s) compilation warning */
  721. UNUSED(Banks);
  722. #endif /* FLASH_BANK2_END */
  723. /* Only bank1 will be erased*/
  724. SET_BIT(FLASH->CR, FLASH_CR_MER);
  725. 800059e: 4b06 ldr r3, [pc, #24] ; (80005b8 <FLASH_MassErase.isra.0+0x20>)
  726. 80005a0: 691a ldr r2, [r3, #16]
  727. 80005a2: f042 0204 orr.w r2, r2, #4
  728. 80005a6: 611a str r2, [r3, #16]
  729. SET_BIT(FLASH->CR, FLASH_CR_STRT);
  730. 80005a8: 691a ldr r2, [r3, #16]
  731. 80005aa: f042 0240 orr.w r2, r2, #64 ; 0x40
  732. 80005ae: 611a str r2, [r3, #16]
  733. 80005b0: 4770 bx lr
  734. 80005b2: bf00 nop
  735. 80005b4: 200000d8 .word 0x200000d8
  736. 80005b8: 40022000 .word 0x40022000
  737. 080005bc <FLASH_PageErase>:
  738. * @retval None
  739. */
  740. void FLASH_PageErase(uint32_t PageAddress)
  741. {
  742. /* Clean the error context */
  743. pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
  744. 80005bc: 2200 movs r2, #0
  745. 80005be: 4b06 ldr r3, [pc, #24] ; (80005d8 <FLASH_PageErase+0x1c>)
  746. 80005c0: 61da str r2, [r3, #28]
  747. }
  748. else
  749. {
  750. #endif /* FLASH_BANK2_END */
  751. /* Proceed to erase the page */
  752. SET_BIT(FLASH->CR, FLASH_CR_PER);
  753. 80005c2: 4b06 ldr r3, [pc, #24] ; (80005dc <FLASH_PageErase+0x20>)
  754. 80005c4: 691a ldr r2, [r3, #16]
  755. 80005c6: f042 0202 orr.w r2, r2, #2
  756. 80005ca: 611a str r2, [r3, #16]
  757. WRITE_REG(FLASH->AR, PageAddress);
  758. 80005cc: 6158 str r0, [r3, #20]
  759. SET_BIT(FLASH->CR, FLASH_CR_STRT);
  760. 80005ce: 691a ldr r2, [r3, #16]
  761. 80005d0: f042 0240 orr.w r2, r2, #64 ; 0x40
  762. 80005d4: 611a str r2, [r3, #16]
  763. 80005d6: 4770 bx lr
  764. 80005d8: 200000d8 .word 0x200000d8
  765. 80005dc: 40022000 .word 0x40022000
  766. 080005e0 <HAL_FLASHEx_Erase>:
  767. {
  768. 80005e0: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  769. __HAL_LOCK(&pFlash);
  770. 80005e4: 4d23 ldr r5, [pc, #140] ; (8000674 <HAL_FLASHEx_Erase+0x94>)
  771. {
  772. 80005e6: 4607 mov r7, r0
  773. __HAL_LOCK(&pFlash);
  774. 80005e8: 7e2b ldrb r3, [r5, #24]
  775. {
  776. 80005ea: 4688 mov r8, r1
  777. __HAL_LOCK(&pFlash);
  778. 80005ec: 2b01 cmp r3, #1
  779. 80005ee: d03d beq.n 800066c <HAL_FLASHEx_Erase+0x8c>
  780. 80005f0: 2401 movs r4, #1
  781. if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
  782. 80005f2: 6803 ldr r3, [r0, #0]
  783. __HAL_LOCK(&pFlash);
  784. 80005f4: 762c strb r4, [r5, #24]
  785. if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
  786. 80005f6: 2b02 cmp r3, #2
  787. if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)
  788. 80005f8: f24c 3050 movw r0, #50000 ; 0xc350
  789. if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
  790. 80005fc: d113 bne.n 8000626 <HAL_FLASHEx_Erase+0x46>
  791. if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)
  792. 80005fe: f7ff ff5b bl 80004b8 <FLASH_WaitForLastOperation>
  793. 8000602: b120 cbz r0, 800060e <HAL_FLASHEx_Erase+0x2e>
  794. HAL_StatusTypeDef status = HAL_ERROR;
  795. 8000604: 2001 movs r0, #1
  796. __HAL_UNLOCK(&pFlash);
  797. 8000606: 2300 movs r3, #0
  798. 8000608: 762b strb r3, [r5, #24]
  799. return status;
  800. 800060a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  801. FLASH_MassErase(FLASH_BANK_1);
  802. 800060e: f7ff ffc3 bl 8000598 <FLASH_MassErase.isra.0>
  803. status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  804. 8000612: f24c 3050 movw r0, #50000 ; 0xc350
  805. 8000616: f7ff ff4f bl 80004b8 <FLASH_WaitForLastOperation>
  806. CLEAR_BIT(FLASH->CR, FLASH_CR_MER);
  807. 800061a: 4a17 ldr r2, [pc, #92] ; (8000678 <HAL_FLASHEx_Erase+0x98>)
  808. 800061c: 6913 ldr r3, [r2, #16]
  809. 800061e: f023 0304 bic.w r3, r3, #4
  810. 8000622: 6113 str r3, [r2, #16]
  811. 8000624: e7ef b.n 8000606 <HAL_FLASHEx_Erase+0x26>
  812. if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)
  813. 8000626: f7ff ff47 bl 80004b8 <FLASH_WaitForLastOperation>
  814. 800062a: 2800 cmp r0, #0
  815. 800062c: d1ea bne.n 8000604 <HAL_FLASHEx_Erase+0x24>
  816. *PageError = 0xFFFFFFFFU;
  817. 800062e: f04f 33ff mov.w r3, #4294967295
  818. 8000632: f8c8 3000 str.w r3, [r8]
  819. HAL_StatusTypeDef status = HAL_ERROR;
  820. 8000636: 4620 mov r0, r4
  821. for(address = pEraseInit->PageAddress;
  822. 8000638: 68be ldr r6, [r7, #8]
  823. CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
  824. 800063a: 4c0f ldr r4, [pc, #60] ; (8000678 <HAL_FLASHEx_Erase+0x98>)
  825. address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
  826. 800063c: 68fa ldr r2, [r7, #12]
  827. 800063e: 68bb ldr r3, [r7, #8]
  828. 8000640: eb03 2382 add.w r3, r3, r2, lsl #10
  829. for(address = pEraseInit->PageAddress;
  830. 8000644: 429e cmp r6, r3
  831. 8000646: d2de bcs.n 8000606 <HAL_FLASHEx_Erase+0x26>
  832. FLASH_PageErase(address);
  833. 8000648: 4630 mov r0, r6
  834. 800064a: f7ff ffb7 bl 80005bc <FLASH_PageErase>
  835. status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
  836. 800064e: f24c 3050 movw r0, #50000 ; 0xc350
  837. 8000652: f7ff ff31 bl 80004b8 <FLASH_WaitForLastOperation>
  838. CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
  839. 8000656: 6923 ldr r3, [r4, #16]
  840. 8000658: f023 0302 bic.w r3, r3, #2
  841. 800065c: 6123 str r3, [r4, #16]
  842. if (status != HAL_OK)
  843. 800065e: b110 cbz r0, 8000666 <HAL_FLASHEx_Erase+0x86>
  844. *PageError = address;
  845. 8000660: f8c8 6000 str.w r6, [r8]
  846. break;
  847. 8000664: e7cf b.n 8000606 <HAL_FLASHEx_Erase+0x26>
  848. address += FLASH_PAGE_SIZE)
  849. 8000666: f506 6680 add.w r6, r6, #1024 ; 0x400
  850. 800066a: e7e7 b.n 800063c <HAL_FLASHEx_Erase+0x5c>
  851. __HAL_LOCK(&pFlash);
  852. 800066c: 2002 movs r0, #2
  853. }
  854. 800066e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  855. 8000672: bf00 nop
  856. 8000674: 200000d8 .word 0x200000d8
  857. 8000678: 40022000 .word 0x40022000
  858. 0800067c <HAL_GPIO_Init>:
  859. * @param GPIO_Init: pointer to a GPIO_InitTypeDef structure that contains
  860. * the configuration information for the specified GPIO peripheral.
  861. * @retval None
  862. */
  863. void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
  864. {
  865. 800067c: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
  866. uint32_t position;
  867. uint32_t ioposition = 0x00U;
  868. uint32_t iocurrent = 0x00U;
  869. uint32_t temp = 0x00U;
  870. uint32_t config = 0x00U;
  871. 8000680: 2200 movs r2, #0
  872. assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
  873. assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
  874. assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
  875. /* Configure the port pins */
  876. for (position = 0U; position < GPIO_NUMBER; position++)
  877. 8000682: 4616 mov r6, r2
  878. 8000684: 4b65 ldr r3, [pc, #404] ; (800081c <HAL_GPIO_Init+0x1a0>)
  879. {
  880. /* Check the Alternate function parameters */
  881. assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
  882. /* Based on the required mode, filling config variable with MODEy[1:0] and CNFy[3:2] corresponding bits */
  883. switch (GPIO_Init->Mode)
  884. 8000686: f8df e1a4 ldr.w lr, [pc, #420] ; 800082c <HAL_GPIO_Init+0x1b0>
  885. 800068a: f8df c1a4 ldr.w ip, [pc, #420] ; 8000830 <HAL_GPIO_Init+0x1b4>
  886. ioposition = (0x01U << position);
  887. 800068e: f04f 0801 mov.w r8, #1
  888. iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
  889. 8000692: 680c ldr r4, [r1, #0]
  890. ioposition = (0x01U << position);
  891. 8000694: fa08 f806 lsl.w r8, r8, r6
  892. iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
  893. 8000698: ea08 0404 and.w r4, r8, r4
  894. if (iocurrent == ioposition)
  895. 800069c: 45a0 cmp r8, r4
  896. 800069e: d17f bne.n 80007a0 <HAL_GPIO_Init+0x124>
  897. switch (GPIO_Init->Mode)
  898. 80006a0: 684d ldr r5, [r1, #4]
  899. 80006a2: 2d12 cmp r5, #18
  900. 80006a4: f000 80af beq.w 8000806 <HAL_GPIO_Init+0x18a>
  901. 80006a8: f200 8088 bhi.w 80007bc <HAL_GPIO_Init+0x140>
  902. 80006ac: 2d02 cmp r5, #2
  903. 80006ae: f000 80a7 beq.w 8000800 <HAL_GPIO_Init+0x184>
  904. 80006b2: d87c bhi.n 80007ae <HAL_GPIO_Init+0x132>
  905. 80006b4: 2d00 cmp r5, #0
  906. 80006b6: f000 808e beq.w 80007d6 <HAL_GPIO_Init+0x15a>
  907. 80006ba: 2d01 cmp r5, #1
  908. 80006bc: f000 809e beq.w 80007fc <HAL_GPIO_Init+0x180>
  909. in order to address CRH or CRL register*/
  910. configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH;
  911. registeroffset = (iocurrent < GPIO_PIN_8) ? (position << 2U) : ((position - 8U) << 2U);
  912. /* Apply the new configuration of the pin to the register */
  913. MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset));
  914. 80006c0: f04f 090f mov.w r9, #15
  915. configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH;
  916. 80006c4: 2cff cmp r4, #255 ; 0xff
  917. 80006c6: bf93 iteet ls
  918. 80006c8: 4682 movls sl, r0
  919. 80006ca: f106 4580 addhi.w r5, r6, #1073741824 ; 0x40000000
  920. 80006ce: 3d08 subhi r5, #8
  921. 80006d0: f8d0 b000 ldrls.w fp, [r0]
  922. 80006d4: bf92 itee ls
  923. 80006d6: 00b5 lslls r5, r6, #2
  924. 80006d8: f8d0 b004 ldrhi.w fp, [r0, #4]
  925. 80006dc: 00ad lslhi r5, r5, #2
  926. MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset));
  927. 80006de: fa09 f805 lsl.w r8, r9, r5
  928. 80006e2: ea2b 0808 bic.w r8, fp, r8
  929. 80006e6: fa02 f505 lsl.w r5, r2, r5
  930. configregister = (iocurrent < GPIO_PIN_8) ? &GPIOx->CRL : &GPIOx->CRH;
  931. 80006ea: bf88 it hi
  932. 80006ec: f100 0a04 addhi.w sl, r0, #4
  933. MODIFY_REG((*configregister), ((GPIO_CRL_MODE0 | GPIO_CRL_CNF0) << registeroffset), (config << registeroffset));
  934. 80006f0: ea48 0505 orr.w r5, r8, r5
  935. 80006f4: f8ca 5000 str.w r5, [sl]
  936. /*--------------------- EXTI Mode Configuration ------------------------*/
  937. /* Configure the External Interrupt or event for the current IO */
  938. if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
  939. 80006f8: f8d1 a004 ldr.w sl, [r1, #4]
  940. 80006fc: f01a 5f80 tst.w sl, #268435456 ; 0x10000000
  941. 8000700: d04e beq.n 80007a0 <HAL_GPIO_Init+0x124>
  942. {
  943. /* Enable AFIO Clock */
  944. __HAL_RCC_AFIO_CLK_ENABLE();
  945. 8000702: 4d47 ldr r5, [pc, #284] ; (8000820 <HAL_GPIO_Init+0x1a4>)
  946. 8000704: 4f46 ldr r7, [pc, #280] ; (8000820 <HAL_GPIO_Init+0x1a4>)
  947. 8000706: 69ad ldr r5, [r5, #24]
  948. 8000708: f026 0803 bic.w r8, r6, #3
  949. 800070c: f045 0501 orr.w r5, r5, #1
  950. 8000710: 61bd str r5, [r7, #24]
  951. 8000712: 69bd ldr r5, [r7, #24]
  952. 8000714: f108 4880 add.w r8, r8, #1073741824 ; 0x40000000
  953. 8000718: f005 0501 and.w r5, r5, #1
  954. 800071c: 9501 str r5, [sp, #4]
  955. 800071e: f508 3880 add.w r8, r8, #65536 ; 0x10000
  956. temp = AFIO->EXTICR[position >> 2U];
  957. CLEAR_BIT(temp, (0x0FU) << (4U * (position & 0x03U)));
  958. 8000722: f006 0b03 and.w fp, r6, #3
  959. __HAL_RCC_AFIO_CLK_ENABLE();
  960. 8000726: 9d01 ldr r5, [sp, #4]
  961. CLEAR_BIT(temp, (0x0FU) << (4U * (position & 0x03U)));
  962. 8000728: ea4f 0b8b mov.w fp, fp, lsl #2
  963. temp = AFIO->EXTICR[position >> 2U];
  964. 800072c: f8d8 5008 ldr.w r5, [r8, #8]
  965. CLEAR_BIT(temp, (0x0FU) << (4U * (position & 0x03U)));
  966. 8000730: fa09 f90b lsl.w r9, r9, fp
  967. 8000734: ea25 0909 bic.w r9, r5, r9
  968. SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
  969. 8000738: 4d3a ldr r5, [pc, #232] ; (8000824 <HAL_GPIO_Init+0x1a8>)
  970. 800073a: 42a8 cmp r0, r5
  971. 800073c: d068 beq.n 8000810 <HAL_GPIO_Init+0x194>
  972. 800073e: f505 6580 add.w r5, r5, #1024 ; 0x400
  973. 8000742: 42a8 cmp r0, r5
  974. 8000744: d066 beq.n 8000814 <HAL_GPIO_Init+0x198>
  975. 8000746: f505 6580 add.w r5, r5, #1024 ; 0x400
  976. 800074a: 42a8 cmp r0, r5
  977. 800074c: d064 beq.n 8000818 <HAL_GPIO_Init+0x19c>
  978. 800074e: f505 6580 add.w r5, r5, #1024 ; 0x400
  979. 8000752: 42a8 cmp r0, r5
  980. 8000754: bf0c ite eq
  981. 8000756: 2503 moveq r5, #3
  982. 8000758: 2504 movne r5, #4
  983. 800075a: fa05 f50b lsl.w r5, r5, fp
  984. 800075e: ea45 0509 orr.w r5, r5, r9
  985. AFIO->EXTICR[position >> 2U] = temp;
  986. 8000762: f8c8 5008 str.w r5, [r8, #8]
  987. /* Configure the interrupt mask */
  988. if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
  989. {
  990. SET_BIT(EXTI->IMR, iocurrent);
  991. 8000766: 681d ldr r5, [r3, #0]
  992. if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
  993. 8000768: f41a 3f80 tst.w sl, #65536 ; 0x10000
  994. SET_BIT(EXTI->IMR, iocurrent);
  995. 800076c: bf14 ite ne
  996. 800076e: 4325 orrne r5, r4
  997. }
  998. else
  999. {
  1000. CLEAR_BIT(EXTI->IMR, iocurrent);
  1001. 8000770: 43a5 biceq r5, r4
  1002. 8000772: 601d str r5, [r3, #0]
  1003. }
  1004. /* Configure the event mask */
  1005. if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
  1006. {
  1007. SET_BIT(EXTI->EMR, iocurrent);
  1008. 8000774: 685d ldr r5, [r3, #4]
  1009. if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
  1010. 8000776: f41a 3f00 tst.w sl, #131072 ; 0x20000
  1011. SET_BIT(EXTI->EMR, iocurrent);
  1012. 800077a: bf14 ite ne
  1013. 800077c: 4325 orrne r5, r4
  1014. }
  1015. else
  1016. {
  1017. CLEAR_BIT(EXTI->EMR, iocurrent);
  1018. 800077e: 43a5 biceq r5, r4
  1019. 8000780: 605d str r5, [r3, #4]
  1020. }
  1021. /* Enable or disable the rising trigger */
  1022. if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
  1023. {
  1024. SET_BIT(EXTI->RTSR, iocurrent);
  1025. 8000782: 689d ldr r5, [r3, #8]
  1026. if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
  1027. 8000784: f41a 1f80 tst.w sl, #1048576 ; 0x100000
  1028. SET_BIT(EXTI->RTSR, iocurrent);
  1029. 8000788: bf14 ite ne
  1030. 800078a: 4325 orrne r5, r4
  1031. }
  1032. else
  1033. {
  1034. CLEAR_BIT(EXTI->RTSR, iocurrent);
  1035. 800078c: 43a5 biceq r5, r4
  1036. 800078e: 609d str r5, [r3, #8]
  1037. }
  1038. /* Enable or disable the falling trigger */
  1039. if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
  1040. {
  1041. SET_BIT(EXTI->FTSR, iocurrent);
  1042. 8000790: 68dd ldr r5, [r3, #12]
  1043. if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
  1044. 8000792: f41a 1f00 tst.w sl, #2097152 ; 0x200000
  1045. SET_BIT(EXTI->FTSR, iocurrent);
  1046. 8000796: bf14 ite ne
  1047. 8000798: 432c orrne r4, r5
  1048. }
  1049. else
  1050. {
  1051. CLEAR_BIT(EXTI->FTSR, iocurrent);
  1052. 800079a: ea25 0404 biceq.w r4, r5, r4
  1053. 800079e: 60dc str r4, [r3, #12]
  1054. for (position = 0U; position < GPIO_NUMBER; position++)
  1055. 80007a0: 3601 adds r6, #1
  1056. 80007a2: 2e10 cmp r6, #16
  1057. 80007a4: f47f af73 bne.w 800068e <HAL_GPIO_Init+0x12>
  1058. }
  1059. }
  1060. }
  1061. }
  1062. }
  1063. 80007a8: b003 add sp, #12
  1064. 80007aa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  1065. switch (GPIO_Init->Mode)
  1066. 80007ae: 2d03 cmp r5, #3
  1067. 80007b0: d022 beq.n 80007f8 <HAL_GPIO_Init+0x17c>
  1068. 80007b2: 2d11 cmp r5, #17
  1069. 80007b4: d184 bne.n 80006c0 <HAL_GPIO_Init+0x44>
  1070. config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_OD;
  1071. 80007b6: 68ca ldr r2, [r1, #12]
  1072. 80007b8: 3204 adds r2, #4
  1073. break;
  1074. 80007ba: e781 b.n 80006c0 <HAL_GPIO_Init+0x44>
  1075. switch (GPIO_Init->Mode)
  1076. 80007bc: 4f1a ldr r7, [pc, #104] ; (8000828 <HAL_GPIO_Init+0x1ac>)
  1077. 80007be: 42bd cmp r5, r7
  1078. 80007c0: d009 beq.n 80007d6 <HAL_GPIO_Init+0x15a>
  1079. 80007c2: d812 bhi.n 80007ea <HAL_GPIO_Init+0x16e>
  1080. 80007c4: f8df 906c ldr.w r9, [pc, #108] ; 8000834 <HAL_GPIO_Init+0x1b8>
  1081. 80007c8: 454d cmp r5, r9
  1082. 80007ca: d004 beq.n 80007d6 <HAL_GPIO_Init+0x15a>
  1083. 80007cc: f509 3980 add.w r9, r9, #65536 ; 0x10000
  1084. 80007d0: 454d cmp r5, r9
  1085. 80007d2: f47f af75 bne.w 80006c0 <HAL_GPIO_Init+0x44>
  1086. if (GPIO_Init->Pull == GPIO_NOPULL)
  1087. 80007d6: 688a ldr r2, [r1, #8]
  1088. 80007d8: b1c2 cbz r2, 800080c <HAL_GPIO_Init+0x190>
  1089. else if (GPIO_Init->Pull == GPIO_PULLUP)
  1090. 80007da: 2a01 cmp r2, #1
  1091. GPIOx->BSRR = ioposition;
  1092. 80007dc: bf0c ite eq
  1093. 80007de: f8c0 8010 streq.w r8, [r0, #16]
  1094. GPIOx->BRR = ioposition;
  1095. 80007e2: f8c0 8014 strne.w r8, [r0, #20]
  1096. config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_PU_PD;
  1097. 80007e6: 2208 movs r2, #8
  1098. 80007e8: e76a b.n 80006c0 <HAL_GPIO_Init+0x44>
  1099. switch (GPIO_Init->Mode)
  1100. 80007ea: 4575 cmp r5, lr
  1101. 80007ec: d0f3 beq.n 80007d6 <HAL_GPIO_Init+0x15a>
  1102. 80007ee: 4565 cmp r5, ip
  1103. 80007f0: d0f1 beq.n 80007d6 <HAL_GPIO_Init+0x15a>
  1104. 80007f2: f8df 9044 ldr.w r9, [pc, #68] ; 8000838 <HAL_GPIO_Init+0x1bc>
  1105. 80007f6: e7eb b.n 80007d0 <HAL_GPIO_Init+0x154>
  1106. config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG;
  1107. 80007f8: 2200 movs r2, #0
  1108. 80007fa: e761 b.n 80006c0 <HAL_GPIO_Init+0x44>
  1109. config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_PP;
  1110. 80007fc: 68ca ldr r2, [r1, #12]
  1111. break;
  1112. 80007fe: e75f b.n 80006c0 <HAL_GPIO_Init+0x44>
  1113. config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_PP;
  1114. 8000800: 68ca ldr r2, [r1, #12]
  1115. 8000802: 3208 adds r2, #8
  1116. break;
  1117. 8000804: e75c b.n 80006c0 <HAL_GPIO_Init+0x44>
  1118. config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_OD;
  1119. 8000806: 68ca ldr r2, [r1, #12]
  1120. 8000808: 320c adds r2, #12
  1121. break;
  1122. 800080a: e759 b.n 80006c0 <HAL_GPIO_Init+0x44>
  1123. config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_FLOATING;
  1124. 800080c: 2204 movs r2, #4
  1125. 800080e: e757 b.n 80006c0 <HAL_GPIO_Init+0x44>
  1126. SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
  1127. 8000810: 2500 movs r5, #0
  1128. 8000812: e7a2 b.n 800075a <HAL_GPIO_Init+0xde>
  1129. 8000814: 2501 movs r5, #1
  1130. 8000816: e7a0 b.n 800075a <HAL_GPIO_Init+0xde>
  1131. 8000818: 2502 movs r5, #2
  1132. 800081a: e79e b.n 800075a <HAL_GPIO_Init+0xde>
  1133. 800081c: 40010400 .word 0x40010400
  1134. 8000820: 40021000 .word 0x40021000
  1135. 8000824: 40010800 .word 0x40010800
  1136. 8000828: 10210000 .word 0x10210000
  1137. 800082c: 10310000 .word 0x10310000
  1138. 8000830: 10320000 .word 0x10320000
  1139. 8000834: 10110000 .word 0x10110000
  1140. 8000838: 10220000 .word 0x10220000
  1141. 0800083c <HAL_GPIO_WritePin>:
  1142. {
  1143. /* Check the parameters */
  1144. assert_param(IS_GPIO_PIN(GPIO_Pin));
  1145. assert_param(IS_GPIO_PIN_ACTION(PinState));
  1146. if (PinState != GPIO_PIN_RESET)
  1147. 800083c: b10a cbz r2, 8000842 <HAL_GPIO_WritePin+0x6>
  1148. {
  1149. GPIOx->BSRR = GPIO_Pin;
  1150. }
  1151. else
  1152. {
  1153. GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;
  1154. 800083e: 6101 str r1, [r0, #16]
  1155. 8000840: 4770 bx lr
  1156. 8000842: 0409 lsls r1, r1, #16
  1157. 8000844: e7fb b.n 800083e <HAL_GPIO_WritePin+0x2>
  1158. 08000846 <HAL_GPIO_TogglePin>:
  1159. void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
  1160. {
  1161. /* Check the parameters */
  1162. assert_param(IS_GPIO_PIN(GPIO_Pin));
  1163. GPIOx->ODR ^= GPIO_Pin;
  1164. 8000846: 68c3 ldr r3, [r0, #12]
  1165. 8000848: 4059 eors r1, r3
  1166. 800084a: 60c1 str r1, [r0, #12]
  1167. 800084c: 4770 bx lr
  1168. ...
  1169. 08000850 <HAL_RCC_OscConfig>:
  1170. /* Check the parameters */
  1171. assert_param(RCC_OscInitStruct != NULL);
  1172. assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType));
  1173. /*------------------------------- HSE Configuration ------------------------*/
  1174. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
  1175. 8000850: 6803 ldr r3, [r0, #0]
  1176. {
  1177. 8000852: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
  1178. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
  1179. 8000856: 07db lsls r3, r3, #31
  1180. {
  1181. 8000858: 4605 mov r5, r0
  1182. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
  1183. 800085a: d410 bmi.n 800087e <HAL_RCC_OscConfig+0x2e>
  1184. }
  1185. }
  1186. }
  1187. }
  1188. /*----------------------------- HSI Configuration --------------------------*/
  1189. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
  1190. 800085c: 682b ldr r3, [r5, #0]
  1191. 800085e: 079f lsls r7, r3, #30
  1192. 8000860: d45e bmi.n 8000920 <HAL_RCC_OscConfig+0xd0>
  1193. }
  1194. }
  1195. }
  1196. }
  1197. /*------------------------------ LSI Configuration -------------------------*/
  1198. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
  1199. 8000862: 682b ldr r3, [r5, #0]
  1200. 8000864: 0719 lsls r1, r3, #28
  1201. 8000866: f100 8095 bmi.w 8000994 <HAL_RCC_OscConfig+0x144>
  1202. }
  1203. }
  1204. }
  1205. }
  1206. /*------------------------------ LSE Configuration -------------------------*/
  1207. if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
  1208. 800086a: 682b ldr r3, [r5, #0]
  1209. 800086c: 075a lsls r2, r3, #29
  1210. 800086e: f100 80bf bmi.w 80009f0 <HAL_RCC_OscConfig+0x1a0>
  1211. #endif /* RCC_CR_PLL2ON */
  1212. /*-------------------------------- PLL Configuration -----------------------*/
  1213. /* Check the parameters */
  1214. assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState));
  1215. if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE)
  1216. 8000872: 69ea ldr r2, [r5, #28]
  1217. 8000874: 2a00 cmp r2, #0
  1218. 8000876: f040 812d bne.w 8000ad4 <HAL_RCC_OscConfig+0x284>
  1219. {
  1220. return HAL_ERROR;
  1221. }
  1222. }
  1223. return HAL_OK;
  1224. 800087a: 2000 movs r0, #0
  1225. 800087c: e014 b.n 80008a8 <HAL_RCC_OscConfig+0x58>
  1226. if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE)
  1227. 800087e: 4c90 ldr r4, [pc, #576] ; (8000ac0 <HAL_RCC_OscConfig+0x270>)
  1228. 8000880: 6863 ldr r3, [r4, #4]
  1229. 8000882: f003 030c and.w r3, r3, #12
  1230. 8000886: 2b04 cmp r3, #4
  1231. 8000888: d007 beq.n 800089a <HAL_RCC_OscConfig+0x4a>
  1232. || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE)))
  1233. 800088a: 6863 ldr r3, [r4, #4]
  1234. 800088c: f003 030c and.w r3, r3, #12
  1235. 8000890: 2b08 cmp r3, #8
  1236. 8000892: d10c bne.n 80008ae <HAL_RCC_OscConfig+0x5e>
  1237. 8000894: 6863 ldr r3, [r4, #4]
  1238. 8000896: 03de lsls r6, r3, #15
  1239. 8000898: d509 bpl.n 80008ae <HAL_RCC_OscConfig+0x5e>
  1240. if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
  1241. 800089a: 6823 ldr r3, [r4, #0]
  1242. 800089c: 039c lsls r4, r3, #14
  1243. 800089e: d5dd bpl.n 800085c <HAL_RCC_OscConfig+0xc>
  1244. 80008a0: 686b ldr r3, [r5, #4]
  1245. 80008a2: 2b00 cmp r3, #0
  1246. 80008a4: d1da bne.n 800085c <HAL_RCC_OscConfig+0xc>
  1247. return HAL_ERROR;
  1248. 80008a6: 2001 movs r0, #1
  1249. }
  1250. 80008a8: b002 add sp, #8
  1251. 80008aa: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  1252. __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
  1253. 80008ae: 686b ldr r3, [r5, #4]
  1254. 80008b0: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
  1255. 80008b4: d110 bne.n 80008d8 <HAL_RCC_OscConfig+0x88>
  1256. 80008b6: 6823 ldr r3, [r4, #0]
  1257. 80008b8: f443 3380 orr.w r3, r3, #65536 ; 0x10000
  1258. 80008bc: 6023 str r3, [r4, #0]
  1259. tickstart = HAL_GetTick();
  1260. 80008be: f7ff fcef bl 80002a0 <HAL_GetTick>
  1261. 80008c2: 4606 mov r6, r0
  1262. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
  1263. 80008c4: 6823 ldr r3, [r4, #0]
  1264. 80008c6: 0398 lsls r0, r3, #14
  1265. 80008c8: d4c8 bmi.n 800085c <HAL_RCC_OscConfig+0xc>
  1266. if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE)
  1267. 80008ca: f7ff fce9 bl 80002a0 <HAL_GetTick>
  1268. 80008ce: 1b80 subs r0, r0, r6
  1269. 80008d0: 2864 cmp r0, #100 ; 0x64
  1270. 80008d2: d9f7 bls.n 80008c4 <HAL_RCC_OscConfig+0x74>
  1271. return HAL_TIMEOUT;
  1272. 80008d4: 2003 movs r0, #3
  1273. 80008d6: e7e7 b.n 80008a8 <HAL_RCC_OscConfig+0x58>
  1274. __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
  1275. 80008d8: b99b cbnz r3, 8000902 <HAL_RCC_OscConfig+0xb2>
  1276. 80008da: 6823 ldr r3, [r4, #0]
  1277. 80008dc: f423 3380 bic.w r3, r3, #65536 ; 0x10000
  1278. 80008e0: 6023 str r3, [r4, #0]
  1279. 80008e2: 6823 ldr r3, [r4, #0]
  1280. 80008e4: f423 2380 bic.w r3, r3, #262144 ; 0x40000
  1281. 80008e8: 6023 str r3, [r4, #0]
  1282. tickstart = HAL_GetTick();
  1283. 80008ea: f7ff fcd9 bl 80002a0 <HAL_GetTick>
  1284. 80008ee: 4606 mov r6, r0
  1285. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
  1286. 80008f0: 6823 ldr r3, [r4, #0]
  1287. 80008f2: 0399 lsls r1, r3, #14
  1288. 80008f4: d5b2 bpl.n 800085c <HAL_RCC_OscConfig+0xc>
  1289. if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE)
  1290. 80008f6: f7ff fcd3 bl 80002a0 <HAL_GetTick>
  1291. 80008fa: 1b80 subs r0, r0, r6
  1292. 80008fc: 2864 cmp r0, #100 ; 0x64
  1293. 80008fe: d9f7 bls.n 80008f0 <HAL_RCC_OscConfig+0xa0>
  1294. 8000900: e7e8 b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1295. __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
  1296. 8000902: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000
  1297. 8000906: 6823 ldr r3, [r4, #0]
  1298. 8000908: d103 bne.n 8000912 <HAL_RCC_OscConfig+0xc2>
  1299. 800090a: f443 2380 orr.w r3, r3, #262144 ; 0x40000
  1300. 800090e: 6023 str r3, [r4, #0]
  1301. 8000910: e7d1 b.n 80008b6 <HAL_RCC_OscConfig+0x66>
  1302. 8000912: f423 3380 bic.w r3, r3, #65536 ; 0x10000
  1303. 8000916: 6023 str r3, [r4, #0]
  1304. 8000918: 6823 ldr r3, [r4, #0]
  1305. 800091a: f423 2380 bic.w r3, r3, #262144 ; 0x40000
  1306. 800091e: e7cd b.n 80008bc <HAL_RCC_OscConfig+0x6c>
  1307. if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI)
  1308. 8000920: 4c67 ldr r4, [pc, #412] ; (8000ac0 <HAL_RCC_OscConfig+0x270>)
  1309. 8000922: 6863 ldr r3, [r4, #4]
  1310. 8000924: f013 0f0c tst.w r3, #12
  1311. 8000928: d007 beq.n 800093a <HAL_RCC_OscConfig+0xea>
  1312. || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2)))
  1313. 800092a: 6863 ldr r3, [r4, #4]
  1314. 800092c: f003 030c and.w r3, r3, #12
  1315. 8000930: 2b08 cmp r3, #8
  1316. 8000932: d110 bne.n 8000956 <HAL_RCC_OscConfig+0x106>
  1317. 8000934: 6863 ldr r3, [r4, #4]
  1318. 8000936: 03da lsls r2, r3, #15
  1319. 8000938: d40d bmi.n 8000956 <HAL_RCC_OscConfig+0x106>
  1320. if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON))
  1321. 800093a: 6823 ldr r3, [r4, #0]
  1322. 800093c: 079b lsls r3, r3, #30
  1323. 800093e: d502 bpl.n 8000946 <HAL_RCC_OscConfig+0xf6>
  1324. 8000940: 692b ldr r3, [r5, #16]
  1325. 8000942: 2b01 cmp r3, #1
  1326. 8000944: d1af bne.n 80008a6 <HAL_RCC_OscConfig+0x56>
  1327. __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
  1328. 8000946: 6823 ldr r3, [r4, #0]
  1329. 8000948: 696a ldr r2, [r5, #20]
  1330. 800094a: f023 03f8 bic.w r3, r3, #248 ; 0xf8
  1331. 800094e: ea43 03c2 orr.w r3, r3, r2, lsl #3
  1332. 8000952: 6023 str r3, [r4, #0]
  1333. 8000954: e785 b.n 8000862 <HAL_RCC_OscConfig+0x12>
  1334. if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF)
  1335. 8000956: 692a ldr r2, [r5, #16]
  1336. 8000958: 4b5a ldr r3, [pc, #360] ; (8000ac4 <HAL_RCC_OscConfig+0x274>)
  1337. 800095a: b16a cbz r2, 8000978 <HAL_RCC_OscConfig+0x128>
  1338. __HAL_RCC_HSI_ENABLE();
  1339. 800095c: 2201 movs r2, #1
  1340. 800095e: 601a str r2, [r3, #0]
  1341. tickstart = HAL_GetTick();
  1342. 8000960: f7ff fc9e bl 80002a0 <HAL_GetTick>
  1343. 8000964: 4606 mov r6, r0
  1344. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
  1345. 8000966: 6823 ldr r3, [r4, #0]
  1346. 8000968: 079f lsls r7, r3, #30
  1347. 800096a: d4ec bmi.n 8000946 <HAL_RCC_OscConfig+0xf6>
  1348. if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE)
  1349. 800096c: f7ff fc98 bl 80002a0 <HAL_GetTick>
  1350. 8000970: 1b80 subs r0, r0, r6
  1351. 8000972: 2802 cmp r0, #2
  1352. 8000974: d9f7 bls.n 8000966 <HAL_RCC_OscConfig+0x116>
  1353. 8000976: e7ad b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1354. __HAL_RCC_HSI_DISABLE();
  1355. 8000978: 601a str r2, [r3, #0]
  1356. tickstart = HAL_GetTick();
  1357. 800097a: f7ff fc91 bl 80002a0 <HAL_GetTick>
  1358. 800097e: 4606 mov r6, r0
  1359. while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
  1360. 8000980: 6823 ldr r3, [r4, #0]
  1361. 8000982: 0798 lsls r0, r3, #30
  1362. 8000984: f57f af6d bpl.w 8000862 <HAL_RCC_OscConfig+0x12>
  1363. if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE)
  1364. 8000988: f7ff fc8a bl 80002a0 <HAL_GetTick>
  1365. 800098c: 1b80 subs r0, r0, r6
  1366. 800098e: 2802 cmp r0, #2
  1367. 8000990: d9f6 bls.n 8000980 <HAL_RCC_OscConfig+0x130>
  1368. 8000992: e79f b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1369. if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF)
  1370. 8000994: 69aa ldr r2, [r5, #24]
  1371. 8000996: 4c4a ldr r4, [pc, #296] ; (8000ac0 <HAL_RCC_OscConfig+0x270>)
  1372. 8000998: 4b4b ldr r3, [pc, #300] ; (8000ac8 <HAL_RCC_OscConfig+0x278>)
  1373. 800099a: b1da cbz r2, 80009d4 <HAL_RCC_OscConfig+0x184>
  1374. __HAL_RCC_LSI_ENABLE();
  1375. 800099c: 2201 movs r2, #1
  1376. 800099e: 601a str r2, [r3, #0]
  1377. tickstart = HAL_GetTick();
  1378. 80009a0: f7ff fc7e bl 80002a0 <HAL_GetTick>
  1379. 80009a4: 4606 mov r6, r0
  1380. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
  1381. 80009a6: 6a63 ldr r3, [r4, #36] ; 0x24
  1382. 80009a8: 079b lsls r3, r3, #30
  1383. 80009aa: d50d bpl.n 80009c8 <HAL_RCC_OscConfig+0x178>
  1384. * @param mdelay: specifies the delay time length, in milliseconds.
  1385. * @retval None
  1386. */
  1387. static void RCC_Delay(uint32_t mdelay)
  1388. {
  1389. __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U);
  1390. 80009ac: f44f 52fa mov.w r2, #8000 ; 0x1f40
  1391. 80009b0: 4b46 ldr r3, [pc, #280] ; (8000acc <HAL_RCC_OscConfig+0x27c>)
  1392. 80009b2: 681b ldr r3, [r3, #0]
  1393. 80009b4: fbb3 f3f2 udiv r3, r3, r2
  1394. 80009b8: 9301 str r3, [sp, #4]
  1395. \brief No Operation
  1396. \details No Operation does nothing. This instruction can be used for code alignment purposes.
  1397. */
  1398. __attribute__((always_inline)) __STATIC_INLINE void __NOP(void)
  1399. {
  1400. __ASM volatile ("nop");
  1401. 80009ba: bf00 nop
  1402. do
  1403. {
  1404. __NOP();
  1405. }
  1406. while (Delay --);
  1407. 80009bc: 9b01 ldr r3, [sp, #4]
  1408. 80009be: 1e5a subs r2, r3, #1
  1409. 80009c0: 9201 str r2, [sp, #4]
  1410. 80009c2: 2b00 cmp r3, #0
  1411. 80009c4: d1f9 bne.n 80009ba <HAL_RCC_OscConfig+0x16a>
  1412. 80009c6: e750 b.n 800086a <HAL_RCC_OscConfig+0x1a>
  1413. if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE)
  1414. 80009c8: f7ff fc6a bl 80002a0 <HAL_GetTick>
  1415. 80009cc: 1b80 subs r0, r0, r6
  1416. 80009ce: 2802 cmp r0, #2
  1417. 80009d0: d9e9 bls.n 80009a6 <HAL_RCC_OscConfig+0x156>
  1418. 80009d2: e77f b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1419. __HAL_RCC_LSI_DISABLE();
  1420. 80009d4: 601a str r2, [r3, #0]
  1421. tickstart = HAL_GetTick();
  1422. 80009d6: f7ff fc63 bl 80002a0 <HAL_GetTick>
  1423. 80009da: 4606 mov r6, r0
  1424. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
  1425. 80009dc: 6a63 ldr r3, [r4, #36] ; 0x24
  1426. 80009de: 079f lsls r7, r3, #30
  1427. 80009e0: f57f af43 bpl.w 800086a <HAL_RCC_OscConfig+0x1a>
  1428. if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE)
  1429. 80009e4: f7ff fc5c bl 80002a0 <HAL_GetTick>
  1430. 80009e8: 1b80 subs r0, r0, r6
  1431. 80009ea: 2802 cmp r0, #2
  1432. 80009ec: d9f6 bls.n 80009dc <HAL_RCC_OscConfig+0x18c>
  1433. 80009ee: e771 b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1434. if(__HAL_RCC_PWR_IS_CLK_DISABLED())
  1435. 80009f0: 4c33 ldr r4, [pc, #204] ; (8000ac0 <HAL_RCC_OscConfig+0x270>)
  1436. 80009f2: 69e3 ldr r3, [r4, #28]
  1437. 80009f4: 00d8 lsls r0, r3, #3
  1438. 80009f6: d424 bmi.n 8000a42 <HAL_RCC_OscConfig+0x1f2>
  1439. pwrclkchanged = SET;
  1440. 80009f8: 2701 movs r7, #1
  1441. __HAL_RCC_PWR_CLK_ENABLE();
  1442. 80009fa: 69e3 ldr r3, [r4, #28]
  1443. 80009fc: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
  1444. 8000a00: 61e3 str r3, [r4, #28]
  1445. 8000a02: 69e3 ldr r3, [r4, #28]
  1446. 8000a04: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
  1447. 8000a08: 9300 str r3, [sp, #0]
  1448. 8000a0a: 9b00 ldr r3, [sp, #0]
  1449. if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
  1450. 8000a0c: 4e30 ldr r6, [pc, #192] ; (8000ad0 <HAL_RCC_OscConfig+0x280>)
  1451. 8000a0e: 6833 ldr r3, [r6, #0]
  1452. 8000a10: 05d9 lsls r1, r3, #23
  1453. 8000a12: d518 bpl.n 8000a46 <HAL_RCC_OscConfig+0x1f6>
  1454. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1455. 8000a14: 68eb ldr r3, [r5, #12]
  1456. 8000a16: 2b01 cmp r3, #1
  1457. 8000a18: d126 bne.n 8000a68 <HAL_RCC_OscConfig+0x218>
  1458. 8000a1a: 6a23 ldr r3, [r4, #32]
  1459. 8000a1c: f043 0301 orr.w r3, r3, #1
  1460. 8000a20: 6223 str r3, [r4, #32]
  1461. tickstart = HAL_GetTick();
  1462. 8000a22: f7ff fc3d bl 80002a0 <HAL_GetTick>
  1463. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1464. 8000a26: f241 3688 movw r6, #5000 ; 0x1388
  1465. tickstart = HAL_GetTick();
  1466. 8000a2a: 4680 mov r8, r0
  1467. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
  1468. 8000a2c: 6a23 ldr r3, [r4, #32]
  1469. 8000a2e: 079b lsls r3, r3, #30
  1470. 8000a30: d53f bpl.n 8000ab2 <HAL_RCC_OscConfig+0x262>
  1471. if(pwrclkchanged == SET)
  1472. 8000a32: 2f00 cmp r7, #0
  1473. 8000a34: f43f af1d beq.w 8000872 <HAL_RCC_OscConfig+0x22>
  1474. __HAL_RCC_PWR_CLK_DISABLE();
  1475. 8000a38: 69e3 ldr r3, [r4, #28]
  1476. 8000a3a: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
  1477. 8000a3e: 61e3 str r3, [r4, #28]
  1478. 8000a40: e717 b.n 8000872 <HAL_RCC_OscConfig+0x22>
  1479. FlagStatus pwrclkchanged = RESET;
  1480. 8000a42: 2700 movs r7, #0
  1481. 8000a44: e7e2 b.n 8000a0c <HAL_RCC_OscConfig+0x1bc>
  1482. SET_BIT(PWR->CR, PWR_CR_DBP);
  1483. 8000a46: 6833 ldr r3, [r6, #0]
  1484. 8000a48: f443 7380 orr.w r3, r3, #256 ; 0x100
  1485. 8000a4c: 6033 str r3, [r6, #0]
  1486. tickstart = HAL_GetTick();
  1487. 8000a4e: f7ff fc27 bl 80002a0 <HAL_GetTick>
  1488. 8000a52: 4680 mov r8, r0
  1489. while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
  1490. 8000a54: 6833 ldr r3, [r6, #0]
  1491. 8000a56: 05da lsls r2, r3, #23
  1492. 8000a58: d4dc bmi.n 8000a14 <HAL_RCC_OscConfig+0x1c4>
  1493. if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
  1494. 8000a5a: f7ff fc21 bl 80002a0 <HAL_GetTick>
  1495. 8000a5e: eba0 0008 sub.w r0, r0, r8
  1496. 8000a62: 2864 cmp r0, #100 ; 0x64
  1497. 8000a64: d9f6 bls.n 8000a54 <HAL_RCC_OscConfig+0x204>
  1498. 8000a66: e735 b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1499. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1500. 8000a68: b9ab cbnz r3, 8000a96 <HAL_RCC_OscConfig+0x246>
  1501. 8000a6a: 6a23 ldr r3, [r4, #32]
  1502. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1503. 8000a6c: f241 3888 movw r8, #5000 ; 0x1388
  1504. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1505. 8000a70: f023 0301 bic.w r3, r3, #1
  1506. 8000a74: 6223 str r3, [r4, #32]
  1507. 8000a76: 6a23 ldr r3, [r4, #32]
  1508. 8000a78: f023 0304 bic.w r3, r3, #4
  1509. 8000a7c: 6223 str r3, [r4, #32]
  1510. tickstart = HAL_GetTick();
  1511. 8000a7e: f7ff fc0f bl 80002a0 <HAL_GetTick>
  1512. 8000a82: 4606 mov r6, r0
  1513. while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
  1514. 8000a84: 6a23 ldr r3, [r4, #32]
  1515. 8000a86: 0798 lsls r0, r3, #30
  1516. 8000a88: d5d3 bpl.n 8000a32 <HAL_RCC_OscConfig+0x1e2>
  1517. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1518. 8000a8a: f7ff fc09 bl 80002a0 <HAL_GetTick>
  1519. 8000a8e: 1b80 subs r0, r0, r6
  1520. 8000a90: 4540 cmp r0, r8
  1521. 8000a92: d9f7 bls.n 8000a84 <HAL_RCC_OscConfig+0x234>
  1522. 8000a94: e71e b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1523. __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
  1524. 8000a96: 2b05 cmp r3, #5
  1525. 8000a98: 6a23 ldr r3, [r4, #32]
  1526. 8000a9a: d103 bne.n 8000aa4 <HAL_RCC_OscConfig+0x254>
  1527. 8000a9c: f043 0304 orr.w r3, r3, #4
  1528. 8000aa0: 6223 str r3, [r4, #32]
  1529. 8000aa2: e7ba b.n 8000a1a <HAL_RCC_OscConfig+0x1ca>
  1530. 8000aa4: f023 0301 bic.w r3, r3, #1
  1531. 8000aa8: 6223 str r3, [r4, #32]
  1532. 8000aaa: 6a23 ldr r3, [r4, #32]
  1533. 8000aac: f023 0304 bic.w r3, r3, #4
  1534. 8000ab0: e7b6 b.n 8000a20 <HAL_RCC_OscConfig+0x1d0>
  1535. if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
  1536. 8000ab2: f7ff fbf5 bl 80002a0 <HAL_GetTick>
  1537. 8000ab6: eba0 0008 sub.w r0, r0, r8
  1538. 8000aba: 42b0 cmp r0, r6
  1539. 8000abc: d9b6 bls.n 8000a2c <HAL_RCC_OscConfig+0x1dc>
  1540. 8000abe: e709 b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1541. 8000ac0: 40021000 .word 0x40021000
  1542. 8000ac4: 42420000 .word 0x42420000
  1543. 8000ac8: 42420480 .word 0x42420480
  1544. 8000acc: 2000000c .word 0x2000000c
  1545. 8000ad0: 40007000 .word 0x40007000
  1546. if(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK)
  1547. 8000ad4: 4c22 ldr r4, [pc, #136] ; (8000b60 <HAL_RCC_OscConfig+0x310>)
  1548. 8000ad6: 6863 ldr r3, [r4, #4]
  1549. 8000ad8: f003 030c and.w r3, r3, #12
  1550. 8000adc: 2b08 cmp r3, #8
  1551. 8000ade: f43f aee2 beq.w 80008a6 <HAL_RCC_OscConfig+0x56>
  1552. 8000ae2: 2300 movs r3, #0
  1553. 8000ae4: 4e1f ldr r6, [pc, #124] ; (8000b64 <HAL_RCC_OscConfig+0x314>)
  1554. if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
  1555. 8000ae6: 2a02 cmp r2, #2
  1556. __HAL_RCC_PLL_DISABLE();
  1557. 8000ae8: 6033 str r3, [r6, #0]
  1558. if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
  1559. 8000aea: d12b bne.n 8000b44 <HAL_RCC_OscConfig+0x2f4>
  1560. tickstart = HAL_GetTick();
  1561. 8000aec: f7ff fbd8 bl 80002a0 <HAL_GetTick>
  1562. 8000af0: 4607 mov r7, r0
  1563. while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
  1564. 8000af2: 6823 ldr r3, [r4, #0]
  1565. 8000af4: 0199 lsls r1, r3, #6
  1566. 8000af6: d41f bmi.n 8000b38 <HAL_RCC_OscConfig+0x2e8>
  1567. if(RCC_OscInitStruct->PLL.PLLSource == RCC_PLLSOURCE_HSE)
  1568. 8000af8: 6a2b ldr r3, [r5, #32]
  1569. 8000afa: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
  1570. 8000afe: d105 bne.n 8000b0c <HAL_RCC_OscConfig+0x2bc>
  1571. __HAL_RCC_HSE_PREDIV_CONFIG(RCC_OscInitStruct->HSEPredivValue);
  1572. 8000b00: 6ae2 ldr r2, [r4, #44] ; 0x2c
  1573. 8000b02: 68a9 ldr r1, [r5, #8]
  1574. 8000b04: f022 020f bic.w r2, r2, #15
  1575. 8000b08: 430a orrs r2, r1
  1576. 8000b0a: 62e2 str r2, [r4, #44] ; 0x2c
  1577. __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource,
  1578. 8000b0c: 6a69 ldr r1, [r5, #36] ; 0x24
  1579. 8000b0e: 6862 ldr r2, [r4, #4]
  1580. 8000b10: 430b orrs r3, r1
  1581. 8000b12: f422 1274 bic.w r2, r2, #3997696 ; 0x3d0000
  1582. 8000b16: 4313 orrs r3, r2
  1583. 8000b18: 6063 str r3, [r4, #4]
  1584. __HAL_RCC_PLL_ENABLE();
  1585. 8000b1a: 2301 movs r3, #1
  1586. 8000b1c: 6033 str r3, [r6, #0]
  1587. tickstart = HAL_GetTick();
  1588. 8000b1e: f7ff fbbf bl 80002a0 <HAL_GetTick>
  1589. 8000b22: 4605 mov r5, r0
  1590. while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
  1591. 8000b24: 6823 ldr r3, [r4, #0]
  1592. 8000b26: 019a lsls r2, r3, #6
  1593. 8000b28: f53f aea7 bmi.w 800087a <HAL_RCC_OscConfig+0x2a>
  1594. if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE)
  1595. 8000b2c: f7ff fbb8 bl 80002a0 <HAL_GetTick>
  1596. 8000b30: 1b40 subs r0, r0, r5
  1597. 8000b32: 2802 cmp r0, #2
  1598. 8000b34: d9f6 bls.n 8000b24 <HAL_RCC_OscConfig+0x2d4>
  1599. 8000b36: e6cd b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1600. if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE)
  1601. 8000b38: f7ff fbb2 bl 80002a0 <HAL_GetTick>
  1602. 8000b3c: 1bc0 subs r0, r0, r7
  1603. 8000b3e: 2802 cmp r0, #2
  1604. 8000b40: d9d7 bls.n 8000af2 <HAL_RCC_OscConfig+0x2a2>
  1605. 8000b42: e6c7 b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1606. tickstart = HAL_GetTick();
  1607. 8000b44: f7ff fbac bl 80002a0 <HAL_GetTick>
  1608. 8000b48: 4605 mov r5, r0
  1609. while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
  1610. 8000b4a: 6823 ldr r3, [r4, #0]
  1611. 8000b4c: 019b lsls r3, r3, #6
  1612. 8000b4e: f57f ae94 bpl.w 800087a <HAL_RCC_OscConfig+0x2a>
  1613. if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE)
  1614. 8000b52: f7ff fba5 bl 80002a0 <HAL_GetTick>
  1615. 8000b56: 1b40 subs r0, r0, r5
  1616. 8000b58: 2802 cmp r0, #2
  1617. 8000b5a: d9f6 bls.n 8000b4a <HAL_RCC_OscConfig+0x2fa>
  1618. 8000b5c: e6ba b.n 80008d4 <HAL_RCC_OscConfig+0x84>
  1619. 8000b5e: bf00 nop
  1620. 8000b60: 40021000 .word 0x40021000
  1621. 8000b64: 42420060 .word 0x42420060
  1622. 08000b68 <HAL_RCC_GetSysClockFreq>:
  1623. {
  1624. 8000b68: b530 push {r4, r5, lr}
  1625. 8000b6a: b089 sub sp, #36 ; 0x24
  1626. const uint8_t aPLLMULFactorTable[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16};
  1627. 8000b6c: 466c mov r4, sp
  1628. 8000b6e: 4b1b ldr r3, [pc, #108] ; (8000bdc <HAL_RCC_GetSysClockFreq+0x74>)
  1629. 8000b70: f103 0510 add.w r5, r3, #16
  1630. 8000b74: 4622 mov r2, r4
  1631. 8000b76: 6818 ldr r0, [r3, #0]
  1632. 8000b78: 6859 ldr r1, [r3, #4]
  1633. 8000b7a: 3308 adds r3, #8
  1634. 8000b7c: c203 stmia r2!, {r0, r1}
  1635. 8000b7e: 42ab cmp r3, r5
  1636. 8000b80: 4614 mov r4, r2
  1637. 8000b82: d1f7 bne.n 8000b74 <HAL_RCC_GetSysClockFreq+0xc>
  1638. const uint8_t aPredivFactorTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
  1639. 8000b84: 4b16 ldr r3, [pc, #88] ; (8000be0 <HAL_RCC_GetSysClockFreq+0x78>)
  1640. 8000b86: ac04 add r4, sp, #16
  1641. 8000b88: f103 0510 add.w r5, r3, #16
  1642. 8000b8c: 4622 mov r2, r4
  1643. 8000b8e: 6818 ldr r0, [r3, #0]
  1644. 8000b90: 6859 ldr r1, [r3, #4]
  1645. 8000b92: 3308 adds r3, #8
  1646. 8000b94: c203 stmia r2!, {r0, r1}
  1647. 8000b96: 42ab cmp r3, r5
  1648. 8000b98: 4614 mov r4, r2
  1649. 8000b9a: d1f7 bne.n 8000b8c <HAL_RCC_GetSysClockFreq+0x24>
  1650. tmpreg = RCC->CFGR;
  1651. 8000b9c: 4911 ldr r1, [pc, #68] ; (8000be4 <HAL_RCC_GetSysClockFreq+0x7c>)
  1652. 8000b9e: 684b ldr r3, [r1, #4]
  1653. switch (tmpreg & RCC_CFGR_SWS)
  1654. 8000ba0: f003 020c and.w r2, r3, #12
  1655. 8000ba4: 2a08 cmp r2, #8
  1656. 8000ba6: d117 bne.n 8000bd8 <HAL_RCC_GetSysClockFreq+0x70>
  1657. pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos];
  1658. 8000ba8: f3c3 4283 ubfx r2, r3, #18, #4
  1659. 8000bac: a808 add r0, sp, #32
  1660. 8000bae: 4402 add r2, r0
  1661. if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2)
  1662. 8000bb0: 03db lsls r3, r3, #15
  1663. pllmul = aPLLMULFactorTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos];
  1664. 8000bb2: f812 2c20 ldrb.w r2, [r2, #-32]
  1665. if ((tmpreg & RCC_CFGR_PLLSRC) != RCC_PLLSOURCE_HSI_DIV2)
  1666. 8000bb6: d50c bpl.n 8000bd2 <HAL_RCC_GetSysClockFreq+0x6a>
  1667. prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos];
  1668. 8000bb8: 6acb ldr r3, [r1, #44] ; 0x2c
  1669. pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv);
  1670. 8000bba: 480b ldr r0, [pc, #44] ; (8000be8 <HAL_RCC_GetSysClockFreq+0x80>)
  1671. prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos];
  1672. 8000bbc: f003 030f and.w r3, r3, #15
  1673. pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv);
  1674. 8000bc0: 4350 muls r0, r2
  1675. prediv = aPredivFactorTable[(uint32_t)(RCC->CFGR2 & RCC_CFGR2_PREDIV1) >> RCC_CFGR2_PREDIV1_Pos];
  1676. 8000bc2: aa08 add r2, sp, #32
  1677. 8000bc4: 4413 add r3, r2
  1678. 8000bc6: f813 3c10 ldrb.w r3, [r3, #-16]
  1679. pllclk = (uint32_t)((HSE_VALUE * pllmul) / prediv);
  1680. 8000bca: fbb0 f0f3 udiv r0, r0, r3
  1681. }
  1682. 8000bce: b009 add sp, #36 ; 0x24
  1683. 8000bd0: bd30 pop {r4, r5, pc}
  1684. pllclk = (uint32_t)((HSI_VALUE >> 1) * pllmul);
  1685. 8000bd2: 4806 ldr r0, [pc, #24] ; (8000bec <HAL_RCC_GetSysClockFreq+0x84>)
  1686. 8000bd4: 4350 muls r0, r2
  1687. 8000bd6: e7fa b.n 8000bce <HAL_RCC_GetSysClockFreq+0x66>
  1688. sysclockfreq = HSE_VALUE;
  1689. 8000bd8: 4803 ldr r0, [pc, #12] ; (8000be8 <HAL_RCC_GetSysClockFreq+0x80>)
  1690. return sysclockfreq;
  1691. 8000bda: e7f8 b.n 8000bce <HAL_RCC_GetSysClockFreq+0x66>
  1692. 8000bdc: 08002e0c .word 0x08002e0c
  1693. 8000be0: 08002e1c .word 0x08002e1c
  1694. 8000be4: 40021000 .word 0x40021000
  1695. 8000be8: 007a1200 .word 0x007a1200
  1696. 8000bec: 003d0900 .word 0x003d0900
  1697. 08000bf0 <HAL_RCC_ClockConfig>:
  1698. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
  1699. 8000bf0: 6802 ldr r2, [r0, #0]
  1700. {
  1701. 8000bf2: b5f8 push {r3, r4, r5, r6, r7, lr}
  1702. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
  1703. 8000bf4: f012 0f02 tst.w r2, #2
  1704. {
  1705. 8000bf8: 4605 mov r5, r0
  1706. 8000bfa: 4c3c ldr r4, [pc, #240] ; (8000cec <HAL_RCC_ClockConfig+0xfc>)
  1707. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
  1708. 8000bfc: d011 beq.n 8000c22 <HAL_RCC_ClockConfig+0x32>
  1709. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
  1710. 8000bfe: 0757 lsls r7, r2, #29
  1711. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16);
  1712. 8000c00: bf42 ittt mi
  1713. 8000c02: 6863 ldrmi r3, [r4, #4]
  1714. 8000c04: f443 63e0 orrmi.w r3, r3, #1792 ; 0x700
  1715. 8000c08: 6063 strmi r3, [r4, #4]
  1716. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
  1717. 8000c0a: 0716 lsls r6, r2, #28
  1718. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3));
  1719. 8000c0c: bf42 ittt mi
  1720. 8000c0e: 6863 ldrmi r3, [r4, #4]
  1721. 8000c10: f443 5360 orrmi.w r3, r3, #14336 ; 0x3800
  1722. 8000c14: 6063 strmi r3, [r4, #4]
  1723. MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider);
  1724. 8000c16: 6863 ldr r3, [r4, #4]
  1725. 8000c18: 6881 ldr r1, [r0, #8]
  1726. 8000c1a: f023 03f0 bic.w r3, r3, #240 ; 0xf0
  1727. 8000c1e: 430b orrs r3, r1
  1728. 8000c20: 6063 str r3, [r4, #4]
  1729. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
  1730. 8000c22: 07d0 lsls r0, r2, #31
  1731. 8000c24: d41a bmi.n 8000c5c <HAL_RCC_ClockConfig+0x6c>
  1732. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
  1733. 8000c26: 682a ldr r2, [r5, #0]
  1734. 8000c28: 0751 lsls r1, r2, #29
  1735. 8000c2a: d456 bmi.n 8000cda <HAL_RCC_ClockConfig+0xea>
  1736. if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
  1737. 8000c2c: 0713 lsls r3, r2, #28
  1738. 8000c2e: d506 bpl.n 8000c3e <HAL_RCC_ClockConfig+0x4e>
  1739. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3));
  1740. 8000c30: 6863 ldr r3, [r4, #4]
  1741. 8000c32: 692a ldr r2, [r5, #16]
  1742. 8000c34: f423 5360 bic.w r3, r3, #14336 ; 0x3800
  1743. 8000c38: ea43 03c2 orr.w r3, r3, r2, lsl #3
  1744. 8000c3c: 6063 str r3, [r4, #4]
  1745. SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos];
  1746. 8000c3e: f7ff ff93 bl 8000b68 <HAL_RCC_GetSysClockFreq>
  1747. 8000c42: 6863 ldr r3, [r4, #4]
  1748. 8000c44: 4a2a ldr r2, [pc, #168] ; (8000cf0 <HAL_RCC_ClockConfig+0x100>)
  1749. 8000c46: f3c3 1303 ubfx r3, r3, #4, #4
  1750. 8000c4a: 5cd3 ldrb r3, [r2, r3]
  1751. 8000c4c: 40d8 lsrs r0, r3
  1752. 8000c4e: 4b29 ldr r3, [pc, #164] ; (8000cf4 <HAL_RCC_ClockConfig+0x104>)
  1753. 8000c50: 6018 str r0, [r3, #0]
  1754. HAL_InitTick (TICK_INT_PRIORITY);
  1755. 8000c52: 2000 movs r0, #0
  1756. 8000c54: f7ff fae8 bl 8000228 <HAL_InitTick>
  1757. return HAL_OK;
  1758. 8000c58: 2000 movs r0, #0
  1759. 8000c5a: bdf8 pop {r3, r4, r5, r6, r7, pc}
  1760. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  1761. 8000c5c: 6868 ldr r0, [r5, #4]
  1762. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
  1763. 8000c5e: 6823 ldr r3, [r4, #0]
  1764. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  1765. 8000c60: 2801 cmp r0, #1
  1766. 8000c62: d102 bne.n 8000c6a <HAL_RCC_ClockConfig+0x7a>
  1767. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
  1768. 8000c64: 039a lsls r2, r3, #14
  1769. 8000c66: d405 bmi.n 8000c74 <HAL_RCC_ClockConfig+0x84>
  1770. 8000c68: bdf8 pop {r3, r4, r5, r6, r7, pc}
  1771. else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
  1772. 8000c6a: 2802 cmp r0, #2
  1773. 8000c6c: d11b bne.n 8000ca6 <HAL_RCC_ClockConfig+0xb6>
  1774. if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
  1775. 8000c6e: f013 7f00 tst.w r3, #33554432 ; 0x2000000
  1776. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
  1777. 8000c72: d039 beq.n 8000ce8 <HAL_RCC_ClockConfig+0xf8>
  1778. __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
  1779. 8000c74: 6863 ldr r3, [r4, #4]
  1780. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  1781. 8000c76: f241 3788 movw r7, #5000 ; 0x1388
  1782. __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
  1783. 8000c7a: f023 0303 bic.w r3, r3, #3
  1784. 8000c7e: 4318 orrs r0, r3
  1785. 8000c80: 6060 str r0, [r4, #4]
  1786. tickstart = HAL_GetTick();
  1787. 8000c82: f7ff fb0d bl 80002a0 <HAL_GetTick>
  1788. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  1789. 8000c86: 686b ldr r3, [r5, #4]
  1790. tickstart = HAL_GetTick();
  1791. 8000c88: 4606 mov r6, r0
  1792. if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
  1793. 8000c8a: 2b01 cmp r3, #1
  1794. 8000c8c: d10e bne.n 8000cac <HAL_RCC_ClockConfig+0xbc>
  1795. while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE)
  1796. 8000c8e: 6863 ldr r3, [r4, #4]
  1797. 8000c90: f003 030c and.w r3, r3, #12
  1798. 8000c94: 2b04 cmp r3, #4
  1799. 8000c96: d0c6 beq.n 8000c26 <HAL_RCC_ClockConfig+0x36>
  1800. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  1801. 8000c98: f7ff fb02 bl 80002a0 <HAL_GetTick>
  1802. 8000c9c: 1b80 subs r0, r0, r6
  1803. 8000c9e: 42b8 cmp r0, r7
  1804. 8000ca0: d9f5 bls.n 8000c8e <HAL_RCC_ClockConfig+0x9e>
  1805. return HAL_TIMEOUT;
  1806. 8000ca2: 2003 movs r0, #3
  1807. 8000ca4: bdf8 pop {r3, r4, r5, r6, r7, pc}
  1808. if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
  1809. 8000ca6: f013 0f02 tst.w r3, #2
  1810. 8000caa: e7e2 b.n 8000c72 <HAL_RCC_ClockConfig+0x82>
  1811. else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
  1812. 8000cac: 2b02 cmp r3, #2
  1813. 8000cae: d10f bne.n 8000cd0 <HAL_RCC_ClockConfig+0xe0>
  1814. while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK)
  1815. 8000cb0: 6863 ldr r3, [r4, #4]
  1816. 8000cb2: f003 030c and.w r3, r3, #12
  1817. 8000cb6: 2b08 cmp r3, #8
  1818. 8000cb8: d0b5 beq.n 8000c26 <HAL_RCC_ClockConfig+0x36>
  1819. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  1820. 8000cba: f7ff faf1 bl 80002a0 <HAL_GetTick>
  1821. 8000cbe: 1b80 subs r0, r0, r6
  1822. 8000cc0: 42b8 cmp r0, r7
  1823. 8000cc2: d9f5 bls.n 8000cb0 <HAL_RCC_ClockConfig+0xc0>
  1824. 8000cc4: e7ed b.n 8000ca2 <HAL_RCC_ClockConfig+0xb2>
  1825. if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
  1826. 8000cc6: f7ff faeb bl 80002a0 <HAL_GetTick>
  1827. 8000cca: 1b80 subs r0, r0, r6
  1828. 8000ccc: 42b8 cmp r0, r7
  1829. 8000cce: d8e8 bhi.n 8000ca2 <HAL_RCC_ClockConfig+0xb2>
  1830. while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI)
  1831. 8000cd0: 6863 ldr r3, [r4, #4]
  1832. 8000cd2: f013 0f0c tst.w r3, #12
  1833. 8000cd6: d1f6 bne.n 8000cc6 <HAL_RCC_ClockConfig+0xd6>
  1834. 8000cd8: e7a5 b.n 8000c26 <HAL_RCC_ClockConfig+0x36>
  1835. MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider);
  1836. 8000cda: 6863 ldr r3, [r4, #4]
  1837. 8000cdc: 68e9 ldr r1, [r5, #12]
  1838. 8000cde: f423 63e0 bic.w r3, r3, #1792 ; 0x700
  1839. 8000ce2: 430b orrs r3, r1
  1840. 8000ce4: 6063 str r3, [r4, #4]
  1841. 8000ce6: e7a1 b.n 8000c2c <HAL_RCC_ClockConfig+0x3c>
  1842. return HAL_ERROR;
  1843. 8000ce8: 2001 movs r0, #1
  1844. }
  1845. 8000cea: bdf8 pop {r3, r4, r5, r6, r7, pc}
  1846. 8000cec: 40021000 .word 0x40021000
  1847. 8000cf0: 08002f1a .word 0x08002f1a
  1848. 8000cf4: 2000000c .word 0x2000000c
  1849. 08000cf8 <HAL_RCC_GetPCLK1Freq>:
  1850. return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]);
  1851. 8000cf8: 4b04 ldr r3, [pc, #16] ; (8000d0c <HAL_RCC_GetPCLK1Freq+0x14>)
  1852. 8000cfa: 4a05 ldr r2, [pc, #20] ; (8000d10 <HAL_RCC_GetPCLK1Freq+0x18>)
  1853. 8000cfc: 685b ldr r3, [r3, #4]
  1854. 8000cfe: f3c3 2302 ubfx r3, r3, #8, #3
  1855. 8000d02: 5cd3 ldrb r3, [r2, r3]
  1856. 8000d04: 4a03 ldr r2, [pc, #12] ; (8000d14 <HAL_RCC_GetPCLK1Freq+0x1c>)
  1857. 8000d06: 6810 ldr r0, [r2, #0]
  1858. }
  1859. 8000d08: 40d8 lsrs r0, r3
  1860. 8000d0a: 4770 bx lr
  1861. 8000d0c: 40021000 .word 0x40021000
  1862. 8000d10: 08002f2a .word 0x08002f2a
  1863. 8000d14: 2000000c .word 0x2000000c
  1864. 08000d18 <HAL_RCC_GetPCLK2Freq>:
  1865. return (HAL_RCC_GetHCLKFreq()>> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]);
  1866. 8000d18: 4b04 ldr r3, [pc, #16] ; (8000d2c <HAL_RCC_GetPCLK2Freq+0x14>)
  1867. 8000d1a: 4a05 ldr r2, [pc, #20] ; (8000d30 <HAL_RCC_GetPCLK2Freq+0x18>)
  1868. 8000d1c: 685b ldr r3, [r3, #4]
  1869. 8000d1e: f3c3 23c2 ubfx r3, r3, #11, #3
  1870. 8000d22: 5cd3 ldrb r3, [r2, r3]
  1871. 8000d24: 4a03 ldr r2, [pc, #12] ; (8000d34 <HAL_RCC_GetPCLK2Freq+0x1c>)
  1872. 8000d26: 6810 ldr r0, [r2, #0]
  1873. }
  1874. 8000d28: 40d8 lsrs r0, r3
  1875. 8000d2a: 4770 bx lr
  1876. 8000d2c: 40021000 .word 0x40021000
  1877. 8000d30: 08002f2a .word 0x08002f2a
  1878. 8000d34: 2000000c .word 0x2000000c
  1879. 08000d38 <HAL_TIM_Base_Start_IT>:
  1880. {
  1881. /* Check the parameters */
  1882. assert_param(IS_TIM_INSTANCE(htim->Instance));
  1883. /* Enable the TIM Update interrupt */
  1884. __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
  1885. 8000d38: 6803 ldr r3, [r0, #0]
  1886. /* Enable the Peripheral */
  1887. __HAL_TIM_ENABLE(htim);
  1888. /* Return function status */
  1889. return HAL_OK;
  1890. }
  1891. 8000d3a: 2000 movs r0, #0
  1892. __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
  1893. 8000d3c: 68da ldr r2, [r3, #12]
  1894. 8000d3e: f042 0201 orr.w r2, r2, #1
  1895. 8000d42: 60da str r2, [r3, #12]
  1896. __HAL_TIM_ENABLE(htim);
  1897. 8000d44: 681a ldr r2, [r3, #0]
  1898. 8000d46: f042 0201 orr.w r2, r2, #1
  1899. 8000d4a: 601a str r2, [r3, #0]
  1900. }
  1901. 8000d4c: 4770 bx lr
  1902. 08000d4e <HAL_TIM_OC_DelayElapsedCallback>:
  1903. 8000d4e: 4770 bx lr
  1904. 08000d50 <HAL_TIM_IC_CaptureCallback>:
  1905. 8000d50: 4770 bx lr
  1906. 08000d52 <HAL_TIM_PWM_PulseFinishedCallback>:
  1907. 8000d52: 4770 bx lr
  1908. 08000d54 <HAL_TIM_TriggerCallback>:
  1909. 8000d54: 4770 bx lr
  1910. 08000d56 <HAL_TIM_IRQHandler>:
  1911. * @retval None
  1912. */
  1913. void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
  1914. {
  1915. /* Capture compare 1 event */
  1916. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
  1917. 8000d56: 6803 ldr r3, [r0, #0]
  1918. {
  1919. 8000d58: b510 push {r4, lr}
  1920. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
  1921. 8000d5a: 691a ldr r2, [r3, #16]
  1922. {
  1923. 8000d5c: 4604 mov r4, r0
  1924. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
  1925. 8000d5e: 0791 lsls r1, r2, #30
  1926. 8000d60: d50e bpl.n 8000d80 <HAL_TIM_IRQHandler+0x2a>
  1927. {
  1928. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) !=RESET)
  1929. 8000d62: 68da ldr r2, [r3, #12]
  1930. 8000d64: 0792 lsls r2, r2, #30
  1931. 8000d66: d50b bpl.n 8000d80 <HAL_TIM_IRQHandler+0x2a>
  1932. {
  1933. {
  1934. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
  1935. 8000d68: f06f 0202 mvn.w r2, #2
  1936. 8000d6c: 611a str r2, [r3, #16]
  1937. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
  1938. 8000d6e: 2201 movs r2, #1
  1939. /* Input capture event */
  1940. if((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
  1941. 8000d70: 699b ldr r3, [r3, #24]
  1942. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
  1943. 8000d72: 7702 strb r2, [r0, #28]
  1944. if((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
  1945. 8000d74: 079b lsls r3, r3, #30
  1946. 8000d76: d077 beq.n 8000e68 <HAL_TIM_IRQHandler+0x112>
  1947. {
  1948. HAL_TIM_IC_CaptureCallback(htim);
  1949. 8000d78: f7ff ffea bl 8000d50 <HAL_TIM_IC_CaptureCallback>
  1950. else
  1951. {
  1952. HAL_TIM_OC_DelayElapsedCallback(htim);
  1953. HAL_TIM_PWM_PulseFinishedCallback(htim);
  1954. }
  1955. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  1956. 8000d7c: 2300 movs r3, #0
  1957. 8000d7e: 7723 strb r3, [r4, #28]
  1958. }
  1959. }
  1960. }
  1961. /* Capture compare 2 event */
  1962. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
  1963. 8000d80: 6823 ldr r3, [r4, #0]
  1964. 8000d82: 691a ldr r2, [r3, #16]
  1965. 8000d84: 0750 lsls r0, r2, #29
  1966. 8000d86: d510 bpl.n 8000daa <HAL_TIM_IRQHandler+0x54>
  1967. {
  1968. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) !=RESET)
  1969. 8000d88: 68da ldr r2, [r3, #12]
  1970. 8000d8a: 0751 lsls r1, r2, #29
  1971. 8000d8c: d50d bpl.n 8000daa <HAL_TIM_IRQHandler+0x54>
  1972. {
  1973. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
  1974. 8000d8e: f06f 0204 mvn.w r2, #4
  1975. 8000d92: 611a str r2, [r3, #16]
  1976. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
  1977. 8000d94: 2202 movs r2, #2
  1978. /* Input capture event */
  1979. if((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
  1980. 8000d96: 699b ldr r3, [r3, #24]
  1981. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
  1982. 8000d98: 7722 strb r2, [r4, #28]
  1983. if((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
  1984. 8000d9a: f413 7f40 tst.w r3, #768 ; 0x300
  1985. {
  1986. HAL_TIM_IC_CaptureCallback(htim);
  1987. 8000d9e: 4620 mov r0, r4
  1988. if((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
  1989. 8000da0: d068 beq.n 8000e74 <HAL_TIM_IRQHandler+0x11e>
  1990. HAL_TIM_IC_CaptureCallback(htim);
  1991. 8000da2: f7ff ffd5 bl 8000d50 <HAL_TIM_IC_CaptureCallback>
  1992. else
  1993. {
  1994. HAL_TIM_OC_DelayElapsedCallback(htim);
  1995. HAL_TIM_PWM_PulseFinishedCallback(htim);
  1996. }
  1997. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  1998. 8000da6: 2300 movs r3, #0
  1999. 8000da8: 7723 strb r3, [r4, #28]
  2000. }
  2001. }
  2002. /* Capture compare 3 event */
  2003. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
  2004. 8000daa: 6823 ldr r3, [r4, #0]
  2005. 8000dac: 691a ldr r2, [r3, #16]
  2006. 8000dae: 0712 lsls r2, r2, #28
  2007. 8000db0: d50f bpl.n 8000dd2 <HAL_TIM_IRQHandler+0x7c>
  2008. {
  2009. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) !=RESET)
  2010. 8000db2: 68da ldr r2, [r3, #12]
  2011. 8000db4: 0710 lsls r0, r2, #28
  2012. 8000db6: d50c bpl.n 8000dd2 <HAL_TIM_IRQHandler+0x7c>
  2013. {
  2014. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
  2015. 8000db8: f06f 0208 mvn.w r2, #8
  2016. 8000dbc: 611a str r2, [r3, #16]
  2017. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
  2018. 8000dbe: 2204 movs r2, #4
  2019. /* Input capture event */
  2020. if((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
  2021. 8000dc0: 69db ldr r3, [r3, #28]
  2022. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
  2023. 8000dc2: 7722 strb r2, [r4, #28]
  2024. if((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
  2025. 8000dc4: 0799 lsls r1, r3, #30
  2026. {
  2027. HAL_TIM_IC_CaptureCallback(htim);
  2028. 8000dc6: 4620 mov r0, r4
  2029. if((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
  2030. 8000dc8: d05a beq.n 8000e80 <HAL_TIM_IRQHandler+0x12a>
  2031. HAL_TIM_IC_CaptureCallback(htim);
  2032. 8000dca: f7ff ffc1 bl 8000d50 <HAL_TIM_IC_CaptureCallback>
  2033. else
  2034. {
  2035. HAL_TIM_OC_DelayElapsedCallback(htim);
  2036. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2037. }
  2038. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  2039. 8000dce: 2300 movs r3, #0
  2040. 8000dd0: 7723 strb r3, [r4, #28]
  2041. }
  2042. }
  2043. /* Capture compare 4 event */
  2044. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
  2045. 8000dd2: 6823 ldr r3, [r4, #0]
  2046. 8000dd4: 691a ldr r2, [r3, #16]
  2047. 8000dd6: 06d2 lsls r2, r2, #27
  2048. 8000dd8: d510 bpl.n 8000dfc <HAL_TIM_IRQHandler+0xa6>
  2049. {
  2050. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) !=RESET)
  2051. 8000dda: 68da ldr r2, [r3, #12]
  2052. 8000ddc: 06d0 lsls r0, r2, #27
  2053. 8000dde: d50d bpl.n 8000dfc <HAL_TIM_IRQHandler+0xa6>
  2054. {
  2055. __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
  2056. 8000de0: f06f 0210 mvn.w r2, #16
  2057. 8000de4: 611a str r2, [r3, #16]
  2058. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
  2059. 8000de6: 2208 movs r2, #8
  2060. /* Input capture event */
  2061. if((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
  2062. 8000de8: 69db ldr r3, [r3, #28]
  2063. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
  2064. 8000dea: 7722 strb r2, [r4, #28]
  2065. if((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
  2066. 8000dec: f413 7f40 tst.w r3, #768 ; 0x300
  2067. {
  2068. HAL_TIM_IC_CaptureCallback(htim);
  2069. 8000df0: 4620 mov r0, r4
  2070. if((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
  2071. 8000df2: d04b beq.n 8000e8c <HAL_TIM_IRQHandler+0x136>
  2072. HAL_TIM_IC_CaptureCallback(htim);
  2073. 8000df4: f7ff ffac bl 8000d50 <HAL_TIM_IC_CaptureCallback>
  2074. else
  2075. {
  2076. HAL_TIM_OC_DelayElapsedCallback(htim);
  2077. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2078. }
  2079. htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
  2080. 8000df8: 2300 movs r3, #0
  2081. 8000dfa: 7723 strb r3, [r4, #28]
  2082. }
  2083. }
  2084. /* TIM Update event */
  2085. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
  2086. 8000dfc: 6823 ldr r3, [r4, #0]
  2087. 8000dfe: 691a ldr r2, [r3, #16]
  2088. 8000e00: 07d1 lsls r1, r2, #31
  2089. 8000e02: d508 bpl.n 8000e16 <HAL_TIM_IRQHandler+0xc0>
  2090. {
  2091. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) !=RESET)
  2092. 8000e04: 68da ldr r2, [r3, #12]
  2093. 8000e06: 07d2 lsls r2, r2, #31
  2094. 8000e08: d505 bpl.n 8000e16 <HAL_TIM_IRQHandler+0xc0>
  2095. {
  2096. __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
  2097. 8000e0a: f06f 0201 mvn.w r2, #1
  2098. HAL_TIM_PeriodElapsedCallback(htim);
  2099. 8000e0e: 4620 mov r0, r4
  2100. __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
  2101. 8000e10: 611a str r2, [r3, #16]
  2102. HAL_TIM_PeriodElapsedCallback(htim);
  2103. 8000e12: f000 fbf1 bl 80015f8 <HAL_TIM_PeriodElapsedCallback>
  2104. }
  2105. }
  2106. /* TIM Break input event */
  2107. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
  2108. 8000e16: 6823 ldr r3, [r4, #0]
  2109. 8000e18: 691a ldr r2, [r3, #16]
  2110. 8000e1a: 0610 lsls r0, r2, #24
  2111. 8000e1c: d508 bpl.n 8000e30 <HAL_TIM_IRQHandler+0xda>
  2112. {
  2113. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) !=RESET)
  2114. 8000e1e: 68da ldr r2, [r3, #12]
  2115. 8000e20: 0611 lsls r1, r2, #24
  2116. 8000e22: d505 bpl.n 8000e30 <HAL_TIM_IRQHandler+0xda>
  2117. {
  2118. __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
  2119. 8000e24: f06f 0280 mvn.w r2, #128 ; 0x80
  2120. HAL_TIMEx_BreakCallback(htim);
  2121. 8000e28: 4620 mov r0, r4
  2122. __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
  2123. 8000e2a: 611a str r2, [r3, #16]
  2124. HAL_TIMEx_BreakCallback(htim);
  2125. 8000e2c: f000 f8c5 bl 8000fba <HAL_TIMEx_BreakCallback>
  2126. }
  2127. }
  2128. /* TIM Trigger detection event */
  2129. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
  2130. 8000e30: 6823 ldr r3, [r4, #0]
  2131. 8000e32: 691a ldr r2, [r3, #16]
  2132. 8000e34: 0652 lsls r2, r2, #25
  2133. 8000e36: d508 bpl.n 8000e4a <HAL_TIM_IRQHandler+0xf4>
  2134. {
  2135. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) !=RESET)
  2136. 8000e38: 68da ldr r2, [r3, #12]
  2137. 8000e3a: 0650 lsls r0, r2, #25
  2138. 8000e3c: d505 bpl.n 8000e4a <HAL_TIM_IRQHandler+0xf4>
  2139. {
  2140. __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
  2141. 8000e3e: f06f 0240 mvn.w r2, #64 ; 0x40
  2142. HAL_TIM_TriggerCallback(htim);
  2143. 8000e42: 4620 mov r0, r4
  2144. __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
  2145. 8000e44: 611a str r2, [r3, #16]
  2146. HAL_TIM_TriggerCallback(htim);
  2147. 8000e46: f7ff ff85 bl 8000d54 <HAL_TIM_TriggerCallback>
  2148. }
  2149. }
  2150. /* TIM commutation event */
  2151. if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
  2152. 8000e4a: 6823 ldr r3, [r4, #0]
  2153. 8000e4c: 691a ldr r2, [r3, #16]
  2154. 8000e4e: 0691 lsls r1, r2, #26
  2155. 8000e50: d522 bpl.n 8000e98 <HAL_TIM_IRQHandler+0x142>
  2156. {
  2157. if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) !=RESET)
  2158. 8000e52: 68da ldr r2, [r3, #12]
  2159. 8000e54: 0692 lsls r2, r2, #26
  2160. 8000e56: d51f bpl.n 8000e98 <HAL_TIM_IRQHandler+0x142>
  2161. {
  2162. __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
  2163. 8000e58: f06f 0220 mvn.w r2, #32
  2164. HAL_TIMEx_CommutationCallback(htim);
  2165. 8000e5c: 4620 mov r0, r4
  2166. }
  2167. }
  2168. }
  2169. 8000e5e: e8bd 4010 ldmia.w sp!, {r4, lr}
  2170. __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
  2171. 8000e62: 611a str r2, [r3, #16]
  2172. HAL_TIMEx_CommutationCallback(htim);
  2173. 8000e64: f000 b8a8 b.w 8000fb8 <HAL_TIMEx_CommutationCallback>
  2174. HAL_TIM_OC_DelayElapsedCallback(htim);
  2175. 8000e68: f7ff ff71 bl 8000d4e <HAL_TIM_OC_DelayElapsedCallback>
  2176. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2177. 8000e6c: 4620 mov r0, r4
  2178. 8000e6e: f7ff ff70 bl 8000d52 <HAL_TIM_PWM_PulseFinishedCallback>
  2179. 8000e72: e783 b.n 8000d7c <HAL_TIM_IRQHandler+0x26>
  2180. HAL_TIM_OC_DelayElapsedCallback(htim);
  2181. 8000e74: f7ff ff6b bl 8000d4e <HAL_TIM_OC_DelayElapsedCallback>
  2182. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2183. 8000e78: 4620 mov r0, r4
  2184. 8000e7a: f7ff ff6a bl 8000d52 <HAL_TIM_PWM_PulseFinishedCallback>
  2185. 8000e7e: e792 b.n 8000da6 <HAL_TIM_IRQHandler+0x50>
  2186. HAL_TIM_OC_DelayElapsedCallback(htim);
  2187. 8000e80: f7ff ff65 bl 8000d4e <HAL_TIM_OC_DelayElapsedCallback>
  2188. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2189. 8000e84: 4620 mov r0, r4
  2190. 8000e86: f7ff ff64 bl 8000d52 <HAL_TIM_PWM_PulseFinishedCallback>
  2191. 8000e8a: e7a0 b.n 8000dce <HAL_TIM_IRQHandler+0x78>
  2192. HAL_TIM_OC_DelayElapsedCallback(htim);
  2193. 8000e8c: f7ff ff5f bl 8000d4e <HAL_TIM_OC_DelayElapsedCallback>
  2194. HAL_TIM_PWM_PulseFinishedCallback(htim);
  2195. 8000e90: 4620 mov r0, r4
  2196. 8000e92: f7ff ff5e bl 8000d52 <HAL_TIM_PWM_PulseFinishedCallback>
  2197. 8000e96: e7af b.n 8000df8 <HAL_TIM_IRQHandler+0xa2>
  2198. 8000e98: bd10 pop {r4, pc}
  2199. ...
  2200. 08000e9c <TIM_Base_SetConfig>:
  2201. {
  2202. uint32_t tmpcr1 = 0U;
  2203. tmpcr1 = TIMx->CR1;
  2204. /* Set TIM Time Base Unit parameters ---------------------------------------*/
  2205. if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
  2206. 8000e9c: 4a26 ldr r2, [pc, #152] ; (8000f38 <TIM_Base_SetConfig+0x9c>)
  2207. tmpcr1 = TIMx->CR1;
  2208. 8000e9e: 6803 ldr r3, [r0, #0]
  2209. if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
  2210. 8000ea0: 4290 cmp r0, r2
  2211. 8000ea2: d00a beq.n 8000eba <TIM_Base_SetConfig+0x1e>
  2212. 8000ea4: f1b0 4f80 cmp.w r0, #1073741824 ; 0x40000000
  2213. 8000ea8: d007 beq.n 8000eba <TIM_Base_SetConfig+0x1e>
  2214. 8000eaa: f5a2 3294 sub.w r2, r2, #75776 ; 0x12800
  2215. 8000eae: 4290 cmp r0, r2
  2216. 8000eb0: d003 beq.n 8000eba <TIM_Base_SetConfig+0x1e>
  2217. 8000eb2: f502 6280 add.w r2, r2, #1024 ; 0x400
  2218. 8000eb6: 4290 cmp r0, r2
  2219. 8000eb8: d111 bne.n 8000ede <TIM_Base_SetConfig+0x42>
  2220. {
  2221. /* Select the Counter Mode */
  2222. tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
  2223. tmpcr1 |= Structure->CounterMode;
  2224. 8000eba: 684a ldr r2, [r1, #4]
  2225. tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
  2226. 8000ebc: f023 0370 bic.w r3, r3, #112 ; 0x70
  2227. tmpcr1 |= Structure->CounterMode;
  2228. 8000ec0: 4313 orrs r3, r2
  2229. }
  2230. if(IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
  2231. 8000ec2: 4a1d ldr r2, [pc, #116] ; (8000f38 <TIM_Base_SetConfig+0x9c>)
  2232. 8000ec4: 4290 cmp r0, r2
  2233. 8000ec6: d015 beq.n 8000ef4 <TIM_Base_SetConfig+0x58>
  2234. 8000ec8: f1b0 4f80 cmp.w r0, #1073741824 ; 0x40000000
  2235. 8000ecc: d012 beq.n 8000ef4 <TIM_Base_SetConfig+0x58>
  2236. 8000ece: f5a2 3294 sub.w r2, r2, #75776 ; 0x12800
  2237. 8000ed2: 4290 cmp r0, r2
  2238. 8000ed4: d00e beq.n 8000ef4 <TIM_Base_SetConfig+0x58>
  2239. 8000ed6: f502 6280 add.w r2, r2, #1024 ; 0x400
  2240. 8000eda: 4290 cmp r0, r2
  2241. 8000edc: d00a beq.n 8000ef4 <TIM_Base_SetConfig+0x58>
  2242. 8000ede: 4a17 ldr r2, [pc, #92] ; (8000f3c <TIM_Base_SetConfig+0xa0>)
  2243. 8000ee0: 4290 cmp r0, r2
  2244. 8000ee2: d007 beq.n 8000ef4 <TIM_Base_SetConfig+0x58>
  2245. 8000ee4: f502 6280 add.w r2, r2, #1024 ; 0x400
  2246. 8000ee8: 4290 cmp r0, r2
  2247. 8000eea: d003 beq.n 8000ef4 <TIM_Base_SetConfig+0x58>
  2248. 8000eec: f502 6280 add.w r2, r2, #1024 ; 0x400
  2249. 8000ef0: 4290 cmp r0, r2
  2250. 8000ef2: d103 bne.n 8000efc <TIM_Base_SetConfig+0x60>
  2251. {
  2252. /* Set the clock division */
  2253. tmpcr1 &= ~TIM_CR1_CKD;
  2254. tmpcr1 |= (uint32_t)Structure->ClockDivision;
  2255. 8000ef4: 68ca ldr r2, [r1, #12]
  2256. tmpcr1 &= ~TIM_CR1_CKD;
  2257. 8000ef6: f423 7340 bic.w r3, r3, #768 ; 0x300
  2258. tmpcr1 |= (uint32_t)Structure->ClockDivision;
  2259. 8000efa: 4313 orrs r3, r2
  2260. }
  2261. /* Set the auto-reload preload */
  2262. tmpcr1 &= ~TIM_CR1_ARPE;
  2263. tmpcr1 |= (uint32_t)Structure->AutoReloadPreload;
  2264. 8000efc: 694a ldr r2, [r1, #20]
  2265. tmpcr1 &= ~TIM_CR1_ARPE;
  2266. 8000efe: f023 0380 bic.w r3, r3, #128 ; 0x80
  2267. tmpcr1 |= (uint32_t)Structure->AutoReloadPreload;
  2268. 8000f02: 4313 orrs r3, r2
  2269. TIMx->CR1 = tmpcr1;
  2270. 8000f04: 6003 str r3, [r0, #0]
  2271. /* Set the Autoreload value */
  2272. TIMx->ARR = (uint32_t)Structure->Period ;
  2273. 8000f06: 688b ldr r3, [r1, #8]
  2274. 8000f08: 62c3 str r3, [r0, #44] ; 0x2c
  2275. /* Set the Prescaler value */
  2276. TIMx->PSC = (uint32_t)Structure->Prescaler;
  2277. 8000f0a: 680b ldr r3, [r1, #0]
  2278. 8000f0c: 6283 str r3, [r0, #40] ; 0x28
  2279. if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
  2280. 8000f0e: 4b0a ldr r3, [pc, #40] ; (8000f38 <TIM_Base_SetConfig+0x9c>)
  2281. 8000f10: 4298 cmp r0, r3
  2282. 8000f12: d00b beq.n 8000f2c <TIM_Base_SetConfig+0x90>
  2283. 8000f14: f503 53a0 add.w r3, r3, #5120 ; 0x1400
  2284. 8000f18: 4298 cmp r0, r3
  2285. 8000f1a: d007 beq.n 8000f2c <TIM_Base_SetConfig+0x90>
  2286. 8000f1c: f503 6380 add.w r3, r3, #1024 ; 0x400
  2287. 8000f20: 4298 cmp r0, r3
  2288. 8000f22: d003 beq.n 8000f2c <TIM_Base_SetConfig+0x90>
  2289. 8000f24: f503 6380 add.w r3, r3, #1024 ; 0x400
  2290. 8000f28: 4298 cmp r0, r3
  2291. 8000f2a: d101 bne.n 8000f30 <TIM_Base_SetConfig+0x94>
  2292. {
  2293. /* Set the Repetition Counter value */
  2294. TIMx->RCR = Structure->RepetitionCounter;
  2295. 8000f2c: 690b ldr r3, [r1, #16]
  2296. 8000f2e: 6303 str r3, [r0, #48] ; 0x30
  2297. }
  2298. /* Generate an update event to reload the Prescaler
  2299. and the repetition counter(only for TIM1 and TIM8) value immediatly */
  2300. TIMx->EGR = TIM_EGR_UG;
  2301. 8000f30: 2301 movs r3, #1
  2302. 8000f32: 6143 str r3, [r0, #20]
  2303. 8000f34: 4770 bx lr
  2304. 8000f36: bf00 nop
  2305. 8000f38: 40012c00 .word 0x40012c00
  2306. 8000f3c: 40014000 .word 0x40014000
  2307. 08000f40 <HAL_TIM_Base_Init>:
  2308. {
  2309. 8000f40: b510 push {r4, lr}
  2310. if(htim == NULL)
  2311. 8000f42: 4604 mov r4, r0
  2312. 8000f44: b1a0 cbz r0, 8000f70 <HAL_TIM_Base_Init+0x30>
  2313. if(htim->State == HAL_TIM_STATE_RESET)
  2314. 8000f46: f890 303d ldrb.w r3, [r0, #61] ; 0x3d
  2315. 8000f4a: f003 02ff and.w r2, r3, #255 ; 0xff
  2316. 8000f4e: b91b cbnz r3, 8000f58 <HAL_TIM_Base_Init+0x18>
  2317. htim->Lock = HAL_UNLOCKED;
  2318. 8000f50: f880 203c strb.w r2, [r0, #60] ; 0x3c
  2319. HAL_TIM_Base_MspInit(htim);
  2320. 8000f54: f000 fe12 bl 8001b7c <HAL_TIM_Base_MspInit>
  2321. htim->State= HAL_TIM_STATE_BUSY;
  2322. 8000f58: 2302 movs r3, #2
  2323. TIM_Base_SetConfig(htim->Instance, &htim->Init);
  2324. 8000f5a: 6820 ldr r0, [r4, #0]
  2325. htim->State= HAL_TIM_STATE_BUSY;
  2326. 8000f5c: f884 303d strb.w r3, [r4, #61] ; 0x3d
  2327. TIM_Base_SetConfig(htim->Instance, &htim->Init);
  2328. 8000f60: 1d21 adds r1, r4, #4
  2329. 8000f62: f7ff ff9b bl 8000e9c <TIM_Base_SetConfig>
  2330. htim->State= HAL_TIM_STATE_READY;
  2331. 8000f66: 2301 movs r3, #1
  2332. return HAL_OK;
  2333. 8000f68: 2000 movs r0, #0
  2334. htim->State= HAL_TIM_STATE_READY;
  2335. 8000f6a: f884 303d strb.w r3, [r4, #61] ; 0x3d
  2336. return HAL_OK;
  2337. 8000f6e: bd10 pop {r4, pc}
  2338. return HAL_ERROR;
  2339. 8000f70: 2001 movs r0, #1
  2340. }
  2341. 8000f72: bd10 pop {r4, pc}
  2342. 08000f74 <HAL_TIMEx_MasterConfigSynchronization>:
  2343. /* Check the parameters */
  2344. assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance));
  2345. assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger));
  2346. assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode));
  2347. __HAL_LOCK(htim);
  2348. 8000f74: f890 303c ldrb.w r3, [r0, #60] ; 0x3c
  2349. {
  2350. 8000f78: b510 push {r4, lr}
  2351. __HAL_LOCK(htim);
  2352. 8000f7a: 2b01 cmp r3, #1
  2353. 8000f7c: f04f 0302 mov.w r3, #2
  2354. 8000f80: d018 beq.n 8000fb4 <HAL_TIMEx_MasterConfigSynchronization+0x40>
  2355. htim->State = HAL_TIM_STATE_BUSY;
  2356. 8000f82: f880 303d strb.w r3, [r0, #61] ; 0x3d
  2357. /* Reset the MMS Bits */
  2358. htim->Instance->CR2 &= ~TIM_CR2_MMS;
  2359. 8000f86: 6803 ldr r3, [r0, #0]
  2360. /* Select the TRGO source */
  2361. htim->Instance->CR2 |= sMasterConfig->MasterOutputTrigger;
  2362. 8000f88: 680c ldr r4, [r1, #0]
  2363. htim->Instance->CR2 &= ~TIM_CR2_MMS;
  2364. 8000f8a: 685a ldr r2, [r3, #4]
  2365. /* Reset the MSM Bit */
  2366. htim->Instance->SMCR &= ~TIM_SMCR_MSM;
  2367. /* Set or Reset the MSM Bit */
  2368. htim->Instance->SMCR |= sMasterConfig->MasterSlaveMode;
  2369. 8000f8c: 6849 ldr r1, [r1, #4]
  2370. htim->Instance->CR2 &= ~TIM_CR2_MMS;
  2371. 8000f8e: f022 0270 bic.w r2, r2, #112 ; 0x70
  2372. 8000f92: 605a str r2, [r3, #4]
  2373. htim->Instance->CR2 |= sMasterConfig->MasterOutputTrigger;
  2374. 8000f94: 685a ldr r2, [r3, #4]
  2375. 8000f96: 4322 orrs r2, r4
  2376. 8000f98: 605a str r2, [r3, #4]
  2377. htim->Instance->SMCR &= ~TIM_SMCR_MSM;
  2378. 8000f9a: 689a ldr r2, [r3, #8]
  2379. 8000f9c: f022 0280 bic.w r2, r2, #128 ; 0x80
  2380. 8000fa0: 609a str r2, [r3, #8]
  2381. htim->Instance->SMCR |= sMasterConfig->MasterSlaveMode;
  2382. 8000fa2: 689a ldr r2, [r3, #8]
  2383. 8000fa4: 430a orrs r2, r1
  2384. 8000fa6: 609a str r2, [r3, #8]
  2385. htim->State = HAL_TIM_STATE_READY;
  2386. 8000fa8: 2301 movs r3, #1
  2387. 8000faa: f880 303d strb.w r3, [r0, #61] ; 0x3d
  2388. __HAL_UNLOCK(htim);
  2389. 8000fae: 2300 movs r3, #0
  2390. 8000fb0: f880 303c strb.w r3, [r0, #60] ; 0x3c
  2391. __HAL_LOCK(htim);
  2392. 8000fb4: 4618 mov r0, r3
  2393. return HAL_OK;
  2394. }
  2395. 8000fb6: bd10 pop {r4, pc}
  2396. 08000fb8 <HAL_TIMEx_CommutationCallback>:
  2397. 8000fb8: 4770 bx lr
  2398. 08000fba <HAL_TIMEx_BreakCallback>:
  2399. * @brief Hall Break detection callback in non blocking mode
  2400. * @param htim : TIM handle
  2401. * @retval None
  2402. */
  2403. __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim)
  2404. {
  2405. 8000fba: 4770 bx lr
  2406. 08000fbc <UART_EndRxTransfer>:
  2407. * @retval None
  2408. */
  2409. static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
  2410. {
  2411. /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  2412. CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
  2413. 8000fbc: 6803 ldr r3, [r0, #0]
  2414. 8000fbe: 68da ldr r2, [r3, #12]
  2415. 8000fc0: f422 7290 bic.w r2, r2, #288 ; 0x120
  2416. 8000fc4: 60da str r2, [r3, #12]
  2417. CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  2418. 8000fc6: 695a ldr r2, [r3, #20]
  2419. 8000fc8: f022 0201 bic.w r2, r2, #1
  2420. 8000fcc: 615a str r2, [r3, #20]
  2421. /* At end of Rx process, restore huart->RxState to Ready */
  2422. huart->RxState = HAL_UART_STATE_READY;
  2423. 8000fce: 2320 movs r3, #32
  2424. 8000fd0: f880 303a strb.w r3, [r0, #58] ; 0x3a
  2425. 8000fd4: 4770 bx lr
  2426. ...
  2427. 08000fd8 <UART_SetConfig>:
  2428. * @param huart: pointer to a UART_HandleTypeDef structure that contains
  2429. * the configuration information for the specified UART module.
  2430. * @retval None
  2431. */
  2432. static void UART_SetConfig(UART_HandleTypeDef *huart)
  2433. {
  2434. 8000fd8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
  2435. 8000fdc: 4681 mov r9, r0
  2436. assert_param(IS_UART_MODE(huart->Init.Mode));
  2437. /*------- UART-associated USART registers setting : CR2 Configuration ------*/
  2438. /* Configure the UART Stop Bits: Set STOP[13:12] bits according
  2439. * to huart->Init.StopBits value */
  2440. MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
  2441. 8000fde: 6805 ldr r5, [r0, #0]
  2442. 8000fe0: 68c2 ldr r2, [r0, #12]
  2443. 8000fe2: 692b ldr r3, [r5, #16]
  2444. Set PCE and PS bits according to huart->Init.Parity value
  2445. Set TE and RE bits according to huart->Init.Mode value
  2446. Set OVER8 bit according to huart->Init.OverSampling value */
  2447. #if defined(USART_CR1_OVER8)
  2448. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling;
  2449. 8000fe4: 69c1 ldr r1, [r0, #28]
  2450. MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
  2451. 8000fe6: f423 5340 bic.w r3, r3, #12288 ; 0x3000
  2452. 8000fea: 4313 orrs r3, r2
  2453. 8000fec: 612b str r3, [r5, #16]
  2454. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling;
  2455. 8000fee: 6883 ldr r3, [r0, #8]
  2456. 8000ff0: 6900 ldr r0, [r0, #16]
  2457. MODIFY_REG(huart->Instance->CR1,
  2458. 8000ff2: 68ea ldr r2, [r5, #12]
  2459. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling;
  2460. 8000ff4: 4303 orrs r3, r0
  2461. 8000ff6: f8d9 0014 ldr.w r0, [r9, #20]
  2462. MODIFY_REG(huart->Instance->CR1,
  2463. 8000ffa: f422 4216 bic.w r2, r2, #38400 ; 0x9600
  2464. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling;
  2465. 8000ffe: 4303 orrs r3, r0
  2466. MODIFY_REG(huart->Instance->CR1,
  2467. 8001000: f022 020c bic.w r2, r2, #12
  2468. tmpreg |= (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling;
  2469. 8001004: 430b orrs r3, r1
  2470. MODIFY_REG(huart->Instance->CR1,
  2471. 8001006: 4313 orrs r3, r2
  2472. 8001008: 60eb str r3, [r5, #12]
  2473. tmpreg);
  2474. #endif /* USART_CR1_OVER8 */
  2475. /*------- UART-associated USART registers setting : CR3 Configuration ------*/
  2476. /* Configure the UART HFC: Set CTSE and RTSE bits according to huart->Init.HwFlowCtl value */
  2477. MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl);
  2478. 800100a: 696b ldr r3, [r5, #20]
  2479. 800100c: f8d9 2018 ldr.w r2, [r9, #24]
  2480. 8001010: f423 7340 bic.w r3, r3, #768 ; 0x300
  2481. 8001014: 4313 orrs r3, r2
  2482. #if defined(USART_CR1_OVER8)
  2483. /* Check the Over Sampling */
  2484. if(huart->Init.OverSampling == UART_OVERSAMPLING_8)
  2485. 8001016: f5b1 4f00 cmp.w r1, #32768 ; 0x8000
  2486. MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl);
  2487. 800101a: 616b str r3, [r5, #20]
  2488. 800101c: 4b7e ldr r3, [pc, #504] ; (8001218 <UART_SetConfig+0x240>)
  2489. if(huart->Init.OverSampling == UART_OVERSAMPLING_8)
  2490. 800101e: d17f bne.n 8001120 <UART_SetConfig+0x148>
  2491. {
  2492. /*-------------------------- USART BRR Configuration ---------------------*/
  2493. if(huart->Instance == USART1)
  2494. 8001020: 429d cmp r5, r3
  2495. 8001022: f04f 0419 mov.w r4, #25
  2496. 8001026: d147 bne.n 80010b8 <UART_SetConfig+0xe0>
  2497. {
  2498. huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  2499. 8001028: f7ff fe76 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2500. 800102c: fb04 f300 mul.w r3, r4, r0
  2501. 8001030: f8d9 7004 ldr.w r7, [r9, #4]
  2502. 8001034: f04f 0864 mov.w r8, #100 ; 0x64
  2503. 8001038: 007f lsls r7, r7, #1
  2504. 800103a: fbb3 f3f7 udiv r3, r3, r7
  2505. 800103e: fbb3 f3f8 udiv r3, r3, r8
  2506. 8001042: 011f lsls r7, r3, #4
  2507. 8001044: f7ff fe68 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2508. 8001048: 4360 muls r0, r4
  2509. 800104a: f8d9 3004 ldr.w r3, [r9, #4]
  2510. 800104e: 005b lsls r3, r3, #1
  2511. 8001050: fbb0 f6f3 udiv r6, r0, r3
  2512. 8001054: f7ff fe60 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2513. 8001058: 4360 muls r0, r4
  2514. 800105a: f8d9 3004 ldr.w r3, [r9, #4]
  2515. 800105e: 005b lsls r3, r3, #1
  2516. 8001060: fbb0 f3f3 udiv r3, r0, r3
  2517. 8001064: fbb3 f3f8 udiv r3, r3, r8
  2518. 8001068: fb08 6313 mls r3, r8, r3, r6
  2519. 800106c: 00db lsls r3, r3, #3
  2520. 800106e: 3332 adds r3, #50 ; 0x32
  2521. 8001070: fbb3 f3f8 udiv r3, r3, r8
  2522. 8001074: 005b lsls r3, r3, #1
  2523. 8001076: f403 76f8 and.w r6, r3, #496 ; 0x1f0
  2524. 800107a: f7ff fe4d bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2525. 800107e: 4360 muls r0, r4
  2526. 8001080: f8d9 2004 ldr.w r2, [r9, #4]
  2527. 8001084: 0052 lsls r2, r2, #1
  2528. 8001086: fbb0 faf2 udiv sl, r0, r2
  2529. 800108a: f7ff fe45 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2530. }
  2531. else
  2532. {
  2533. huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  2534. 800108e: 4360 muls r0, r4
  2535. 8001090: f8d9 3004 ldr.w r3, [r9, #4]
  2536. 8001094: 005b lsls r3, r3, #1
  2537. 8001096: fbb0 f3f3 udiv r3, r0, r3
  2538. 800109a: fbb3 f3f8 udiv r3, r3, r8
  2539. 800109e: fb08 a313 mls r3, r8, r3, sl
  2540. 80010a2: 00db lsls r3, r3, #3
  2541. 80010a4: 3332 adds r3, #50 ; 0x32
  2542. 80010a6: fbb3 f3f8 udiv r3, r3, r8
  2543. 80010aa: f003 0307 and.w r3, r3, #7
  2544. 80010ae: 443b add r3, r7
  2545. {
  2546. huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  2547. }
  2548. else
  2549. {
  2550. huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  2551. 80010b0: 4433 add r3, r6
  2552. 80010b2: 60ab str r3, [r5, #8]
  2553. 80010b4: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
  2554. huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  2555. 80010b8: f7ff fe1e bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2556. 80010bc: fb04 f300 mul.w r3, r4, r0
  2557. 80010c0: f8d9 7004 ldr.w r7, [r9, #4]
  2558. 80010c4: f04f 0864 mov.w r8, #100 ; 0x64
  2559. 80010c8: 007f lsls r7, r7, #1
  2560. 80010ca: fbb3 f3f7 udiv r3, r3, r7
  2561. 80010ce: fbb3 f3f8 udiv r3, r3, r8
  2562. 80010d2: 011f lsls r7, r3, #4
  2563. 80010d4: f7ff fe10 bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2564. 80010d8: 4360 muls r0, r4
  2565. 80010da: f8d9 3004 ldr.w r3, [r9, #4]
  2566. 80010de: 005b lsls r3, r3, #1
  2567. 80010e0: fbb0 f6f3 udiv r6, r0, r3
  2568. 80010e4: f7ff fe08 bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2569. 80010e8: 4360 muls r0, r4
  2570. 80010ea: f8d9 3004 ldr.w r3, [r9, #4]
  2571. 80010ee: 005b lsls r3, r3, #1
  2572. 80010f0: fbb0 f3f3 udiv r3, r0, r3
  2573. 80010f4: fbb3 f3f8 udiv r3, r3, r8
  2574. 80010f8: fb08 6313 mls r3, r8, r3, r6
  2575. 80010fc: 00db lsls r3, r3, #3
  2576. 80010fe: 3332 adds r3, #50 ; 0x32
  2577. 8001100: fbb3 f3f8 udiv r3, r3, r8
  2578. 8001104: 005b lsls r3, r3, #1
  2579. 8001106: f403 76f8 and.w r6, r3, #496 ; 0x1f0
  2580. 800110a: f7ff fdf5 bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2581. 800110e: 4360 muls r0, r4
  2582. 8001110: f8d9 2004 ldr.w r2, [r9, #4]
  2583. 8001114: 0052 lsls r2, r2, #1
  2584. 8001116: fbb0 faf2 udiv sl, r0, r2
  2585. 800111a: f7ff fded bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2586. 800111e: e7b6 b.n 800108e <UART_SetConfig+0xb6>
  2587. if(huart->Instance == USART1)
  2588. 8001120: 429d cmp r5, r3
  2589. 8001122: f04f 0419 mov.w r4, #25
  2590. 8001126: d143 bne.n 80011b0 <UART_SetConfig+0x1d8>
  2591. huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  2592. 8001128: f7ff fdf6 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2593. 800112c: fb04 f300 mul.w r3, r4, r0
  2594. 8001130: f8d9 6004 ldr.w r6, [r9, #4]
  2595. 8001134: f04f 0864 mov.w r8, #100 ; 0x64
  2596. 8001138: 00b6 lsls r6, r6, #2
  2597. 800113a: fbb3 f3f6 udiv r3, r3, r6
  2598. 800113e: fbb3 f3f8 udiv r3, r3, r8
  2599. 8001142: 011e lsls r6, r3, #4
  2600. 8001144: f7ff fde8 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2601. 8001148: 4360 muls r0, r4
  2602. 800114a: f8d9 3004 ldr.w r3, [r9, #4]
  2603. 800114e: 009b lsls r3, r3, #2
  2604. 8001150: fbb0 f7f3 udiv r7, r0, r3
  2605. 8001154: f7ff fde0 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2606. 8001158: 4360 muls r0, r4
  2607. 800115a: f8d9 3004 ldr.w r3, [r9, #4]
  2608. 800115e: 009b lsls r3, r3, #2
  2609. 8001160: fbb0 f3f3 udiv r3, r0, r3
  2610. 8001164: fbb3 f3f8 udiv r3, r3, r8
  2611. 8001168: fb08 7313 mls r3, r8, r3, r7
  2612. 800116c: 011b lsls r3, r3, #4
  2613. 800116e: 3332 adds r3, #50 ; 0x32
  2614. 8001170: fbb3 f3f8 udiv r3, r3, r8
  2615. 8001174: f003 07f0 and.w r7, r3, #240 ; 0xf0
  2616. 8001178: f7ff fdce bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2617. 800117c: 4360 muls r0, r4
  2618. 800117e: f8d9 2004 ldr.w r2, [r9, #4]
  2619. 8001182: 0092 lsls r2, r2, #2
  2620. 8001184: fbb0 faf2 udiv sl, r0, r2
  2621. 8001188: f7ff fdc6 bl 8000d18 <HAL_RCC_GetPCLK2Freq>
  2622. huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  2623. 800118c: 4360 muls r0, r4
  2624. 800118e: f8d9 3004 ldr.w r3, [r9, #4]
  2625. 8001192: 009b lsls r3, r3, #2
  2626. 8001194: fbb0 f3f3 udiv r3, r0, r3
  2627. 8001198: fbb3 f3f8 udiv r3, r3, r8
  2628. 800119c: fb08 a313 mls r3, r8, r3, sl
  2629. 80011a0: 011b lsls r3, r3, #4
  2630. 80011a2: 3332 adds r3, #50 ; 0x32
  2631. 80011a4: fbb3 f3f8 udiv r3, r3, r8
  2632. 80011a8: f003 030f and.w r3, r3, #15
  2633. 80011ac: 433b orrs r3, r7
  2634. 80011ae: e77f b.n 80010b0 <UART_SetConfig+0xd8>
  2635. 80011b0: f7ff fda2 bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2636. 80011b4: fb04 f300 mul.w r3, r4, r0
  2637. 80011b8: f8d9 6004 ldr.w r6, [r9, #4]
  2638. 80011bc: f04f 0864 mov.w r8, #100 ; 0x64
  2639. 80011c0: 00b6 lsls r6, r6, #2
  2640. 80011c2: fbb3 f3f6 udiv r3, r3, r6
  2641. 80011c6: fbb3 f3f8 udiv r3, r3, r8
  2642. 80011ca: 011e lsls r6, r3, #4
  2643. 80011cc: f7ff fd94 bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2644. 80011d0: 4360 muls r0, r4
  2645. 80011d2: f8d9 3004 ldr.w r3, [r9, #4]
  2646. 80011d6: 009b lsls r3, r3, #2
  2647. 80011d8: fbb0 f7f3 udiv r7, r0, r3
  2648. 80011dc: f7ff fd8c bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2649. 80011e0: 4360 muls r0, r4
  2650. 80011e2: f8d9 3004 ldr.w r3, [r9, #4]
  2651. 80011e6: 009b lsls r3, r3, #2
  2652. 80011e8: fbb0 f3f3 udiv r3, r0, r3
  2653. 80011ec: fbb3 f3f8 udiv r3, r3, r8
  2654. 80011f0: fb08 7313 mls r3, r8, r3, r7
  2655. 80011f4: 011b lsls r3, r3, #4
  2656. 80011f6: 3332 adds r3, #50 ; 0x32
  2657. 80011f8: fbb3 f3f8 udiv r3, r3, r8
  2658. 80011fc: f003 07f0 and.w r7, r3, #240 ; 0xf0
  2659. 8001200: f7ff fd7a bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2660. 8001204: 4360 muls r0, r4
  2661. 8001206: f8d9 2004 ldr.w r2, [r9, #4]
  2662. 800120a: 0092 lsls r2, r2, #2
  2663. 800120c: fbb0 faf2 udiv sl, r0, r2
  2664. 8001210: f7ff fd72 bl 8000cf8 <HAL_RCC_GetPCLK1Freq>
  2665. 8001214: e7ba b.n 800118c <UART_SetConfig+0x1b4>
  2666. 8001216: bf00 nop
  2667. 8001218: 40013800 .word 0x40013800
  2668. 0800121c <UART_WaitOnFlagUntilTimeout.constprop.3>:
  2669. static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
  2670. 800121c: b5f8 push {r3, r4, r5, r6, r7, lr}
  2671. 800121e: 4604 mov r4, r0
  2672. 8001220: 460e mov r6, r1
  2673. 8001222: 4617 mov r7, r2
  2674. 8001224: 461d mov r5, r3
  2675. while((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
  2676. 8001226: 6821 ldr r1, [r4, #0]
  2677. 8001228: 680b ldr r3, [r1, #0]
  2678. 800122a: ea36 0303 bics.w r3, r6, r3
  2679. 800122e: d101 bne.n 8001234 <UART_WaitOnFlagUntilTimeout.constprop.3+0x18>
  2680. return HAL_OK;
  2681. 8001230: 2000 movs r0, #0
  2682. }
  2683. 8001232: bdf8 pop {r3, r4, r5, r6, r7, pc}
  2684. if(Timeout != HAL_MAX_DELAY)
  2685. 8001234: 1c6b adds r3, r5, #1
  2686. 8001236: d0f7 beq.n 8001228 <UART_WaitOnFlagUntilTimeout.constprop.3+0xc>
  2687. if((Timeout == 0U)||((HAL_GetTick() - Tickstart ) > Timeout))
  2688. 8001238: b995 cbnz r5, 8001260 <UART_WaitOnFlagUntilTimeout.constprop.3+0x44>
  2689. CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
  2690. 800123a: 6823 ldr r3, [r4, #0]
  2691. __HAL_UNLOCK(huart);
  2692. 800123c: 2003 movs r0, #3
  2693. CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
  2694. 800123e: 68da ldr r2, [r3, #12]
  2695. 8001240: f422 72d0 bic.w r2, r2, #416 ; 0x1a0
  2696. 8001244: 60da str r2, [r3, #12]
  2697. CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  2698. 8001246: 695a ldr r2, [r3, #20]
  2699. 8001248: f022 0201 bic.w r2, r2, #1
  2700. 800124c: 615a str r2, [r3, #20]
  2701. huart->gState = HAL_UART_STATE_READY;
  2702. 800124e: 2320 movs r3, #32
  2703. 8001250: f884 3039 strb.w r3, [r4, #57] ; 0x39
  2704. huart->RxState = HAL_UART_STATE_READY;
  2705. 8001254: f884 303a strb.w r3, [r4, #58] ; 0x3a
  2706. __HAL_UNLOCK(huart);
  2707. 8001258: 2300 movs r3, #0
  2708. 800125a: f884 3038 strb.w r3, [r4, #56] ; 0x38
  2709. 800125e: bdf8 pop {r3, r4, r5, r6, r7, pc}
  2710. if((Timeout == 0U)||((HAL_GetTick() - Tickstart ) > Timeout))
  2711. 8001260: f7ff f81e bl 80002a0 <HAL_GetTick>
  2712. 8001264: 1bc0 subs r0, r0, r7
  2713. 8001266: 4285 cmp r5, r0
  2714. 8001268: d2dd bcs.n 8001226 <UART_WaitOnFlagUntilTimeout.constprop.3+0xa>
  2715. 800126a: e7e6 b.n 800123a <UART_WaitOnFlagUntilTimeout.constprop.3+0x1e>
  2716. 0800126c <HAL_UART_Init>:
  2717. {
  2718. 800126c: b510 push {r4, lr}
  2719. if(huart == NULL)
  2720. 800126e: 4604 mov r4, r0
  2721. 8001270: b340 cbz r0, 80012c4 <HAL_UART_Init+0x58>
  2722. if(huart->gState == HAL_UART_STATE_RESET)
  2723. 8001272: f890 3039 ldrb.w r3, [r0, #57] ; 0x39
  2724. 8001276: f003 02ff and.w r2, r3, #255 ; 0xff
  2725. 800127a: b91b cbnz r3, 8001284 <HAL_UART_Init+0x18>
  2726. huart->Lock = HAL_UNLOCKED;
  2727. 800127c: f880 2038 strb.w r2, [r0, #56] ; 0x38
  2728. HAL_UART_MspInit(huart);
  2729. 8001280: f000 fc90 bl 8001ba4 <HAL_UART_MspInit>
  2730. huart->gState = HAL_UART_STATE_BUSY;
  2731. 8001284: 2324 movs r3, #36 ; 0x24
  2732. __HAL_UART_DISABLE(huart);
  2733. 8001286: 6822 ldr r2, [r4, #0]
  2734. huart->gState = HAL_UART_STATE_BUSY;
  2735. 8001288: f884 3039 strb.w r3, [r4, #57] ; 0x39
  2736. __HAL_UART_DISABLE(huart);
  2737. 800128c: 68d3 ldr r3, [r2, #12]
  2738. UART_SetConfig(huart);
  2739. 800128e: 4620 mov r0, r4
  2740. __HAL_UART_DISABLE(huart);
  2741. 8001290: f423 5300 bic.w r3, r3, #8192 ; 0x2000
  2742. 8001294: 60d3 str r3, [r2, #12]
  2743. UART_SetConfig(huart);
  2744. 8001296: f7ff fe9f bl 8000fd8 <UART_SetConfig>
  2745. CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
  2746. 800129a: 6823 ldr r3, [r4, #0]
  2747. huart->ErrorCode = HAL_UART_ERROR_NONE;
  2748. 800129c: 2000 movs r0, #0
  2749. CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
  2750. 800129e: 691a ldr r2, [r3, #16]
  2751. 80012a0: f422 4290 bic.w r2, r2, #18432 ; 0x4800
  2752. 80012a4: 611a str r2, [r3, #16]
  2753. CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
  2754. 80012a6: 695a ldr r2, [r3, #20]
  2755. 80012a8: f022 022a bic.w r2, r2, #42 ; 0x2a
  2756. 80012ac: 615a str r2, [r3, #20]
  2757. __HAL_UART_ENABLE(huart);
  2758. 80012ae: 68da ldr r2, [r3, #12]
  2759. 80012b0: f442 5200 orr.w r2, r2, #8192 ; 0x2000
  2760. 80012b4: 60da str r2, [r3, #12]
  2761. huart->gState= HAL_UART_STATE_READY;
  2762. 80012b6: 2320 movs r3, #32
  2763. huart->ErrorCode = HAL_UART_ERROR_NONE;
  2764. 80012b8: 63e0 str r0, [r4, #60] ; 0x3c
  2765. huart->gState= HAL_UART_STATE_READY;
  2766. 80012ba: f884 3039 strb.w r3, [r4, #57] ; 0x39
  2767. huart->RxState= HAL_UART_STATE_READY;
  2768. 80012be: f884 303a strb.w r3, [r4, #58] ; 0x3a
  2769. return HAL_OK;
  2770. 80012c2: bd10 pop {r4, pc}
  2771. return HAL_ERROR;
  2772. 80012c4: 2001 movs r0, #1
  2773. }
  2774. 80012c6: bd10 pop {r4, pc}
  2775. 080012c8 <HAL_UART_Transmit>:
  2776. {
  2777. 80012c8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  2778. 80012cc: 461f mov r7, r3
  2779. if(huart->gState == HAL_UART_STATE_READY)
  2780. 80012ce: f890 3039 ldrb.w r3, [r0, #57] ; 0x39
  2781. {
  2782. 80012d2: 4604 mov r4, r0
  2783. if(huart->gState == HAL_UART_STATE_READY)
  2784. 80012d4: 2b20 cmp r3, #32
  2785. {
  2786. 80012d6: 460d mov r5, r1
  2787. 80012d8: 4690 mov r8, r2
  2788. if(huart->gState == HAL_UART_STATE_READY)
  2789. 80012da: d14e bne.n 800137a <HAL_UART_Transmit+0xb2>
  2790. if((pData == NULL) || (Size == 0U))
  2791. 80012dc: 2900 cmp r1, #0
  2792. 80012de: d049 beq.n 8001374 <HAL_UART_Transmit+0xac>
  2793. 80012e0: 2a00 cmp r2, #0
  2794. 80012e2: d047 beq.n 8001374 <HAL_UART_Transmit+0xac>
  2795. __HAL_LOCK(huart);
  2796. 80012e4: f890 3038 ldrb.w r3, [r0, #56] ; 0x38
  2797. 80012e8: 2b01 cmp r3, #1
  2798. 80012ea: d046 beq.n 800137a <HAL_UART_Transmit+0xb2>
  2799. 80012ec: 2301 movs r3, #1
  2800. 80012ee: f880 3038 strb.w r3, [r0, #56] ; 0x38
  2801. huart->ErrorCode = HAL_UART_ERROR_NONE;
  2802. 80012f2: 2300 movs r3, #0
  2803. 80012f4: 63c3 str r3, [r0, #60] ; 0x3c
  2804. huart->gState = HAL_UART_STATE_BUSY_TX;
  2805. 80012f6: 2321 movs r3, #33 ; 0x21
  2806. 80012f8: f880 3039 strb.w r3, [r0, #57] ; 0x39
  2807. tickstart = HAL_GetTick();
  2808. 80012fc: f7fe ffd0 bl 80002a0 <HAL_GetTick>
  2809. 8001300: 4606 mov r6, r0
  2810. huart->TxXferSize = Size;
  2811. 8001302: f8a4 8024 strh.w r8, [r4, #36] ; 0x24
  2812. huart->TxXferCount = Size;
  2813. 8001306: f8a4 8026 strh.w r8, [r4, #38] ; 0x26
  2814. while(huart->TxXferCount > 0U)
  2815. 800130a: 8ce3 ldrh r3, [r4, #38] ; 0x26
  2816. 800130c: b29b uxth r3, r3
  2817. 800130e: b96b cbnz r3, 800132c <HAL_UART_Transmit+0x64>
  2818. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK)
  2819. 8001310: 463b mov r3, r7
  2820. 8001312: 4632 mov r2, r6
  2821. 8001314: 2140 movs r1, #64 ; 0x40
  2822. 8001316: 4620 mov r0, r4
  2823. 8001318: f7ff ff80 bl 800121c <UART_WaitOnFlagUntilTimeout.constprop.3>
  2824. 800131c: b9a8 cbnz r0, 800134a <HAL_UART_Transmit+0x82>
  2825. huart->gState = HAL_UART_STATE_READY;
  2826. 800131e: 2320 movs r3, #32
  2827. __HAL_UNLOCK(huart);
  2828. 8001320: f884 0038 strb.w r0, [r4, #56] ; 0x38
  2829. huart->gState = HAL_UART_STATE_READY;
  2830. 8001324: f884 3039 strb.w r3, [r4, #57] ; 0x39
  2831. return HAL_OK;
  2832. 8001328: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2833. huart->TxXferCount--;
  2834. 800132c: 8ce3 ldrh r3, [r4, #38] ; 0x26
  2835. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  2836. 800132e: 4632 mov r2, r6
  2837. huart->TxXferCount--;
  2838. 8001330: 3b01 subs r3, #1
  2839. 8001332: b29b uxth r3, r3
  2840. 8001334: 84e3 strh r3, [r4, #38] ; 0x26
  2841. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  2842. 8001336: 68a3 ldr r3, [r4, #8]
  2843. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  2844. 8001338: 2180 movs r1, #128 ; 0x80
  2845. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  2846. 800133a: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
  2847. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  2848. 800133e: 4620 mov r0, r4
  2849. 8001340: 463b mov r3, r7
  2850. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  2851. 8001342: d10e bne.n 8001362 <HAL_UART_Transmit+0x9a>
  2852. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  2853. 8001344: f7ff ff6a bl 800121c <UART_WaitOnFlagUntilTimeout.constprop.3>
  2854. 8001348: b110 cbz r0, 8001350 <HAL_UART_Transmit+0x88>
  2855. return HAL_TIMEOUT;
  2856. 800134a: 2003 movs r0, #3
  2857. 800134c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2858. huart->Instance->DR = (*tmp & (uint16_t)0x01FF);
  2859. 8001350: 882b ldrh r3, [r5, #0]
  2860. 8001352: 6822 ldr r2, [r4, #0]
  2861. 8001354: f3c3 0308 ubfx r3, r3, #0, #9
  2862. 8001358: 6053 str r3, [r2, #4]
  2863. if(huart->Init.Parity == UART_PARITY_NONE)
  2864. 800135a: 6923 ldr r3, [r4, #16]
  2865. 800135c: b943 cbnz r3, 8001370 <HAL_UART_Transmit+0xa8>
  2866. pData +=2U;
  2867. 800135e: 3502 adds r5, #2
  2868. 8001360: e7d3 b.n 800130a <HAL_UART_Transmit+0x42>
  2869. if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  2870. 8001362: f7ff ff5b bl 800121c <UART_WaitOnFlagUntilTimeout.constprop.3>
  2871. 8001366: 2800 cmp r0, #0
  2872. 8001368: d1ef bne.n 800134a <HAL_UART_Transmit+0x82>
  2873. huart->Instance->DR = (*pData++ & (uint8_t)0xFF);
  2874. 800136a: 6823 ldr r3, [r4, #0]
  2875. 800136c: 782a ldrb r2, [r5, #0]
  2876. 800136e: 605a str r2, [r3, #4]
  2877. 8001370: 3501 adds r5, #1
  2878. 8001372: e7ca b.n 800130a <HAL_UART_Transmit+0x42>
  2879. return HAL_ERROR;
  2880. 8001374: 2001 movs r0, #1
  2881. 8001376: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2882. return HAL_BUSY;
  2883. 800137a: 2002 movs r0, #2
  2884. }
  2885. 800137c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  2886. 08001380 <HAL_UART_Receive_IT>:
  2887. if(huart->RxState == HAL_UART_STATE_READY)
  2888. 8001380: f890 303a ldrb.w r3, [r0, #58] ; 0x3a
  2889. 8001384: 2b20 cmp r3, #32
  2890. 8001386: d120 bne.n 80013ca <HAL_UART_Receive_IT+0x4a>
  2891. if((pData == NULL) || (Size == 0U))
  2892. 8001388: b1e9 cbz r1, 80013c6 <HAL_UART_Receive_IT+0x46>
  2893. 800138a: b1e2 cbz r2, 80013c6 <HAL_UART_Receive_IT+0x46>
  2894. __HAL_LOCK(huart);
  2895. 800138c: f890 3038 ldrb.w r3, [r0, #56] ; 0x38
  2896. 8001390: 2b01 cmp r3, #1
  2897. 8001392: d01a beq.n 80013ca <HAL_UART_Receive_IT+0x4a>
  2898. huart->RxXferCount = Size;
  2899. 8001394: 85c2 strh r2, [r0, #46] ; 0x2e
  2900. huart->RxXferSize = Size;
  2901. 8001396: 8582 strh r2, [r0, #44] ; 0x2c
  2902. huart->ErrorCode = HAL_UART_ERROR_NONE;
  2903. 8001398: 2300 movs r3, #0
  2904. huart->RxState = HAL_UART_STATE_BUSY_RX;
  2905. 800139a: 2222 movs r2, #34 ; 0x22
  2906. huart->ErrorCode = HAL_UART_ERROR_NONE;
  2907. 800139c: 63c3 str r3, [r0, #60] ; 0x3c
  2908. huart->RxState = HAL_UART_STATE_BUSY_RX;
  2909. 800139e: f880 203a strb.w r2, [r0, #58] ; 0x3a
  2910. __HAL_UART_ENABLE_IT(huart, UART_IT_PE);
  2911. 80013a2: 6802 ldr r2, [r0, #0]
  2912. huart->pRxBuffPtr = pData;
  2913. 80013a4: 6281 str r1, [r0, #40] ; 0x28
  2914. __HAL_UART_ENABLE_IT(huart, UART_IT_PE);
  2915. 80013a6: 68d1 ldr r1, [r2, #12]
  2916. __HAL_UNLOCK(huart);
  2917. 80013a8: f880 3038 strb.w r3, [r0, #56] ; 0x38
  2918. __HAL_UART_ENABLE_IT(huart, UART_IT_PE);
  2919. 80013ac: f441 7180 orr.w r1, r1, #256 ; 0x100
  2920. 80013b0: 60d1 str r1, [r2, #12]
  2921. __HAL_UART_ENABLE_IT(huart, UART_IT_ERR);
  2922. 80013b2: 6951 ldr r1, [r2, #20]
  2923. return HAL_OK;
  2924. 80013b4: 4618 mov r0, r3
  2925. __HAL_UART_ENABLE_IT(huart, UART_IT_ERR);
  2926. 80013b6: f041 0101 orr.w r1, r1, #1
  2927. 80013ba: 6151 str r1, [r2, #20]
  2928. __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE);
  2929. 80013bc: 68d1 ldr r1, [r2, #12]
  2930. 80013be: f041 0120 orr.w r1, r1, #32
  2931. 80013c2: 60d1 str r1, [r2, #12]
  2932. return HAL_OK;
  2933. 80013c4: 4770 bx lr
  2934. return HAL_ERROR;
  2935. 80013c6: 2001 movs r0, #1
  2936. 80013c8: 4770 bx lr
  2937. return HAL_BUSY;
  2938. 80013ca: 2002 movs r0, #2
  2939. }
  2940. 80013cc: 4770 bx lr
  2941. 080013ce <HAL_UART_TxCpltCallback>:
  2942. 80013ce: 4770 bx lr
  2943. 080013d0 <UART_Receive_IT>:
  2944. if(huart->RxState == HAL_UART_STATE_BUSY_RX)
  2945. 80013d0: f890 303a ldrb.w r3, [r0, #58] ; 0x3a
  2946. {
  2947. 80013d4: b510 push {r4, lr}
  2948. if(huart->RxState == HAL_UART_STATE_BUSY_RX)
  2949. 80013d6: 2b22 cmp r3, #34 ; 0x22
  2950. 80013d8: d136 bne.n 8001448 <UART_Receive_IT+0x78>
  2951. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  2952. 80013da: 6883 ldr r3, [r0, #8]
  2953. 80013dc: 6901 ldr r1, [r0, #16]
  2954. 80013de: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
  2955. 80013e2: 6802 ldr r2, [r0, #0]
  2956. 80013e4: 6a83 ldr r3, [r0, #40] ; 0x28
  2957. 80013e6: d123 bne.n 8001430 <UART_Receive_IT+0x60>
  2958. *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF);
  2959. 80013e8: 6852 ldr r2, [r2, #4]
  2960. if(huart->Init.Parity == UART_PARITY_NONE)
  2961. 80013ea: b9e9 cbnz r1, 8001428 <UART_Receive_IT+0x58>
  2962. *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF);
  2963. 80013ec: f3c2 0208 ubfx r2, r2, #0, #9
  2964. 80013f0: f823 2b02 strh.w r2, [r3], #2
  2965. huart->pRxBuffPtr += 1U;
  2966. 80013f4: 6283 str r3, [r0, #40] ; 0x28
  2967. if(--huart->RxXferCount == 0U)
  2968. 80013f6: 8dc4 ldrh r4, [r0, #46] ; 0x2e
  2969. 80013f8: 3c01 subs r4, #1
  2970. 80013fa: b2a4 uxth r4, r4
  2971. 80013fc: 85c4 strh r4, [r0, #46] ; 0x2e
  2972. 80013fe: b98c cbnz r4, 8001424 <UART_Receive_IT+0x54>
  2973. __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE);
  2974. 8001400: 6803 ldr r3, [r0, #0]
  2975. 8001402: 68da ldr r2, [r3, #12]
  2976. 8001404: f022 0220 bic.w r2, r2, #32
  2977. 8001408: 60da str r2, [r3, #12]
  2978. __HAL_UART_DISABLE_IT(huart, UART_IT_PE);
  2979. 800140a: 68da ldr r2, [r3, #12]
  2980. 800140c: f422 7280 bic.w r2, r2, #256 ; 0x100
  2981. 8001410: 60da str r2, [r3, #12]
  2982. __HAL_UART_DISABLE_IT(huart, UART_IT_ERR);
  2983. 8001412: 695a ldr r2, [r3, #20]
  2984. 8001414: f022 0201 bic.w r2, r2, #1
  2985. 8001418: 615a str r2, [r3, #20]
  2986. huart->RxState = HAL_UART_STATE_READY;
  2987. 800141a: 2320 movs r3, #32
  2988. 800141c: f880 303a strb.w r3, [r0, #58] ; 0x3a
  2989. HAL_UART_RxCpltCallback(huart);
  2990. 8001420: f000 f8ca bl 80015b8 <HAL_UART_RxCpltCallback>
  2991. if(--huart->RxXferCount == 0U)
  2992. 8001424: 2000 movs r0, #0
  2993. }
  2994. 8001426: bd10 pop {r4, pc}
  2995. *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x00FF);
  2996. 8001428: b2d2 uxtb r2, r2
  2997. 800142a: f823 2b01 strh.w r2, [r3], #1
  2998. 800142e: e7e1 b.n 80013f4 <UART_Receive_IT+0x24>
  2999. if(huart->Init.Parity == UART_PARITY_NONE)
  3000. 8001430: b921 cbnz r1, 800143c <UART_Receive_IT+0x6c>
  3001. *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF);
  3002. 8001432: 1c59 adds r1, r3, #1
  3003. 8001434: 6852 ldr r2, [r2, #4]
  3004. 8001436: 6281 str r1, [r0, #40] ; 0x28
  3005. *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F);
  3006. 8001438: 701a strb r2, [r3, #0]
  3007. 800143a: e7dc b.n 80013f6 <UART_Receive_IT+0x26>
  3008. 800143c: 6852 ldr r2, [r2, #4]
  3009. 800143e: 1c59 adds r1, r3, #1
  3010. 8001440: 6281 str r1, [r0, #40] ; 0x28
  3011. 8001442: f002 027f and.w r2, r2, #127 ; 0x7f
  3012. 8001446: e7f7 b.n 8001438 <UART_Receive_IT+0x68>
  3013. return HAL_BUSY;
  3014. 8001448: 2002 movs r0, #2
  3015. 800144a: bd10 pop {r4, pc}
  3016. 0800144c <HAL_UART_ErrorCallback>:
  3017. 800144c: 4770 bx lr
  3018. ...
  3019. 08001450 <HAL_UART_IRQHandler>:
  3020. uint32_t isrflags = READ_REG(huart->Instance->SR);
  3021. 8001450: 6803 ldr r3, [r0, #0]
  3022. {
  3023. 8001452: b570 push {r4, r5, r6, lr}
  3024. uint32_t isrflags = READ_REG(huart->Instance->SR);
  3025. 8001454: 681a ldr r2, [r3, #0]
  3026. {
  3027. 8001456: 4604 mov r4, r0
  3028. if(errorflags == RESET)
  3029. 8001458: 0716 lsls r6, r2, #28
  3030. uint32_t cr1its = READ_REG(huart->Instance->CR1);
  3031. 800145a: 68d9 ldr r1, [r3, #12]
  3032. uint32_t cr3its = READ_REG(huart->Instance->CR3);
  3033. 800145c: 695d ldr r5, [r3, #20]
  3034. if(errorflags == RESET)
  3035. 800145e: d107 bne.n 8001470 <HAL_UART_IRQHandler+0x20>
  3036. if(((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
  3037. 8001460: 0696 lsls r6, r2, #26
  3038. 8001462: d55a bpl.n 800151a <HAL_UART_IRQHandler+0xca>
  3039. 8001464: 068d lsls r5, r1, #26
  3040. 8001466: d558 bpl.n 800151a <HAL_UART_IRQHandler+0xca>
  3041. }
  3042. 8001468: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
  3043. UART_Receive_IT(huart);
  3044. 800146c: f7ff bfb0 b.w 80013d0 <UART_Receive_IT>
  3045. if((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
  3046. 8001470: f015 0501 ands.w r5, r5, #1
  3047. 8001474: d102 bne.n 800147c <HAL_UART_IRQHandler+0x2c>
  3048. 8001476: f411 7f90 tst.w r1, #288 ; 0x120
  3049. 800147a: d04e beq.n 800151a <HAL_UART_IRQHandler+0xca>
  3050. if(((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
  3051. 800147c: 07d3 lsls r3, r2, #31
  3052. 800147e: d505 bpl.n 800148c <HAL_UART_IRQHandler+0x3c>
  3053. 8001480: 05ce lsls r6, r1, #23
  3054. huart->ErrorCode |= HAL_UART_ERROR_PE;
  3055. 8001482: bf42 ittt mi
  3056. 8001484: 6be3 ldrmi r3, [r4, #60] ; 0x3c
  3057. 8001486: f043 0301 orrmi.w r3, r3, #1
  3058. 800148a: 63e3 strmi r3, [r4, #60] ; 0x3c
  3059. if(((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  3060. 800148c: 0750 lsls r0, r2, #29
  3061. 800148e: d504 bpl.n 800149a <HAL_UART_IRQHandler+0x4a>
  3062. 8001490: b11d cbz r5, 800149a <HAL_UART_IRQHandler+0x4a>
  3063. huart->ErrorCode |= HAL_UART_ERROR_NE;
  3064. 8001492: 6be3 ldr r3, [r4, #60] ; 0x3c
  3065. 8001494: f043 0302 orr.w r3, r3, #2
  3066. 8001498: 63e3 str r3, [r4, #60] ; 0x3c
  3067. if(((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  3068. 800149a: 0793 lsls r3, r2, #30
  3069. 800149c: d504 bpl.n 80014a8 <HAL_UART_IRQHandler+0x58>
  3070. 800149e: b11d cbz r5, 80014a8 <HAL_UART_IRQHandler+0x58>
  3071. huart->ErrorCode |= HAL_UART_ERROR_FE;
  3072. 80014a0: 6be3 ldr r3, [r4, #60] ; 0x3c
  3073. 80014a2: f043 0304 orr.w r3, r3, #4
  3074. 80014a6: 63e3 str r3, [r4, #60] ; 0x3c
  3075. if(((isrflags & USART_SR_ORE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  3076. 80014a8: 0716 lsls r6, r2, #28
  3077. 80014aa: d504 bpl.n 80014b6 <HAL_UART_IRQHandler+0x66>
  3078. 80014ac: b11d cbz r5, 80014b6 <HAL_UART_IRQHandler+0x66>
  3079. huart->ErrorCode |= HAL_UART_ERROR_ORE;
  3080. 80014ae: 6be3 ldr r3, [r4, #60] ; 0x3c
  3081. 80014b0: f043 0308 orr.w r3, r3, #8
  3082. 80014b4: 63e3 str r3, [r4, #60] ; 0x3c
  3083. if(huart->ErrorCode != HAL_UART_ERROR_NONE)
  3084. 80014b6: 6be3 ldr r3, [r4, #60] ; 0x3c
  3085. 80014b8: 2b00 cmp r3, #0
  3086. 80014ba: d066 beq.n 800158a <HAL_UART_IRQHandler+0x13a>
  3087. if(((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
  3088. 80014bc: 0695 lsls r5, r2, #26
  3089. 80014be: d504 bpl.n 80014ca <HAL_UART_IRQHandler+0x7a>
  3090. 80014c0: 0688 lsls r0, r1, #26
  3091. 80014c2: d502 bpl.n 80014ca <HAL_UART_IRQHandler+0x7a>
  3092. UART_Receive_IT(huart);
  3093. 80014c4: 4620 mov r0, r4
  3094. 80014c6: f7ff ff83 bl 80013d0 <UART_Receive_IT>
  3095. dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  3096. 80014ca: 6823 ldr r3, [r4, #0]
  3097. UART_EndRxTransfer(huart);
  3098. 80014cc: 4620 mov r0, r4
  3099. dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  3100. 80014ce: 695d ldr r5, [r3, #20]
  3101. if(((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest)
  3102. 80014d0: 6be2 ldr r2, [r4, #60] ; 0x3c
  3103. 80014d2: 0711 lsls r1, r2, #28
  3104. 80014d4: d402 bmi.n 80014dc <HAL_UART_IRQHandler+0x8c>
  3105. 80014d6: f015 0540 ands.w r5, r5, #64 ; 0x40
  3106. 80014da: d01a beq.n 8001512 <HAL_UART_IRQHandler+0xc2>
  3107. UART_EndRxTransfer(huart);
  3108. 80014dc: f7ff fd6e bl 8000fbc <UART_EndRxTransfer>
  3109. if(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  3110. 80014e0: 6823 ldr r3, [r4, #0]
  3111. 80014e2: 695a ldr r2, [r3, #20]
  3112. 80014e4: 0652 lsls r2, r2, #25
  3113. 80014e6: d510 bpl.n 800150a <HAL_UART_IRQHandler+0xba>
  3114. CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  3115. 80014e8: 695a ldr r2, [r3, #20]
  3116. if(huart->hdmarx != NULL)
  3117. 80014ea: 6b60 ldr r0, [r4, #52] ; 0x34
  3118. CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  3119. 80014ec: f022 0240 bic.w r2, r2, #64 ; 0x40
  3120. 80014f0: 615a str r2, [r3, #20]
  3121. if(huart->hdmarx != NULL)
  3122. 80014f2: b150 cbz r0, 800150a <HAL_UART_IRQHandler+0xba>
  3123. huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError;
  3124. 80014f4: 4b25 ldr r3, [pc, #148] ; (800158c <HAL_UART_IRQHandler+0x13c>)
  3125. 80014f6: 6343 str r3, [r0, #52] ; 0x34
  3126. if(HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
  3127. 80014f8: f7fe ff52 bl 80003a0 <HAL_DMA_Abort_IT>
  3128. 80014fc: 2800 cmp r0, #0
  3129. 80014fe: d044 beq.n 800158a <HAL_UART_IRQHandler+0x13a>
  3130. huart->hdmarx->XferAbortCallback(huart->hdmarx);
  3131. 8001500: 6b60 ldr r0, [r4, #52] ; 0x34
  3132. }
  3133. 8001502: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
  3134. huart->hdmarx->XferAbortCallback(huart->hdmarx);
  3135. 8001506: 6b43 ldr r3, [r0, #52] ; 0x34
  3136. 8001508: 4718 bx r3
  3137. HAL_UART_ErrorCallback(huart);
  3138. 800150a: 4620 mov r0, r4
  3139. 800150c: f7ff ff9e bl 800144c <HAL_UART_ErrorCallback>
  3140. 8001510: bd70 pop {r4, r5, r6, pc}
  3141. HAL_UART_ErrorCallback(huart);
  3142. 8001512: f7ff ff9b bl 800144c <HAL_UART_ErrorCallback>
  3143. huart->ErrorCode = HAL_UART_ERROR_NONE;
  3144. 8001516: 63e5 str r5, [r4, #60] ; 0x3c
  3145. 8001518: bd70 pop {r4, r5, r6, pc}
  3146. if(((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
  3147. 800151a: 0616 lsls r6, r2, #24
  3148. 800151c: d527 bpl.n 800156e <HAL_UART_IRQHandler+0x11e>
  3149. 800151e: 060d lsls r5, r1, #24
  3150. 8001520: d525 bpl.n 800156e <HAL_UART_IRQHandler+0x11e>
  3151. if(huart->gState == HAL_UART_STATE_BUSY_TX)
  3152. 8001522: f894 2039 ldrb.w r2, [r4, #57] ; 0x39
  3153. 8001526: 2a21 cmp r2, #33 ; 0x21
  3154. 8001528: d12f bne.n 800158a <HAL_UART_IRQHandler+0x13a>
  3155. if(huart->Init.WordLength == UART_WORDLENGTH_9B)
  3156. 800152a: 68a2 ldr r2, [r4, #8]
  3157. 800152c: f5b2 5f80 cmp.w r2, #4096 ; 0x1000
  3158. 8001530: 6a22 ldr r2, [r4, #32]
  3159. 8001532: d117 bne.n 8001564 <HAL_UART_IRQHandler+0x114>
  3160. huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
  3161. 8001534: 8811 ldrh r1, [r2, #0]
  3162. 8001536: f3c1 0108 ubfx r1, r1, #0, #9
  3163. 800153a: 6059 str r1, [r3, #4]
  3164. if(huart->Init.Parity == UART_PARITY_NONE)
  3165. 800153c: 6921 ldr r1, [r4, #16]
  3166. 800153e: b979 cbnz r1, 8001560 <HAL_UART_IRQHandler+0x110>
  3167. huart->pTxBuffPtr += 2U;
  3168. 8001540: 3202 adds r2, #2
  3169. huart->pTxBuffPtr += 1U;
  3170. 8001542: 6222 str r2, [r4, #32]
  3171. if(--huart->TxXferCount == 0U)
  3172. 8001544: 8ce2 ldrh r2, [r4, #38] ; 0x26
  3173. 8001546: 3a01 subs r2, #1
  3174. 8001548: b292 uxth r2, r2
  3175. 800154a: 84e2 strh r2, [r4, #38] ; 0x26
  3176. 800154c: b9ea cbnz r2, 800158a <HAL_UART_IRQHandler+0x13a>
  3177. __HAL_UART_DISABLE_IT(huart, UART_IT_TXE);
  3178. 800154e: 68da ldr r2, [r3, #12]
  3179. 8001550: f022 0280 bic.w r2, r2, #128 ; 0x80
  3180. 8001554: 60da str r2, [r3, #12]
  3181. __HAL_UART_ENABLE_IT(huart, UART_IT_TC);
  3182. 8001556: 68da ldr r2, [r3, #12]
  3183. 8001558: f042 0240 orr.w r2, r2, #64 ; 0x40
  3184. 800155c: 60da str r2, [r3, #12]
  3185. 800155e: bd70 pop {r4, r5, r6, pc}
  3186. huart->pTxBuffPtr += 1U;
  3187. 8001560: 3201 adds r2, #1
  3188. 8001562: e7ee b.n 8001542 <HAL_UART_IRQHandler+0xf2>
  3189. huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF);
  3190. 8001564: 1c51 adds r1, r2, #1
  3191. 8001566: 6221 str r1, [r4, #32]
  3192. 8001568: 7812 ldrb r2, [r2, #0]
  3193. 800156a: 605a str r2, [r3, #4]
  3194. 800156c: e7ea b.n 8001544 <HAL_UART_IRQHandler+0xf4>
  3195. if(((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
  3196. 800156e: 0650 lsls r0, r2, #25
  3197. 8001570: d50b bpl.n 800158a <HAL_UART_IRQHandler+0x13a>
  3198. 8001572: 064a lsls r2, r1, #25
  3199. 8001574: d509 bpl.n 800158a <HAL_UART_IRQHandler+0x13a>
  3200. __HAL_UART_DISABLE_IT(huart, UART_IT_TC);
  3201. 8001576: 68da ldr r2, [r3, #12]
  3202. HAL_UART_TxCpltCallback(huart);
  3203. 8001578: 4620 mov r0, r4
  3204. __HAL_UART_DISABLE_IT(huart, UART_IT_TC);
  3205. 800157a: f022 0240 bic.w r2, r2, #64 ; 0x40
  3206. 800157e: 60da str r2, [r3, #12]
  3207. huart->gState = HAL_UART_STATE_READY;
  3208. 8001580: 2320 movs r3, #32
  3209. 8001582: f884 3039 strb.w r3, [r4, #57] ; 0x39
  3210. HAL_UART_TxCpltCallback(huart);
  3211. 8001586: f7ff ff22 bl 80013ce <HAL_UART_TxCpltCallback>
  3212. 800158a: bd70 pop {r4, r5, r6, pc}
  3213. 800158c: 08001591 .word 0x08001591
  3214. 08001590 <UART_DMAAbortOnError>:
  3215. {
  3216. 8001590: b508 push {r3, lr}
  3217. huart->RxXferCount = 0x00U;
  3218. 8001592: 2300 movs r3, #0
  3219. UART_HandleTypeDef* huart = ( UART_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
  3220. 8001594: 6a40 ldr r0, [r0, #36] ; 0x24
  3221. huart->RxXferCount = 0x00U;
  3222. 8001596: 85c3 strh r3, [r0, #46] ; 0x2e
  3223. huart->TxXferCount = 0x00U;
  3224. 8001598: 84c3 strh r3, [r0, #38] ; 0x26
  3225. HAL_UART_ErrorCallback(huart);
  3226. 800159a: f7ff ff57 bl 800144c <HAL_UART_ErrorCallback>
  3227. 800159e: bd08 pop {r3, pc}
  3228. 080015a0 <FLASH_If_Init>:
  3229. * @brief Unlocks Flash for write access
  3230. * @param None
  3231. * @retval None
  3232. */
  3233. void FLASH_If_Init(void)
  3234. {
  3235. 80015a0: b508 push {r3, lr}
  3236. /* Unlock the Program memory */
  3237. HAL_FLASH_Unlock();
  3238. 80015a2: f7fe ff6d bl 8000480 <HAL_FLASH_Unlock>
  3239. /* Clear all FLASH flags */
  3240. __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR);
  3241. 80015a6: 2234 movs r2, #52 ; 0x34
  3242. 80015a8: 4b02 ldr r3, [pc, #8] ; (80015b4 <FLASH_If_Init+0x14>)
  3243. 80015aa: 60da str r2, [r3, #12]
  3244. /* Unlock the Program memory */
  3245. HAL_FLASH_Lock();
  3246. }
  3247. 80015ac: e8bd 4008 ldmia.w sp!, {r3, lr}
  3248. HAL_FLASH_Lock();
  3249. 80015b0: f7fe bf78 b.w 80004a4 <HAL_FLASH_Lock>
  3250. 80015b4: 40022000 .word 0x40022000
  3251. 080015b8 <HAL_UART_RxCpltCallback>:
  3252. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  3253. {
  3254. if(huart->Instance == USART1)//RGB Comunication
  3255. 80015b8: 6802 ldr r2, [r0, #0]
  3256. 80015ba: 4b0a ldr r3, [pc, #40] ; (80015e4 <HAL_UART_RxCpltCallback+0x2c>)
  3257. 80015bc: 429a cmp r2, r3
  3258. 80015be: d10f bne.n 80015e0 <HAL_UART_RxCpltCallback+0x28>
  3259. {
  3260. ring_buffer[ring_header] = rx3_data[0];
  3261. 80015c0: 4a09 ldr r2, [pc, #36] ; (80015e8 <HAL_UART_RxCpltCallback+0x30>)
  3262. 80015c2: 490a ldr r1, [pc, #40] ; (80015ec <HAL_UART_RxCpltCallback+0x34>)
  3263. 80015c4: 6813 ldr r3, [r2, #0]
  3264. 80015c6: 7808 ldrb r0, [r1, #0]
  3265. 80015c8: 4909 ldr r1, [pc, #36] ; (80015f0 <HAL_UART_RxCpltCallback+0x38>)
  3266. 80015ca: 54c8 strb r0, [r1, r3]
  3267. if(++ring_header>=100){ ring_header = 0; }
  3268. 80015cc: 3301 adds r3, #1
  3269. 80015ce: 2b63 cmp r3, #99 ; 0x63
  3270. 80015d0: bf88 it hi
  3271. 80015d2: 2300 movhi r3, #0
  3272. HAL_UART_Receive_IT(&huart1,&rx3_data[0],1);
  3273. 80015d4: 4905 ldr r1, [pc, #20] ; (80015ec <HAL_UART_RxCpltCallback+0x34>)
  3274. if(++ring_header>=100){ ring_header = 0; }
  3275. 80015d6: 6013 str r3, [r2, #0]
  3276. HAL_UART_Receive_IT(&huart1,&rx3_data[0],1);
  3277. 80015d8: 4806 ldr r0, [pc, #24] ; (80015f4 <HAL_UART_RxCpltCallback+0x3c>)
  3278. 80015da: 2201 movs r2, #1
  3279. 80015dc: f7ff bed0 b.w 8001380 <HAL_UART_Receive_IT>
  3280. 80015e0: 4770 bx lr
  3281. 80015e2: bf00 nop
  3282. 80015e4: 40013800 .word 0x40013800
  3283. 80015e8: 200000b8 .word 0x200000b8
  3284. 80015ec: 200000c0 .word 0x200000c0
  3285. 80015f0: 20000188 .word 0x20000188
  3286. 80015f4: 200000fc .word 0x200000fc
  3287. 080015f8 <HAL_TIM_PeriodElapsedCallback>:
  3288. }
  3289. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  3290. {
  3291. if(htim->Instance == TIM7){
  3292. 80015f8: 6802 ldr r2, [r0, #0]
  3293. 80015fa: 4b08 ldr r3, [pc, #32] ; (800161c <HAL_TIM_PeriodElapsedCallback+0x24>)
  3294. 80015fc: 429a cmp r2, r3
  3295. 80015fe: d10b bne.n 8001618 <HAL_TIM_PeriodElapsedCallback+0x20>
  3296. UartTimerCnt++;
  3297. 8001600: 4a07 ldr r2, [pc, #28] ; (8001620 <HAL_TIM_PeriodElapsedCallback+0x28>)
  3298. 8001602: 6813 ldr r3, [r2, #0]
  3299. 8001604: 3301 adds r3, #1
  3300. 8001606: 6013 str r3, [r2, #0]
  3301. LedTimerCnt++;
  3302. 8001608: 4a06 ldr r2, [pc, #24] ; (8001624 <HAL_TIM_PeriodElapsedCallback+0x2c>)
  3303. 800160a: 6813 ldr r3, [r2, #0]
  3304. 800160c: 3301 adds r3, #1
  3305. 800160e: 6013 str r3, [r2, #0]
  3306. FirmwareTimerCnt++;
  3307. 8001610: 4a05 ldr r2, [pc, #20] ; (8001628 <HAL_TIM_PeriodElapsedCallback+0x30>)
  3308. 8001612: 6813 ldr r3, [r2, #0]
  3309. 8001614: 3301 adds r3, #1
  3310. 8001616: 6013 str r3, [r2, #0]
  3311. 8001618: 4770 bx lr
  3312. 800161a: bf00 nop
  3313. 800161c: 40001400 .word 0x40001400
  3314. 8001620: 200000b0 .word 0x200000b0
  3315. 8001624: 200000a8 .word 0x200000a8
  3316. 8001628: 200000a4 .word 0x200000a4
  3317. 0800162c <Uart1_Data_Send>:
  3318. }
  3319. }
  3320. void Uart1_Data_Send(uint8_t* data,uint8_t size){
  3321. HAL_UART_Transmit(&huart1, data,size, 10);
  3322. 800162c: 460a mov r2, r1
  3323. 800162e: 230a movs r3, #10
  3324. 8001630: 4601 mov r1, r0
  3325. 8001632: 4801 ldr r0, [pc, #4] ; (8001638 <Uart1_Data_Send+0xc>)
  3326. 8001634: f7ff be48 b.w 80012c8 <HAL_UART_Transmit>
  3327. 8001638: 200000fc .word 0x200000fc
  3328. 0800163c <_write>:
  3329. }
  3330. int _write (int file, uint8_t *ptr, uint16_t len)
  3331. {
  3332. 800163c: b510 push {r4, lr}
  3333. 800163e: 4614 mov r4, r2
  3334. HAL_UART_Transmit (&huart1, ptr, len, 10);
  3335. 8001640: 230a movs r3, #10
  3336. 8001642: 4802 ldr r0, [pc, #8] ; (800164c <_write+0x10>)
  3337. 8001644: f7ff fe40 bl 80012c8 <HAL_UART_Transmit>
  3338. return len;
  3339. }
  3340. 8001648: 4620 mov r0, r4
  3341. 800164a: bd10 pop {r4, pc}
  3342. 800164c: 200000fc .word 0x200000fc
  3343. 08001650 <Flash_RGB_Data_Write>:
  3344. #define FLASH_USER_START_ADDR StartAddr /* Start @ of user Flash area */
  3345. #define FLASH_USER_END_ADDR StartAddr + ((uint32_t)0x000FFFF) /* End @ of user Flash area */
  3346. uint32_t Address = StartAddr;
  3347. uint8_t Flash_RGB_Data_Write(uint8_t* data){
  3348. 8001650: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  3349. uint16_t Firmdata = 0;
  3350. uint8_t ret = 0;
  3351. for(uint8_t i = 0; i < data[bluecell_length] - 2; i+=2){
  3352. 8001654: 2400 movs r4, #0
  3353. uint8_t Flash_RGB_Data_Write(uint8_t* data){
  3354. 8001656: 4607 mov r7, r0
  3355. uint8_t ret = 0;
  3356. 8001658: 4626 mov r6, r4
  3357. Firmdata = ((data[(bluecell_length + 1) + i]) & 0x00FF);
  3358. Firmdata += ((data[(bluecell_length + 1) + (i + 1)] << 8) & 0xFF00);
  3359. if(HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD,Address , (uint16_t)Firmdata) != HAL_OK){
  3360. 800165a: 4d10 ldr r5, [pc, #64] ; (800169c <Flash_RGB_Data_Write+0x4c>)
  3361. printf("HAL NOT OK \n");
  3362. 800165c: f8df 8040 ldr.w r8, [pc, #64] ; 80016a0 <Flash_RGB_Data_Write+0x50>
  3363. for(uint8_t i = 0; i < data[bluecell_length] - 2; i+=2){
  3364. 8001660: 78bb ldrb r3, [r7, #2]
  3365. 8001662: 3b02 subs r3, #2
  3366. 8001664: 429c cmp r4, r3
  3367. 8001666: db02 blt.n 800166e <Flash_RGB_Data_Write+0x1e>
  3368. ret = 1;
  3369. }
  3370. Address += 2;
  3371. }
  3372. return ret;
  3373. }
  3374. 8001668: 4630 mov r0, r6
  3375. 800166a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  3376. Firmdata = ((data[(bluecell_length + 1) + i]) & 0x00FF);
  3377. 800166e: 193b adds r3, r7, r4
  3378. 8001670: 78da ldrb r2, [r3, #3]
  3379. Firmdata += ((data[(bluecell_length + 1) + (i + 1)] << 8) & 0xFF00);
  3380. 8001672: 791b ldrb r3, [r3, #4]
  3381. if(HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD,Address , (uint16_t)Firmdata) != HAL_OK){
  3382. 8001674: 6829 ldr r1, [r5, #0]
  3383. Firmdata += ((data[(bluecell_length + 1) + (i + 1)] << 8) & 0xFF00);
  3384. 8001676: eb02 2203 add.w r2, r2, r3, lsl #8
  3385. if(HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD,Address , (uint16_t)Firmdata) != HAL_OK){
  3386. 800167a: b292 uxth r2, r2
  3387. 800167c: 2300 movs r3, #0
  3388. 800167e: 2001 movs r0, #1
  3389. 8001680: f7fe ff44 bl 800050c <HAL_FLASH_Program>
  3390. 8001684: b118 cbz r0, 800168e <Flash_RGB_Data_Write+0x3e>
  3391. printf("HAL NOT OK \n");
  3392. 8001686: 4640 mov r0, r8
  3393. 8001688: f000 fbcc bl 8001e24 <puts>
  3394. ret = 1;
  3395. 800168c: 2601 movs r6, #1
  3396. Address += 2;
  3397. 800168e: 682b ldr r3, [r5, #0]
  3398. for(uint8_t i = 0; i < data[bluecell_length] - 2; i+=2){
  3399. 8001690: 3402 adds r4, #2
  3400. Address += 2;
  3401. 8001692: 3302 adds r3, #2
  3402. 8001694: 602b str r3, [r5, #0]
  3403. for(uint8_t i = 0; i < data[bluecell_length] - 2; i+=2){
  3404. 8001696: b2e4 uxtb r4, r4
  3405. 8001698: e7e2 b.n 8001660 <Flash_RGB_Data_Write+0x10>
  3406. 800169a: bf00 nop
  3407. 800169c: 20000008 .word 0x20000008
  3408. 80016a0: 08002e6c .word 0x08002e6c
  3409. 080016a4 <Flash_write>:
  3410. /*Variable used for Erase procedure*/
  3411. static FLASH_EraseInitTypeDef EraseInitStruct;
  3412. static uint32_t PAGEError = 0;
  3413. uint8_t ret = 0;
  3414. /* Fill EraseInit structure*/
  3415. EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
  3416. 80016a4: 2300 movs r3, #0
  3417. {
  3418. 80016a6: b573 push {r0, r1, r4, r5, r6, lr}
  3419. EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
  3420. 80016a8: 4d16 ldr r5, [pc, #88] ; (8001704 <Flash_write+0x60>)
  3421. EraseInitStruct.PageAddress = FLASH_USER_START_ADDR;
  3422. EraseInitStruct.NbPages = (FLASH_USER_END_ADDR - FLASH_USER_START_ADDR) / FLASH_PAGE_SIZE;
  3423. __HAL_RCC_TIM7_CLK_DISABLE(); // e」�i?↑????▲e:↑e?? ???i」???�?????�
  3424. 80016aa: 4c17 ldr r4, [pc, #92] ; (8001708 <Flash_write+0x64>)
  3425. EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
  3426. 80016ac: 602b str r3, [r5, #0]
  3427. EraseInitStruct.PageAddress = FLASH_USER_START_ADDR;
  3428. 80016ae: 4b17 ldr r3, [pc, #92] ; (800170c <Flash_write+0x68>)
  3429. {
  3430. 80016b0: 4606 mov r6, r0
  3431. EraseInitStruct.PageAddress = FLASH_USER_START_ADDR;
  3432. 80016b2: 60ab str r3, [r5, #8]
  3433. EraseInitStruct.NbPages = (FLASH_USER_END_ADDR - FLASH_USER_START_ADDR) / FLASH_PAGE_SIZE;
  3434. 80016b4: 233f movs r3, #63 ; 0x3f
  3435. 80016b6: 60eb str r3, [r5, #12]
  3436. __HAL_RCC_TIM7_CLK_DISABLE(); // e」�i?↑????▲e:↑e?? ???i」???�?????�
  3437. 80016b8: 69e3 ldr r3, [r4, #28]
  3438. 80016ba: f023 0320 bic.w r3, r3, #32
  3439. 80016be: 61e3 str r3, [r4, #28]
  3440. HAL_FLASH_Unlock(); // lock ??e↑?
  3441. 80016c0: f7fe fede bl 8000480 <HAL_FLASH_Unlock>
  3442. if(flashinit == 0){
  3443. 80016c4: 4b12 ldr r3, [pc, #72] ; (8001710 <Flash_write+0x6c>)
  3444. 80016c6: 781a ldrb r2, [r3, #0]
  3445. 80016c8: b94a cbnz r2, 80016de <Flash_write+0x3a>
  3446. flashinit= 1;
  3447. 80016ca: 2201 movs r2, #1
  3448. //FLASH_PageErase(StartAddr);
  3449. if (HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError) != HAL_OK){
  3450. 80016cc: 4911 ldr r1, [pc, #68] ; (8001714 <Flash_write+0x70>)
  3451. 80016ce: 4628 mov r0, r5
  3452. flashinit= 1;
  3453. 80016d0: 701a strb r2, [r3, #0]
  3454. if (HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError) != HAL_OK){
  3455. 80016d2: f7fe ff85 bl 80005e0 <HAL_FLASHEx_Erase>
  3456. 80016d6: b110 cbz r0, 80016de <Flash_write+0x3a>
  3457. printf("Erase Failed \r\n");
  3458. 80016d8: 480f ldr r0, [pc, #60] ; (8001718 <Flash_write+0x74>)
  3459. 80016da: f000 fba3 bl 8001e24 <puts>
  3460. }
  3461. }
  3462. ret = Flash_RGB_Data_Write(&data[bluecell_stx]);
  3463. 80016de: 4630 mov r0, r6
  3464. 80016e0: f7ff ffb6 bl 8001650 <Flash_RGB_Data_Write>
  3465. 80016e4: 4605 mov r5, r0
  3466. HAL_FLASH_Lock(); // lock ???e,↑e↑‘
  3467. 80016e6: f7fe fedd bl 80004a4 <HAL_FLASH_Lock>
  3468. __HAL_RCC_TIM7_CLK_ENABLE(); // e」�i?↑????▲e:↑e?? ??◇??�??`??�?????�
  3469. return ret;
  3470. }
  3471. 80016ea: 4628 mov r0, r5
  3472. __HAL_RCC_TIM7_CLK_ENABLE(); // e」�i?↑????▲e:↑e?? ??◇??�??`??�?????�
  3473. 80016ec: 69e3 ldr r3, [r4, #28]
  3474. 80016ee: f043 0320 orr.w r3, r3, #32
  3475. 80016f2: 61e3 str r3, [r4, #28]
  3476. 80016f4: 69e3 ldr r3, [r4, #28]
  3477. 80016f6: f003 0320 and.w r3, r3, #32
  3478. 80016fa: 9301 str r3, [sp, #4]
  3479. 80016fc: 9b01 ldr r3, [sp, #4]
  3480. }
  3481. 80016fe: b002 add sp, #8
  3482. 8001700: bd70 pop {r4, r5, r6, pc}
  3483. 8001702: bf00 nop
  3484. 8001704: 20000094 .word 0x20000094
  3485. 8001708: 40021000 .word 0x40021000
  3486. 800170c: 08004000 .word 0x08004000
  3487. 8001710: 200000b4 .word 0x200000b4
  3488. 8001714: 200000ac .word 0x200000ac
  3489. 8001718: 08002e78 .word 0x08002e78
  3490. 0800171c <Flash_InitRead>:
  3491. void Flash_InitRead(void) // ?^‘e↑‘i?:???
  3492. {
  3493. 800171c: b570 push {r4, r5, r6, lr}
  3494. uint32_t Address = 0;
  3495. Address = StartAddr;
  3496. 800171e: 4c06 ldr r4, [pc, #24] ; (8001738 <Flash_InitRead+0x1c>)
  3497. for(uint32_t i = 0; i < 16; i++ ){
  3498. printf("%08x : %02X \n",Address ,*(uint8_t*)Address);
  3499. 8001720: 4e06 ldr r6, [pc, #24] ; (800173c <Flash_InitRead+0x20>)
  3500. for(uint32_t i = 0; i < 16; i++ ){
  3501. 8001722: 4d07 ldr r5, [pc, #28] ; (8001740 <Flash_InitRead+0x24>)
  3502. printf("%08x : %02X \n",Address ,*(uint8_t*)Address);
  3503. 8001724: 7822 ldrb r2, [r4, #0]
  3504. 8001726: 4621 mov r1, r4
  3505. 8001728: 4630 mov r0, r6
  3506. Address++;
  3507. 800172a: 3401 adds r4, #1
  3508. printf("%08x : %02X \n",Address ,*(uint8_t*)Address);
  3509. 800172c: f000 fb06 bl 8001d3c <iprintf>
  3510. for(uint32_t i = 0; i < 16; i++ ){
  3511. 8001730: 42ac cmp r4, r5
  3512. 8001732: d1f7 bne.n 8001724 <Flash_InitRead+0x8>
  3513. }
  3514. }
  3515. 8001734: bd70 pop {r4, r5, r6, pc}
  3516. 8001736: bf00 nop
  3517. 8001738: 08004000 .word 0x08004000
  3518. 800173c: 08002e5e .word 0x08002e5e
  3519. 8001740: 08004010 .word 0x08004010
  3520. 08001744 <Jump_App>:
  3521. typedef void (*fptr)(void);
  3522. fptr jump_to_app;
  3523. uint32_t jump_addr;
  3524. void Jump_App(void){
  3525. 8001744: b5b0 push {r4, r5, r7, lr}
  3526. __HAL_RCC_TIM7_CLK_DISABLE(); // e」�i?↑????▲e:↑e?? ???i」???�?????�
  3527. 8001746: 4a0d ldr r2, [pc, #52] ; (800177c <Jump_App+0x38>)
  3528. void Jump_App(void){
  3529. 8001748: af00 add r7, sp, #0
  3530. __HAL_RCC_TIM7_CLK_DISABLE(); // e」�i?↑????▲e:↑e?? ???i」???�?????�
  3531. 800174a: 69d3 ldr r3, [r2, #28]
  3532. printf("boot loader start\n"); //e� ̄i?↑i」∽ i��e?〕
  3533. 800174c: 480c ldr r0, [pc, #48] ; (8001780 <Jump_App+0x3c>)
  3534. __HAL_RCC_TIM7_CLK_DISABLE(); // e」�i?↑????▲e:↑e?? ???i」???�?????�
  3535. 800174e: f023 0320 bic.w r3, r3, #32
  3536. 8001752: 61d3 str r3, [r2, #28]
  3537. printf("boot loader start\n"); //e� ̄i?↑i」∽ i��e?〕
  3538. 8001754: f000 fb66 bl 8001e24 <puts>
  3539. jump_addr = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);
  3540. 8001758: 4b0a ldr r3, [pc, #40] ; (8001784 <Jump_App+0x40>)
  3541. 800175a: 4a0b ldr r2, [pc, #44] ; (8001788 <Jump_App+0x44>)
  3542. 800175c: 681b ldr r3, [r3, #0]
  3543. jump_to_app = (fptr) jump_addr;
  3544. 800175e: 4c0b ldr r4, [pc, #44] ; (800178c <Jump_App+0x48>)
  3545. /* init user app's sp */
  3546. printf("jump!\n");
  3547. 8001760: 480b ldr r0, [pc, #44] ; (8001790 <Jump_App+0x4c>)
  3548. jump_addr = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);
  3549. 8001762: 6013 str r3, [r2, #0]
  3550. jump_to_app = (fptr) jump_addr;
  3551. 8001764: 6023 str r3, [r4, #0]
  3552. printf("jump!\n");
  3553. 8001766: f000 fb5d bl 8001e24 <puts>
  3554. __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);
  3555. 800176a: 4b0a ldr r3, [pc, #40] ; (8001794 <Jump_App+0x50>)
  3556. 800176c: 681b ldr r3, [r3, #0]
  3557. __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) : "sp");
  3558. 800176e: f383 8808 msr MSP, r3
  3559. jump_to_app();
  3560. 8001772: 6823 ldr r3, [r4, #0]
  3561. }
  3562. 8001774: 46bd mov sp, r7
  3563. 8001776: e8bd 40b0 ldmia.w sp!, {r4, r5, r7, lr}
  3564. jump_to_app();
  3565. 800177a: 4718 bx r3
  3566. 800177c: 40021000 .word 0x40021000
  3567. 8001780: 08002e87 .word 0x08002e87
  3568. 8001784: 08004004 .word 0x08004004
  3569. 8001788: 2000013c .word 0x2000013c
  3570. 800178c: 20000184 .word 0x20000184
  3571. 8001790: 08002e99 .word 0x08002e99
  3572. 8001794: 08004000 .word 0x08004000
  3573. 08001798 <FirmwareUpdateStart>:
  3574. void FirmwareUpdateStart(uint8_t* data){
  3575. 8001798: b573 push {r0, r1, r4, r5, r6, lr}
  3576. 800179a: 4604 mov r4, r0
  3577. uint8_t ret = 0,crccheck = 0;
  3578. uint8_t tempdata[5] = {0xbe,FirmwareUpdataAck,0x02,0,0xbe};
  3579. 800179c: 4b25 ldr r3, [pc, #148] ; (8001834 <FirmwareUpdateStart+0x9c>)
  3580. crccheck = STH30_CheckCrc(&data[bluecell_type],data[bluecell_length],data[data[bluecell_length] + 1]);
  3581. 800179e: 78a1 ldrb r1, [r4, #2]
  3582. uint8_t tempdata[5] = {0xbe,FirmwareUpdataAck,0x02,0,0xbe};
  3583. 80017a0: 6818 ldr r0, [r3, #0]
  3584. 80017a2: 791b ldrb r3, [r3, #4]
  3585. 80017a4: 9000 str r0, [sp, #0]
  3586. 80017a6: f88d 3004 strb.w r3, [sp, #4]
  3587. crccheck = STH30_CheckCrc(&data[bluecell_type],data[bluecell_length],data[data[bluecell_length] + 1]);
  3588. 80017aa: 1863 adds r3, r4, r1
  3589. 80017ac: 785a ldrb r2, [r3, #1]
  3590. 80017ae: 1c60 adds r0, r4, #1
  3591. 80017b0: f000 f9a5 bl 8001afe <STH30_CheckCrc>
  3592. if(crccheck == NO_ERROR){
  3593. 80017b4: 2801 cmp r0, #1
  3594. 80017b6: d00b beq.n 80017d0 <FirmwareUpdateStart+0x38>
  3595. 80017b8: 2300 movs r3, #0
  3596. ret = Flash_write(&data[0]);
  3597. if(ret == 1)
  3598. tempdata[bluecell_type] = FirmwareUpdataNak;
  3599. }else{
  3600. for(uint8_t i = 0; i < data[bluecell_length] + 3; i++)
  3601. printf("%02x ",data[i]);
  3602. 80017ba: 4e1f ldr r6, [pc, #124] ; (8001838 <FirmwareUpdateStart+0xa0>)
  3603. for(uint8_t i = 0; i < data[bluecell_length] + 3; i++)
  3604. 80017bc: 78a2 ldrb r2, [r4, #2]
  3605. 80017be: 1c5d adds r5, r3, #1
  3606. 80017c0: 3202 adds r2, #2
  3607. 80017c2: b2db uxtb r3, r3
  3608. 80017c4: 429a cmp r2, r3
  3609. 80017c6: da2f bge.n 8001828 <FirmwareUpdateStart+0x90>
  3610. printf("Check Sum error \n");
  3611. 80017c8: 481c ldr r0, [pc, #112] ; (800183c <FirmwareUpdateStart+0xa4>)
  3612. 80017ca: f000 fb2b bl 8001e24 <puts>
  3613. 80017ce: e00c b.n 80017ea <FirmwareUpdateStart+0x52>
  3614. tempdata[bluecell_type] = FirmwareUpdataAck;
  3615. 80017d0: 2311 movs r3, #17
  3616. 80017d2: f88d 3001 strb.w r3, [sp, #1]
  3617. if(data[bluecell_type] == 0xDD || data[bluecell_type] == 0xEE)//Start Firmware byte
  3618. 80017d6: 7863 ldrb r3, [r4, #1]
  3619. 80017d8: 2bdd cmp r3, #221 ; 0xdd
  3620. 80017da: d001 beq.n 80017e0 <FirmwareUpdateStart+0x48>
  3621. 80017dc: 2bee cmp r3, #238 ; 0xee
  3622. 80017de: d107 bne.n 80017f0 <FirmwareUpdateStart+0x58>
  3623. ret = Flash_write(&data[0]);
  3624. 80017e0: 4620 mov r0, r4
  3625. 80017e2: f7ff ff5f bl 80016a4 <Flash_write>
  3626. if(ret == 1)
  3627. 80017e6: 2801 cmp r0, #1
  3628. 80017e8: d102 bne.n 80017f0 <FirmwareUpdateStart+0x58>
  3629. tempdata[bluecell_type] = FirmwareUpdataNak;
  3630. 80017ea: 2322 movs r3, #34 ; 0x22
  3631. 80017ec: f88d 3001 strb.w r3, [sp, #1]
  3632. }
  3633. tempdata[bluecell_crc] = STH30_CreateCrc(&tempdata[bluecell_type],tempdata[bluecell_length]);
  3634. 80017f0: f89d 1002 ldrb.w r1, [sp, #2]
  3635. 80017f4: f10d 0001 add.w r0, sp, #1
  3636. 80017f8: f000 f966 bl 8001ac8 <STH30_CreateCrc>
  3637. if(data[bluecell_type] != 0xEE && data[bluecell_type] != RGB_Reset){
  3638. 80017fc: 7863 ldrb r3, [r4, #1]
  3639. tempdata[bluecell_crc] = STH30_CreateCrc(&tempdata[bluecell_type],tempdata[bluecell_length]);
  3640. 80017fe: f88d 0003 strb.w r0, [sp, #3]
  3641. if(data[bluecell_type] != 0xEE && data[bluecell_type] != RGB_Reset){
  3642. 8001802: 2bee cmp r3, #238 ; 0xee
  3643. 8001804: d008 beq.n 8001818 <FirmwareUpdateStart+0x80>
  3644. 8001806: 2b0a cmp r3, #10
  3645. 8001808: d006 beq.n 8001818 <FirmwareUpdateStart+0x80>
  3646. Uart1_Data_Send(&tempdata[bluecell_stx],tempdata[bluecell_length] + 3);
  3647. 800180a: f89d 1002 ldrb.w r1, [sp, #2]
  3648. 800180e: 4668 mov r0, sp
  3649. 8001810: 3103 adds r1, #3
  3650. 8001812: b2c9 uxtb r1, r1
  3651. 8001814: f7ff ff0a bl 800162c <Uart1_Data_Send>
  3652. }
  3653. if(data[bluecell_type] == 0xEE)
  3654. 8001818: 7863 ldrb r3, [r4, #1]
  3655. 800181a: 2bee cmp r3, #238 ; 0xee
  3656. 800181c: d102 bne.n 8001824 <FirmwareUpdateStart+0x8c>
  3657. printf("update Complete \n");
  3658. 800181e: 4808 ldr r0, [pc, #32] ; (8001840 <FirmwareUpdateStart+0xa8>)
  3659. 8001820: f000 fb00 bl 8001e24 <puts>
  3660. }
  3661. 8001824: b002 add sp, #8
  3662. 8001826: bd70 pop {r4, r5, r6, pc}
  3663. printf("%02x ",data[i]);
  3664. 8001828: 5ce1 ldrb r1, [r4, r3]
  3665. 800182a: 4630 mov r0, r6
  3666. 800182c: f000 fa86 bl 8001d3c <iprintf>
  3667. 8001830: 462b mov r3, r5
  3668. 8001832: e7c3 b.n 80017bc <FirmwareUpdateStart+0x24>
  3669. 8001834: 08002e2c .word 0x08002e2c
  3670. 8001838: 08002e36 .word 0x08002e36
  3671. 800183c: 08002e3c .word 0x08002e3c
  3672. 8001840: 08002e4d .word 0x08002e4d
  3673. 08001844 <SystemClock_Config>:
  3674. /**
  3675. * @brief System Clock Configuration
  3676. * @retval None
  3677. */
  3678. void SystemClock_Config(void)
  3679. {
  3680. 8001844: b510 push {r4, lr}
  3681. 8001846: b090 sub sp, #64 ; 0x40
  3682. RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  3683. 8001848: 2228 movs r2, #40 ; 0x28
  3684. 800184a: 2100 movs r1, #0
  3685. 800184c: a806 add r0, sp, #24
  3686. 800184e: f000 fa6d bl 8001d2c <memset>
  3687. RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  3688. 8001852: 2214 movs r2, #20
  3689. 8001854: 2100 movs r1, #0
  3690. 8001856: a801 add r0, sp, #4
  3691. 8001858: f000 fa68 bl 8001d2c <memset>
  3692. /**Initializes the CPU, AHB and APB busses clocks
  3693. */
  3694. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  3695. RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  3696. 800185c: 2301 movs r3, #1
  3697. 800185e: 930a str r3, [sp, #40] ; 0x28
  3698. RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  3699. 8001860: 2310 movs r3, #16
  3700. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  3701. 8001862: 2402 movs r4, #2
  3702. RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  3703. 8001864: 930b str r3, [sp, #44] ; 0x2c
  3704. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  3705. RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
  3706. RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;
  3707. 8001866: f44f 2300 mov.w r3, #524288 ; 0x80000
  3708. if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  3709. 800186a: a806 add r0, sp, #24
  3710. RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;
  3711. 800186c: 930f str r3, [sp, #60] ; 0x3c
  3712. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  3713. 800186e: 9406 str r4, [sp, #24]
  3714. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  3715. 8001870: 940d str r4, [sp, #52] ; 0x34
  3716. if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  3717. 8001872: f7fe ffed bl 8000850 <HAL_RCC_OscConfig>
  3718. {
  3719. Error_Handler();
  3720. }
  3721. /**Initializes the CPU, AHB and APB busses clocks
  3722. */
  3723. RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  3724. 8001876: 230f movs r3, #15
  3725. |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  3726. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  3727. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  3728. 8001878: 2100 movs r1, #0
  3729. RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  3730. 800187a: 9301 str r3, [sp, #4]
  3731. RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  3732. 800187c: f44f 6380 mov.w r3, #1024 ; 0x400
  3733. RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  3734. if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  3735. 8001880: a801 add r0, sp, #4
  3736. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  3737. 8001882: 9402 str r4, [sp, #8]
  3738. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  3739. 8001884: 9103 str r1, [sp, #12]
  3740. RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  3741. 8001886: 9304 str r3, [sp, #16]
  3742. RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  3743. 8001888: 9105 str r1, [sp, #20]
  3744. if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  3745. 800188a: f7ff f9b1 bl 8000bf0 <HAL_RCC_ClockConfig>
  3746. {
  3747. Error_Handler();
  3748. }
  3749. }
  3750. 800188e: b010 add sp, #64 ; 0x40
  3751. 8001890: bd10 pop {r4, pc}
  3752. ...
  3753. 08001894 <main>:
  3754. {
  3755. 8001894: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
  3756. 8001898: b0c8 sub sp, #288 ; 0x120
  3757. uint8_t data[255] = {0,};
  3758. 800189a: af08 add r7, sp, #32
  3759. 800189c: 22ff movs r2, #255 ; 0xff
  3760. 800189e: 2100 movs r1, #0
  3761. 80018a0: 4638 mov r0, r7
  3762. 80018a2: f000 fa43 bl 8001d2c <memset>
  3763. uint8_t bootdata[5] = {0xbe,RGB_BootStart,0x02,0,0xeb};
  3764. 80018a6: 4b73 ldr r3, [pc, #460] ; (8001a74 <main+0x1e0>)
  3765. HAL_GPIO_WritePin(Boot_LD_GPIO_Port, Boot_LD_Pin, GPIO_PIN_RESET);
  3766. /*Configure GPIO pin : Boot_LD_Pin */
  3767. GPIO_InitStruct.Pin = Boot_LD_Pin;
  3768. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3769. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3770. 80018a8: 2400 movs r4, #0
  3771. uint8_t bootdata[5] = {0xbe,RGB_BootStart,0x02,0,0xeb};
  3772. 80018aa: 6818 ldr r0, [r3, #0]
  3773. 80018ac: 791b ldrb r3, [r3, #4]
  3774. 80018ae: 9002 str r0, [sp, #8]
  3775. 80018b0: f88d 300c strb.w r3, [sp, #12]
  3776. HAL_Init();
  3777. 80018b4: f7fe fcdc bl 8000270 <HAL_Init>
  3778. SystemClock_Config();
  3779. 80018b8: f7ff ffc4 bl 8001844 <SystemClock_Config>
  3780. GPIO_InitTypeDef GPIO_InitStruct = {0};
  3781. 80018bc: 2210 movs r2, #16
  3782. 80018be: 2100 movs r1, #0
  3783. 80018c0: eb0d 0002 add.w r0, sp, r2
  3784. 80018c4: f000 fa32 bl 8001d2c <memset>
  3785. __HAL_RCC_GPIOC_CLK_ENABLE();
  3786. 80018c8: 4b6b ldr r3, [pc, #428] ; (8001a78 <main+0x1e4>)
  3787. HAL_GPIO_WritePin(Boot_LD_GPIO_Port, Boot_LD_Pin, GPIO_PIN_RESET);
  3788. 80018ca: f44f 4100 mov.w r1, #32768 ; 0x8000
  3789. __HAL_RCC_GPIOC_CLK_ENABLE();
  3790. 80018ce: 699a ldr r2, [r3, #24]
  3791. HAL_GPIO_WritePin(Boot_LD_GPIO_Port, Boot_LD_Pin, GPIO_PIN_RESET);
  3792. 80018d0: 486a ldr r0, [pc, #424] ; (8001a7c <main+0x1e8>)
  3793. __HAL_RCC_GPIOC_CLK_ENABLE();
  3794. 80018d2: f042 0210 orr.w r2, r2, #16
  3795. 80018d6: 619a str r2, [r3, #24]
  3796. 80018d8: 699a ldr r2, [r3, #24]
  3797. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3798. 80018da: f04f 0801 mov.w r8, #1
  3799. __HAL_RCC_GPIOC_CLK_ENABLE();
  3800. 80018de: f002 0210 and.w r2, r2, #16
  3801. 80018e2: 9200 str r2, [sp, #0]
  3802. 80018e4: 9a00 ldr r2, [sp, #0]
  3803. __HAL_RCC_GPIOA_CLK_ENABLE();
  3804. 80018e6: 699a ldr r2, [r3, #24]
  3805. huart1.Instance = USART1;
  3806. 80018e8: 4d65 ldr r5, [pc, #404] ; (8001a80 <main+0x1ec>)
  3807. __HAL_RCC_GPIOA_CLK_ENABLE();
  3808. 80018ea: f042 0204 orr.w r2, r2, #4
  3809. 80018ee: 619a str r2, [r3, #24]
  3810. 80018f0: 699b ldr r3, [r3, #24]
  3811. HAL_GPIO_WritePin(Boot_LD_GPIO_Port, Boot_LD_Pin, GPIO_PIN_RESET);
  3812. 80018f2: 2200 movs r2, #0
  3813. __HAL_RCC_GPIOA_CLK_ENABLE();
  3814. 80018f4: f003 0304 and.w r3, r3, #4
  3815. 80018f8: 9301 str r3, [sp, #4]
  3816. 80018fa: 9b01 ldr r3, [sp, #4]
  3817. HAL_GPIO_WritePin(Boot_LD_GPIO_Port, Boot_LD_Pin, GPIO_PIN_RESET);
  3818. 80018fc: f7fe ff9e bl 800083c <HAL_GPIO_WritePin>
  3819. GPIO_InitStruct.Pin = Boot_LD_Pin;
  3820. 8001900: f44f 4300 mov.w r3, #32768 ; 0x8000
  3821. 8001904: 9304 str r3, [sp, #16]
  3822. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3823. 8001906: 2302 movs r3, #2
  3824. HAL_GPIO_Init(Boot_LD_GPIO_Port, &GPIO_InitStruct);
  3825. 8001908: a904 add r1, sp, #16
  3826. 800190a: 485c ldr r0, [pc, #368] ; (8001a7c <main+0x1e8>)
  3827. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  3828. 800190c: f8cd 8014 str.w r8, [sp, #20]
  3829. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  3830. 8001910: 9307 str r3, [sp, #28]
  3831. GPIO_InitStruct.Pull = GPIO_NOPULL;
  3832. 8001912: 9406 str r4, [sp, #24]
  3833. HAL_GPIO_Init(Boot_LD_GPIO_Port, &GPIO_InitStruct);
  3834. 8001914: f7fe feb2 bl 800067c <HAL_GPIO_Init>
  3835. huart1.Init.BaudRate = 115200;
  3836. 8001918: f44f 33e1 mov.w r3, #115200 ; 0x1c200
  3837. 800191c: 4a59 ldr r2, [pc, #356] ; (8001a84 <main+0x1f0>)
  3838. if (HAL_UART_Init(&huart1) != HAL_OK)
  3839. 800191e: 4628 mov r0, r5
  3840. huart1.Init.BaudRate = 115200;
  3841. 8001920: e885 000c stmia.w r5, {r2, r3}
  3842. huart1.Init.Mode = UART_MODE_TX_RX;
  3843. 8001924: 230c movs r3, #12
  3844. huart1.Init.WordLength = UART_WORDLENGTH_8B;
  3845. 8001926: 60ac str r4, [r5, #8]
  3846. huart1.Init.Mode = UART_MODE_TX_RX;
  3847. 8001928: 616b str r3, [r5, #20]
  3848. huart1.Init.StopBits = UART_STOPBITS_1;
  3849. 800192a: 60ec str r4, [r5, #12]
  3850. huart1.Init.Parity = UART_PARITY_NONE;
  3851. 800192c: 612c str r4, [r5, #16]
  3852. huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  3853. 800192e: 61ac str r4, [r5, #24]
  3854. huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  3855. 8001930: 61ec str r4, [r5, #28]
  3856. if (HAL_UART_Init(&huart1) != HAL_OK)
  3857. 8001932: f7ff fc9b bl 800126c <HAL_UART_Init>
  3858. htim7.Init.Prescaler = 1600-1;
  3859. 8001936: f240 633f movw r3, #1599 ; 0x63f
  3860. htim7.Instance = TIM7;
  3861. 800193a: 4e53 ldr r6, [pc, #332] ; (8001a88 <main+0x1f4>)
  3862. htim7.Init.Prescaler = 1600-1;
  3863. 800193c: 4953 ldr r1, [pc, #332] ; (8001a8c <main+0x1f8>)
  3864. if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
  3865. 800193e: 4630 mov r0, r6
  3866. htim7.Init.Prescaler = 1600-1;
  3867. 8001940: e886 000a stmia.w r6, {r1, r3}
  3868. htim7.Init.Period = 10-1;
  3869. 8001944: 2309 movs r3, #9
  3870. htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
  3871. 8001946: 60b4 str r4, [r6, #8]
  3872. htim7.Init.Period = 10-1;
  3873. 8001948: 60f3 str r3, [r6, #12]
  3874. htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  3875. 800194a: 61b4 str r4, [r6, #24]
  3876. TIM_MasterConfigTypeDef sMasterConfig = {0};
  3877. 800194c: 9404 str r4, [sp, #16]
  3878. 800194e: 9405 str r4, [sp, #20]
  3879. if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
  3880. 8001950: f7ff faf6 bl 8000f40 <HAL_TIM_Base_Init>
  3881. if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
  3882. 8001954: a904 add r1, sp, #16
  3883. 8001956: 4630 mov r0, r6
  3884. sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  3885. 8001958: 9404 str r4, [sp, #16]
  3886. sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  3887. 800195a: 9405 str r4, [sp, #20]
  3888. if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
  3889. 800195c: f7ff fb0a bl 8000f74 <HAL_TIMEx_MasterConfigSynchronization>
  3890. HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
  3891. 8001960: 4622 mov r2, r4
  3892. 8001962: 4621 mov r1, r4
  3893. 8001964: 2025 movs r0, #37 ; 0x25
  3894. 8001966: f7fe fcc5 bl 80002f4 <HAL_NVIC_SetPriority>
  3895. HAL_NVIC_EnableIRQ(USART1_IRQn);
  3896. 800196a: 2025 movs r0, #37 ; 0x25
  3897. 800196c: f7fe fcf6 bl 800035c <HAL_NVIC_EnableIRQ>
  3898. HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0);
  3899. 8001970: 4622 mov r2, r4
  3900. 8001972: 4621 mov r1, r4
  3901. 8001974: 2037 movs r0, #55 ; 0x37
  3902. 8001976: f7fe fcbd bl 80002f4 <HAL_NVIC_SetPriority>
  3903. HAL_NVIC_EnableIRQ(TIM7_IRQn);
  3904. 800197a: 2037 movs r0, #55 ; 0x37
  3905. 800197c: f7fe fcee bl 800035c <HAL_NVIC_EnableIRQ>
  3906. HAL_TIM_Base_Start_IT(&htim7);
  3907. 8001980: 4630 mov r0, r6
  3908. 8001982: f7ff f9d9 bl 8000d38 <HAL_TIM_Base_Start_IT>
  3909. HAL_UART_Receive_IT(&huart1, &rx3_data[0],1);
  3910. 8001986: 4642 mov r2, r8
  3911. 8001988: 4941 ldr r1, [pc, #260] ; (8001a90 <main+0x1fc>)
  3912. 800198a: 4628 mov r0, r5
  3913. 800198c: f7ff fcf8 bl 8001380 <HAL_UART_Receive_IT>
  3914. setbuf(stdout, NULL); // \n ?i��i��?i��i��?i��i��, printf i�???????i��i��?i��i��i�?????? ?i��i��?i��i��?i��i��
  3915. 8001990: 4b40 ldr r3, [pc, #256] ; (8001a94 <main+0x200>)
  3916. 8001992: 4621 mov r1, r4
  3917. 8001994: 681b ldr r3, [r3, #0]
  3918. if(FirmwareTimerCnt > 3000){
  3919. 8001996: 4e40 ldr r6, [pc, #256] ; (8001a98 <main+0x204>)
  3920. setbuf(stdout, NULL); // \n ?i��i��?i��i��?i��i��, printf i�???????i��i��?i��i��i�?????? ?i��i��?i��i��?i��i��
  3921. 8001998: 6898 ldr r0, [r3, #8]
  3922. 800199a: f000 fa4b bl 8001e34 <setbuf>
  3923. printf("****************************************\r\n");
  3924. 800199e: 483f ldr r0, [pc, #252] ; (8001a9c <main+0x208>)
  3925. 80019a0: f000 fa40 bl 8001e24 <puts>
  3926. printf("RGB Project\r\n");
  3927. 80019a4: 483e ldr r0, [pc, #248] ; (8001aa0 <main+0x20c>)
  3928. 80019a6: f000 fa3d bl 8001e24 <puts>
  3929. printf("Build at %s %s\r\n", __DATE__, __TIME__);
  3930. 80019aa: 4a3e ldr r2, [pc, #248] ; (8001aa4 <main+0x210>)
  3931. 80019ac: 493e ldr r1, [pc, #248] ; (8001aa8 <main+0x214>)
  3932. 80019ae: 483f ldr r0, [pc, #252] ; (8001aac <main+0x218>)
  3933. 80019b0: f000 f9c4 bl 8001d3c <iprintf>
  3934. printf("Copyright (c) 2019. BLUECELL\r\n");
  3935. 80019b4: 483e ldr r0, [pc, #248] ; (8001ab0 <main+0x21c>)
  3936. 80019b6: f000 fa35 bl 8001e24 <puts>
  3937. printf("****************************************\r\n");
  3938. 80019ba: 4838 ldr r0, [pc, #224] ; (8001a9c <main+0x208>)
  3939. 80019bc: f000 fa32 bl 8001e24 <puts>
  3940. FLASH_If_Init();
  3941. 80019c0: f7ff fdee bl 80015a0 <FLASH_If_Init>
  3942. Flash_InitRead();
  3943. 80019c4: f7ff feaa bl 800171c <Flash_InitRead>
  3944. bootdata[bluecell_crc] = STH30_CreateCrc(&bootdata[bluecell_type],bootdata[bluecell_length]);
  3945. 80019c8: f89d 100a ldrb.w r1, [sp, #10]
  3946. 80019cc: f10d 0009 add.w r0, sp, #9
  3947. 80019d0: f000 f87a bl 8001ac8 <STH30_CreateCrc>
  3948. 80019d4: f88d 000b strb.w r0, [sp, #11]
  3949. HAL_Delay(100);
  3950. 80019d8: 2064 movs r0, #100 ; 0x64
  3951. 80019da: f7fe fc67 bl 80002ac <HAL_Delay>
  3952. Uart1_Data_Send(&bootdata[bluecell_stx],bootdata[bluecell_length] + 3);
  3953. 80019de: f89d 100a ldrb.w r1, [sp, #10]
  3954. 80019e2: a802 add r0, sp, #8
  3955. 80019e4: 3103 adds r1, #3
  3956. 80019e6: b2c9 uxtb r1, r1
  3957. 80019e8: f7ff fe20 bl 800162c <Uart1_Data_Send>
  3958. uint8_t cnt = 0;
  3959. 80019ec: 4625 mov r5, r4
  3960. 80019ee: 46b1 mov r9, r6
  3961. HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_15);
  3962. 80019f0: f8df 8088 ldr.w r8, [pc, #136] ; 8001a7c <main+0x1e8>
  3963. if(FirmwareTimerCnt > 3000){
  3964. 80019f4: f640 33b8 movw r3, #3000 ; 0xbb8
  3965. 80019f8: 6832 ldr r2, [r6, #0]
  3966. 80019fa: 429a cmp r2, r3
  3967. 80019fc: d901 bls.n 8001a02 <main+0x16e>
  3968. Jump_App();
  3969. 80019fe: f7ff fea1 bl 8001744 <Jump_App>
  3970. if(ring_tail != ring_header){ // <-------
  3971. 8001a02: 4a2c ldr r2, [pc, #176] ; (8001ab4 <main+0x220>)
  3972. 8001a04: 4b2c ldr r3, [pc, #176] ; (8001ab8 <main+0x224>)
  3973. 8001a06: 6811 ldr r1, [r2, #0]
  3974. 8001a08: 681b ldr r3, [r3, #0]
  3975. 8001a0a: 4299 cmp r1, r3
  3976. 8001a0c: d01e beq.n 8001a4c <main+0x1b8>
  3977. data[cnt++] = ring_buffer[ring_tail++];
  3978. 8001a0e: 4c2b ldr r4, [pc, #172] ; (8001abc <main+0x228>)
  3979. 8001a10: 1c48 adds r0, r1, #1
  3980. 8001a12: 5c61 ldrb r1, [r4, r1]
  3981. 8001a14: 1c6b adds r3, r5, #1
  3982. 8001a16: 5579 strb r1, [r7, r5]
  3983. 8001a18: 2100 movs r1, #0
  3984. 8001a1a: b2db uxtb r3, r3
  3985. 8001a1c: 461d mov r5, r3
  3986. if(ring_tail >= 100){ ring_tail = 0; }
  3987. 8001a1e: 2863 cmp r0, #99 ; 0x63
  3988. data[cnt++] = ring_buffer[ring_tail++];
  3989. 8001a20: 6010 str r0, [r2, #0]
  3990. if(ring_tail >= 100){ ring_tail = 0; }
  3991. 8001a22: bf88 it hi
  3992. 8001a24: 6011 strhi r1, [r2, #0]
  3993. UartTimerCnt = 0;
  3994. 8001a26: 4a26 ldr r2, [pc, #152] ; (8001ac0 <main+0x22c>)
  3995. 8001a28: 6011 str r1, [r2, #0]
  3996. if(uartrecv == 1 && UartTimerCnt > 100){
  3997. 8001a2a: 4b25 ldr r3, [pc, #148] ; (8001ac0 <main+0x22c>)
  3998. 8001a2c: 681b ldr r3, [r3, #0]
  3999. 8001a2e: 2b64 cmp r3, #100 ; 0x64
  4000. 8001a30: d91e bls.n 8001a70 <main+0x1dc>
  4001. FirmwareTimerCnt = 0;
  4002. 8001a32: 2500 movs r5, #0
  4003. FirmwareUpdateStart(&data[0]);
  4004. 8001a34: 4638 mov r0, r7
  4005. 8001a36: f7ff feaf bl 8001798 <FirmwareUpdateStart>
  4006. memset(&data[0],0,100);
  4007. 8001a3a: 2264 movs r2, #100 ; 0x64
  4008. 8001a3c: 2100 movs r1, #0
  4009. 8001a3e: 4638 mov r0, r7
  4010. 8001a40: f000 f974 bl 8001d2c <memset>
  4011. cnt = 0;
  4012. 8001a44: 462c mov r4, r5
  4013. FirmwareTimerCnt = 0;
  4014. 8001a46: f8c9 5000 str.w r5, [r9]
  4015. 8001a4a: e001 b.n 8001a50 <main+0x1bc>
  4016. if(uartrecv == 1 && UartTimerCnt > 100){
  4017. 8001a4c: 2c00 cmp r4, #0
  4018. 8001a4e: d1ec bne.n 8001a2a <main+0x196>
  4019. if(LedTimerCnt > 500){
  4020. 8001a50: f8df a070 ldr.w sl, [pc, #112] ; 8001ac4 <main+0x230>
  4021. 8001a54: f8da 3000 ldr.w r3, [sl]
  4022. 8001a58: f5b3 7ffa cmp.w r3, #500 ; 0x1f4
  4023. 8001a5c: d9ca bls.n 80019f4 <main+0x160>
  4024. HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_15);
  4025. 8001a5e: f44f 4100 mov.w r1, #32768 ; 0x8000
  4026. 8001a62: 4640 mov r0, r8
  4027. 8001a64: f7fe feef bl 8000846 <HAL_GPIO_TogglePin>
  4028. LedTimerCnt = 0;
  4029. 8001a68: 2300 movs r3, #0
  4030. 8001a6a: f8ca 3000 str.w r3, [sl]
  4031. 8001a6e: e7c1 b.n 80019f4 <main+0x160>
  4032. 8001a70: 2401 movs r4, #1
  4033. 8001a72: e7ed b.n 8001a50 <main+0x1bc>
  4034. 8001a74: 08002e31 .word 0x08002e31
  4035. 8001a78: 40021000 .word 0x40021000
  4036. 8001a7c: 40011000 .word 0x40011000
  4037. 8001a80: 200000fc .word 0x200000fc
  4038. 8001a84: 40013800 .word 0x40013800
  4039. 8001a88: 20000144 .word 0x20000144
  4040. 8001a8c: 40001400 .word 0x40001400
  4041. 8001a90: 200000c0 .word 0x200000c0
  4042. 8001a94: 20000010 .word 0x20000010
  4043. 8001a98: 200000a4 .word 0x200000a4
  4044. 8001a9c: 08002e9f .word 0x08002e9f
  4045. 8001aa0: 08002ec9 .word 0x08002ec9
  4046. 8001aa4: 08002ed6 .word 0x08002ed6
  4047. 8001aa8: 08002edf .word 0x08002edf
  4048. 8001aac: 08002eeb .word 0x08002eeb
  4049. 8001ab0: 08002efc .word 0x08002efc
  4050. 8001ab4: 200000bc .word 0x200000bc
  4051. 8001ab8: 200000b8 .word 0x200000b8
  4052. 8001abc: 20000188 .word 0x20000188
  4053. 8001ac0: 200000b0 .word 0x200000b0
  4054. 8001ac4: 200000a8 .word 0x200000a8
  4055. 08001ac8 <STH30_CreateCrc>:
  4056. 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
  4057. 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
  4058. };
  4059. uint8_t STH30_CreateCrc(uint8_t *data, uint8_t nbrOfBytes)
  4060. {
  4061. 8001ac8: b510 push {r4, lr}
  4062. uint8_t bit; // bit mask
  4063. uint8_t crc = 0xFF; // calculated checksum
  4064. 8001aca: 23ff movs r3, #255 ; 0xff
  4065. uint8_t byteCtr; // byte counter
  4066. // calculates 8-Bit checksum with given polynomial
  4067. for(byteCtr = 0; byteCtr < nbrOfBytes; byteCtr++)
  4068. 8001acc: 4604 mov r4, r0
  4069. 8001ace: 1a22 subs r2, r4, r0
  4070. 8001ad0: b2d2 uxtb r2, r2
  4071. 8001ad2: 4291 cmp r1, r2
  4072. 8001ad4: d801 bhi.n 8001ada <STH30_CreateCrc+0x12>
  4073. if(crc & 0x80) crc = (crc << 1) ^ POLYNOMIAL;
  4074. else crc = (crc << 1);
  4075. }
  4076. }
  4077. return crc;
  4078. }
  4079. 8001ad6: 4618 mov r0, r3
  4080. 8001ad8: bd10 pop {r4, pc}
  4081. crc ^= (data[byteCtr]);
  4082. 8001ada: f814 2b01 ldrb.w r2, [r4], #1
  4083. 8001ade: 4053 eors r3, r2
  4084. 8001ae0: 2208 movs r2, #8
  4085. if(crc & 0x80) crc = (crc << 1) ^ POLYNOMIAL;
  4086. 8001ae2: f013 0f80 tst.w r3, #128 ; 0x80
  4087. 8001ae6: f102 32ff add.w r2, r2, #4294967295
  4088. 8001aea: ea4f 0343 mov.w r3, r3, lsl #1
  4089. 8001aee: bf18 it ne
  4090. 8001af0: f083 0331 eorne.w r3, r3, #49 ; 0x31
  4091. for(bit = 8; bit > 0; --bit)
  4092. 8001af4: f012 02ff ands.w r2, r2, #255 ; 0xff
  4093. else crc = (crc << 1);
  4094. 8001af8: b2db uxtb r3, r3
  4095. for(bit = 8; bit > 0; --bit)
  4096. 8001afa: d1f2 bne.n 8001ae2 <STH30_CreateCrc+0x1a>
  4097. 8001afc: e7e7 b.n 8001ace <STH30_CreateCrc+0x6>
  4098. 08001afe <STH30_CheckCrc>:
  4099. etError STH30_CheckCrc(uint8_t *data, uint8_t nbrOfBytes, uint8_t checksum)
  4100. {
  4101. 8001afe: b530 push {r4, r5, lr}
  4102. uint8_t bit; // bit mask
  4103. uint8_t crc = 0xFF; // calculated checksum
  4104. 8001b00: 23ff movs r3, #255 ; 0xff
  4105. uint8_t byteCtr; // byte counter
  4106. // calculates 8-Bit checksum with given polynomial
  4107. for(byteCtr = 0; byteCtr < nbrOfBytes; byteCtr++)
  4108. 8001b02: 4605 mov r5, r0
  4109. 8001b04: 1a2c subs r4, r5, r0
  4110. 8001b06: b2e4 uxtb r4, r4
  4111. 8001b08: 42a1 cmp r1, r4
  4112. 8001b0a: d803 bhi.n 8001b14 <STH30_CheckCrc+0x16>
  4113. else crc = (crc << 1);
  4114. }
  4115. }
  4116. if(crc != checksum) return CHECKSUM_ERROR;
  4117. else return NO_ERROR;
  4118. }
  4119. 8001b0c: 1a9b subs r3, r3, r2
  4120. 8001b0e: 4258 negs r0, r3
  4121. 8001b10: 4158 adcs r0, r3
  4122. 8001b12: bd30 pop {r4, r5, pc}
  4123. crc ^= (data[byteCtr]);
  4124. 8001b14: f815 4b01 ldrb.w r4, [r5], #1
  4125. 8001b18: 4063 eors r3, r4
  4126. 8001b1a: 2408 movs r4, #8
  4127. if(crc & 0x80) crc = (crc << 1) ^ POLYNOMIAL;
  4128. 8001b1c: f013 0f80 tst.w r3, #128 ; 0x80
  4129. 8001b20: f104 34ff add.w r4, r4, #4294967295
  4130. 8001b24: ea4f 0343 mov.w r3, r3, lsl #1
  4131. 8001b28: bf18 it ne
  4132. 8001b2a: f083 0331 eorne.w r3, r3, #49 ; 0x31
  4133. for(bit = 8; bit > 0; --bit)
  4134. 8001b2e: f014 04ff ands.w r4, r4, #255 ; 0xff
  4135. else crc = (crc << 1);
  4136. 8001b32: b2db uxtb r3, r3
  4137. for(bit = 8; bit > 0; --bit)
  4138. 8001b34: d1f2 bne.n 8001b1c <STH30_CheckCrc+0x1e>
  4139. 8001b36: e7e5 b.n 8001b04 <STH30_CheckCrc+0x6>
  4140. 08001b38 <HAL_MspInit>:
  4141. {
  4142. /* USER CODE BEGIN MspInit 0 */
  4143. /* USER CODE END MspInit 0 */
  4144. __HAL_RCC_AFIO_CLK_ENABLE();
  4145. 8001b38: 4b0e ldr r3, [pc, #56] ; (8001b74 <HAL_MspInit+0x3c>)
  4146. {
  4147. 8001b3a: b082 sub sp, #8
  4148. __HAL_RCC_AFIO_CLK_ENABLE();
  4149. 8001b3c: 699a ldr r2, [r3, #24]
  4150. 8001b3e: f042 0201 orr.w r2, r2, #1
  4151. 8001b42: 619a str r2, [r3, #24]
  4152. 8001b44: 699a ldr r2, [r3, #24]
  4153. 8001b46: f002 0201 and.w r2, r2, #1
  4154. 8001b4a: 9200 str r2, [sp, #0]
  4155. 8001b4c: 9a00 ldr r2, [sp, #0]
  4156. __HAL_RCC_PWR_CLK_ENABLE();
  4157. 8001b4e: 69da ldr r2, [r3, #28]
  4158. 8001b50: f042 5280 orr.w r2, r2, #268435456 ; 0x10000000
  4159. 8001b54: 61da str r2, [r3, #28]
  4160. 8001b56: 69db ldr r3, [r3, #28]
  4161. /* System interrupt init*/
  4162. /**DISABLE: JTAG-DP Disabled and SW-DP Disabled
  4163. */
  4164. __HAL_AFIO_REMAP_SWJ_DISABLE();
  4165. 8001b58: 4a07 ldr r2, [pc, #28] ; (8001b78 <HAL_MspInit+0x40>)
  4166. __HAL_RCC_PWR_CLK_ENABLE();
  4167. 8001b5a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
  4168. 8001b5e: 9301 str r3, [sp, #4]
  4169. 8001b60: 9b01 ldr r3, [sp, #4]
  4170. __HAL_AFIO_REMAP_SWJ_DISABLE();
  4171. 8001b62: 6853 ldr r3, [r2, #4]
  4172. 8001b64: f023 63e0 bic.w r3, r3, #117440512 ; 0x7000000
  4173. 8001b68: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
  4174. 8001b6c: 6053 str r3, [r2, #4]
  4175. /* USER CODE BEGIN MspInit 1 */
  4176. /* USER CODE END MspInit 1 */
  4177. }
  4178. 8001b6e: b002 add sp, #8
  4179. 8001b70: 4770 bx lr
  4180. 8001b72: bf00 nop
  4181. 8001b74: 40021000 .word 0x40021000
  4182. 8001b78: 40010000 .word 0x40010000
  4183. 08001b7c <HAL_TIM_Base_MspInit>:
  4184. * @retval None
  4185. */
  4186. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  4187. {
  4188. if(htim_base->Instance==TIM7)
  4189. 8001b7c: 6802 ldr r2, [r0, #0]
  4190. 8001b7e: 4b08 ldr r3, [pc, #32] ; (8001ba0 <HAL_TIM_Base_MspInit+0x24>)
  4191. {
  4192. 8001b80: b082 sub sp, #8
  4193. if(htim_base->Instance==TIM7)
  4194. 8001b82: 429a cmp r2, r3
  4195. 8001b84: d10a bne.n 8001b9c <HAL_TIM_Base_MspInit+0x20>
  4196. {
  4197. /* USER CODE BEGIN TIM7_MspInit 0 */
  4198. /* USER CODE END TIM7_MspInit 0 */
  4199. /* Peripheral clock enable */
  4200. __HAL_RCC_TIM7_CLK_ENABLE();
  4201. 8001b86: f503 33fe add.w r3, r3, #130048 ; 0x1fc00
  4202. 8001b8a: 69da ldr r2, [r3, #28]
  4203. 8001b8c: f042 0220 orr.w r2, r2, #32
  4204. 8001b90: 61da str r2, [r3, #28]
  4205. 8001b92: 69db ldr r3, [r3, #28]
  4206. 8001b94: f003 0320 and.w r3, r3, #32
  4207. 8001b98: 9301 str r3, [sp, #4]
  4208. 8001b9a: 9b01 ldr r3, [sp, #4]
  4209. /* USER CODE BEGIN TIM7_MspInit 1 */
  4210. /* USER CODE END TIM7_MspInit 1 */
  4211. }
  4212. }
  4213. 8001b9c: b002 add sp, #8
  4214. 8001b9e: 4770 bx lr
  4215. 8001ba0: 40001400 .word 0x40001400
  4216. 08001ba4 <HAL_UART_MspInit>:
  4217. * This function configures the hardware resources used in this example
  4218. * @param huart: UART handle pointer
  4219. * @retval None
  4220. */
  4221. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  4222. {
  4223. 8001ba4: b510 push {r4, lr}
  4224. 8001ba6: 4604 mov r4, r0
  4225. 8001ba8: b086 sub sp, #24
  4226. GPIO_InitTypeDef GPIO_InitStruct = {0};
  4227. 8001baa: 2210 movs r2, #16
  4228. 8001bac: 2100 movs r1, #0
  4229. 8001bae: a802 add r0, sp, #8
  4230. 8001bb0: f000 f8bc bl 8001d2c <memset>
  4231. if(huart->Instance==USART1)
  4232. 8001bb4: 6822 ldr r2, [r4, #0]
  4233. 8001bb6: 4b17 ldr r3, [pc, #92] ; (8001c14 <HAL_UART_MspInit+0x70>)
  4234. 8001bb8: 429a cmp r2, r3
  4235. 8001bba: d128 bne.n 8001c0e <HAL_UART_MspInit+0x6a>
  4236. {
  4237. /* USER CODE BEGIN USART1_MspInit 0 */
  4238. /* USER CODE END USART1_MspInit 0 */
  4239. /* Peripheral clock enable */
  4240. __HAL_RCC_USART1_CLK_ENABLE();
  4241. 8001bbc: f503 4358 add.w r3, r3, #55296 ; 0xd800
  4242. 8001bc0: 699a ldr r2, [r3, #24]
  4243. PA10 ------> USART1_RX
  4244. */
  4245. GPIO_InitStruct.Pin = GPIO_PIN_9;
  4246. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  4247. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  4248. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4249. 8001bc2: a902 add r1, sp, #8
  4250. __HAL_RCC_USART1_CLK_ENABLE();
  4251. 8001bc4: f442 4280 orr.w r2, r2, #16384 ; 0x4000
  4252. 8001bc8: 619a str r2, [r3, #24]
  4253. 8001bca: 699a ldr r2, [r3, #24]
  4254. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4255. 8001bcc: 4812 ldr r0, [pc, #72] ; (8001c18 <HAL_UART_MspInit+0x74>)
  4256. __HAL_RCC_USART1_CLK_ENABLE();
  4257. 8001bce: f402 4280 and.w r2, r2, #16384 ; 0x4000
  4258. 8001bd2: 9200 str r2, [sp, #0]
  4259. 8001bd4: 9a00 ldr r2, [sp, #0]
  4260. __HAL_RCC_GPIOA_CLK_ENABLE();
  4261. 8001bd6: 699a ldr r2, [r3, #24]
  4262. 8001bd8: f042 0204 orr.w r2, r2, #4
  4263. 8001bdc: 619a str r2, [r3, #24]
  4264. 8001bde: 699b ldr r3, [r3, #24]
  4265. 8001be0: f003 0304 and.w r3, r3, #4
  4266. 8001be4: 9301 str r3, [sp, #4]
  4267. 8001be6: 9b01 ldr r3, [sp, #4]
  4268. GPIO_InitStruct.Pin = GPIO_PIN_9;
  4269. 8001be8: f44f 7300 mov.w r3, #512 ; 0x200
  4270. 8001bec: 9302 str r3, [sp, #8]
  4271. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  4272. 8001bee: 2302 movs r3, #2
  4273. 8001bf0: 9303 str r3, [sp, #12]
  4274. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  4275. 8001bf2: 2303 movs r3, #3
  4276. 8001bf4: 9305 str r3, [sp, #20]
  4277. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4278. 8001bf6: f7fe fd41 bl 800067c <HAL_GPIO_Init>
  4279. GPIO_InitStruct.Pin = GPIO_PIN_10;
  4280. 8001bfa: f44f 6380 mov.w r3, #1024 ; 0x400
  4281. 8001bfe: 9302 str r3, [sp, #8]
  4282. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  4283. 8001c00: 2300 movs r3, #0
  4284. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4285. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4286. 8001c02: a902 add r1, sp, #8
  4287. 8001c04: 4804 ldr r0, [pc, #16] ; (8001c18 <HAL_UART_MspInit+0x74>)
  4288. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  4289. 8001c06: 9303 str r3, [sp, #12]
  4290. GPIO_InitStruct.Pull = GPIO_NOPULL;
  4291. 8001c08: 9304 str r3, [sp, #16]
  4292. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  4293. 8001c0a: f7fe fd37 bl 800067c <HAL_GPIO_Init>
  4294. /* USER CODE BEGIN USART1_MspInit 1 */
  4295. /* USER CODE END USART1_MspInit 1 */
  4296. }
  4297. }
  4298. 8001c0e: b006 add sp, #24
  4299. 8001c10: bd10 pop {r4, pc}
  4300. 8001c12: bf00 nop
  4301. 8001c14: 40013800 .word 0x40013800
  4302. 8001c18: 40010800 .word 0x40010800
  4303. 08001c1c <NMI_Handler>:
  4304. 8001c1c: 4770 bx lr
  4305. 08001c1e <HardFault_Handler>:
  4306. /**
  4307. * @brief This function handles Hard fault interrupt.
  4308. */
  4309. void HardFault_Handler(void)
  4310. {
  4311. 8001c1e: e7fe b.n 8001c1e <HardFault_Handler>
  4312. 08001c20 <MemManage_Handler>:
  4313. /**
  4314. * @brief This function handles Memory management fault.
  4315. */
  4316. void MemManage_Handler(void)
  4317. {
  4318. 8001c20: e7fe b.n 8001c20 <MemManage_Handler>
  4319. 08001c22 <BusFault_Handler>:
  4320. /**
  4321. * @brief This function handles Prefetch fault, memory access fault.
  4322. */
  4323. void BusFault_Handler(void)
  4324. {
  4325. 8001c22: e7fe b.n 8001c22 <BusFault_Handler>
  4326. 08001c24 <UsageFault_Handler>:
  4327. /**
  4328. * @brief This function handles Undefined instruction or illegal state.
  4329. */
  4330. void UsageFault_Handler(void)
  4331. {
  4332. 8001c24: e7fe b.n 8001c24 <UsageFault_Handler>
  4333. 08001c26 <SVC_Handler>:
  4334. 8001c26: 4770 bx lr
  4335. 08001c28 <DebugMon_Handler>:
  4336. 8001c28: 4770 bx lr
  4337. 08001c2a <PendSV_Handler>:
  4338. /**
  4339. * @brief This function handles Pendable request for system service.
  4340. */
  4341. void PendSV_Handler(void)
  4342. {
  4343. 8001c2a: 4770 bx lr
  4344. 08001c2c <SysTick_Handler>:
  4345. void SysTick_Handler(void)
  4346. {
  4347. /* USER CODE BEGIN SysTick_IRQn 0 */
  4348. /* USER CODE END SysTick_IRQn 0 */
  4349. HAL_IncTick();
  4350. 8001c2c: f7fe bb2c b.w 8000288 <HAL_IncTick>
  4351. 08001c30 <USART1_IRQHandler>:
  4352. void USART1_IRQHandler(void)
  4353. {
  4354. /* USER CODE BEGIN USART1_IRQn 0 */
  4355. /* USER CODE END USART1_IRQn 0 */
  4356. HAL_UART_IRQHandler(&huart1);
  4357. 8001c30: 4801 ldr r0, [pc, #4] ; (8001c38 <USART1_IRQHandler+0x8>)
  4358. 8001c32: f7ff bc0d b.w 8001450 <HAL_UART_IRQHandler>
  4359. 8001c36: bf00 nop
  4360. 8001c38: 200000fc .word 0x200000fc
  4361. 08001c3c <TIM7_IRQHandler>:
  4362. void TIM7_IRQHandler(void)
  4363. {
  4364. /* USER CODE BEGIN TIM7_IRQn 0 */
  4365. /* USER CODE END TIM7_IRQn 0 */
  4366. HAL_TIM_IRQHandler(&htim7);
  4367. 8001c3c: 4801 ldr r0, [pc, #4] ; (8001c44 <TIM7_IRQHandler+0x8>)
  4368. 8001c3e: f7ff b88a b.w 8000d56 <HAL_TIM_IRQHandler>
  4369. 8001c42: bf00 nop
  4370. 8001c44: 20000144 .word 0x20000144
  4371. 08001c48 <SystemInit>:
  4372. */
  4373. void SystemInit (void)
  4374. {
  4375. /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  4376. /* Set HSION bit */
  4377. RCC->CR |= 0x00000001U;
  4378. 8001c48: 4b10 ldr r3, [pc, #64] ; (8001c8c <SystemInit+0x44>)
  4379. 8001c4a: 681a ldr r2, [r3, #0]
  4380. 8001c4c: f042 0201 orr.w r2, r2, #1
  4381. 8001c50: 601a str r2, [r3, #0]
  4382. /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
  4383. #if !defined(STM32F105xC) && !defined(STM32F107xC)
  4384. RCC->CFGR &= 0xF8FF0000U;
  4385. 8001c52: 6859 ldr r1, [r3, #4]
  4386. 8001c54: 4a0e ldr r2, [pc, #56] ; (8001c90 <SystemInit+0x48>)
  4387. 8001c56: 400a ands r2, r1
  4388. 8001c58: 605a str r2, [r3, #4]
  4389. #else
  4390. RCC->CFGR &= 0xF0FF0000U;
  4391. #endif /* STM32F105xC */
  4392. /* Reset HSEON, CSSON and PLLON bits */
  4393. RCC->CR &= 0xFEF6FFFFU;
  4394. 8001c5a: 681a ldr r2, [r3, #0]
  4395. 8001c5c: f022 7284 bic.w r2, r2, #17301504 ; 0x1080000
  4396. 8001c60: f422 3280 bic.w r2, r2, #65536 ; 0x10000
  4397. 8001c64: 601a str r2, [r3, #0]
  4398. /* Reset HSEBYP bit */
  4399. RCC->CR &= 0xFFFBFFFFU;
  4400. 8001c66: 681a ldr r2, [r3, #0]
  4401. 8001c68: f422 2280 bic.w r2, r2, #262144 ; 0x40000
  4402. 8001c6c: 601a str r2, [r3, #0]
  4403. /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
  4404. RCC->CFGR &= 0xFF80FFFFU;
  4405. 8001c6e: 685a ldr r2, [r3, #4]
  4406. 8001c70: f422 02fe bic.w r2, r2, #8323072 ; 0x7f0000
  4407. 8001c74: 605a str r2, [r3, #4]
  4408. /* Reset CFGR2 register */
  4409. RCC->CFGR2 = 0x00000000U;
  4410. #elif defined(STM32F100xB) || defined(STM32F100xE)
  4411. /* Disable all interrupts and clear pending bits */
  4412. RCC->CIR = 0x009F0000U;
  4413. 8001c76: f44f 021f mov.w r2, #10420224 ; 0x9f0000
  4414. 8001c7a: 609a str r2, [r3, #8]
  4415. /* Reset CFGR2 register */
  4416. RCC->CFGR2 = 0x00000000U;
  4417. 8001c7c: 2200 movs r2, #0
  4418. 8001c7e: 62da str r2, [r3, #44] ; 0x2c
  4419. #endif
  4420. #ifdef VECT_TAB_SRAM
  4421. SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
  4422. #else
  4423. SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
  4424. 8001c80: f04f 6200 mov.w r2, #134217728 ; 0x8000000
  4425. 8001c84: 4b03 ldr r3, [pc, #12] ; (8001c94 <SystemInit+0x4c>)
  4426. 8001c86: 609a str r2, [r3, #8]
  4427. 8001c88: 4770 bx lr
  4428. 8001c8a: bf00 nop
  4429. 8001c8c: 40021000 .word 0x40021000
  4430. 8001c90: f8ff0000 .word 0xf8ff0000
  4431. 8001c94: e000ed00 .word 0xe000ed00
  4432. 08001c98 <Reset_Handler>:
  4433. .weak Reset_Handler
  4434. .type Reset_Handler, %function
  4435. Reset_Handler:
  4436. /* Copy the data segment initializers from flash to SRAM */
  4437. movs r1, #0
  4438. 8001c98: 2100 movs r1, #0
  4439. b LoopCopyDataInit
  4440. 8001c9a: e003 b.n 8001ca4 <LoopCopyDataInit>
  4441. 08001c9c <CopyDataInit>:
  4442. CopyDataInit:
  4443. ldr r3, =_sidata
  4444. 8001c9c: 4b0b ldr r3, [pc, #44] ; (8001ccc <LoopFillZerobss+0x14>)
  4445. ldr r3, [r3, r1]
  4446. 8001c9e: 585b ldr r3, [r3, r1]
  4447. str r3, [r0, r1]
  4448. 8001ca0: 5043 str r3, [r0, r1]
  4449. adds r1, r1, #4
  4450. 8001ca2: 3104 adds r1, #4
  4451. 08001ca4 <LoopCopyDataInit>:
  4452. LoopCopyDataInit:
  4453. ldr r0, =_sdata
  4454. 8001ca4: 480a ldr r0, [pc, #40] ; (8001cd0 <LoopFillZerobss+0x18>)
  4455. ldr r3, =_edata
  4456. 8001ca6: 4b0b ldr r3, [pc, #44] ; (8001cd4 <LoopFillZerobss+0x1c>)
  4457. adds r2, r0, r1
  4458. 8001ca8: 1842 adds r2, r0, r1
  4459. cmp r2, r3
  4460. 8001caa: 429a cmp r2, r3
  4461. bcc CopyDataInit
  4462. 8001cac: d3f6 bcc.n 8001c9c <CopyDataInit>
  4463. ldr r2, =_sbss
  4464. 8001cae: 4a0a ldr r2, [pc, #40] ; (8001cd8 <LoopFillZerobss+0x20>)
  4465. b LoopFillZerobss
  4466. 8001cb0: e002 b.n 8001cb8 <LoopFillZerobss>
  4467. 08001cb2 <FillZerobss>:
  4468. /* Zero fill the bss segment. */
  4469. FillZerobss:
  4470. movs r3, #0
  4471. 8001cb2: 2300 movs r3, #0
  4472. str r3, [r2], #4
  4473. 8001cb4: f842 3b04 str.w r3, [r2], #4
  4474. 08001cb8 <LoopFillZerobss>:
  4475. LoopFillZerobss:
  4476. ldr r3, = _ebss
  4477. 8001cb8: 4b08 ldr r3, [pc, #32] ; (8001cdc <LoopFillZerobss+0x24>)
  4478. cmp r2, r3
  4479. 8001cba: 429a cmp r2, r3
  4480. bcc FillZerobss
  4481. 8001cbc: d3f9 bcc.n 8001cb2 <FillZerobss>
  4482. /* Call the clock system intitialization function.*/
  4483. bl SystemInit
  4484. 8001cbe: f7ff ffc3 bl 8001c48 <SystemInit>
  4485. /* Call static constructors */
  4486. bl __libc_init_array
  4487. 8001cc2: f000 f80f bl 8001ce4 <__libc_init_array>
  4488. /* Call the application's entry point.*/
  4489. bl main
  4490. 8001cc6: f7ff fde5 bl 8001894 <main>
  4491. bx lr
  4492. 8001cca: 4770 bx lr
  4493. ldr r3, =_sidata
  4494. 8001ccc: 08002fd4 .word 0x08002fd4
  4495. ldr r0, =_sdata
  4496. 8001cd0: 20000000 .word 0x20000000
  4497. ldr r3, =_edata
  4498. 8001cd4: 20000074 .word 0x20000074
  4499. ldr r2, =_sbss
  4500. 8001cd8: 20000078 .word 0x20000078
  4501. ldr r3, = _ebss
  4502. 8001cdc: 2000028c .word 0x2000028c
  4503. 08001ce0 <ADC1_IRQHandler>:
  4504. * @retval : None
  4505. */
  4506. .section .text.Default_Handler,"ax",%progbits
  4507. Default_Handler:
  4508. Infinite_Loop:
  4509. b Infinite_Loop
  4510. 8001ce0: e7fe b.n 8001ce0 <ADC1_IRQHandler>
  4511. ...
  4512. 08001ce4 <__libc_init_array>:
  4513. 8001ce4: b570 push {r4, r5, r6, lr}
  4514. 8001ce6: 2500 movs r5, #0
  4515. 8001ce8: 4e0c ldr r6, [pc, #48] ; (8001d1c <__libc_init_array+0x38>)
  4516. 8001cea: 4c0d ldr r4, [pc, #52] ; (8001d20 <__libc_init_array+0x3c>)
  4517. 8001cec: 1ba4 subs r4, r4, r6
  4518. 8001cee: 10a4 asrs r4, r4, #2
  4519. 8001cf0: 42a5 cmp r5, r4
  4520. 8001cf2: d109 bne.n 8001d08 <__libc_init_array+0x24>
  4521. 8001cf4: f001 f87e bl 8002df4 <_init>
  4522. 8001cf8: 2500 movs r5, #0
  4523. 8001cfa: 4e0a ldr r6, [pc, #40] ; (8001d24 <__libc_init_array+0x40>)
  4524. 8001cfc: 4c0a ldr r4, [pc, #40] ; (8001d28 <__libc_init_array+0x44>)
  4525. 8001cfe: 1ba4 subs r4, r4, r6
  4526. 8001d00: 10a4 asrs r4, r4, #2
  4527. 8001d02: 42a5 cmp r5, r4
  4528. 8001d04: d105 bne.n 8001d12 <__libc_init_array+0x2e>
  4529. 8001d06: bd70 pop {r4, r5, r6, pc}
  4530. 8001d08: f856 3025 ldr.w r3, [r6, r5, lsl #2]
  4531. 8001d0c: 4798 blx r3
  4532. 8001d0e: 3501 adds r5, #1
  4533. 8001d10: e7ee b.n 8001cf0 <__libc_init_array+0xc>
  4534. 8001d12: f856 3025 ldr.w r3, [r6, r5, lsl #2]
  4535. 8001d16: 4798 blx r3
  4536. 8001d18: 3501 adds r5, #1
  4537. 8001d1a: e7f2 b.n 8001d02 <__libc_init_array+0x1e>
  4538. 8001d1c: 08002fcc .word 0x08002fcc
  4539. 8001d20: 08002fcc .word 0x08002fcc
  4540. 8001d24: 08002fcc .word 0x08002fcc
  4541. 8001d28: 08002fd0 .word 0x08002fd0
  4542. 08001d2c <memset>:
  4543. 8001d2c: 4603 mov r3, r0
  4544. 8001d2e: 4402 add r2, r0
  4545. 8001d30: 4293 cmp r3, r2
  4546. 8001d32: d100 bne.n 8001d36 <memset+0xa>
  4547. 8001d34: 4770 bx lr
  4548. 8001d36: f803 1b01 strb.w r1, [r3], #1
  4549. 8001d3a: e7f9 b.n 8001d30 <memset+0x4>
  4550. 08001d3c <iprintf>:
  4551. 8001d3c: b40f push {r0, r1, r2, r3}
  4552. 8001d3e: 4b0a ldr r3, [pc, #40] ; (8001d68 <iprintf+0x2c>)
  4553. 8001d40: b513 push {r0, r1, r4, lr}
  4554. 8001d42: 681c ldr r4, [r3, #0]
  4555. 8001d44: b124 cbz r4, 8001d50 <iprintf+0x14>
  4556. 8001d46: 69a3 ldr r3, [r4, #24]
  4557. 8001d48: b913 cbnz r3, 8001d50 <iprintf+0x14>
  4558. 8001d4a: 4620 mov r0, r4
  4559. 8001d4c: f000 fada bl 8002304 <__sinit>
  4560. 8001d50: ab05 add r3, sp, #20
  4561. 8001d52: 9a04 ldr r2, [sp, #16]
  4562. 8001d54: 68a1 ldr r1, [r4, #8]
  4563. 8001d56: 4620 mov r0, r4
  4564. 8001d58: 9301 str r3, [sp, #4]
  4565. 8001d5a: f000 fc9b bl 8002694 <_vfiprintf_r>
  4566. 8001d5e: b002 add sp, #8
  4567. 8001d60: e8bd 4010 ldmia.w sp!, {r4, lr}
  4568. 8001d64: b004 add sp, #16
  4569. 8001d66: 4770 bx lr
  4570. 8001d68: 20000010 .word 0x20000010
  4571. 08001d6c <_puts_r>:
  4572. 8001d6c: b570 push {r4, r5, r6, lr}
  4573. 8001d6e: 460e mov r6, r1
  4574. 8001d70: 4605 mov r5, r0
  4575. 8001d72: b118 cbz r0, 8001d7c <_puts_r+0x10>
  4576. 8001d74: 6983 ldr r3, [r0, #24]
  4577. 8001d76: b90b cbnz r3, 8001d7c <_puts_r+0x10>
  4578. 8001d78: f000 fac4 bl 8002304 <__sinit>
  4579. 8001d7c: 69ab ldr r3, [r5, #24]
  4580. 8001d7e: 68ac ldr r4, [r5, #8]
  4581. 8001d80: b913 cbnz r3, 8001d88 <_puts_r+0x1c>
  4582. 8001d82: 4628 mov r0, r5
  4583. 8001d84: f000 fabe bl 8002304 <__sinit>
  4584. 8001d88: 4b23 ldr r3, [pc, #140] ; (8001e18 <_puts_r+0xac>)
  4585. 8001d8a: 429c cmp r4, r3
  4586. 8001d8c: d117 bne.n 8001dbe <_puts_r+0x52>
  4587. 8001d8e: 686c ldr r4, [r5, #4]
  4588. 8001d90: 89a3 ldrh r3, [r4, #12]
  4589. 8001d92: 071b lsls r3, r3, #28
  4590. 8001d94: d51d bpl.n 8001dd2 <_puts_r+0x66>
  4591. 8001d96: 6923 ldr r3, [r4, #16]
  4592. 8001d98: b1db cbz r3, 8001dd2 <_puts_r+0x66>
  4593. 8001d9a: 3e01 subs r6, #1
  4594. 8001d9c: 68a3 ldr r3, [r4, #8]
  4595. 8001d9e: f816 1f01 ldrb.w r1, [r6, #1]!
  4596. 8001da2: 3b01 subs r3, #1
  4597. 8001da4: 60a3 str r3, [r4, #8]
  4598. 8001da6: b9e9 cbnz r1, 8001de4 <_puts_r+0x78>
  4599. 8001da8: 2b00 cmp r3, #0
  4600. 8001daa: da2e bge.n 8001e0a <_puts_r+0x9e>
  4601. 8001dac: 4622 mov r2, r4
  4602. 8001dae: 210a movs r1, #10
  4603. 8001db0: 4628 mov r0, r5
  4604. 8001db2: f000 f8f5 bl 8001fa0 <__swbuf_r>
  4605. 8001db6: 3001 adds r0, #1
  4606. 8001db8: d011 beq.n 8001dde <_puts_r+0x72>
  4607. 8001dba: 200a movs r0, #10
  4608. 8001dbc: bd70 pop {r4, r5, r6, pc}
  4609. 8001dbe: 4b17 ldr r3, [pc, #92] ; (8001e1c <_puts_r+0xb0>)
  4610. 8001dc0: 429c cmp r4, r3
  4611. 8001dc2: d101 bne.n 8001dc8 <_puts_r+0x5c>
  4612. 8001dc4: 68ac ldr r4, [r5, #8]
  4613. 8001dc6: e7e3 b.n 8001d90 <_puts_r+0x24>
  4614. 8001dc8: 4b15 ldr r3, [pc, #84] ; (8001e20 <_puts_r+0xb4>)
  4615. 8001dca: 429c cmp r4, r3
  4616. 8001dcc: bf08 it eq
  4617. 8001dce: 68ec ldreq r4, [r5, #12]
  4618. 8001dd0: e7de b.n 8001d90 <_puts_r+0x24>
  4619. 8001dd2: 4621 mov r1, r4
  4620. 8001dd4: 4628 mov r0, r5
  4621. 8001dd6: f000 f935 bl 8002044 <__swsetup_r>
  4622. 8001dda: 2800 cmp r0, #0
  4623. 8001ddc: d0dd beq.n 8001d9a <_puts_r+0x2e>
  4624. 8001dde: f04f 30ff mov.w r0, #4294967295
  4625. 8001de2: bd70 pop {r4, r5, r6, pc}
  4626. 8001de4: 2b00 cmp r3, #0
  4627. 8001de6: da04 bge.n 8001df2 <_puts_r+0x86>
  4628. 8001de8: 69a2 ldr r2, [r4, #24]
  4629. 8001dea: 4293 cmp r3, r2
  4630. 8001dec: db06 blt.n 8001dfc <_puts_r+0x90>
  4631. 8001dee: 290a cmp r1, #10
  4632. 8001df0: d004 beq.n 8001dfc <_puts_r+0x90>
  4633. 8001df2: 6823 ldr r3, [r4, #0]
  4634. 8001df4: 1c5a adds r2, r3, #1
  4635. 8001df6: 6022 str r2, [r4, #0]
  4636. 8001df8: 7019 strb r1, [r3, #0]
  4637. 8001dfa: e7cf b.n 8001d9c <_puts_r+0x30>
  4638. 8001dfc: 4622 mov r2, r4
  4639. 8001dfe: 4628 mov r0, r5
  4640. 8001e00: f000 f8ce bl 8001fa0 <__swbuf_r>
  4641. 8001e04: 3001 adds r0, #1
  4642. 8001e06: d1c9 bne.n 8001d9c <_puts_r+0x30>
  4643. 8001e08: e7e9 b.n 8001dde <_puts_r+0x72>
  4644. 8001e0a: 200a movs r0, #10
  4645. 8001e0c: 6823 ldr r3, [r4, #0]
  4646. 8001e0e: 1c5a adds r2, r3, #1
  4647. 8001e10: 6022 str r2, [r4, #0]
  4648. 8001e12: 7018 strb r0, [r3, #0]
  4649. 8001e14: bd70 pop {r4, r5, r6, pc}
  4650. 8001e16: bf00 nop
  4651. 8001e18: 08002f58 .word 0x08002f58
  4652. 8001e1c: 08002f78 .word 0x08002f78
  4653. 8001e20: 08002f38 .word 0x08002f38
  4654. 08001e24 <puts>:
  4655. 8001e24: 4b02 ldr r3, [pc, #8] ; (8001e30 <puts+0xc>)
  4656. 8001e26: 4601 mov r1, r0
  4657. 8001e28: 6818 ldr r0, [r3, #0]
  4658. 8001e2a: f7ff bf9f b.w 8001d6c <_puts_r>
  4659. 8001e2e: bf00 nop
  4660. 8001e30: 20000010 .word 0x20000010
  4661. 08001e34 <setbuf>:
  4662. 8001e34: 2900 cmp r1, #0
  4663. 8001e36: f44f 6380 mov.w r3, #1024 ; 0x400
  4664. 8001e3a: bf0c ite eq
  4665. 8001e3c: 2202 moveq r2, #2
  4666. 8001e3e: 2200 movne r2, #0
  4667. 8001e40: f000 b800 b.w 8001e44 <setvbuf>
  4668. 08001e44 <setvbuf>:
  4669. 8001e44: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
  4670. 8001e48: 461d mov r5, r3
  4671. 8001e4a: 4b51 ldr r3, [pc, #324] ; (8001f90 <setvbuf+0x14c>)
  4672. 8001e4c: 4604 mov r4, r0
  4673. 8001e4e: 681e ldr r6, [r3, #0]
  4674. 8001e50: 460f mov r7, r1
  4675. 8001e52: 4690 mov r8, r2
  4676. 8001e54: b126 cbz r6, 8001e60 <setvbuf+0x1c>
  4677. 8001e56: 69b3 ldr r3, [r6, #24]
  4678. 8001e58: b913 cbnz r3, 8001e60 <setvbuf+0x1c>
  4679. 8001e5a: 4630 mov r0, r6
  4680. 8001e5c: f000 fa52 bl 8002304 <__sinit>
  4681. 8001e60: 4b4c ldr r3, [pc, #304] ; (8001f94 <setvbuf+0x150>)
  4682. 8001e62: 429c cmp r4, r3
  4683. 8001e64: d152 bne.n 8001f0c <setvbuf+0xc8>
  4684. 8001e66: 6874 ldr r4, [r6, #4]
  4685. 8001e68: f1b8 0f02 cmp.w r8, #2
  4686. 8001e6c: d006 beq.n 8001e7c <setvbuf+0x38>
  4687. 8001e6e: f1b8 0f01 cmp.w r8, #1
  4688. 8001e72: f200 8089 bhi.w 8001f88 <setvbuf+0x144>
  4689. 8001e76: 2d00 cmp r5, #0
  4690. 8001e78: f2c0 8086 blt.w 8001f88 <setvbuf+0x144>
  4691. 8001e7c: 4621 mov r1, r4
  4692. 8001e7e: 4630 mov r0, r6
  4693. 8001e80: f000 f9d6 bl 8002230 <_fflush_r>
  4694. 8001e84: 6b61 ldr r1, [r4, #52] ; 0x34
  4695. 8001e86: b141 cbz r1, 8001e9a <setvbuf+0x56>
  4696. 8001e88: f104 0344 add.w r3, r4, #68 ; 0x44
  4697. 8001e8c: 4299 cmp r1, r3
  4698. 8001e8e: d002 beq.n 8001e96 <setvbuf+0x52>
  4699. 8001e90: 4630 mov r0, r6
  4700. 8001e92: f000 fb2d bl 80024f0 <_free_r>
  4701. 8001e96: 2300 movs r3, #0
  4702. 8001e98: 6363 str r3, [r4, #52] ; 0x34
  4703. 8001e9a: 2300 movs r3, #0
  4704. 8001e9c: 61a3 str r3, [r4, #24]
  4705. 8001e9e: 6063 str r3, [r4, #4]
  4706. 8001ea0: 89a3 ldrh r3, [r4, #12]
  4707. 8001ea2: 061b lsls r3, r3, #24
  4708. 8001ea4: d503 bpl.n 8001eae <setvbuf+0x6a>
  4709. 8001ea6: 6921 ldr r1, [r4, #16]
  4710. 8001ea8: 4630 mov r0, r6
  4711. 8001eaa: f000 fb21 bl 80024f0 <_free_r>
  4712. 8001eae: 89a3 ldrh r3, [r4, #12]
  4713. 8001eb0: f1b8 0f02 cmp.w r8, #2
  4714. 8001eb4: f423 634a bic.w r3, r3, #3232 ; 0xca0
  4715. 8001eb8: f023 0303 bic.w r3, r3, #3
  4716. 8001ebc: 81a3 strh r3, [r4, #12]
  4717. 8001ebe: d05d beq.n 8001f7c <setvbuf+0x138>
  4718. 8001ec0: ab01 add r3, sp, #4
  4719. 8001ec2: 466a mov r2, sp
  4720. 8001ec4: 4621 mov r1, r4
  4721. 8001ec6: 4630 mov r0, r6
  4722. 8001ec8: f000 faa6 bl 8002418 <__swhatbuf_r>
  4723. 8001ecc: 89a3 ldrh r3, [r4, #12]
  4724. 8001ece: 4318 orrs r0, r3
  4725. 8001ed0: 81a0 strh r0, [r4, #12]
  4726. 8001ed2: bb2d cbnz r5, 8001f20 <setvbuf+0xdc>
  4727. 8001ed4: 9d00 ldr r5, [sp, #0]
  4728. 8001ed6: 4628 mov r0, r5
  4729. 8001ed8: f000 fb02 bl 80024e0 <malloc>
  4730. 8001edc: 4607 mov r7, r0
  4731. 8001ede: 2800 cmp r0, #0
  4732. 8001ee0: d14e bne.n 8001f80 <setvbuf+0x13c>
  4733. 8001ee2: f8dd 9000 ldr.w r9, [sp]
  4734. 8001ee6: 45a9 cmp r9, r5
  4735. 8001ee8: d13c bne.n 8001f64 <setvbuf+0x120>
  4736. 8001eea: f04f 30ff mov.w r0, #4294967295
  4737. 8001eee: 89a3 ldrh r3, [r4, #12]
  4738. 8001ef0: f043 0302 orr.w r3, r3, #2
  4739. 8001ef4: 81a3 strh r3, [r4, #12]
  4740. 8001ef6: 2300 movs r3, #0
  4741. 8001ef8: 60a3 str r3, [r4, #8]
  4742. 8001efa: f104 0347 add.w r3, r4, #71 ; 0x47
  4743. 8001efe: 6023 str r3, [r4, #0]
  4744. 8001f00: 6123 str r3, [r4, #16]
  4745. 8001f02: 2301 movs r3, #1
  4746. 8001f04: 6163 str r3, [r4, #20]
  4747. 8001f06: b003 add sp, #12
  4748. 8001f08: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
  4749. 8001f0c: 4b22 ldr r3, [pc, #136] ; (8001f98 <setvbuf+0x154>)
  4750. 8001f0e: 429c cmp r4, r3
  4751. 8001f10: d101 bne.n 8001f16 <setvbuf+0xd2>
  4752. 8001f12: 68b4 ldr r4, [r6, #8]
  4753. 8001f14: e7a8 b.n 8001e68 <setvbuf+0x24>
  4754. 8001f16: 4b21 ldr r3, [pc, #132] ; (8001f9c <setvbuf+0x158>)
  4755. 8001f18: 429c cmp r4, r3
  4756. 8001f1a: bf08 it eq
  4757. 8001f1c: 68f4 ldreq r4, [r6, #12]
  4758. 8001f1e: e7a3 b.n 8001e68 <setvbuf+0x24>
  4759. 8001f20: 2f00 cmp r7, #0
  4760. 8001f22: d0d8 beq.n 8001ed6 <setvbuf+0x92>
  4761. 8001f24: 69b3 ldr r3, [r6, #24]
  4762. 8001f26: b913 cbnz r3, 8001f2e <setvbuf+0xea>
  4763. 8001f28: 4630 mov r0, r6
  4764. 8001f2a: f000 f9eb bl 8002304 <__sinit>
  4765. 8001f2e: f1b8 0f01 cmp.w r8, #1
  4766. 8001f32: bf08 it eq
  4767. 8001f34: 89a3 ldrheq r3, [r4, #12]
  4768. 8001f36: 6027 str r7, [r4, #0]
  4769. 8001f38: bf04 itt eq
  4770. 8001f3a: f043 0301 orreq.w r3, r3, #1
  4771. 8001f3e: 81a3 strheq r3, [r4, #12]
  4772. 8001f40: 89a3 ldrh r3, [r4, #12]
  4773. 8001f42: 6127 str r7, [r4, #16]
  4774. 8001f44: f013 0008 ands.w r0, r3, #8
  4775. 8001f48: 6165 str r5, [r4, #20]
  4776. 8001f4a: d01b beq.n 8001f84 <setvbuf+0x140>
  4777. 8001f4c: f013 0001 ands.w r0, r3, #1
  4778. 8001f50: f04f 0300 mov.w r3, #0
  4779. 8001f54: bf1f itttt ne
  4780. 8001f56: 426d negne r5, r5
  4781. 8001f58: 60a3 strne r3, [r4, #8]
  4782. 8001f5a: 61a5 strne r5, [r4, #24]
  4783. 8001f5c: 4618 movne r0, r3
  4784. 8001f5e: bf08 it eq
  4785. 8001f60: 60a5 streq r5, [r4, #8]
  4786. 8001f62: e7d0 b.n 8001f06 <setvbuf+0xc2>
  4787. 8001f64: 4648 mov r0, r9
  4788. 8001f66: f000 fabb bl 80024e0 <malloc>
  4789. 8001f6a: 4607 mov r7, r0
  4790. 8001f6c: 2800 cmp r0, #0
  4791. 8001f6e: d0bc beq.n 8001eea <setvbuf+0xa6>
  4792. 8001f70: 89a3 ldrh r3, [r4, #12]
  4793. 8001f72: 464d mov r5, r9
  4794. 8001f74: f043 0380 orr.w r3, r3, #128 ; 0x80
  4795. 8001f78: 81a3 strh r3, [r4, #12]
  4796. 8001f7a: e7d3 b.n 8001f24 <setvbuf+0xe0>
  4797. 8001f7c: 2000 movs r0, #0
  4798. 8001f7e: e7b6 b.n 8001eee <setvbuf+0xaa>
  4799. 8001f80: 46a9 mov r9, r5
  4800. 8001f82: e7f5 b.n 8001f70 <setvbuf+0x12c>
  4801. 8001f84: 60a0 str r0, [r4, #8]
  4802. 8001f86: e7be b.n 8001f06 <setvbuf+0xc2>
  4803. 8001f88: f04f 30ff mov.w r0, #4294967295
  4804. 8001f8c: e7bb b.n 8001f06 <setvbuf+0xc2>
  4805. 8001f8e: bf00 nop
  4806. 8001f90: 20000010 .word 0x20000010
  4807. 8001f94: 08002f58 .word 0x08002f58
  4808. 8001f98: 08002f78 .word 0x08002f78
  4809. 8001f9c: 08002f38 .word 0x08002f38
  4810. 08001fa0 <__swbuf_r>:
  4811. 8001fa0: b5f8 push {r3, r4, r5, r6, r7, lr}
  4812. 8001fa2: 460e mov r6, r1
  4813. 8001fa4: 4614 mov r4, r2
  4814. 8001fa6: 4605 mov r5, r0
  4815. 8001fa8: b118 cbz r0, 8001fb2 <__swbuf_r+0x12>
  4816. 8001faa: 6983 ldr r3, [r0, #24]
  4817. 8001fac: b90b cbnz r3, 8001fb2 <__swbuf_r+0x12>
  4818. 8001fae: f000 f9a9 bl 8002304 <__sinit>
  4819. 8001fb2: 4b21 ldr r3, [pc, #132] ; (8002038 <__swbuf_r+0x98>)
  4820. 8001fb4: 429c cmp r4, r3
  4821. 8001fb6: d12a bne.n 800200e <__swbuf_r+0x6e>
  4822. 8001fb8: 686c ldr r4, [r5, #4]
  4823. 8001fba: 69a3 ldr r3, [r4, #24]
  4824. 8001fbc: 60a3 str r3, [r4, #8]
  4825. 8001fbe: 89a3 ldrh r3, [r4, #12]
  4826. 8001fc0: 071a lsls r2, r3, #28
  4827. 8001fc2: d52e bpl.n 8002022 <__swbuf_r+0x82>
  4828. 8001fc4: 6923 ldr r3, [r4, #16]
  4829. 8001fc6: b363 cbz r3, 8002022 <__swbuf_r+0x82>
  4830. 8001fc8: 6923 ldr r3, [r4, #16]
  4831. 8001fca: 6820 ldr r0, [r4, #0]
  4832. 8001fcc: b2f6 uxtb r6, r6
  4833. 8001fce: 1ac0 subs r0, r0, r3
  4834. 8001fd0: 6963 ldr r3, [r4, #20]
  4835. 8001fd2: 4637 mov r7, r6
  4836. 8001fd4: 4298 cmp r0, r3
  4837. 8001fd6: db04 blt.n 8001fe2 <__swbuf_r+0x42>
  4838. 8001fd8: 4621 mov r1, r4
  4839. 8001fda: 4628 mov r0, r5
  4840. 8001fdc: f000 f928 bl 8002230 <_fflush_r>
  4841. 8001fe0: bb28 cbnz r0, 800202e <__swbuf_r+0x8e>
  4842. 8001fe2: 68a3 ldr r3, [r4, #8]
  4843. 8001fe4: 3001 adds r0, #1
  4844. 8001fe6: 3b01 subs r3, #1
  4845. 8001fe8: 60a3 str r3, [r4, #8]
  4846. 8001fea: 6823 ldr r3, [r4, #0]
  4847. 8001fec: 1c5a adds r2, r3, #1
  4848. 8001fee: 6022 str r2, [r4, #0]
  4849. 8001ff0: 701e strb r6, [r3, #0]
  4850. 8001ff2: 6963 ldr r3, [r4, #20]
  4851. 8001ff4: 4298 cmp r0, r3
  4852. 8001ff6: d004 beq.n 8002002 <__swbuf_r+0x62>
  4853. 8001ff8: 89a3 ldrh r3, [r4, #12]
  4854. 8001ffa: 07db lsls r3, r3, #31
  4855. 8001ffc: d519 bpl.n 8002032 <__swbuf_r+0x92>
  4856. 8001ffe: 2e0a cmp r6, #10
  4857. 8002000: d117 bne.n 8002032 <__swbuf_r+0x92>
  4858. 8002002: 4621 mov r1, r4
  4859. 8002004: 4628 mov r0, r5
  4860. 8002006: f000 f913 bl 8002230 <_fflush_r>
  4861. 800200a: b190 cbz r0, 8002032 <__swbuf_r+0x92>
  4862. 800200c: e00f b.n 800202e <__swbuf_r+0x8e>
  4863. 800200e: 4b0b ldr r3, [pc, #44] ; (800203c <__swbuf_r+0x9c>)
  4864. 8002010: 429c cmp r4, r3
  4865. 8002012: d101 bne.n 8002018 <__swbuf_r+0x78>
  4866. 8002014: 68ac ldr r4, [r5, #8]
  4867. 8002016: e7d0 b.n 8001fba <__swbuf_r+0x1a>
  4868. 8002018: 4b09 ldr r3, [pc, #36] ; (8002040 <__swbuf_r+0xa0>)
  4869. 800201a: 429c cmp r4, r3
  4870. 800201c: bf08 it eq
  4871. 800201e: 68ec ldreq r4, [r5, #12]
  4872. 8002020: e7cb b.n 8001fba <__swbuf_r+0x1a>
  4873. 8002022: 4621 mov r1, r4
  4874. 8002024: 4628 mov r0, r5
  4875. 8002026: f000 f80d bl 8002044 <__swsetup_r>
  4876. 800202a: 2800 cmp r0, #0
  4877. 800202c: d0cc beq.n 8001fc8 <__swbuf_r+0x28>
  4878. 800202e: f04f 37ff mov.w r7, #4294967295
  4879. 8002032: 4638 mov r0, r7
  4880. 8002034: bdf8 pop {r3, r4, r5, r6, r7, pc}
  4881. 8002036: bf00 nop
  4882. 8002038: 08002f58 .word 0x08002f58
  4883. 800203c: 08002f78 .word 0x08002f78
  4884. 8002040: 08002f38 .word 0x08002f38
  4885. 08002044 <__swsetup_r>:
  4886. 8002044: 4b32 ldr r3, [pc, #200] ; (8002110 <__swsetup_r+0xcc>)
  4887. 8002046: b570 push {r4, r5, r6, lr}
  4888. 8002048: 681d ldr r5, [r3, #0]
  4889. 800204a: 4606 mov r6, r0
  4890. 800204c: 460c mov r4, r1
  4891. 800204e: b125 cbz r5, 800205a <__swsetup_r+0x16>
  4892. 8002050: 69ab ldr r3, [r5, #24]
  4893. 8002052: b913 cbnz r3, 800205a <__swsetup_r+0x16>
  4894. 8002054: 4628 mov r0, r5
  4895. 8002056: f000 f955 bl 8002304 <__sinit>
  4896. 800205a: 4b2e ldr r3, [pc, #184] ; (8002114 <__swsetup_r+0xd0>)
  4897. 800205c: 429c cmp r4, r3
  4898. 800205e: d10f bne.n 8002080 <__swsetup_r+0x3c>
  4899. 8002060: 686c ldr r4, [r5, #4]
  4900. 8002062: f9b4 300c ldrsh.w r3, [r4, #12]
  4901. 8002066: b29a uxth r2, r3
  4902. 8002068: 0715 lsls r5, r2, #28
  4903. 800206a: d42c bmi.n 80020c6 <__swsetup_r+0x82>
  4904. 800206c: 06d0 lsls r0, r2, #27
  4905. 800206e: d411 bmi.n 8002094 <__swsetup_r+0x50>
  4906. 8002070: 2209 movs r2, #9
  4907. 8002072: 6032 str r2, [r6, #0]
  4908. 8002074: f043 0340 orr.w r3, r3, #64 ; 0x40
  4909. 8002078: 81a3 strh r3, [r4, #12]
  4910. 800207a: f04f 30ff mov.w r0, #4294967295
  4911. 800207e: bd70 pop {r4, r5, r6, pc}
  4912. 8002080: 4b25 ldr r3, [pc, #148] ; (8002118 <__swsetup_r+0xd4>)
  4913. 8002082: 429c cmp r4, r3
  4914. 8002084: d101 bne.n 800208a <__swsetup_r+0x46>
  4915. 8002086: 68ac ldr r4, [r5, #8]
  4916. 8002088: e7eb b.n 8002062 <__swsetup_r+0x1e>
  4917. 800208a: 4b24 ldr r3, [pc, #144] ; (800211c <__swsetup_r+0xd8>)
  4918. 800208c: 429c cmp r4, r3
  4919. 800208e: bf08 it eq
  4920. 8002090: 68ec ldreq r4, [r5, #12]
  4921. 8002092: e7e6 b.n 8002062 <__swsetup_r+0x1e>
  4922. 8002094: 0751 lsls r1, r2, #29
  4923. 8002096: d512 bpl.n 80020be <__swsetup_r+0x7a>
  4924. 8002098: 6b61 ldr r1, [r4, #52] ; 0x34
  4925. 800209a: b141 cbz r1, 80020ae <__swsetup_r+0x6a>
  4926. 800209c: f104 0344 add.w r3, r4, #68 ; 0x44
  4927. 80020a0: 4299 cmp r1, r3
  4928. 80020a2: d002 beq.n 80020aa <__swsetup_r+0x66>
  4929. 80020a4: 4630 mov r0, r6
  4930. 80020a6: f000 fa23 bl 80024f0 <_free_r>
  4931. 80020aa: 2300 movs r3, #0
  4932. 80020ac: 6363 str r3, [r4, #52] ; 0x34
  4933. 80020ae: 89a3 ldrh r3, [r4, #12]
  4934. 80020b0: f023 0324 bic.w r3, r3, #36 ; 0x24
  4935. 80020b4: 81a3 strh r3, [r4, #12]
  4936. 80020b6: 2300 movs r3, #0
  4937. 80020b8: 6063 str r3, [r4, #4]
  4938. 80020ba: 6923 ldr r3, [r4, #16]
  4939. 80020bc: 6023 str r3, [r4, #0]
  4940. 80020be: 89a3 ldrh r3, [r4, #12]
  4941. 80020c0: f043 0308 orr.w r3, r3, #8
  4942. 80020c4: 81a3 strh r3, [r4, #12]
  4943. 80020c6: 6923 ldr r3, [r4, #16]
  4944. 80020c8: b94b cbnz r3, 80020de <__swsetup_r+0x9a>
  4945. 80020ca: 89a3 ldrh r3, [r4, #12]
  4946. 80020cc: f403 7320 and.w r3, r3, #640 ; 0x280
  4947. 80020d0: f5b3 7f00 cmp.w r3, #512 ; 0x200
  4948. 80020d4: d003 beq.n 80020de <__swsetup_r+0x9a>
  4949. 80020d6: 4621 mov r1, r4
  4950. 80020d8: 4630 mov r0, r6
  4951. 80020da: f000 f9c1 bl 8002460 <__smakebuf_r>
  4952. 80020de: 89a2 ldrh r2, [r4, #12]
  4953. 80020e0: f012 0301 ands.w r3, r2, #1
  4954. 80020e4: d00c beq.n 8002100 <__swsetup_r+0xbc>
  4955. 80020e6: 2300 movs r3, #0
  4956. 80020e8: 60a3 str r3, [r4, #8]
  4957. 80020ea: 6963 ldr r3, [r4, #20]
  4958. 80020ec: 425b negs r3, r3
  4959. 80020ee: 61a3 str r3, [r4, #24]
  4960. 80020f0: 6923 ldr r3, [r4, #16]
  4961. 80020f2: b953 cbnz r3, 800210a <__swsetup_r+0xc6>
  4962. 80020f4: f9b4 300c ldrsh.w r3, [r4, #12]
  4963. 80020f8: f013 0080 ands.w r0, r3, #128 ; 0x80
  4964. 80020fc: d1ba bne.n 8002074 <__swsetup_r+0x30>
  4965. 80020fe: bd70 pop {r4, r5, r6, pc}
  4966. 8002100: 0792 lsls r2, r2, #30
  4967. 8002102: bf58 it pl
  4968. 8002104: 6963 ldrpl r3, [r4, #20]
  4969. 8002106: 60a3 str r3, [r4, #8]
  4970. 8002108: e7f2 b.n 80020f0 <__swsetup_r+0xac>
  4971. 800210a: 2000 movs r0, #0
  4972. 800210c: e7f7 b.n 80020fe <__swsetup_r+0xba>
  4973. 800210e: bf00 nop
  4974. 8002110: 20000010 .word 0x20000010
  4975. 8002114: 08002f58 .word 0x08002f58
  4976. 8002118: 08002f78 .word 0x08002f78
  4977. 800211c: 08002f38 .word 0x08002f38
  4978. 08002120 <__sflush_r>:
  4979. 8002120: 898a ldrh r2, [r1, #12]
  4980. 8002122: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  4981. 8002126: 4605 mov r5, r0
  4982. 8002128: 0710 lsls r0, r2, #28
  4983. 800212a: 460c mov r4, r1
  4984. 800212c: d45a bmi.n 80021e4 <__sflush_r+0xc4>
  4985. 800212e: 684b ldr r3, [r1, #4]
  4986. 8002130: 2b00 cmp r3, #0
  4987. 8002132: dc05 bgt.n 8002140 <__sflush_r+0x20>
  4988. 8002134: 6c0b ldr r3, [r1, #64] ; 0x40
  4989. 8002136: 2b00 cmp r3, #0
  4990. 8002138: dc02 bgt.n 8002140 <__sflush_r+0x20>
  4991. 800213a: 2000 movs r0, #0
  4992. 800213c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  4993. 8002140: 6ae6 ldr r6, [r4, #44] ; 0x2c
  4994. 8002142: 2e00 cmp r6, #0
  4995. 8002144: d0f9 beq.n 800213a <__sflush_r+0x1a>
  4996. 8002146: 2300 movs r3, #0
  4997. 8002148: f412 5280 ands.w r2, r2, #4096 ; 0x1000
  4998. 800214c: 682f ldr r7, [r5, #0]
  4999. 800214e: 602b str r3, [r5, #0]
  5000. 8002150: d033 beq.n 80021ba <__sflush_r+0x9a>
  5001. 8002152: 6d60 ldr r0, [r4, #84] ; 0x54
  5002. 8002154: 89a3 ldrh r3, [r4, #12]
  5003. 8002156: 075a lsls r2, r3, #29
  5004. 8002158: d505 bpl.n 8002166 <__sflush_r+0x46>
  5005. 800215a: 6863 ldr r3, [r4, #4]
  5006. 800215c: 1ac0 subs r0, r0, r3
  5007. 800215e: 6b63 ldr r3, [r4, #52] ; 0x34
  5008. 8002160: b10b cbz r3, 8002166 <__sflush_r+0x46>
  5009. 8002162: 6c23 ldr r3, [r4, #64] ; 0x40
  5010. 8002164: 1ac0 subs r0, r0, r3
  5011. 8002166: 2300 movs r3, #0
  5012. 8002168: 4602 mov r2, r0
  5013. 800216a: 6ae6 ldr r6, [r4, #44] ; 0x2c
  5014. 800216c: 6a21 ldr r1, [r4, #32]
  5015. 800216e: 4628 mov r0, r5
  5016. 8002170: 47b0 blx r6
  5017. 8002172: 1c43 adds r3, r0, #1
  5018. 8002174: 89a3 ldrh r3, [r4, #12]
  5019. 8002176: d106 bne.n 8002186 <__sflush_r+0x66>
  5020. 8002178: 6829 ldr r1, [r5, #0]
  5021. 800217a: 291d cmp r1, #29
  5022. 800217c: d84b bhi.n 8002216 <__sflush_r+0xf6>
  5023. 800217e: 4a2b ldr r2, [pc, #172] ; (800222c <__sflush_r+0x10c>)
  5024. 8002180: 40ca lsrs r2, r1
  5025. 8002182: 07d6 lsls r6, r2, #31
  5026. 8002184: d547 bpl.n 8002216 <__sflush_r+0xf6>
  5027. 8002186: 2200 movs r2, #0
  5028. 8002188: 6062 str r2, [r4, #4]
  5029. 800218a: 6922 ldr r2, [r4, #16]
  5030. 800218c: 04d9 lsls r1, r3, #19
  5031. 800218e: 6022 str r2, [r4, #0]
  5032. 8002190: d504 bpl.n 800219c <__sflush_r+0x7c>
  5033. 8002192: 1c42 adds r2, r0, #1
  5034. 8002194: d101 bne.n 800219a <__sflush_r+0x7a>
  5035. 8002196: 682b ldr r3, [r5, #0]
  5036. 8002198: b903 cbnz r3, 800219c <__sflush_r+0x7c>
  5037. 800219a: 6560 str r0, [r4, #84] ; 0x54
  5038. 800219c: 6b61 ldr r1, [r4, #52] ; 0x34
  5039. 800219e: 602f str r7, [r5, #0]
  5040. 80021a0: 2900 cmp r1, #0
  5041. 80021a2: d0ca beq.n 800213a <__sflush_r+0x1a>
  5042. 80021a4: f104 0344 add.w r3, r4, #68 ; 0x44
  5043. 80021a8: 4299 cmp r1, r3
  5044. 80021aa: d002 beq.n 80021b2 <__sflush_r+0x92>
  5045. 80021ac: 4628 mov r0, r5
  5046. 80021ae: f000 f99f bl 80024f0 <_free_r>
  5047. 80021b2: 2000 movs r0, #0
  5048. 80021b4: 6360 str r0, [r4, #52] ; 0x34
  5049. 80021b6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  5050. 80021ba: 6a21 ldr r1, [r4, #32]
  5051. 80021bc: 2301 movs r3, #1
  5052. 80021be: 4628 mov r0, r5
  5053. 80021c0: 47b0 blx r6
  5054. 80021c2: 1c41 adds r1, r0, #1
  5055. 80021c4: d1c6 bne.n 8002154 <__sflush_r+0x34>
  5056. 80021c6: 682b ldr r3, [r5, #0]
  5057. 80021c8: 2b00 cmp r3, #0
  5058. 80021ca: d0c3 beq.n 8002154 <__sflush_r+0x34>
  5059. 80021cc: 2b1d cmp r3, #29
  5060. 80021ce: d001 beq.n 80021d4 <__sflush_r+0xb4>
  5061. 80021d0: 2b16 cmp r3, #22
  5062. 80021d2: d101 bne.n 80021d8 <__sflush_r+0xb8>
  5063. 80021d4: 602f str r7, [r5, #0]
  5064. 80021d6: e7b0 b.n 800213a <__sflush_r+0x1a>
  5065. 80021d8: 89a3 ldrh r3, [r4, #12]
  5066. 80021da: f043 0340 orr.w r3, r3, #64 ; 0x40
  5067. 80021de: 81a3 strh r3, [r4, #12]
  5068. 80021e0: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  5069. 80021e4: 690f ldr r7, [r1, #16]
  5070. 80021e6: 2f00 cmp r7, #0
  5071. 80021e8: d0a7 beq.n 800213a <__sflush_r+0x1a>
  5072. 80021ea: 0793 lsls r3, r2, #30
  5073. 80021ec: bf18 it ne
  5074. 80021ee: 2300 movne r3, #0
  5075. 80021f0: 680e ldr r6, [r1, #0]
  5076. 80021f2: bf08 it eq
  5077. 80021f4: 694b ldreq r3, [r1, #20]
  5078. 80021f6: eba6 0807 sub.w r8, r6, r7
  5079. 80021fa: 600f str r7, [r1, #0]
  5080. 80021fc: 608b str r3, [r1, #8]
  5081. 80021fe: f1b8 0f00 cmp.w r8, #0
  5082. 8002202: dd9a ble.n 800213a <__sflush_r+0x1a>
  5083. 8002204: 4643 mov r3, r8
  5084. 8002206: 463a mov r2, r7
  5085. 8002208: 6a21 ldr r1, [r4, #32]
  5086. 800220a: 4628 mov r0, r5
  5087. 800220c: 6aa6 ldr r6, [r4, #40] ; 0x28
  5088. 800220e: 47b0 blx r6
  5089. 8002210: 2800 cmp r0, #0
  5090. 8002212: dc07 bgt.n 8002224 <__sflush_r+0x104>
  5091. 8002214: 89a3 ldrh r3, [r4, #12]
  5092. 8002216: f043 0340 orr.w r3, r3, #64 ; 0x40
  5093. 800221a: 81a3 strh r3, [r4, #12]
  5094. 800221c: f04f 30ff mov.w r0, #4294967295
  5095. 8002220: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
  5096. 8002224: 4407 add r7, r0
  5097. 8002226: eba8 0800 sub.w r8, r8, r0
  5098. 800222a: e7e8 b.n 80021fe <__sflush_r+0xde>
  5099. 800222c: 20400001 .word 0x20400001
  5100. 08002230 <_fflush_r>:
  5101. 8002230: b538 push {r3, r4, r5, lr}
  5102. 8002232: 690b ldr r3, [r1, #16]
  5103. 8002234: 4605 mov r5, r0
  5104. 8002236: 460c mov r4, r1
  5105. 8002238: b1db cbz r3, 8002272 <_fflush_r+0x42>
  5106. 800223a: b118 cbz r0, 8002244 <_fflush_r+0x14>
  5107. 800223c: 6983 ldr r3, [r0, #24]
  5108. 800223e: b90b cbnz r3, 8002244 <_fflush_r+0x14>
  5109. 8002240: f000 f860 bl 8002304 <__sinit>
  5110. 8002244: 4b0c ldr r3, [pc, #48] ; (8002278 <_fflush_r+0x48>)
  5111. 8002246: 429c cmp r4, r3
  5112. 8002248: d109 bne.n 800225e <_fflush_r+0x2e>
  5113. 800224a: 686c ldr r4, [r5, #4]
  5114. 800224c: f9b4 300c ldrsh.w r3, [r4, #12]
  5115. 8002250: b17b cbz r3, 8002272 <_fflush_r+0x42>
  5116. 8002252: 4621 mov r1, r4
  5117. 8002254: 4628 mov r0, r5
  5118. 8002256: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr}
  5119. 800225a: f7ff bf61 b.w 8002120 <__sflush_r>
  5120. 800225e: 4b07 ldr r3, [pc, #28] ; (800227c <_fflush_r+0x4c>)
  5121. 8002260: 429c cmp r4, r3
  5122. 8002262: d101 bne.n 8002268 <_fflush_r+0x38>
  5123. 8002264: 68ac ldr r4, [r5, #8]
  5124. 8002266: e7f1 b.n 800224c <_fflush_r+0x1c>
  5125. 8002268: 4b05 ldr r3, [pc, #20] ; (8002280 <_fflush_r+0x50>)
  5126. 800226a: 429c cmp r4, r3
  5127. 800226c: bf08 it eq
  5128. 800226e: 68ec ldreq r4, [r5, #12]
  5129. 8002270: e7ec b.n 800224c <_fflush_r+0x1c>
  5130. 8002272: 2000 movs r0, #0
  5131. 8002274: bd38 pop {r3, r4, r5, pc}
  5132. 8002276: bf00 nop
  5133. 8002278: 08002f58 .word 0x08002f58
  5134. 800227c: 08002f78 .word 0x08002f78
  5135. 8002280: 08002f38 .word 0x08002f38
  5136. 08002284 <_cleanup_r>:
  5137. 8002284: 4901 ldr r1, [pc, #4] ; (800228c <_cleanup_r+0x8>)
  5138. 8002286: f000 b8a9 b.w 80023dc <_fwalk_reent>
  5139. 800228a: bf00 nop
  5140. 800228c: 08002231 .word 0x08002231
  5141. 08002290 <std.isra.0>:
  5142. 8002290: 2300 movs r3, #0
  5143. 8002292: b510 push {r4, lr}
  5144. 8002294: 4604 mov r4, r0
  5145. 8002296: 6003 str r3, [r0, #0]
  5146. 8002298: 6043 str r3, [r0, #4]
  5147. 800229a: 6083 str r3, [r0, #8]
  5148. 800229c: 8181 strh r1, [r0, #12]
  5149. 800229e: 6643 str r3, [r0, #100] ; 0x64
  5150. 80022a0: 81c2 strh r2, [r0, #14]
  5151. 80022a2: 6103 str r3, [r0, #16]
  5152. 80022a4: 6143 str r3, [r0, #20]
  5153. 80022a6: 6183 str r3, [r0, #24]
  5154. 80022a8: 4619 mov r1, r3
  5155. 80022aa: 2208 movs r2, #8
  5156. 80022ac: 305c adds r0, #92 ; 0x5c
  5157. 80022ae: f7ff fd3d bl 8001d2c <memset>
  5158. 80022b2: 4b05 ldr r3, [pc, #20] ; (80022c8 <std.isra.0+0x38>)
  5159. 80022b4: 6224 str r4, [r4, #32]
  5160. 80022b6: 6263 str r3, [r4, #36] ; 0x24
  5161. 80022b8: 4b04 ldr r3, [pc, #16] ; (80022cc <std.isra.0+0x3c>)
  5162. 80022ba: 62a3 str r3, [r4, #40] ; 0x28
  5163. 80022bc: 4b04 ldr r3, [pc, #16] ; (80022d0 <std.isra.0+0x40>)
  5164. 80022be: 62e3 str r3, [r4, #44] ; 0x2c
  5165. 80022c0: 4b04 ldr r3, [pc, #16] ; (80022d4 <std.isra.0+0x44>)
  5166. 80022c2: 6323 str r3, [r4, #48] ; 0x30
  5167. 80022c4: bd10 pop {r4, pc}
  5168. 80022c6: bf00 nop
  5169. 80022c8: 08002c11 .word 0x08002c11
  5170. 80022cc: 08002c33 .word 0x08002c33
  5171. 80022d0: 08002c6b .word 0x08002c6b
  5172. 80022d4: 08002c8f .word 0x08002c8f
  5173. 080022d8 <__sfmoreglue>:
  5174. 80022d8: b570 push {r4, r5, r6, lr}
  5175. 80022da: 2568 movs r5, #104 ; 0x68
  5176. 80022dc: 1e4a subs r2, r1, #1
  5177. 80022de: 4355 muls r5, r2
  5178. 80022e0: 460e mov r6, r1
  5179. 80022e2: f105 0174 add.w r1, r5, #116 ; 0x74
  5180. 80022e6: f000 f94f bl 8002588 <_malloc_r>
  5181. 80022ea: 4604 mov r4, r0
  5182. 80022ec: b140 cbz r0, 8002300 <__sfmoreglue+0x28>
  5183. 80022ee: 2100 movs r1, #0
  5184. 80022f0: e880 0042 stmia.w r0, {r1, r6}
  5185. 80022f4: 300c adds r0, #12
  5186. 80022f6: 60a0 str r0, [r4, #8]
  5187. 80022f8: f105 0268 add.w r2, r5, #104 ; 0x68
  5188. 80022fc: f7ff fd16 bl 8001d2c <memset>
  5189. 8002300: 4620 mov r0, r4
  5190. 8002302: bd70 pop {r4, r5, r6, pc}
  5191. 08002304 <__sinit>:
  5192. 8002304: 6983 ldr r3, [r0, #24]
  5193. 8002306: b510 push {r4, lr}
  5194. 8002308: 4604 mov r4, r0
  5195. 800230a: bb33 cbnz r3, 800235a <__sinit+0x56>
  5196. 800230c: 6483 str r3, [r0, #72] ; 0x48
  5197. 800230e: 64c3 str r3, [r0, #76] ; 0x4c
  5198. 8002310: 6503 str r3, [r0, #80] ; 0x50
  5199. 8002312: 4b12 ldr r3, [pc, #72] ; (800235c <__sinit+0x58>)
  5200. 8002314: 4a12 ldr r2, [pc, #72] ; (8002360 <__sinit+0x5c>)
  5201. 8002316: 681b ldr r3, [r3, #0]
  5202. 8002318: 6282 str r2, [r0, #40] ; 0x28
  5203. 800231a: 4298 cmp r0, r3
  5204. 800231c: bf04 itt eq
  5205. 800231e: 2301 moveq r3, #1
  5206. 8002320: 6183 streq r3, [r0, #24]
  5207. 8002322: f000 f81f bl 8002364 <__sfp>
  5208. 8002326: 6060 str r0, [r4, #4]
  5209. 8002328: 4620 mov r0, r4
  5210. 800232a: f000 f81b bl 8002364 <__sfp>
  5211. 800232e: 60a0 str r0, [r4, #8]
  5212. 8002330: 4620 mov r0, r4
  5213. 8002332: f000 f817 bl 8002364 <__sfp>
  5214. 8002336: 2200 movs r2, #0
  5215. 8002338: 60e0 str r0, [r4, #12]
  5216. 800233a: 2104 movs r1, #4
  5217. 800233c: 6860 ldr r0, [r4, #4]
  5218. 800233e: f7ff ffa7 bl 8002290 <std.isra.0>
  5219. 8002342: 2201 movs r2, #1
  5220. 8002344: 2109 movs r1, #9
  5221. 8002346: 68a0 ldr r0, [r4, #8]
  5222. 8002348: f7ff ffa2 bl 8002290 <std.isra.0>
  5223. 800234c: 2202 movs r2, #2
  5224. 800234e: 2112 movs r1, #18
  5225. 8002350: 68e0 ldr r0, [r4, #12]
  5226. 8002352: f7ff ff9d bl 8002290 <std.isra.0>
  5227. 8002356: 2301 movs r3, #1
  5228. 8002358: 61a3 str r3, [r4, #24]
  5229. 800235a: bd10 pop {r4, pc}
  5230. 800235c: 08002f34 .word 0x08002f34
  5231. 8002360: 08002285 .word 0x08002285
  5232. 08002364 <__sfp>:
  5233. 8002364: b5f8 push {r3, r4, r5, r6, r7, lr}
  5234. 8002366: 4b1c ldr r3, [pc, #112] ; (80023d8 <__sfp+0x74>)
  5235. 8002368: 4607 mov r7, r0
  5236. 800236a: 681e ldr r6, [r3, #0]
  5237. 800236c: 69b3 ldr r3, [r6, #24]
  5238. 800236e: b913 cbnz r3, 8002376 <__sfp+0x12>
  5239. 8002370: 4630 mov r0, r6
  5240. 8002372: f7ff ffc7 bl 8002304 <__sinit>
  5241. 8002376: 3648 adds r6, #72 ; 0x48
  5242. 8002378: 68b4 ldr r4, [r6, #8]
  5243. 800237a: 6873 ldr r3, [r6, #4]
  5244. 800237c: 3b01 subs r3, #1
  5245. 800237e: d503 bpl.n 8002388 <__sfp+0x24>
  5246. 8002380: 6833 ldr r3, [r6, #0]
  5247. 8002382: b133 cbz r3, 8002392 <__sfp+0x2e>
  5248. 8002384: 6836 ldr r6, [r6, #0]
  5249. 8002386: e7f7 b.n 8002378 <__sfp+0x14>
  5250. 8002388: f9b4 500c ldrsh.w r5, [r4, #12]
  5251. 800238c: b16d cbz r5, 80023aa <__sfp+0x46>
  5252. 800238e: 3468 adds r4, #104 ; 0x68
  5253. 8002390: e7f4 b.n 800237c <__sfp+0x18>
  5254. 8002392: 2104 movs r1, #4
  5255. 8002394: 4638 mov r0, r7
  5256. 8002396: f7ff ff9f bl 80022d8 <__sfmoreglue>
  5257. 800239a: 6030 str r0, [r6, #0]
  5258. 800239c: 2800 cmp r0, #0
  5259. 800239e: d1f1 bne.n 8002384 <__sfp+0x20>
  5260. 80023a0: 230c movs r3, #12
  5261. 80023a2: 4604 mov r4, r0
  5262. 80023a4: 603b str r3, [r7, #0]
  5263. 80023a6: 4620 mov r0, r4
  5264. 80023a8: bdf8 pop {r3, r4, r5, r6, r7, pc}
  5265. 80023aa: f64f 73ff movw r3, #65535 ; 0xffff
  5266. 80023ae: 81e3 strh r3, [r4, #14]
  5267. 80023b0: 2301 movs r3, #1
  5268. 80023b2: 6665 str r5, [r4, #100] ; 0x64
  5269. 80023b4: 81a3 strh r3, [r4, #12]
  5270. 80023b6: 6025 str r5, [r4, #0]
  5271. 80023b8: 60a5 str r5, [r4, #8]
  5272. 80023ba: 6065 str r5, [r4, #4]
  5273. 80023bc: 6125 str r5, [r4, #16]
  5274. 80023be: 6165 str r5, [r4, #20]
  5275. 80023c0: 61a5 str r5, [r4, #24]
  5276. 80023c2: 2208 movs r2, #8
  5277. 80023c4: 4629 mov r1, r5
  5278. 80023c6: f104 005c add.w r0, r4, #92 ; 0x5c
  5279. 80023ca: f7ff fcaf bl 8001d2c <memset>
  5280. 80023ce: 6365 str r5, [r4, #52] ; 0x34
  5281. 80023d0: 63a5 str r5, [r4, #56] ; 0x38
  5282. 80023d2: 64a5 str r5, [r4, #72] ; 0x48
  5283. 80023d4: 64e5 str r5, [r4, #76] ; 0x4c
  5284. 80023d6: e7e6 b.n 80023a6 <__sfp+0x42>
  5285. 80023d8: 08002f34 .word 0x08002f34
  5286. 080023dc <_fwalk_reent>:
  5287. 80023dc: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
  5288. 80023e0: 4680 mov r8, r0
  5289. 80023e2: 4689 mov r9, r1
  5290. 80023e4: 2600 movs r6, #0
  5291. 80023e6: f100 0448 add.w r4, r0, #72 ; 0x48
  5292. 80023ea: b914 cbnz r4, 80023f2 <_fwalk_reent+0x16>
  5293. 80023ec: 4630 mov r0, r6
  5294. 80023ee: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
  5295. 80023f2: 68a5 ldr r5, [r4, #8]
  5296. 80023f4: 6867 ldr r7, [r4, #4]
  5297. 80023f6: 3f01 subs r7, #1
  5298. 80023f8: d501 bpl.n 80023fe <_fwalk_reent+0x22>
  5299. 80023fa: 6824 ldr r4, [r4, #0]
  5300. 80023fc: e7f5 b.n 80023ea <_fwalk_reent+0xe>
  5301. 80023fe: 89ab ldrh r3, [r5, #12]
  5302. 8002400: 2b01 cmp r3, #1
  5303. 8002402: d907 bls.n 8002414 <_fwalk_reent+0x38>
  5304. 8002404: f9b5 300e ldrsh.w r3, [r5, #14]
  5305. 8002408: 3301 adds r3, #1
  5306. 800240a: d003 beq.n 8002414 <_fwalk_reent+0x38>
  5307. 800240c: 4629 mov r1, r5
  5308. 800240e: 4640 mov r0, r8
  5309. 8002410: 47c8 blx r9
  5310. 8002412: 4306 orrs r6, r0
  5311. 8002414: 3568 adds r5, #104 ; 0x68
  5312. 8002416: e7ee b.n 80023f6 <_fwalk_reent+0x1a>
  5313. 08002418 <__swhatbuf_r>:
  5314. 8002418: b570 push {r4, r5, r6, lr}
  5315. 800241a: 460e mov r6, r1
  5316. 800241c: f9b1 100e ldrsh.w r1, [r1, #14]
  5317. 8002420: b090 sub sp, #64 ; 0x40
  5318. 8002422: 2900 cmp r1, #0
  5319. 8002424: 4614 mov r4, r2
  5320. 8002426: 461d mov r5, r3
  5321. 8002428: da07 bge.n 800243a <__swhatbuf_r+0x22>
  5322. 800242a: 2300 movs r3, #0
  5323. 800242c: 602b str r3, [r5, #0]
  5324. 800242e: 89b3 ldrh r3, [r6, #12]
  5325. 8002430: 061a lsls r2, r3, #24
  5326. 8002432: d410 bmi.n 8002456 <__swhatbuf_r+0x3e>
  5327. 8002434: f44f 6380 mov.w r3, #1024 ; 0x400
  5328. 8002438: e00e b.n 8002458 <__swhatbuf_r+0x40>
  5329. 800243a: aa01 add r2, sp, #4
  5330. 800243c: f000 fc4e bl 8002cdc <_fstat_r>
  5331. 8002440: 2800 cmp r0, #0
  5332. 8002442: dbf2 blt.n 800242a <__swhatbuf_r+0x12>
  5333. 8002444: 9a02 ldr r2, [sp, #8]
  5334. 8002446: f402 4270 and.w r2, r2, #61440 ; 0xf000
  5335. 800244a: f5a2 5300 sub.w r3, r2, #8192 ; 0x2000
  5336. 800244e: 425a negs r2, r3
  5337. 8002450: 415a adcs r2, r3
  5338. 8002452: 602a str r2, [r5, #0]
  5339. 8002454: e7ee b.n 8002434 <__swhatbuf_r+0x1c>
  5340. 8002456: 2340 movs r3, #64 ; 0x40
  5341. 8002458: 2000 movs r0, #0
  5342. 800245a: 6023 str r3, [r4, #0]
  5343. 800245c: b010 add sp, #64 ; 0x40
  5344. 800245e: bd70 pop {r4, r5, r6, pc}
  5345. 08002460 <__smakebuf_r>:
  5346. 8002460: 898b ldrh r3, [r1, #12]
  5347. 8002462: b573 push {r0, r1, r4, r5, r6, lr}
  5348. 8002464: 079d lsls r5, r3, #30
  5349. 8002466: 4606 mov r6, r0
  5350. 8002468: 460c mov r4, r1
  5351. 800246a: d507 bpl.n 800247c <__smakebuf_r+0x1c>
  5352. 800246c: f104 0347 add.w r3, r4, #71 ; 0x47
  5353. 8002470: 6023 str r3, [r4, #0]
  5354. 8002472: 6123 str r3, [r4, #16]
  5355. 8002474: 2301 movs r3, #1
  5356. 8002476: 6163 str r3, [r4, #20]
  5357. 8002478: b002 add sp, #8
  5358. 800247a: bd70 pop {r4, r5, r6, pc}
  5359. 800247c: ab01 add r3, sp, #4
  5360. 800247e: 466a mov r2, sp
  5361. 8002480: f7ff ffca bl 8002418 <__swhatbuf_r>
  5362. 8002484: 9900 ldr r1, [sp, #0]
  5363. 8002486: 4605 mov r5, r0
  5364. 8002488: 4630 mov r0, r6
  5365. 800248a: f000 f87d bl 8002588 <_malloc_r>
  5366. 800248e: b948 cbnz r0, 80024a4 <__smakebuf_r+0x44>
  5367. 8002490: f9b4 300c ldrsh.w r3, [r4, #12]
  5368. 8002494: 059a lsls r2, r3, #22
  5369. 8002496: d4ef bmi.n 8002478 <__smakebuf_r+0x18>
  5370. 8002498: f023 0303 bic.w r3, r3, #3
  5371. 800249c: f043 0302 orr.w r3, r3, #2
  5372. 80024a0: 81a3 strh r3, [r4, #12]
  5373. 80024a2: e7e3 b.n 800246c <__smakebuf_r+0xc>
  5374. 80024a4: 4b0d ldr r3, [pc, #52] ; (80024dc <__smakebuf_r+0x7c>)
  5375. 80024a6: 62b3 str r3, [r6, #40] ; 0x28
  5376. 80024a8: 89a3 ldrh r3, [r4, #12]
  5377. 80024aa: 6020 str r0, [r4, #0]
  5378. 80024ac: f043 0380 orr.w r3, r3, #128 ; 0x80
  5379. 80024b0: 81a3 strh r3, [r4, #12]
  5380. 80024b2: 9b00 ldr r3, [sp, #0]
  5381. 80024b4: 6120 str r0, [r4, #16]
  5382. 80024b6: 6163 str r3, [r4, #20]
  5383. 80024b8: 9b01 ldr r3, [sp, #4]
  5384. 80024ba: b15b cbz r3, 80024d4 <__smakebuf_r+0x74>
  5385. 80024bc: f9b4 100e ldrsh.w r1, [r4, #14]
  5386. 80024c0: 4630 mov r0, r6
  5387. 80024c2: f000 fc1d bl 8002d00 <_isatty_r>
  5388. 80024c6: b128 cbz r0, 80024d4 <__smakebuf_r+0x74>
  5389. 80024c8: 89a3 ldrh r3, [r4, #12]
  5390. 80024ca: f023 0303 bic.w r3, r3, #3
  5391. 80024ce: f043 0301 orr.w r3, r3, #1
  5392. 80024d2: 81a3 strh r3, [r4, #12]
  5393. 80024d4: 89a3 ldrh r3, [r4, #12]
  5394. 80024d6: 431d orrs r5, r3
  5395. 80024d8: 81a5 strh r5, [r4, #12]
  5396. 80024da: e7cd b.n 8002478 <__smakebuf_r+0x18>
  5397. 80024dc: 08002285 .word 0x08002285
  5398. 080024e0 <malloc>:
  5399. 80024e0: 4b02 ldr r3, [pc, #8] ; (80024ec <malloc+0xc>)
  5400. 80024e2: 4601 mov r1, r0
  5401. 80024e4: 6818 ldr r0, [r3, #0]
  5402. 80024e6: f000 b84f b.w 8002588 <_malloc_r>
  5403. 80024ea: bf00 nop
  5404. 80024ec: 20000010 .word 0x20000010
  5405. 080024f0 <_free_r>:
  5406. 80024f0: b538 push {r3, r4, r5, lr}
  5407. 80024f2: 4605 mov r5, r0
  5408. 80024f4: 2900 cmp r1, #0
  5409. 80024f6: d043 beq.n 8002580 <_free_r+0x90>
  5410. 80024f8: f851 3c04 ldr.w r3, [r1, #-4]
  5411. 80024fc: 1f0c subs r4, r1, #4
  5412. 80024fe: 2b00 cmp r3, #0
  5413. 8002500: bfb8 it lt
  5414. 8002502: 18e4 addlt r4, r4, r3
  5415. 8002504: f000 fc2c bl 8002d60 <__malloc_lock>
  5416. 8002508: 4a1e ldr r2, [pc, #120] ; (8002584 <_free_r+0x94>)
  5417. 800250a: 6813 ldr r3, [r2, #0]
  5418. 800250c: 4610 mov r0, r2
  5419. 800250e: b933 cbnz r3, 800251e <_free_r+0x2e>
  5420. 8002510: 6063 str r3, [r4, #4]
  5421. 8002512: 6014 str r4, [r2, #0]
  5422. 8002514: 4628 mov r0, r5
  5423. 8002516: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr}
  5424. 800251a: f000 bc22 b.w 8002d62 <__malloc_unlock>
  5425. 800251e: 42a3 cmp r3, r4
  5426. 8002520: d90b bls.n 800253a <_free_r+0x4a>
  5427. 8002522: 6821 ldr r1, [r4, #0]
  5428. 8002524: 1862 adds r2, r4, r1
  5429. 8002526: 4293 cmp r3, r2
  5430. 8002528: bf01 itttt eq
  5431. 800252a: 681a ldreq r2, [r3, #0]
  5432. 800252c: 685b ldreq r3, [r3, #4]
  5433. 800252e: 1852 addeq r2, r2, r1
  5434. 8002530: 6022 streq r2, [r4, #0]
  5435. 8002532: 6063 str r3, [r4, #4]
  5436. 8002534: 6004 str r4, [r0, #0]
  5437. 8002536: e7ed b.n 8002514 <_free_r+0x24>
  5438. 8002538: 4613 mov r3, r2
  5439. 800253a: 685a ldr r2, [r3, #4]
  5440. 800253c: b10a cbz r2, 8002542 <_free_r+0x52>
  5441. 800253e: 42a2 cmp r2, r4
  5442. 8002540: d9fa bls.n 8002538 <_free_r+0x48>
  5443. 8002542: 6819 ldr r1, [r3, #0]
  5444. 8002544: 1858 adds r0, r3, r1
  5445. 8002546: 42a0 cmp r0, r4
  5446. 8002548: d10b bne.n 8002562 <_free_r+0x72>
  5447. 800254a: 6820 ldr r0, [r4, #0]
  5448. 800254c: 4401 add r1, r0
  5449. 800254e: 1858 adds r0, r3, r1
  5450. 8002550: 4282 cmp r2, r0
  5451. 8002552: 6019 str r1, [r3, #0]
  5452. 8002554: d1de bne.n 8002514 <_free_r+0x24>
  5453. 8002556: 6810 ldr r0, [r2, #0]
  5454. 8002558: 6852 ldr r2, [r2, #4]
  5455. 800255a: 4401 add r1, r0
  5456. 800255c: 6019 str r1, [r3, #0]
  5457. 800255e: 605a str r2, [r3, #4]
  5458. 8002560: e7d8 b.n 8002514 <_free_r+0x24>
  5459. 8002562: d902 bls.n 800256a <_free_r+0x7a>
  5460. 8002564: 230c movs r3, #12
  5461. 8002566: 602b str r3, [r5, #0]
  5462. 8002568: e7d4 b.n 8002514 <_free_r+0x24>
  5463. 800256a: 6820 ldr r0, [r4, #0]
  5464. 800256c: 1821 adds r1, r4, r0
  5465. 800256e: 428a cmp r2, r1
  5466. 8002570: bf01 itttt eq
  5467. 8002572: 6811 ldreq r1, [r2, #0]
  5468. 8002574: 6852 ldreq r2, [r2, #4]
  5469. 8002576: 1809 addeq r1, r1, r0
  5470. 8002578: 6021 streq r1, [r4, #0]
  5471. 800257a: 6062 str r2, [r4, #4]
  5472. 800257c: 605c str r4, [r3, #4]
  5473. 800257e: e7c9 b.n 8002514 <_free_r+0x24>
  5474. 8002580: bd38 pop {r3, r4, r5, pc}
  5475. 8002582: bf00 nop
  5476. 8002584: 200000c4 .word 0x200000c4
  5477. 08002588 <_malloc_r>:
  5478. 8002588: b570 push {r4, r5, r6, lr}
  5479. 800258a: 1ccd adds r5, r1, #3
  5480. 800258c: f025 0503 bic.w r5, r5, #3
  5481. 8002590: 3508 adds r5, #8
  5482. 8002592: 2d0c cmp r5, #12
  5483. 8002594: bf38 it cc
  5484. 8002596: 250c movcc r5, #12
  5485. 8002598: 2d00 cmp r5, #0
  5486. 800259a: 4606 mov r6, r0
  5487. 800259c: db01 blt.n 80025a2 <_malloc_r+0x1a>
  5488. 800259e: 42a9 cmp r1, r5
  5489. 80025a0: d903 bls.n 80025aa <_malloc_r+0x22>
  5490. 80025a2: 230c movs r3, #12
  5491. 80025a4: 6033 str r3, [r6, #0]
  5492. 80025a6: 2000 movs r0, #0
  5493. 80025a8: bd70 pop {r4, r5, r6, pc}
  5494. 80025aa: f000 fbd9 bl 8002d60 <__malloc_lock>
  5495. 80025ae: 4a23 ldr r2, [pc, #140] ; (800263c <_malloc_r+0xb4>)
  5496. 80025b0: 6814 ldr r4, [r2, #0]
  5497. 80025b2: 4621 mov r1, r4
  5498. 80025b4: b991 cbnz r1, 80025dc <_malloc_r+0x54>
  5499. 80025b6: 4c22 ldr r4, [pc, #136] ; (8002640 <_malloc_r+0xb8>)
  5500. 80025b8: 6823 ldr r3, [r4, #0]
  5501. 80025ba: b91b cbnz r3, 80025c4 <_malloc_r+0x3c>
  5502. 80025bc: 4630 mov r0, r6
  5503. 80025be: f000 fb17 bl 8002bf0 <_sbrk_r>
  5504. 80025c2: 6020 str r0, [r4, #0]
  5505. 80025c4: 4629 mov r1, r5
  5506. 80025c6: 4630 mov r0, r6
  5507. 80025c8: f000 fb12 bl 8002bf0 <_sbrk_r>
  5508. 80025cc: 1c43 adds r3, r0, #1
  5509. 80025ce: d126 bne.n 800261e <_malloc_r+0x96>
  5510. 80025d0: 230c movs r3, #12
  5511. 80025d2: 4630 mov r0, r6
  5512. 80025d4: 6033 str r3, [r6, #0]
  5513. 80025d6: f000 fbc4 bl 8002d62 <__malloc_unlock>
  5514. 80025da: e7e4 b.n 80025a6 <_malloc_r+0x1e>
  5515. 80025dc: 680b ldr r3, [r1, #0]
  5516. 80025de: 1b5b subs r3, r3, r5
  5517. 80025e0: d41a bmi.n 8002618 <_malloc_r+0x90>
  5518. 80025e2: 2b0b cmp r3, #11
  5519. 80025e4: d90f bls.n 8002606 <_malloc_r+0x7e>
  5520. 80025e6: 600b str r3, [r1, #0]
  5521. 80025e8: 18cc adds r4, r1, r3
  5522. 80025ea: 50cd str r5, [r1, r3]
  5523. 80025ec: 4630 mov r0, r6
  5524. 80025ee: f000 fbb8 bl 8002d62 <__malloc_unlock>
  5525. 80025f2: f104 000b add.w r0, r4, #11
  5526. 80025f6: 1d23 adds r3, r4, #4
  5527. 80025f8: f020 0007 bic.w r0, r0, #7
  5528. 80025fc: 1ac3 subs r3, r0, r3
  5529. 80025fe: d01b beq.n 8002638 <_malloc_r+0xb0>
  5530. 8002600: 425a negs r2, r3
  5531. 8002602: 50e2 str r2, [r4, r3]
  5532. 8002604: bd70 pop {r4, r5, r6, pc}
  5533. 8002606: 428c cmp r4, r1
  5534. 8002608: bf0b itete eq
  5535. 800260a: 6863 ldreq r3, [r4, #4]
  5536. 800260c: 684b ldrne r3, [r1, #4]
  5537. 800260e: 6013 streq r3, [r2, #0]
  5538. 8002610: 6063 strne r3, [r4, #4]
  5539. 8002612: bf18 it ne
  5540. 8002614: 460c movne r4, r1
  5541. 8002616: e7e9 b.n 80025ec <_malloc_r+0x64>
  5542. 8002618: 460c mov r4, r1
  5543. 800261a: 6849 ldr r1, [r1, #4]
  5544. 800261c: e7ca b.n 80025b4 <_malloc_r+0x2c>
  5545. 800261e: 1cc4 adds r4, r0, #3
  5546. 8002620: f024 0403 bic.w r4, r4, #3
  5547. 8002624: 42a0 cmp r0, r4
  5548. 8002626: d005 beq.n 8002634 <_malloc_r+0xac>
  5549. 8002628: 1a21 subs r1, r4, r0
  5550. 800262a: 4630 mov r0, r6
  5551. 800262c: f000 fae0 bl 8002bf0 <_sbrk_r>
  5552. 8002630: 3001 adds r0, #1
  5553. 8002632: d0cd beq.n 80025d0 <_malloc_r+0x48>
  5554. 8002634: 6025 str r5, [r4, #0]
  5555. 8002636: e7d9 b.n 80025ec <_malloc_r+0x64>
  5556. 8002638: bd70 pop {r4, r5, r6, pc}
  5557. 800263a: bf00 nop
  5558. 800263c: 200000c4 .word 0x200000c4
  5559. 8002640: 200000c8 .word 0x200000c8
  5560. 08002644 <__sfputc_r>:
  5561. 8002644: 6893 ldr r3, [r2, #8]
  5562. 8002646: b410 push {r4}
  5563. 8002648: 3b01 subs r3, #1
  5564. 800264a: 2b00 cmp r3, #0
  5565. 800264c: 6093 str r3, [r2, #8]
  5566. 800264e: da08 bge.n 8002662 <__sfputc_r+0x1e>
  5567. 8002650: 6994 ldr r4, [r2, #24]
  5568. 8002652: 42a3 cmp r3, r4
  5569. 8002654: db02 blt.n 800265c <__sfputc_r+0x18>
  5570. 8002656: b2cb uxtb r3, r1
  5571. 8002658: 2b0a cmp r3, #10
  5572. 800265a: d102 bne.n 8002662 <__sfputc_r+0x1e>
  5573. 800265c: bc10 pop {r4}
  5574. 800265e: f7ff bc9f b.w 8001fa0 <__swbuf_r>
  5575. 8002662: 6813 ldr r3, [r2, #0]
  5576. 8002664: 1c58 adds r0, r3, #1
  5577. 8002666: 6010 str r0, [r2, #0]
  5578. 8002668: 7019 strb r1, [r3, #0]
  5579. 800266a: b2c8 uxtb r0, r1
  5580. 800266c: bc10 pop {r4}
  5581. 800266e: 4770 bx lr
  5582. 08002670 <__sfputs_r>:
  5583. 8002670: b5f8 push {r3, r4, r5, r6, r7, lr}
  5584. 8002672: 4606 mov r6, r0
  5585. 8002674: 460f mov r7, r1
  5586. 8002676: 4614 mov r4, r2
  5587. 8002678: 18d5 adds r5, r2, r3
  5588. 800267a: 42ac cmp r4, r5
  5589. 800267c: d101 bne.n 8002682 <__sfputs_r+0x12>
  5590. 800267e: 2000 movs r0, #0
  5591. 8002680: e007 b.n 8002692 <__sfputs_r+0x22>
  5592. 8002682: 463a mov r2, r7
  5593. 8002684: f814 1b01 ldrb.w r1, [r4], #1
  5594. 8002688: 4630 mov r0, r6
  5595. 800268a: f7ff ffdb bl 8002644 <__sfputc_r>
  5596. 800268e: 1c43 adds r3, r0, #1
  5597. 8002690: d1f3 bne.n 800267a <__sfputs_r+0xa>
  5598. 8002692: bdf8 pop {r3, r4, r5, r6, r7, pc}
  5599. 08002694 <_vfiprintf_r>:
  5600. 8002694: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
  5601. 8002698: b09d sub sp, #116 ; 0x74
  5602. 800269a: 460c mov r4, r1
  5603. 800269c: 4617 mov r7, r2
  5604. 800269e: 9303 str r3, [sp, #12]
  5605. 80026a0: 4606 mov r6, r0
  5606. 80026a2: b118 cbz r0, 80026ac <_vfiprintf_r+0x18>
  5607. 80026a4: 6983 ldr r3, [r0, #24]
  5608. 80026a6: b90b cbnz r3, 80026ac <_vfiprintf_r+0x18>
  5609. 80026a8: f7ff fe2c bl 8002304 <__sinit>
  5610. 80026ac: 4b7c ldr r3, [pc, #496] ; (80028a0 <_vfiprintf_r+0x20c>)
  5611. 80026ae: 429c cmp r4, r3
  5612. 80026b0: d157 bne.n 8002762 <_vfiprintf_r+0xce>
  5613. 80026b2: 6874 ldr r4, [r6, #4]
  5614. 80026b4: 89a3 ldrh r3, [r4, #12]
  5615. 80026b6: 0718 lsls r0, r3, #28
  5616. 80026b8: d55d bpl.n 8002776 <_vfiprintf_r+0xe2>
  5617. 80026ba: 6923 ldr r3, [r4, #16]
  5618. 80026bc: 2b00 cmp r3, #0
  5619. 80026be: d05a beq.n 8002776 <_vfiprintf_r+0xe2>
  5620. 80026c0: 2300 movs r3, #0
  5621. 80026c2: 9309 str r3, [sp, #36] ; 0x24
  5622. 80026c4: 2320 movs r3, #32
  5623. 80026c6: f88d 3029 strb.w r3, [sp, #41] ; 0x29
  5624. 80026ca: 2330 movs r3, #48 ; 0x30
  5625. 80026cc: f04f 0b01 mov.w fp, #1
  5626. 80026d0: f88d 302a strb.w r3, [sp, #42] ; 0x2a
  5627. 80026d4: 46b8 mov r8, r7
  5628. 80026d6: 4645 mov r5, r8
  5629. 80026d8: f815 3b01 ldrb.w r3, [r5], #1
  5630. 80026dc: 2b00 cmp r3, #0
  5631. 80026de: d155 bne.n 800278c <_vfiprintf_r+0xf8>
  5632. 80026e0: ebb8 0a07 subs.w sl, r8, r7
  5633. 80026e4: d00b beq.n 80026fe <_vfiprintf_r+0x6a>
  5634. 80026e6: 4653 mov r3, sl
  5635. 80026e8: 463a mov r2, r7
  5636. 80026ea: 4621 mov r1, r4
  5637. 80026ec: 4630 mov r0, r6
  5638. 80026ee: f7ff ffbf bl 8002670 <__sfputs_r>
  5639. 80026f2: 3001 adds r0, #1
  5640. 80026f4: f000 80c4 beq.w 8002880 <_vfiprintf_r+0x1ec>
  5641. 80026f8: 9b09 ldr r3, [sp, #36] ; 0x24
  5642. 80026fa: 4453 add r3, sl
  5643. 80026fc: 9309 str r3, [sp, #36] ; 0x24
  5644. 80026fe: f898 3000 ldrb.w r3, [r8]
  5645. 8002702: 2b00 cmp r3, #0
  5646. 8002704: f000 80bc beq.w 8002880 <_vfiprintf_r+0x1ec>
  5647. 8002708: 2300 movs r3, #0
  5648. 800270a: f04f 32ff mov.w r2, #4294967295
  5649. 800270e: 9304 str r3, [sp, #16]
  5650. 8002710: 9307 str r3, [sp, #28]
  5651. 8002712: 9205 str r2, [sp, #20]
  5652. 8002714: 9306 str r3, [sp, #24]
  5653. 8002716: f88d 3053 strb.w r3, [sp, #83] ; 0x53
  5654. 800271a: 931a str r3, [sp, #104] ; 0x68
  5655. 800271c: 2205 movs r2, #5
  5656. 800271e: 7829 ldrb r1, [r5, #0]
  5657. 8002720: 4860 ldr r0, [pc, #384] ; (80028a4 <_vfiprintf_r+0x210>)
  5658. 8002722: f000 fb0f bl 8002d44 <memchr>
  5659. 8002726: f105 0801 add.w r8, r5, #1
  5660. 800272a: 9b04 ldr r3, [sp, #16]
  5661. 800272c: 2800 cmp r0, #0
  5662. 800272e: d131 bne.n 8002794 <_vfiprintf_r+0x100>
  5663. 8002730: 06d9 lsls r1, r3, #27
  5664. 8002732: bf44 itt mi
  5665. 8002734: 2220 movmi r2, #32
  5666. 8002736: f88d 2053 strbmi.w r2, [sp, #83] ; 0x53
  5667. 800273a: 071a lsls r2, r3, #28
  5668. 800273c: bf44 itt mi
  5669. 800273e: 222b movmi r2, #43 ; 0x2b
  5670. 8002740: f88d 2053 strbmi.w r2, [sp, #83] ; 0x53
  5671. 8002744: 782a ldrb r2, [r5, #0]
  5672. 8002746: 2a2a cmp r2, #42 ; 0x2a
  5673. 8002748: d02c beq.n 80027a4 <_vfiprintf_r+0x110>
  5674. 800274a: 2100 movs r1, #0
  5675. 800274c: 200a movs r0, #10
  5676. 800274e: 9a07 ldr r2, [sp, #28]
  5677. 8002750: 46a8 mov r8, r5
  5678. 8002752: f898 3000 ldrb.w r3, [r8]
  5679. 8002756: 3501 adds r5, #1
  5680. 8002758: 3b30 subs r3, #48 ; 0x30
  5681. 800275a: 2b09 cmp r3, #9
  5682. 800275c: d96d bls.n 800283a <_vfiprintf_r+0x1a6>
  5683. 800275e: b371 cbz r1, 80027be <_vfiprintf_r+0x12a>
  5684. 8002760: e026 b.n 80027b0 <_vfiprintf_r+0x11c>
  5685. 8002762: 4b51 ldr r3, [pc, #324] ; (80028a8 <_vfiprintf_r+0x214>)
  5686. 8002764: 429c cmp r4, r3
  5687. 8002766: d101 bne.n 800276c <_vfiprintf_r+0xd8>
  5688. 8002768: 68b4 ldr r4, [r6, #8]
  5689. 800276a: e7a3 b.n 80026b4 <_vfiprintf_r+0x20>
  5690. 800276c: 4b4f ldr r3, [pc, #316] ; (80028ac <_vfiprintf_r+0x218>)
  5691. 800276e: 429c cmp r4, r3
  5692. 8002770: bf08 it eq
  5693. 8002772: 68f4 ldreq r4, [r6, #12]
  5694. 8002774: e79e b.n 80026b4 <_vfiprintf_r+0x20>
  5695. 8002776: 4621 mov r1, r4
  5696. 8002778: 4630 mov r0, r6
  5697. 800277a: f7ff fc63 bl 8002044 <__swsetup_r>
  5698. 800277e: 2800 cmp r0, #0
  5699. 8002780: d09e beq.n 80026c0 <_vfiprintf_r+0x2c>
  5700. 8002782: f04f 30ff mov.w r0, #4294967295
  5701. 8002786: b01d add sp, #116 ; 0x74
  5702. 8002788: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
  5703. 800278c: 2b25 cmp r3, #37 ; 0x25
  5704. 800278e: d0a7 beq.n 80026e0 <_vfiprintf_r+0x4c>
  5705. 8002790: 46a8 mov r8, r5
  5706. 8002792: e7a0 b.n 80026d6 <_vfiprintf_r+0x42>
  5707. 8002794: 4a43 ldr r2, [pc, #268] ; (80028a4 <_vfiprintf_r+0x210>)
  5708. 8002796: 4645 mov r5, r8
  5709. 8002798: 1a80 subs r0, r0, r2
  5710. 800279a: fa0b f000 lsl.w r0, fp, r0
  5711. 800279e: 4318 orrs r0, r3
  5712. 80027a0: 9004 str r0, [sp, #16]
  5713. 80027a2: e7bb b.n 800271c <_vfiprintf_r+0x88>
  5714. 80027a4: 9a03 ldr r2, [sp, #12]
  5715. 80027a6: 1d11 adds r1, r2, #4
  5716. 80027a8: 6812 ldr r2, [r2, #0]
  5717. 80027aa: 9103 str r1, [sp, #12]
  5718. 80027ac: 2a00 cmp r2, #0
  5719. 80027ae: db01 blt.n 80027b4 <_vfiprintf_r+0x120>
  5720. 80027b0: 9207 str r2, [sp, #28]
  5721. 80027b2: e004 b.n 80027be <_vfiprintf_r+0x12a>
  5722. 80027b4: 4252 negs r2, r2
  5723. 80027b6: f043 0302 orr.w r3, r3, #2
  5724. 80027ba: 9207 str r2, [sp, #28]
  5725. 80027bc: 9304 str r3, [sp, #16]
  5726. 80027be: f898 3000 ldrb.w r3, [r8]
  5727. 80027c2: 2b2e cmp r3, #46 ; 0x2e
  5728. 80027c4: d110 bne.n 80027e8 <_vfiprintf_r+0x154>
  5729. 80027c6: f898 3001 ldrb.w r3, [r8, #1]
  5730. 80027ca: f108 0101 add.w r1, r8, #1
  5731. 80027ce: 2b2a cmp r3, #42 ; 0x2a
  5732. 80027d0: d137 bne.n 8002842 <_vfiprintf_r+0x1ae>
  5733. 80027d2: 9b03 ldr r3, [sp, #12]
  5734. 80027d4: f108 0802 add.w r8, r8, #2
  5735. 80027d8: 1d1a adds r2, r3, #4
  5736. 80027da: 681b ldr r3, [r3, #0]
  5737. 80027dc: 9203 str r2, [sp, #12]
  5738. 80027de: 2b00 cmp r3, #0
  5739. 80027e0: bfb8 it lt
  5740. 80027e2: f04f 33ff movlt.w r3, #4294967295
  5741. 80027e6: 9305 str r3, [sp, #20]
  5742. 80027e8: 4d31 ldr r5, [pc, #196] ; (80028b0 <_vfiprintf_r+0x21c>)
  5743. 80027ea: 2203 movs r2, #3
  5744. 80027ec: f898 1000 ldrb.w r1, [r8]
  5745. 80027f0: 4628 mov r0, r5
  5746. 80027f2: f000 faa7 bl 8002d44 <memchr>
  5747. 80027f6: b140 cbz r0, 800280a <_vfiprintf_r+0x176>
  5748. 80027f8: 2340 movs r3, #64 ; 0x40
  5749. 80027fa: 1b40 subs r0, r0, r5
  5750. 80027fc: fa03 f000 lsl.w r0, r3, r0
  5751. 8002800: 9b04 ldr r3, [sp, #16]
  5752. 8002802: f108 0801 add.w r8, r8, #1
  5753. 8002806: 4303 orrs r3, r0
  5754. 8002808: 9304 str r3, [sp, #16]
  5755. 800280a: f898 1000 ldrb.w r1, [r8]
  5756. 800280e: 2206 movs r2, #6
  5757. 8002810: 4828 ldr r0, [pc, #160] ; (80028b4 <_vfiprintf_r+0x220>)
  5758. 8002812: f108 0701 add.w r7, r8, #1
  5759. 8002816: f88d 1028 strb.w r1, [sp, #40] ; 0x28
  5760. 800281a: f000 fa93 bl 8002d44 <memchr>
  5761. 800281e: 2800 cmp r0, #0
  5762. 8002820: d034 beq.n 800288c <_vfiprintf_r+0x1f8>
  5763. 8002822: 4b25 ldr r3, [pc, #148] ; (80028b8 <_vfiprintf_r+0x224>)
  5764. 8002824: bb03 cbnz r3, 8002868 <_vfiprintf_r+0x1d4>
  5765. 8002826: 9b03 ldr r3, [sp, #12]
  5766. 8002828: 3307 adds r3, #7
  5767. 800282a: f023 0307 bic.w r3, r3, #7
  5768. 800282e: 3308 adds r3, #8
  5769. 8002830: 9303 str r3, [sp, #12]
  5770. 8002832: 9b09 ldr r3, [sp, #36] ; 0x24
  5771. 8002834: 444b add r3, r9
  5772. 8002836: 9309 str r3, [sp, #36] ; 0x24
  5773. 8002838: e74c b.n 80026d4 <_vfiprintf_r+0x40>
  5774. 800283a: fb00 3202 mla r2, r0, r2, r3
  5775. 800283e: 2101 movs r1, #1
  5776. 8002840: e786 b.n 8002750 <_vfiprintf_r+0xbc>
  5777. 8002842: 2300 movs r3, #0
  5778. 8002844: 250a movs r5, #10
  5779. 8002846: 4618 mov r0, r3
  5780. 8002848: 9305 str r3, [sp, #20]
  5781. 800284a: 4688 mov r8, r1
  5782. 800284c: f898 2000 ldrb.w r2, [r8]
  5783. 8002850: 3101 adds r1, #1
  5784. 8002852: 3a30 subs r2, #48 ; 0x30
  5785. 8002854: 2a09 cmp r2, #9
  5786. 8002856: d903 bls.n 8002860 <_vfiprintf_r+0x1cc>
  5787. 8002858: 2b00 cmp r3, #0
  5788. 800285a: d0c5 beq.n 80027e8 <_vfiprintf_r+0x154>
  5789. 800285c: 9005 str r0, [sp, #20]
  5790. 800285e: e7c3 b.n 80027e8 <_vfiprintf_r+0x154>
  5791. 8002860: fb05 2000 mla r0, r5, r0, r2
  5792. 8002864: 2301 movs r3, #1
  5793. 8002866: e7f0 b.n 800284a <_vfiprintf_r+0x1b6>
  5794. 8002868: ab03 add r3, sp, #12
  5795. 800286a: 9300 str r3, [sp, #0]
  5796. 800286c: 4622 mov r2, r4
  5797. 800286e: 4b13 ldr r3, [pc, #76] ; (80028bc <_vfiprintf_r+0x228>)
  5798. 8002870: a904 add r1, sp, #16
  5799. 8002872: 4630 mov r0, r6
  5800. 8002874: f3af 8000 nop.w
  5801. 8002878: f1b0 3fff cmp.w r0, #4294967295
  5802. 800287c: 4681 mov r9, r0
  5803. 800287e: d1d8 bne.n 8002832 <_vfiprintf_r+0x19e>
  5804. 8002880: 89a3 ldrh r3, [r4, #12]
  5805. 8002882: 065b lsls r3, r3, #25
  5806. 8002884: f53f af7d bmi.w 8002782 <_vfiprintf_r+0xee>
  5807. 8002888: 9809 ldr r0, [sp, #36] ; 0x24
  5808. 800288a: e77c b.n 8002786 <_vfiprintf_r+0xf2>
  5809. 800288c: ab03 add r3, sp, #12
  5810. 800288e: 9300 str r3, [sp, #0]
  5811. 8002890: 4622 mov r2, r4
  5812. 8002892: 4b0a ldr r3, [pc, #40] ; (80028bc <_vfiprintf_r+0x228>)
  5813. 8002894: a904 add r1, sp, #16
  5814. 8002896: 4630 mov r0, r6
  5815. 8002898: f000 f88a bl 80029b0 <_printf_i>
  5816. 800289c: e7ec b.n 8002878 <_vfiprintf_r+0x1e4>
  5817. 800289e: bf00 nop
  5818. 80028a0: 08002f58 .word 0x08002f58
  5819. 80028a4: 08002f98 .word 0x08002f98
  5820. 80028a8: 08002f78 .word 0x08002f78
  5821. 80028ac: 08002f38 .word 0x08002f38
  5822. 80028b0: 08002f9e .word 0x08002f9e
  5823. 80028b4: 08002fa2 .word 0x08002fa2
  5824. 80028b8: 00000000 .word 0x00000000
  5825. 80028bc: 08002671 .word 0x08002671
  5826. 080028c0 <_printf_common>:
  5827. 80028c0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
  5828. 80028c4: 4691 mov r9, r2
  5829. 80028c6: 461f mov r7, r3
  5830. 80028c8: 688a ldr r2, [r1, #8]
  5831. 80028ca: 690b ldr r3, [r1, #16]
  5832. 80028cc: 4606 mov r6, r0
  5833. 80028ce: 4293 cmp r3, r2
  5834. 80028d0: bfb8 it lt
  5835. 80028d2: 4613 movlt r3, r2
  5836. 80028d4: f8c9 3000 str.w r3, [r9]
  5837. 80028d8: f891 2043 ldrb.w r2, [r1, #67] ; 0x43
  5838. 80028dc: 460c mov r4, r1
  5839. 80028de: f8dd 8020 ldr.w r8, [sp, #32]
  5840. 80028e2: b112 cbz r2, 80028ea <_printf_common+0x2a>
  5841. 80028e4: 3301 adds r3, #1
  5842. 80028e6: f8c9 3000 str.w r3, [r9]
  5843. 80028ea: 6823 ldr r3, [r4, #0]
  5844. 80028ec: 0699 lsls r1, r3, #26
  5845. 80028ee: bf42 ittt mi
  5846. 80028f0: f8d9 3000 ldrmi.w r3, [r9]
  5847. 80028f4: 3302 addmi r3, #2
  5848. 80028f6: f8c9 3000 strmi.w r3, [r9]
  5849. 80028fa: 6825 ldr r5, [r4, #0]
  5850. 80028fc: f015 0506 ands.w r5, r5, #6
  5851. 8002900: d107 bne.n 8002912 <_printf_common+0x52>
  5852. 8002902: f104 0a19 add.w sl, r4, #25
  5853. 8002906: 68e3 ldr r3, [r4, #12]
  5854. 8002908: f8d9 2000 ldr.w r2, [r9]
  5855. 800290c: 1a9b subs r3, r3, r2
  5856. 800290e: 429d cmp r5, r3
  5857. 8002910: db2a blt.n 8002968 <_printf_common+0xa8>
  5858. 8002912: f894 3043 ldrb.w r3, [r4, #67] ; 0x43
  5859. 8002916: 6822 ldr r2, [r4, #0]
  5860. 8002918: 3300 adds r3, #0
  5861. 800291a: bf18 it ne
  5862. 800291c: 2301 movne r3, #1
  5863. 800291e: 0692 lsls r2, r2, #26
  5864. 8002920: d42f bmi.n 8002982 <_printf_common+0xc2>
  5865. 8002922: f104 0243 add.w r2, r4, #67 ; 0x43
  5866. 8002926: 4639 mov r1, r7
  5867. 8002928: 4630 mov r0, r6
  5868. 800292a: 47c0 blx r8
  5869. 800292c: 3001 adds r0, #1
  5870. 800292e: d022 beq.n 8002976 <_printf_common+0xb6>
  5871. 8002930: 6823 ldr r3, [r4, #0]
  5872. 8002932: 68e5 ldr r5, [r4, #12]
  5873. 8002934: f003 0306 and.w r3, r3, #6
  5874. 8002938: 2b04 cmp r3, #4
  5875. 800293a: bf18 it ne
  5876. 800293c: 2500 movne r5, #0
  5877. 800293e: f8d9 2000 ldr.w r2, [r9]
  5878. 8002942: f04f 0900 mov.w r9, #0
  5879. 8002946: bf08 it eq
  5880. 8002948: 1aad subeq r5, r5, r2
  5881. 800294a: 68a3 ldr r3, [r4, #8]
  5882. 800294c: 6922 ldr r2, [r4, #16]
  5883. 800294e: bf08 it eq
  5884. 8002950: ea25 75e5 biceq.w r5, r5, r5, asr #31
  5885. 8002954: 4293 cmp r3, r2
  5886. 8002956: bfc4 itt gt
  5887. 8002958: 1a9b subgt r3, r3, r2
  5888. 800295a: 18ed addgt r5, r5, r3
  5889. 800295c: 341a adds r4, #26
  5890. 800295e: 454d cmp r5, r9
  5891. 8002960: d11b bne.n 800299a <_printf_common+0xda>
  5892. 8002962: 2000 movs r0, #0
  5893. 8002964: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
  5894. 8002968: 2301 movs r3, #1
  5895. 800296a: 4652 mov r2, sl
  5896. 800296c: 4639 mov r1, r7
  5897. 800296e: 4630 mov r0, r6
  5898. 8002970: 47c0 blx r8
  5899. 8002972: 3001 adds r0, #1
  5900. 8002974: d103 bne.n 800297e <_printf_common+0xbe>
  5901. 8002976: f04f 30ff mov.w r0, #4294967295
  5902. 800297a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
  5903. 800297e: 3501 adds r5, #1
  5904. 8002980: e7c1 b.n 8002906 <_printf_common+0x46>
  5905. 8002982: 2030 movs r0, #48 ; 0x30
  5906. 8002984: 18e1 adds r1, r4, r3
  5907. 8002986: f881 0043 strb.w r0, [r1, #67] ; 0x43
  5908. 800298a: 1c5a adds r2, r3, #1
  5909. 800298c: f894 1045 ldrb.w r1, [r4, #69] ; 0x45
  5910. 8002990: 4422 add r2, r4
  5911. 8002992: 3302 adds r3, #2
  5912. 8002994: f882 1043 strb.w r1, [r2, #67] ; 0x43
  5913. 8002998: e7c3 b.n 8002922 <_printf_common+0x62>
  5914. 800299a: 2301 movs r3, #1
  5915. 800299c: 4622 mov r2, r4
  5916. 800299e: 4639 mov r1, r7
  5917. 80029a0: 4630 mov r0, r6
  5918. 80029a2: 47c0 blx r8
  5919. 80029a4: 3001 adds r0, #1
  5920. 80029a6: d0e6 beq.n 8002976 <_printf_common+0xb6>
  5921. 80029a8: f109 0901 add.w r9, r9, #1
  5922. 80029ac: e7d7 b.n 800295e <_printf_common+0x9e>
  5923. ...
  5924. 080029b0 <_printf_i>:
  5925. 80029b0: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
  5926. 80029b4: 4617 mov r7, r2
  5927. 80029b6: 7e0a ldrb r2, [r1, #24]
  5928. 80029b8: b085 sub sp, #20
  5929. 80029ba: 2a6e cmp r2, #110 ; 0x6e
  5930. 80029bc: 4698 mov r8, r3
  5931. 80029be: 4606 mov r6, r0
  5932. 80029c0: 460c mov r4, r1
  5933. 80029c2: 9b0c ldr r3, [sp, #48] ; 0x30
  5934. 80029c4: f101 0e43 add.w lr, r1, #67 ; 0x43
  5935. 80029c8: f000 80bc beq.w 8002b44 <_printf_i+0x194>
  5936. 80029cc: d81a bhi.n 8002a04 <_printf_i+0x54>
  5937. 80029ce: 2a63 cmp r2, #99 ; 0x63
  5938. 80029d0: d02e beq.n 8002a30 <_printf_i+0x80>
  5939. 80029d2: d80a bhi.n 80029ea <_printf_i+0x3a>
  5940. 80029d4: 2a00 cmp r2, #0
  5941. 80029d6: f000 80c8 beq.w 8002b6a <_printf_i+0x1ba>
  5942. 80029da: 2a58 cmp r2, #88 ; 0x58
  5943. 80029dc: f000 808a beq.w 8002af4 <_printf_i+0x144>
  5944. 80029e0: f104 0542 add.w r5, r4, #66 ; 0x42
  5945. 80029e4: f884 2042 strb.w r2, [r4, #66] ; 0x42
  5946. 80029e8: e02a b.n 8002a40 <_printf_i+0x90>
  5947. 80029ea: 2a64 cmp r2, #100 ; 0x64
  5948. 80029ec: d001 beq.n 80029f2 <_printf_i+0x42>
  5949. 80029ee: 2a69 cmp r2, #105 ; 0x69
  5950. 80029f0: d1f6 bne.n 80029e0 <_printf_i+0x30>
  5951. 80029f2: 6821 ldr r1, [r4, #0]
  5952. 80029f4: 681a ldr r2, [r3, #0]
  5953. 80029f6: f011 0f80 tst.w r1, #128 ; 0x80
  5954. 80029fa: d023 beq.n 8002a44 <_printf_i+0x94>
  5955. 80029fc: 1d11 adds r1, r2, #4
  5956. 80029fe: 6019 str r1, [r3, #0]
  5957. 8002a00: 6813 ldr r3, [r2, #0]
  5958. 8002a02: e027 b.n 8002a54 <_printf_i+0xa4>
  5959. 8002a04: 2a73 cmp r2, #115 ; 0x73
  5960. 8002a06: f000 80b4 beq.w 8002b72 <_printf_i+0x1c2>
  5961. 8002a0a: d808 bhi.n 8002a1e <_printf_i+0x6e>
  5962. 8002a0c: 2a6f cmp r2, #111 ; 0x6f
  5963. 8002a0e: d02a beq.n 8002a66 <_printf_i+0xb6>
  5964. 8002a10: 2a70 cmp r2, #112 ; 0x70
  5965. 8002a12: d1e5 bne.n 80029e0 <_printf_i+0x30>
  5966. 8002a14: 680a ldr r2, [r1, #0]
  5967. 8002a16: f042 0220 orr.w r2, r2, #32
  5968. 8002a1a: 600a str r2, [r1, #0]
  5969. 8002a1c: e003 b.n 8002a26 <_printf_i+0x76>
  5970. 8002a1e: 2a75 cmp r2, #117 ; 0x75
  5971. 8002a20: d021 beq.n 8002a66 <_printf_i+0xb6>
  5972. 8002a22: 2a78 cmp r2, #120 ; 0x78
  5973. 8002a24: d1dc bne.n 80029e0 <_printf_i+0x30>
  5974. 8002a26: 2278 movs r2, #120 ; 0x78
  5975. 8002a28: 496f ldr r1, [pc, #444] ; (8002be8 <_printf_i+0x238>)
  5976. 8002a2a: f884 2045 strb.w r2, [r4, #69] ; 0x45
  5977. 8002a2e: e064 b.n 8002afa <_printf_i+0x14a>
  5978. 8002a30: 681a ldr r2, [r3, #0]
  5979. 8002a32: f101 0542 add.w r5, r1, #66 ; 0x42
  5980. 8002a36: 1d11 adds r1, r2, #4
  5981. 8002a38: 6019 str r1, [r3, #0]
  5982. 8002a3a: 6813 ldr r3, [r2, #0]
  5983. 8002a3c: f884 3042 strb.w r3, [r4, #66] ; 0x42
  5984. 8002a40: 2301 movs r3, #1
  5985. 8002a42: e0a3 b.n 8002b8c <_printf_i+0x1dc>
  5986. 8002a44: f011 0f40 tst.w r1, #64 ; 0x40
  5987. 8002a48: f102 0104 add.w r1, r2, #4
  5988. 8002a4c: 6019 str r1, [r3, #0]
  5989. 8002a4e: d0d7 beq.n 8002a00 <_printf_i+0x50>
  5990. 8002a50: f9b2 3000 ldrsh.w r3, [r2]
  5991. 8002a54: 2b00 cmp r3, #0
  5992. 8002a56: da03 bge.n 8002a60 <_printf_i+0xb0>
  5993. 8002a58: 222d movs r2, #45 ; 0x2d
  5994. 8002a5a: 425b negs r3, r3
  5995. 8002a5c: f884 2043 strb.w r2, [r4, #67] ; 0x43
  5996. 8002a60: 4962 ldr r1, [pc, #392] ; (8002bec <_printf_i+0x23c>)
  5997. 8002a62: 220a movs r2, #10
  5998. 8002a64: e017 b.n 8002a96 <_printf_i+0xe6>
  5999. 8002a66: 6820 ldr r0, [r4, #0]
  6000. 8002a68: 6819 ldr r1, [r3, #0]
  6001. 8002a6a: f010 0f80 tst.w r0, #128 ; 0x80
  6002. 8002a6e: d003 beq.n 8002a78 <_printf_i+0xc8>
  6003. 8002a70: 1d08 adds r0, r1, #4
  6004. 8002a72: 6018 str r0, [r3, #0]
  6005. 8002a74: 680b ldr r3, [r1, #0]
  6006. 8002a76: e006 b.n 8002a86 <_printf_i+0xd6>
  6007. 8002a78: f010 0f40 tst.w r0, #64 ; 0x40
  6008. 8002a7c: f101 0004 add.w r0, r1, #4
  6009. 8002a80: 6018 str r0, [r3, #0]
  6010. 8002a82: d0f7 beq.n 8002a74 <_printf_i+0xc4>
  6011. 8002a84: 880b ldrh r3, [r1, #0]
  6012. 8002a86: 2a6f cmp r2, #111 ; 0x6f
  6013. 8002a88: bf14 ite ne
  6014. 8002a8a: 220a movne r2, #10
  6015. 8002a8c: 2208 moveq r2, #8
  6016. 8002a8e: 4957 ldr r1, [pc, #348] ; (8002bec <_printf_i+0x23c>)
  6017. 8002a90: 2000 movs r0, #0
  6018. 8002a92: f884 0043 strb.w r0, [r4, #67] ; 0x43
  6019. 8002a96: 6865 ldr r5, [r4, #4]
  6020. 8002a98: 2d00 cmp r5, #0
  6021. 8002a9a: 60a5 str r5, [r4, #8]
  6022. 8002a9c: f2c0 809c blt.w 8002bd8 <_printf_i+0x228>
  6023. 8002aa0: 6820 ldr r0, [r4, #0]
  6024. 8002aa2: f020 0004 bic.w r0, r0, #4
  6025. 8002aa6: 6020 str r0, [r4, #0]
  6026. 8002aa8: 2b00 cmp r3, #0
  6027. 8002aaa: d13f bne.n 8002b2c <_printf_i+0x17c>
  6028. 8002aac: 2d00 cmp r5, #0
  6029. 8002aae: f040 8095 bne.w 8002bdc <_printf_i+0x22c>
  6030. 8002ab2: 4675 mov r5, lr
  6031. 8002ab4: 2a08 cmp r2, #8
  6032. 8002ab6: d10b bne.n 8002ad0 <_printf_i+0x120>
  6033. 8002ab8: 6823 ldr r3, [r4, #0]
  6034. 8002aba: 07da lsls r2, r3, #31
  6035. 8002abc: d508 bpl.n 8002ad0 <_printf_i+0x120>
  6036. 8002abe: 6923 ldr r3, [r4, #16]
  6037. 8002ac0: 6862 ldr r2, [r4, #4]
  6038. 8002ac2: 429a cmp r2, r3
  6039. 8002ac4: bfde ittt le
  6040. 8002ac6: 2330 movle r3, #48 ; 0x30
  6041. 8002ac8: f805 3c01 strble.w r3, [r5, #-1]
  6042. 8002acc: f105 35ff addle.w r5, r5, #4294967295
  6043. 8002ad0: ebae 0305 sub.w r3, lr, r5
  6044. 8002ad4: 6123 str r3, [r4, #16]
  6045. 8002ad6: f8cd 8000 str.w r8, [sp]
  6046. 8002ada: 463b mov r3, r7
  6047. 8002adc: aa03 add r2, sp, #12
  6048. 8002ade: 4621 mov r1, r4
  6049. 8002ae0: 4630 mov r0, r6
  6050. 8002ae2: f7ff feed bl 80028c0 <_printf_common>
  6051. 8002ae6: 3001 adds r0, #1
  6052. 8002ae8: d155 bne.n 8002b96 <_printf_i+0x1e6>
  6053. 8002aea: f04f 30ff mov.w r0, #4294967295
  6054. 8002aee: b005 add sp, #20
  6055. 8002af0: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
  6056. 8002af4: f881 2045 strb.w r2, [r1, #69] ; 0x45
  6057. 8002af8: 493c ldr r1, [pc, #240] ; (8002bec <_printf_i+0x23c>)
  6058. 8002afa: 6822 ldr r2, [r4, #0]
  6059. 8002afc: 6818 ldr r0, [r3, #0]
  6060. 8002afe: f012 0f80 tst.w r2, #128 ; 0x80
  6061. 8002b02: f100 0504 add.w r5, r0, #4
  6062. 8002b06: 601d str r5, [r3, #0]
  6063. 8002b08: d001 beq.n 8002b0e <_printf_i+0x15e>
  6064. 8002b0a: 6803 ldr r3, [r0, #0]
  6065. 8002b0c: e002 b.n 8002b14 <_printf_i+0x164>
  6066. 8002b0e: 0655 lsls r5, r2, #25
  6067. 8002b10: d5fb bpl.n 8002b0a <_printf_i+0x15a>
  6068. 8002b12: 8803 ldrh r3, [r0, #0]
  6069. 8002b14: 07d0 lsls r0, r2, #31
  6070. 8002b16: bf44 itt mi
  6071. 8002b18: f042 0220 orrmi.w r2, r2, #32
  6072. 8002b1c: 6022 strmi r2, [r4, #0]
  6073. 8002b1e: b91b cbnz r3, 8002b28 <_printf_i+0x178>
  6074. 8002b20: 6822 ldr r2, [r4, #0]
  6075. 8002b22: f022 0220 bic.w r2, r2, #32
  6076. 8002b26: 6022 str r2, [r4, #0]
  6077. 8002b28: 2210 movs r2, #16
  6078. 8002b2a: e7b1 b.n 8002a90 <_printf_i+0xe0>
  6079. 8002b2c: 4675 mov r5, lr
  6080. 8002b2e: fbb3 f0f2 udiv r0, r3, r2
  6081. 8002b32: fb02 3310 mls r3, r2, r0, r3
  6082. 8002b36: 5ccb ldrb r3, [r1, r3]
  6083. 8002b38: f805 3d01 strb.w r3, [r5, #-1]!
  6084. 8002b3c: 4603 mov r3, r0
  6085. 8002b3e: 2800 cmp r0, #0
  6086. 8002b40: d1f5 bne.n 8002b2e <_printf_i+0x17e>
  6087. 8002b42: e7b7 b.n 8002ab4 <_printf_i+0x104>
  6088. 8002b44: 6808 ldr r0, [r1, #0]
  6089. 8002b46: 681a ldr r2, [r3, #0]
  6090. 8002b48: f010 0f80 tst.w r0, #128 ; 0x80
  6091. 8002b4c: 6949 ldr r1, [r1, #20]
  6092. 8002b4e: d004 beq.n 8002b5a <_printf_i+0x1aa>
  6093. 8002b50: 1d10 adds r0, r2, #4
  6094. 8002b52: 6018 str r0, [r3, #0]
  6095. 8002b54: 6813 ldr r3, [r2, #0]
  6096. 8002b56: 6019 str r1, [r3, #0]
  6097. 8002b58: e007 b.n 8002b6a <_printf_i+0x1ba>
  6098. 8002b5a: f010 0f40 tst.w r0, #64 ; 0x40
  6099. 8002b5e: f102 0004 add.w r0, r2, #4
  6100. 8002b62: 6018 str r0, [r3, #0]
  6101. 8002b64: 6813 ldr r3, [r2, #0]
  6102. 8002b66: d0f6 beq.n 8002b56 <_printf_i+0x1a6>
  6103. 8002b68: 8019 strh r1, [r3, #0]
  6104. 8002b6a: 2300 movs r3, #0
  6105. 8002b6c: 4675 mov r5, lr
  6106. 8002b6e: 6123 str r3, [r4, #16]
  6107. 8002b70: e7b1 b.n 8002ad6 <_printf_i+0x126>
  6108. 8002b72: 681a ldr r2, [r3, #0]
  6109. 8002b74: 1d11 adds r1, r2, #4
  6110. 8002b76: 6019 str r1, [r3, #0]
  6111. 8002b78: 6815 ldr r5, [r2, #0]
  6112. 8002b7a: 2100 movs r1, #0
  6113. 8002b7c: 6862 ldr r2, [r4, #4]
  6114. 8002b7e: 4628 mov r0, r5
  6115. 8002b80: f000 f8e0 bl 8002d44 <memchr>
  6116. 8002b84: b108 cbz r0, 8002b8a <_printf_i+0x1da>
  6117. 8002b86: 1b40 subs r0, r0, r5
  6118. 8002b88: 6060 str r0, [r4, #4]
  6119. 8002b8a: 6863 ldr r3, [r4, #4]
  6120. 8002b8c: 6123 str r3, [r4, #16]
  6121. 8002b8e: 2300 movs r3, #0
  6122. 8002b90: f884 3043 strb.w r3, [r4, #67] ; 0x43
  6123. 8002b94: e79f b.n 8002ad6 <_printf_i+0x126>
  6124. 8002b96: 6923 ldr r3, [r4, #16]
  6125. 8002b98: 462a mov r2, r5
  6126. 8002b9a: 4639 mov r1, r7
  6127. 8002b9c: 4630 mov r0, r6
  6128. 8002b9e: 47c0 blx r8
  6129. 8002ba0: 3001 adds r0, #1
  6130. 8002ba2: d0a2 beq.n 8002aea <_printf_i+0x13a>
  6131. 8002ba4: 6823 ldr r3, [r4, #0]
  6132. 8002ba6: 079b lsls r3, r3, #30
  6133. 8002ba8: d507 bpl.n 8002bba <_printf_i+0x20a>
  6134. 8002baa: 2500 movs r5, #0
  6135. 8002bac: f104 0919 add.w r9, r4, #25
  6136. 8002bb0: 68e3 ldr r3, [r4, #12]
  6137. 8002bb2: 9a03 ldr r2, [sp, #12]
  6138. 8002bb4: 1a9b subs r3, r3, r2
  6139. 8002bb6: 429d cmp r5, r3
  6140. 8002bb8: db05 blt.n 8002bc6 <_printf_i+0x216>
  6141. 8002bba: 68e0 ldr r0, [r4, #12]
  6142. 8002bbc: 9b03 ldr r3, [sp, #12]
  6143. 8002bbe: 4298 cmp r0, r3
  6144. 8002bc0: bfb8 it lt
  6145. 8002bc2: 4618 movlt r0, r3
  6146. 8002bc4: e793 b.n 8002aee <_printf_i+0x13e>
  6147. 8002bc6: 2301 movs r3, #1
  6148. 8002bc8: 464a mov r2, r9
  6149. 8002bca: 4639 mov r1, r7
  6150. 8002bcc: 4630 mov r0, r6
  6151. 8002bce: 47c0 blx r8
  6152. 8002bd0: 3001 adds r0, #1
  6153. 8002bd2: d08a beq.n 8002aea <_printf_i+0x13a>
  6154. 8002bd4: 3501 adds r5, #1
  6155. 8002bd6: e7eb b.n 8002bb0 <_printf_i+0x200>
  6156. 8002bd8: 2b00 cmp r3, #0
  6157. 8002bda: d1a7 bne.n 8002b2c <_printf_i+0x17c>
  6158. 8002bdc: 780b ldrb r3, [r1, #0]
  6159. 8002bde: f104 0542 add.w r5, r4, #66 ; 0x42
  6160. 8002be2: f884 3042 strb.w r3, [r4, #66] ; 0x42
  6161. 8002be6: e765 b.n 8002ab4 <_printf_i+0x104>
  6162. 8002be8: 08002fba .word 0x08002fba
  6163. 8002bec: 08002fa9 .word 0x08002fa9
  6164. 08002bf0 <_sbrk_r>:
  6165. 8002bf0: b538 push {r3, r4, r5, lr}
  6166. 8002bf2: 2300 movs r3, #0
  6167. 8002bf4: 4c05 ldr r4, [pc, #20] ; (8002c0c <_sbrk_r+0x1c>)
  6168. 8002bf6: 4605 mov r5, r0
  6169. 8002bf8: 4608 mov r0, r1
  6170. 8002bfa: 6023 str r3, [r4, #0]
  6171. 8002bfc: f000 f8ec bl 8002dd8 <_sbrk>
  6172. 8002c00: 1c43 adds r3, r0, #1
  6173. 8002c02: d102 bne.n 8002c0a <_sbrk_r+0x1a>
  6174. 8002c04: 6823 ldr r3, [r4, #0]
  6175. 8002c06: b103 cbz r3, 8002c0a <_sbrk_r+0x1a>
  6176. 8002c08: 602b str r3, [r5, #0]
  6177. 8002c0a: bd38 pop {r3, r4, r5, pc}
  6178. 8002c0c: 20000288 .word 0x20000288
  6179. 08002c10 <__sread>:
  6180. 8002c10: b510 push {r4, lr}
  6181. 8002c12: 460c mov r4, r1
  6182. 8002c14: f9b1 100e ldrsh.w r1, [r1, #14]
  6183. 8002c18: f000 f8a4 bl 8002d64 <_read_r>
  6184. 8002c1c: 2800 cmp r0, #0
  6185. 8002c1e: bfab itete ge
  6186. 8002c20: 6d63 ldrge r3, [r4, #84] ; 0x54
  6187. 8002c22: 89a3 ldrhlt r3, [r4, #12]
  6188. 8002c24: 181b addge r3, r3, r0
  6189. 8002c26: f423 5380 biclt.w r3, r3, #4096 ; 0x1000
  6190. 8002c2a: bfac ite ge
  6191. 8002c2c: 6563 strge r3, [r4, #84] ; 0x54
  6192. 8002c2e: 81a3 strhlt r3, [r4, #12]
  6193. 8002c30: bd10 pop {r4, pc}
  6194. 08002c32 <__swrite>:
  6195. 8002c32: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
  6196. 8002c36: 461f mov r7, r3
  6197. 8002c38: 898b ldrh r3, [r1, #12]
  6198. 8002c3a: 4605 mov r5, r0
  6199. 8002c3c: 05db lsls r3, r3, #23
  6200. 8002c3e: 460c mov r4, r1
  6201. 8002c40: 4616 mov r6, r2
  6202. 8002c42: d505 bpl.n 8002c50 <__swrite+0x1e>
  6203. 8002c44: 2302 movs r3, #2
  6204. 8002c46: 2200 movs r2, #0
  6205. 8002c48: f9b1 100e ldrsh.w r1, [r1, #14]
  6206. 8002c4c: f000 f868 bl 8002d20 <_lseek_r>
  6207. 8002c50: 89a3 ldrh r3, [r4, #12]
  6208. 8002c52: 4632 mov r2, r6
  6209. 8002c54: f423 5380 bic.w r3, r3, #4096 ; 0x1000
  6210. 8002c58: 81a3 strh r3, [r4, #12]
  6211. 8002c5a: f9b4 100e ldrsh.w r1, [r4, #14]
  6212. 8002c5e: 463b mov r3, r7
  6213. 8002c60: 4628 mov r0, r5
  6214. 8002c62: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
  6215. 8002c66: f000 b817 b.w 8002c98 <_write_r>
  6216. 08002c6a <__sseek>:
  6217. 8002c6a: b510 push {r4, lr}
  6218. 8002c6c: 460c mov r4, r1
  6219. 8002c6e: f9b1 100e ldrsh.w r1, [r1, #14]
  6220. 8002c72: f000 f855 bl 8002d20 <_lseek_r>
  6221. 8002c76: 1c43 adds r3, r0, #1
  6222. 8002c78: 89a3 ldrh r3, [r4, #12]
  6223. 8002c7a: bf15 itete ne
  6224. 8002c7c: 6560 strne r0, [r4, #84] ; 0x54
  6225. 8002c7e: f423 5380 biceq.w r3, r3, #4096 ; 0x1000
  6226. 8002c82: f443 5380 orrne.w r3, r3, #4096 ; 0x1000
  6227. 8002c86: 81a3 strheq r3, [r4, #12]
  6228. 8002c88: bf18 it ne
  6229. 8002c8a: 81a3 strhne r3, [r4, #12]
  6230. 8002c8c: bd10 pop {r4, pc}
  6231. 08002c8e <__sclose>:
  6232. 8002c8e: f9b1 100e ldrsh.w r1, [r1, #14]
  6233. 8002c92: f000 b813 b.w 8002cbc <_close_r>
  6234. ...
  6235. 08002c98 <_write_r>:
  6236. 8002c98: b538 push {r3, r4, r5, lr}
  6237. 8002c9a: 4605 mov r5, r0
  6238. 8002c9c: 4608 mov r0, r1
  6239. 8002c9e: 4611 mov r1, r2
  6240. 8002ca0: 2200 movs r2, #0
  6241. 8002ca2: 4c05 ldr r4, [pc, #20] ; (8002cb8 <_write_r+0x20>)
  6242. 8002ca4: 6022 str r2, [r4, #0]
  6243. 8002ca6: 461a mov r2, r3
  6244. 8002ca8: f7fe fcc8 bl 800163c <_write>
  6245. 8002cac: 1c43 adds r3, r0, #1
  6246. 8002cae: d102 bne.n 8002cb6 <_write_r+0x1e>
  6247. 8002cb0: 6823 ldr r3, [r4, #0]
  6248. 8002cb2: b103 cbz r3, 8002cb6 <_write_r+0x1e>
  6249. 8002cb4: 602b str r3, [r5, #0]
  6250. 8002cb6: bd38 pop {r3, r4, r5, pc}
  6251. 8002cb8: 20000288 .word 0x20000288
  6252. 08002cbc <_close_r>:
  6253. 8002cbc: b538 push {r3, r4, r5, lr}
  6254. 8002cbe: 2300 movs r3, #0
  6255. 8002cc0: 4c05 ldr r4, [pc, #20] ; (8002cd8 <_close_r+0x1c>)
  6256. 8002cc2: 4605 mov r5, r0
  6257. 8002cc4: 4608 mov r0, r1
  6258. 8002cc6: 6023 str r3, [r4, #0]
  6259. 8002cc8: f000 f85e bl 8002d88 <_close>
  6260. 8002ccc: 1c43 adds r3, r0, #1
  6261. 8002cce: d102 bne.n 8002cd6 <_close_r+0x1a>
  6262. 8002cd0: 6823 ldr r3, [r4, #0]
  6263. 8002cd2: b103 cbz r3, 8002cd6 <_close_r+0x1a>
  6264. 8002cd4: 602b str r3, [r5, #0]
  6265. 8002cd6: bd38 pop {r3, r4, r5, pc}
  6266. 8002cd8: 20000288 .word 0x20000288
  6267. 08002cdc <_fstat_r>:
  6268. 8002cdc: b538 push {r3, r4, r5, lr}
  6269. 8002cde: 2300 movs r3, #0
  6270. 8002ce0: 4c06 ldr r4, [pc, #24] ; (8002cfc <_fstat_r+0x20>)
  6271. 8002ce2: 4605 mov r5, r0
  6272. 8002ce4: 4608 mov r0, r1
  6273. 8002ce6: 4611 mov r1, r2
  6274. 8002ce8: 6023 str r3, [r4, #0]
  6275. 8002cea: f000 f855 bl 8002d98 <_fstat>
  6276. 8002cee: 1c43 adds r3, r0, #1
  6277. 8002cf0: d102 bne.n 8002cf8 <_fstat_r+0x1c>
  6278. 8002cf2: 6823 ldr r3, [r4, #0]
  6279. 8002cf4: b103 cbz r3, 8002cf8 <_fstat_r+0x1c>
  6280. 8002cf6: 602b str r3, [r5, #0]
  6281. 8002cf8: bd38 pop {r3, r4, r5, pc}
  6282. 8002cfa: bf00 nop
  6283. 8002cfc: 20000288 .word 0x20000288
  6284. 08002d00 <_isatty_r>:
  6285. 8002d00: b538 push {r3, r4, r5, lr}
  6286. 8002d02: 2300 movs r3, #0
  6287. 8002d04: 4c05 ldr r4, [pc, #20] ; (8002d1c <_isatty_r+0x1c>)
  6288. 8002d06: 4605 mov r5, r0
  6289. 8002d08: 4608 mov r0, r1
  6290. 8002d0a: 6023 str r3, [r4, #0]
  6291. 8002d0c: f000 f84c bl 8002da8 <_isatty>
  6292. 8002d10: 1c43 adds r3, r0, #1
  6293. 8002d12: d102 bne.n 8002d1a <_isatty_r+0x1a>
  6294. 8002d14: 6823 ldr r3, [r4, #0]
  6295. 8002d16: b103 cbz r3, 8002d1a <_isatty_r+0x1a>
  6296. 8002d18: 602b str r3, [r5, #0]
  6297. 8002d1a: bd38 pop {r3, r4, r5, pc}
  6298. 8002d1c: 20000288 .word 0x20000288
  6299. 08002d20 <_lseek_r>:
  6300. 8002d20: b538 push {r3, r4, r5, lr}
  6301. 8002d22: 4605 mov r5, r0
  6302. 8002d24: 4608 mov r0, r1
  6303. 8002d26: 4611 mov r1, r2
  6304. 8002d28: 2200 movs r2, #0
  6305. 8002d2a: 4c05 ldr r4, [pc, #20] ; (8002d40 <_lseek_r+0x20>)
  6306. 8002d2c: 6022 str r2, [r4, #0]
  6307. 8002d2e: 461a mov r2, r3
  6308. 8002d30: f000 f842 bl 8002db8 <_lseek>
  6309. 8002d34: 1c43 adds r3, r0, #1
  6310. 8002d36: d102 bne.n 8002d3e <_lseek_r+0x1e>
  6311. 8002d38: 6823 ldr r3, [r4, #0]
  6312. 8002d3a: b103 cbz r3, 8002d3e <_lseek_r+0x1e>
  6313. 8002d3c: 602b str r3, [r5, #0]
  6314. 8002d3e: bd38 pop {r3, r4, r5, pc}
  6315. 8002d40: 20000288 .word 0x20000288
  6316. 08002d44 <memchr>:
  6317. 8002d44: b510 push {r4, lr}
  6318. 8002d46: b2c9 uxtb r1, r1
  6319. 8002d48: 4402 add r2, r0
  6320. 8002d4a: 4290 cmp r0, r2
  6321. 8002d4c: 4603 mov r3, r0
  6322. 8002d4e: d101 bne.n 8002d54 <memchr+0x10>
  6323. 8002d50: 2000 movs r0, #0
  6324. 8002d52: bd10 pop {r4, pc}
  6325. 8002d54: 781c ldrb r4, [r3, #0]
  6326. 8002d56: 3001 adds r0, #1
  6327. 8002d58: 428c cmp r4, r1
  6328. 8002d5a: d1f6 bne.n 8002d4a <memchr+0x6>
  6329. 8002d5c: 4618 mov r0, r3
  6330. 8002d5e: bd10 pop {r4, pc}
  6331. 08002d60 <__malloc_lock>:
  6332. 8002d60: 4770 bx lr
  6333. 08002d62 <__malloc_unlock>:
  6334. 8002d62: 4770 bx lr
  6335. 08002d64 <_read_r>:
  6336. 8002d64: b538 push {r3, r4, r5, lr}
  6337. 8002d66: 4605 mov r5, r0
  6338. 8002d68: 4608 mov r0, r1
  6339. 8002d6a: 4611 mov r1, r2
  6340. 8002d6c: 2200 movs r2, #0
  6341. 8002d6e: 4c05 ldr r4, [pc, #20] ; (8002d84 <_read_r+0x20>)
  6342. 8002d70: 6022 str r2, [r4, #0]
  6343. 8002d72: 461a mov r2, r3
  6344. 8002d74: f000 f828 bl 8002dc8 <_read>
  6345. 8002d78: 1c43 adds r3, r0, #1
  6346. 8002d7a: d102 bne.n 8002d82 <_read_r+0x1e>
  6347. 8002d7c: 6823 ldr r3, [r4, #0]
  6348. 8002d7e: b103 cbz r3, 8002d82 <_read_r+0x1e>
  6349. 8002d80: 602b str r3, [r5, #0]
  6350. 8002d82: bd38 pop {r3, r4, r5, pc}
  6351. 8002d84: 20000288 .word 0x20000288
  6352. 08002d88 <_close>:
  6353. 8002d88: 2258 movs r2, #88 ; 0x58
  6354. 8002d8a: 4b02 ldr r3, [pc, #8] ; (8002d94 <_close+0xc>)
  6355. 8002d8c: f04f 30ff mov.w r0, #4294967295
  6356. 8002d90: 601a str r2, [r3, #0]
  6357. 8002d92: 4770 bx lr
  6358. 8002d94: 20000288 .word 0x20000288
  6359. 08002d98 <_fstat>:
  6360. 8002d98: 2258 movs r2, #88 ; 0x58
  6361. 8002d9a: 4b02 ldr r3, [pc, #8] ; (8002da4 <_fstat+0xc>)
  6362. 8002d9c: f04f 30ff mov.w r0, #4294967295
  6363. 8002da0: 601a str r2, [r3, #0]
  6364. 8002da2: 4770 bx lr
  6365. 8002da4: 20000288 .word 0x20000288
  6366. 08002da8 <_isatty>:
  6367. 8002da8: 2258 movs r2, #88 ; 0x58
  6368. 8002daa: 4b02 ldr r3, [pc, #8] ; (8002db4 <_isatty+0xc>)
  6369. 8002dac: 2000 movs r0, #0
  6370. 8002dae: 601a str r2, [r3, #0]
  6371. 8002db0: 4770 bx lr
  6372. 8002db2: bf00 nop
  6373. 8002db4: 20000288 .word 0x20000288
  6374. 08002db8 <_lseek>:
  6375. 8002db8: 2258 movs r2, #88 ; 0x58
  6376. 8002dba: 4b02 ldr r3, [pc, #8] ; (8002dc4 <_lseek+0xc>)
  6377. 8002dbc: f04f 30ff mov.w r0, #4294967295
  6378. 8002dc0: 601a str r2, [r3, #0]
  6379. 8002dc2: 4770 bx lr
  6380. 8002dc4: 20000288 .word 0x20000288
  6381. 08002dc8 <_read>:
  6382. 8002dc8: 2258 movs r2, #88 ; 0x58
  6383. 8002dca: 4b02 ldr r3, [pc, #8] ; (8002dd4 <_read+0xc>)
  6384. 8002dcc: f04f 30ff mov.w r0, #4294967295
  6385. 8002dd0: 601a str r2, [r3, #0]
  6386. 8002dd2: 4770 bx lr
  6387. 8002dd4: 20000288 .word 0x20000288
  6388. 08002dd8 <_sbrk>:
  6389. 8002dd8: 4b04 ldr r3, [pc, #16] ; (8002dec <_sbrk+0x14>)
  6390. 8002dda: 4602 mov r2, r0
  6391. 8002ddc: 6819 ldr r1, [r3, #0]
  6392. 8002dde: b909 cbnz r1, 8002de4 <_sbrk+0xc>
  6393. 8002de0: 4903 ldr r1, [pc, #12] ; (8002df0 <_sbrk+0x18>)
  6394. 8002de2: 6019 str r1, [r3, #0]
  6395. 8002de4: 6818 ldr r0, [r3, #0]
  6396. 8002de6: 4402 add r2, r0
  6397. 8002de8: 601a str r2, [r3, #0]
  6398. 8002dea: 4770 bx lr
  6399. 8002dec: 200000cc .word 0x200000cc
  6400. 8002df0: 2000028c .word 0x2000028c
  6401. 08002df4 <_init>:
  6402. 8002df4: b5f8 push {r3, r4, r5, r6, r7, lr}
  6403. 8002df6: bf00 nop
  6404. 8002df8: bcf8 pop {r3, r4, r5, r6, r7}
  6405. 8002dfa: bc08 pop {r3}
  6406. 8002dfc: 469e mov lr, r3
  6407. 8002dfe: 4770 bx lr
  6408. 08002e00 <_fini>:
  6409. 8002e00: b5f8 push {r3, r4, r5, r6, r7, lr}
  6410. 8002e02: bf00 nop
  6411. 8002e04: bcf8 pop {r3, r4, r5, r6, r7}
  6412. 8002e06: bc08 pop {r3}
  6413. 8002e08: 469e mov lr, r3
  6414. 8002e0a: 4770 bx lr