stm32f4xx_hal_uart.lst 514 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431
  1. ARM GAS /tmp/ccD7nRW1.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .eabi_attribute 27, 1
  4. 3 .eabi_attribute 28, 1
  5. 4 .eabi_attribute 20, 1
  6. 5 .eabi_attribute 21, 1
  7. 6 .eabi_attribute 23, 3
  8. 7 .eabi_attribute 24, 1
  9. 8 .eabi_attribute 25, 1
  10. 9 .eabi_attribute 26, 1
  11. 10 .eabi_attribute 30, 1
  12. 11 .eabi_attribute 34, 1
  13. 12 .eabi_attribute 18, 4
  14. 13 .file "stm32f4xx_hal_uart.c"
  15. 14 .text
  16. 15 .Ltext0:
  17. 16 .cfi_sections .debug_frame
  18. 17 .section .text.UART_EndTxTransfer,"ax",%progbits
  19. 18 .align 1
  20. 19 .syntax unified
  21. 20 .thumb
  22. 21 .thumb_func
  23. 22 .fpu fpv4-sp-d16
  24. 24 UART_EndTxTransfer:
  25. 25 .LFB174:
  26. 26 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c"
  27. 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  28. 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ******************************************************************************
  29. 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @file stm32f4xx_hal_uart.c
  30. 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @author MCD Application Team
  31. 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART HAL module driver.
  32. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This file provides firmware functions to manage the following
  33. 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART).
  34. 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Initialization and de-initialization functions
  35. 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + IO operation functions
  36. 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral Control functions
  37. 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral State and Errors functions
  38. 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim
  39. 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==============================================================================
  40. 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### How to use this driver #####
  41. 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==============================================================================
  42. 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  43. 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The UART HAL driver can be used as follows:
  44. 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  45. 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart).
  46. 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API:
  47. 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) Enable the USARTx interface clock.
  48. 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) UART pins configuration:
  49. 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the clock for the UART GPIOs.
  50. 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure these UART pins (TX as alternate function pull-up, RX as alternate func
  51. 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT()
  52. 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_IT() APIs):
  53. 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority.
  54. 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the NVIC USART IRQ handle.
  55. 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA()
  56. 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_DMA() APIs):
  57. 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Declare a DMA handle structure for the Tx/Rx stream.
  58. 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the DMAx interface clock.
  59. ARM GAS /tmp/ccD7nRW1.s page 2
  60. 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the declared DMA handle structure with the required
  61. 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Tx/Rx parameters.
  62. 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the DMA Tx/Rx stream.
  63. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle.
  64. 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the priority and enable the NVIC for the transfer complete
  65. 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** interrupt on the DMA Tx/Rx stream.
  66. 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority and enable the NVIC USART IRQ handle
  67. 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (used for last byte sending completion detection in DMA non circular mode)
  68. 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  69. 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Hardware
  70. 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** flow control and Mode(Receiver/Transmitter) in the huart Init structure.
  71. 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  72. 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART asynchronous mode, initialize the UART registers by calling
  73. 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_Init() API.
  74. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  75. 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART Half duplex mode, initialize the UART registers by calling
  76. 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_HalfDuplex_Init() API.
  77. 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  78. 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the LIN mode, initialize the UART registers by calling the HAL_LIN_Init() API.
  79. 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  80. 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the Multi-Processor mode, initialize the UART registers by calling
  81. 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_MultiProcessor_Init() API.
  82. 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  83. 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  84. 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) The specific UART interrupts (Transmission complete interrupt,
  85. 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RXNE interrupt and Error Interrupts) will be managed using the macros
  86. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() inside the transmit
  87. 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and receive process.
  88. 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  89. 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  90. 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) These APIs (HAL_UART_Init() and HAL_HalfDuplex_Init()) configure also the
  91. 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** low level Hardware GPIO, CLOCK, CORTEX...etc) by calling the customized
  92. 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit() API.
  93. 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  94. 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Callback registration #####
  95. 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==================================
  96. 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  97. 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  98. 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The compilation define USE_HAL_UART_REGISTER_CALLBACKS when set to 1
  99. 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** allows the user to configure dynamically the driver callbacks.
  100. 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  101. 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  102. 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Use Function @ref HAL_UART_RegisterCallback() to register a user callback.
  103. 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Function @ref HAL_UART_RegisterCallback() allows to register following callbacks:
  104. 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback.
  105. 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback.
  106. 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback.
  107. 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback.
  108. 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback.
  109. 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback.
  110. 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback.
  111. 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback.
  112. 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit.
  113. 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit.
  114. 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
  115. 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and a pointer to the user callback function.
  116. 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  117. ARM GAS /tmp/ccD7nRW1.s page 3
  118. 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  119. 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Use function @ref HAL_UART_UnRegisterCallback() to reset a callback to the default
  120. 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** weak (surcharged) function.
  121. 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @ref HAL_UART_UnRegisterCallback() takes as parameters the HAL peripheral handle,
  122. 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the Callback ID.
  123. 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function allows to reset following callbacks:
  124. 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback.
  125. 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback.
  126. 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback.
  127. 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback.
  128. 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback.
  129. 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback.
  130. 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback.
  131. 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback.
  132. 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit.
  133. 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit.
  134. 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  135. 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  136. 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** By default, after the @ref HAL_UART_Init() and when the state is HAL_UART_STATE_RESET
  137. 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** all callbacks are set to the corresponding weak (surcharged) functions:
  138. 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** examples @ref HAL_UART_TxCpltCallback(), @ref HAL_UART_RxHalfCpltCallback().
  139. 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done for MspInit and MspDeInit functions that are respectively
  140. 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** reset to the legacy weak (surcharged) functions in the @ref HAL_UART_Init()
  141. 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and @ref HAL_UART_DeInit() only when these callbacks are null (not registered beforehand).
  142. 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If not, MspInit or MspDeInit are not null, the @ref HAL_UART_Init() and @ref HAL_UART_DeInit()
  143. 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand).
  144. 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  145. 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  146. 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Callbacks can be registered/unregistered in HAL_UART_STATE_READY state only.
  147. 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done MspInit/MspDeInit that can be registered/unregistered
  148. 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in HAL_UART_STATE_READY or HAL_UART_STATE_RESET state, thus registered (user)
  149. 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MspInit/DeInit callbacks can be used during the Init/DeInit.
  150. 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In that case first register the MspInit/MspDeInit user callbacks
  151. 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using @ref HAL_UART_RegisterCallback() before calling @ref HAL_UART_DeInit()
  152. 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or @ref HAL_UART_Init() function.
  153. 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  154. 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  155. 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** When The compilation define USE_HAL_UART_REGISTER_CALLBACKS is set to 0 or
  156. 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** not defined, the callback registration feature is not available
  157. 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and weak (surcharged) callbacks are used.
  158. 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  159. 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  160. 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Three operation modes are available within this driver :
  161. 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  162. 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Polling mode IO operation ***
  163. 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =================================
  164. 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  165. 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in blocking mode using HAL_UART_Transmit()
  166. 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in blocking mode using HAL_UART_Receive()
  167. 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  168. 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Interrupt mode IO operation ***
  169. 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ===================================
  170. 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  171. 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in non blocking mode using HAL_UART_Transmit_IT()
  172. 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can
  173. 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback
  174. 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode using HAL_UART_Receive_IT()
  175. ARM GAS /tmp/ccD7nRW1.s page 4
  176. 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of transfer HAL_UART_RxCpltCallback is executed and user can
  177. 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxCpltCallback
  178. 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) In case of transfer Error, HAL_UART_ErrorCallback() function is executed and user can
  179. 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_ErrorCallback
  180. 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  181. 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** DMA mode IO operation ***
  182. 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==============================
  183. 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  184. 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in non blocking mode (DMA) using HAL_UART_Transmit_DMA()
  185. 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of half transfer HAL_UART_TxHalfCpltCallback is executed and user ca
  186. 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxHalfCpltCallback
  187. 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can
  188. 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback
  189. 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode (DMA) using HAL_UART_Receive_DMA()
  190. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of half transfer HAL_UART_RxHalfCpltCallback is executed and user can
  191. 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxHalfCpltCallback
  192. 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of transfer HAL_UART_RxCpltCallback is executed and user can
  193. 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxCpltCallback
  194. 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) In case of transfer Error, HAL_UART_ErrorCallback() function is executed and user can
  195. 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_ErrorCallback
  196. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Pause the DMA Transfer using HAL_UART_DMAPause()
  197. 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Resume the DMA Transfer using HAL_UART_DMAResume()
  198. 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Stop the DMA Transfer using HAL_UART_DMAStop()
  199. 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  200. 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** UART HAL driver macros list ***
  201. 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================
  202. 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  203. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Below the list of most used macros in UART HAL driver.
  204. 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  205. 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE: Enable the UART peripheral
  206. 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE: Disable the UART peripheral
  207. 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_FLAG : Check whether the specified UART flag is set or not
  208. 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_CLEAR_FLAG : Clear the specified UART pending flag
  209. 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE_IT: Enable the specified UART interrupt
  210. 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE_IT: Disable the specified UART interrupt
  211. 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_IT_SOURCE: Check whether the specified UART interrupt has occurred or not
  212. 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  213. 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  214. 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) You can refer to the UART HAL driver header file for more useful macros
  215. 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  216. 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim
  217. 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  218. 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) Additionnal remark: If the parity is enabled, then the MSB bit of the data written
  219. 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit.
  220. 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits),
  221. 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the possible UART frame formats are as listed in the following table:
  222. 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+
  223. 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | M bit | PCE bit | UART frame |
  224. 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------------------|---------------------------------------|
  225. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 0 | | SB | 8 bit data | STB | |
  226. 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------|
  227. 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 1 | | SB | 7 bit data | PB | STB | |
  228. 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------|
  229. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 0 | | SB | 9 bit data | STB | |
  230. 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------|
  231. 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 1 | | SB | 8 bit data | PB | STB | |
  232. 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+
  233. ARM GAS /tmp/ccD7nRW1.s page 5
  234. 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ******************************************************************************
  235. 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @attention
  236. 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *
  237. 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
  238. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * All rights reserved.</center></h2>
  239. 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *
  240. 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This software component is licensed by ST under BSD 3-Clause license,
  241. 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the "License"; You may not use this file except in compliance with the
  242. 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * License. You may obtain a copy of the License at:
  243. 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * opensource.org/licenses/BSD-3-Clause
  244. 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *
  245. 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ******************************************************************************
  246. 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  247. 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  248. 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Includes ------------------------------------------------------------------*/
  249. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #include "stm32f4xx_hal.h"
  250. 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  251. 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup STM32F4xx_HAL_Driver
  252. 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  253. 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  254. 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  255. 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART UART
  256. 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief HAL UART module driver
  257. 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  258. 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  259. 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #ifdef HAL_UART_MODULE_ENABLED
  260. 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  261. 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private typedef -----------------------------------------------------------*/
  262. 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private define ------------------------------------------------------------*/
  263. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Constants
  264. 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  265. 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  266. 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  267. 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @}
  268. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  269. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private macro -------------------------------------------------------------*/
  270. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private variables ---------------------------------------------------------*/
  271. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private function prototypes -----------------------------------------------*/
  272. 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Functions UART Private Functions
  273. 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  274. 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  275. 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  276. 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  277. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart);
  278. 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  279. 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
  280. 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
  281. 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma);
  282. 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma);
  283. 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma);
  284. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma);
  285. 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma);
  286. 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma);
  287. 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma);
  288. 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma);
  289. 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma);
  290. 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma);
  291. ARM GAS /tmp/ccD7nRW1.s page 6
  292. 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart);
  293. 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart);
  294. 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart);
  295. 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag
  296. 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_SetConfig(UART_HandleTypeDef *huart);
  297. 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  298. 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  299. 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @}
  300. 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  301. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  302. 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Exported functions ---------------------------------------------------------*/
  303. 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions UART Exported Functions
  304. 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  305. 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  306. 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  307. 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions
  308. 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialization and Configuration functions
  309. 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *
  310. 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim
  311. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ===============================================================================
  312. 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Initialization and Configuration functions #####
  313. 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ===============================================================================
  314. 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  315. 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy
  316. 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in asynchronous mode.
  317. 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) For the asynchronous mode only these parameters can be configured:
  318. 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Baud Rate
  319. 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Word Length
  320. 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Stop Bit
  321. 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written
  322. 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit.
  323. 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits),
  324. 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** please refer to Reference manual for possible UART frame formats.
  325. 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Hardware flow control
  326. 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Receiver/transmitter modes
  327. 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Over Sampling Method
  328. 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  329. 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init() and HAL_MultiProcessor_Init() APIs
  330. 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** follow respectively the UART asynchronous, UART Half duplex, LIN and Multi-Processor configurat
  331. 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** procedures (details for the procedures are available in reference manual
  332. 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (RM0430 for STM32F4X3xx MCUs and RM0402 for STM32F412xx MCUs
  333. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0383 for STM32F411xC/E MCUs and RM0401 for STM32F410xx MCUs
  334. 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0090 for STM32F4X5xx/STM32F4X7xx/STM32F429xx/STM32F439xx MCUs
  335. 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0390 for STM32F446xx MCUs and RM0386 for STM32F469xx/STM32F479xx MCUs)).
  336. 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  337. 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim
  338. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  339. 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  340. 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  341. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  342. 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the UART mode according to the specified parameters in
  343. 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the UART_InitTypeDef and create the associated handle.
  344. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  345. 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  346. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  347. 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  348. 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
  349. ARM GAS /tmp/ccD7nRW1.s page 7
  350. 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  351. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  352. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL)
  353. 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  354. 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  355. 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  356. 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  357. 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  358. 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE)
  359. 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  360. 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The hardware flow control is available only for USART1, USART2, USART3 and USART6 */
  361. 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance));
  362. 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl));
  363. 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  364. 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  365. 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  366. 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
  367. 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  368. 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength));
  369. 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling));
  370. 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  371. 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET)
  372. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  373. 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */
  374. 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
  375. 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  376. 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  377. 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart);
  378. 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  379. 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL)
  380. 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  381. 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit;
  382. 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  383. 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  384. 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */
  385. 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart);
  386. 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  387. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
  388. 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart);
  389. 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  390. 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  391. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  392. 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  393. 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  394. 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */
  395. 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
  396. 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  397. 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */
  398. 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart);
  399. 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  400. 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In asynchronous mode, the following bits must be kept cleared:
  401. 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register,
  402. 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/
  403. 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
  404. 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
  405. 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  406. 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */
  407. ARM GAS /tmp/ccD7nRW1.s page 8
  408. 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
  409. 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  410. 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */
  411. 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  412. 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  413. 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  414. 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  415. 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  416. 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  417. 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  418. 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  419. 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the half-duplex mode according to the specified
  420. 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle.
  421. 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  422. 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  423. 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  424. 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  425. 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart)
  426. 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  427. 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  428. 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL)
  429. 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  430. 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  431. 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  432. 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  433. 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  434. 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance));
  435. 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength));
  436. 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling));
  437. 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  438. 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET)
  439. 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  440. 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */
  441. 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
  442. 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  443. 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  444. 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart);
  445. 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  446. 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL)
  447. 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  448. 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit;
  449. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  450. 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  451. 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */
  452. 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart);
  453. 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  454. 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
  455. 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart);
  456. 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  457. 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  458. 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  459. 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  460. 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  461. 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */
  462. 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
  463. 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  464. 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */
  465. ARM GAS /tmp/ccD7nRW1.s page 9
  466. 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart);
  467. 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  468. 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In half-duplex mode, the following bits must be kept cleared:
  469. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register,
  470. 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/
  471. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
  472. 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN));
  473. 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  474. 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */
  475. 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL);
  476. 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  477. 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */
  478. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
  479. 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  480. 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/
  481. 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  482. 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  483. 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  484. 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  485. 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  486. 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  487. 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  488. 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  489. 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the LIN mode according to the specified
  490. 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle.
  491. 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  492. 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  493. 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param BreakDetectLength Specifies the LIN break detection length.
  494. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values:
  495. 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_10B: 10-bit break detection
  496. 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_11B: 11-bit break detection
  497. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  498. 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  499. 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength)
  500. 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  501. 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  502. 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL)
  503. 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  504. 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  505. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  506. 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  507. 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the LIN UART instance */
  508. 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance));
  509. 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  510. 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Break detection length parameter */
  511. 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength));
  512. 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength));
  513. 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling));
  514. 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  515. 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET)
  516. 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  517. 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */
  518. 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
  519. 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  520. 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  521. 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart);
  522. 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  523. ARM GAS /tmp/ccD7nRW1.s page 10
  524. 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL)
  525. 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  526. 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit;
  527. 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  528. 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  529. 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */
  530. 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart);
  531. 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  532. 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
  533. 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart);
  534. 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  535. 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  536. 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  537. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  538. 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  539. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */
  540. 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
  541. 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  542. 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */
  543. 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart);
  544. 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  545. 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In LIN mode, the following bits must be kept cleared:
  546. 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - CLKEN bits in the USART_CR2 register,
  547. 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/
  548. 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN));
  549. 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN));
  550. 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  551. 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the LIN mode by setting the LINEN bit in the CR2 register */
  552. 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_LINEN);
  553. 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  554. 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART LIN Break detection length. */
  555. 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL);
  556. 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength);
  557. 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  558. 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */
  559. 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
  560. 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  561. 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/
  562. 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  563. 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  564. 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  565. 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  566. 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  567. 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  568. 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  569. 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  570. 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the Multi-Processor mode according to the specified
  571. 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle.
  572. 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  573. 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  574. 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Address USART address
  575. 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param WakeUpMethod specifies the USART wake-up method.
  576. 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values:
  577. 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_IDLELINE: Wake-up by an idle line detection
  578. 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_ADDRESSMARK: Wake-up by an address mark
  579. 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  580. 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  581. ARM GAS /tmp/ccD7nRW1.s page 11
  582. 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake
  583. 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  584. 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  585. 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL)
  586. 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  587. 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  588. 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  589. 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  590. 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  591. 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
  592. 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  593. 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Address & wake up method parameters */
  594. 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod));
  595. 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_ADDRESS(Address));
  596. 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength));
  597. 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling));
  598. 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  599. 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET)
  600. 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  601. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */
  602. 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
  603. 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  604. 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  605. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart);
  606. 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  607. 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL)
  608. 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  609. 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit;
  610. 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  611. 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  612. 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */
  613. 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart);
  614. 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  615. 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
  616. 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart);
  617. 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  618. 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  619. 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  620. 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  621. 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  622. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */
  623. 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
  624. 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  625. 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */
  626. 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart);
  627. 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  628. 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In Multi-Processor mode, the following bits must be kept cleared:
  629. 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register,
  630. 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register */
  631. 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
  632. 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
  633. 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  634. 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART address node */
  635. 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD);
  636. 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address);
  637. 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  638. 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the wake up method by setting the WAKE bit in the CR1 register */
  639. ARM GAS /tmp/ccD7nRW1.s page 12
  640. 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE);
  641. 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod);
  642. 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  643. 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */
  644. 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
  645. 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  646. 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */
  647. 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  648. 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  649. 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  650. 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  651. 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  652. 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  653. 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  654. 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  655. 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DeInitializes the UART peripheral.
  656. 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  657. 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  658. 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  659. 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  660. 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart)
  661. 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  662. 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  663. 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL)
  664. 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  665. 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  666. 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  667. 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  668. 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  669. 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
  670. 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  671. 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  672. 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  673. 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the Peripheral */
  674. 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
  675. 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  676. 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  677. 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspDeInitCallback == NULL)
  678. 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  679. 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit;
  680. 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  681. 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */
  682. 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback(huart);
  683. 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  684. 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */
  685. 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspDeInit(huart);
  686. 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  687. 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  688. 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  689. 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET;
  690. 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET;
  691. 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  692. 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlock */
  693. 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  694. 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  695. 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  696. 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  697. ARM GAS /tmp/ccD7nRW1.s page 13
  698. 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  699. 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  700. 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP Init.
  701. 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  702. 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  703. 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  704. 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  705. 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart)
  706. 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  707. 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  708. 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  709. 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
  710. 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspInit could be implemented in the user file
  711. 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  712. 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  713. 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  714. 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  715. 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP DeInit.
  716. 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  717. 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  718. 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  719. 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  720. 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart)
  721. 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  722. 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  723. 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  724. 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
  725. 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspDeInit could be implemented in the user file
  726. 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  727. 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  728. 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  729. 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  730. 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  731. 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Register a User UART Callback
  732. 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * To be used instead of the weak predefined callback
  733. 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle
  734. 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be registered
  735. 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values:
  736. 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID
  737. 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID
  738. 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID
  739. 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID
  740. 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID
  741. 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID
  742. 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID
  743. 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID
  744. 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID
  745. 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID
  746. 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pCallback pointer to the Callback function
  747. 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  748. 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  749. 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C
  750. 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  751. 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK;
  752. 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  753. 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pCallback == NULL)
  754. 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  755. ARM GAS /tmp/ccD7nRW1.s page 14
  756. 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */
  757. 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
  758. 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  759. 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  760. 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  761. 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */
  762. 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  763. 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  764. 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY)
  765. 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  766. 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID)
  767. 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  768. 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID :
  769. 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = pCallback;
  770. 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  771. 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  772. 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID :
  773. 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = pCallback;
  774. 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  775. 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  776. 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID :
  777. 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = pCallback;
  778. 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  779. 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  780. 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID :
  781. 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = pCallback;
  782. 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  783. 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  784. 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID :
  785. 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = pCallback;
  786. 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  787. 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  788. 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID :
  789. 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = pCallback;
  790. 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  791. 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  792. 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID :
  793. 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = pCallback;
  794. 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  795. 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  796. 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID :
  797. 758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = pCallback;
  798. 759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  799. 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  800. 761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID :
  801. 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback;
  802. 763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  803. 764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  804. 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID :
  805. 766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback;
  806. 767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  807. 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  808. 769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default :
  809. 770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */
  810. 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
  811. 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  812. 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */
  813. ARM GAS /tmp/ccD7nRW1.s page 15
  814. 774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR;
  815. 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  816. 776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  817. 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  818. 778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (huart->gState == HAL_UART_STATE_RESET)
  819. 779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  820. 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID)
  821. 781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  822. 782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID :
  823. 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback;
  824. 784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  825. 785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  826. 786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID :
  827. 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback;
  828. 788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  829. 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  830. 790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default :
  831. 791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */
  832. 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
  833. 793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  834. 794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */
  835. 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR;
  836. 796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  837. 797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  838. 798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  839. 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  840. 800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  841. 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */
  842. 802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
  843. 803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  844. 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */
  845. 805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR;
  846. 806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  847. 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  848. 808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */
  849. 809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  850. 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  851. 811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status;
  852. 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  853. 813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  854. 814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  855. 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Unregister an UART Callback
  856. 816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART callaback is redirected to the weak predefined callback
  857. 817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle
  858. 818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be unregistered
  859. 819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values:
  860. 820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID
  861. 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID
  862. 822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID
  863. 823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID
  864. 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID
  865. 825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID
  866. 826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID
  867. 827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID
  868. 828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID
  869. 829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID
  870. 830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  871. ARM GAS /tmp/ccD7nRW1.s page 16
  872. 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  873. 832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef
  874. 833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  875. 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK;
  876. 835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  877. 836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */
  878. 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  879. 838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  880. 839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_UART_STATE_READY == huart->gState)
  881. 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  882. 841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID)
  883. 842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  884. 843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID :
  885. 844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHa
  886. 845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  887. 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  888. 847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID :
  889. 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpl
  890. 849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  891. 850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  892. 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID :
  893. 852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHal
  894. 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  895. 854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  896. 855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID :
  897. 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpl
  898. 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  899. 858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  900. 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID :
  901. 860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak Error
  902. 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  903. 862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  904. 863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID :
  905. 864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak Abort
  906. 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  907. 866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  908. 867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID :
  909. 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak Abort
  910. 869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  911. 870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  912. 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID :
  913. 872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak Abort
  914. 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  915. 874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  916. 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID :
  917. 876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspIn
  918. 877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  919. 878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  920. 879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID :
  921. 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDe
  922. 881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  923. 882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  924. 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default :
  925. 884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */
  926. 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
  927. 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  928. 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */
  929. ARM GAS /tmp/ccD7nRW1.s page 17
  930. 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR;
  931. 889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  932. 890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  933. 891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  934. 892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (HAL_UART_STATE_RESET == huart->gState)
  935. 893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  936. 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID)
  937. 895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  938. 896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID :
  939. 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit;
  940. 898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  941. 899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  942. 900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID :
  943. 901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit;
  944. 902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  945. 903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  946. 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default :
  947. 905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */
  948. 906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
  949. 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  950. 908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */
  951. 909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR;
  952. 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break;
  953. 911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  954. 912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  955. 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  956. 914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  957. 915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */
  958. 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
  959. 917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  960. 918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */
  961. 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR;
  962. 920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  963. 921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  964. 922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */
  965. 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  966. 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  967. 925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status;
  968. 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  969. 927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  970. 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  971. 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  972. 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @}
  973. 931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  974. 932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  975. 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group2 IO operation functions
  976. 934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Transmit and Receive functions
  977. 935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *
  978. 936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim
  979. 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ===============================================================================
  980. 938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### IO operation functions #####
  981. 939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ===============================================================================
  982. 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to manage the UART asynchronous
  983. 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and Half duplex data transfers.
  984. 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  985. 943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) There are two modes of transfer:
  986. 944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Blocking mode: The communication is performed in polling mode.
  987. ARM GAS /tmp/ccD7nRW1.s page 18
  988. 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL status of all data processing is returned by the same function
  989. 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** after finishing transfer.
  990. 947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Non-Blocking mode: The communication is performed using Interrupts
  991. 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or DMA, these API's return the HAL status.
  992. 949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The end of the data processing will be indicated through the
  993. 950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when
  994. 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using DMA mode.
  995. 952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks
  996. 953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will be executed respectively at the end of the transmit or receive process
  997. 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a communication error is
  998. 955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  999. 956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Blocking mode API's are :
  1000. 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit()
  1001. 958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive()
  1002. 959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1003. 960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with Interrupt are :
  1004. 961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_IT()
  1005. 962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_IT()
  1006. 963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_IRQHandler()
  1007. 964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1008. 965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with DMA are :
  1009. 966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_DMA()
  1010. 967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_DMA()
  1011. 968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAPause()
  1012. 969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAResume()
  1013. 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAStop()
  1014. 971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1015. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode:
  1016. 973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxHalfCpltCallback()
  1017. 974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxCpltCallback()
  1018. 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxHalfCpltCallback()
  1019. 976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxCpltCallback()
  1020. 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_ErrorCallback()
  1021. 978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1022. 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode transfers could be aborted using Abort API's :
  1023. 980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort()
  1024. 981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit()
  1025. 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive()
  1026. 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort_IT()
  1027. 984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit_IT()
  1028. 985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive_IT()
  1029. 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1030. 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For Abort services based on interrupts (HAL_UART_Abortxxx_IT), a set of Abort Complete Call
  1031. 988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortCpltCallback()
  1032. 989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmitCpltCallback()
  1033. 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceiveCpltCallback()
  1034. 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1035. 992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) In Non-Blocking mode transfers, possible errors are split into 2 categories.
  1036. 993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Errors are handled as follows :
  1037. 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but er
  1038. 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** to be evaluated by user : this concerns Frame Error, Parity Error or Noise Error in Inte
  1039. 996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Received character is then retrieved and stored in Rx buffer, Error code is set to allow
  1040. 997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_ErrorCallback() user callback is executed. Transfer is kept ongoing on UART
  1041. 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If user wants to abort it, Abort services should be called by user.
  1042. 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Blocking : Transfer could not be completed properly and is aborte
  1043. 1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode.
  1044. 1001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Error code is set to allow user to identify error type, and HAL_UART_ErrorCallback() use
  1045. ARM GAS /tmp/ccD7nRW1.s page 19
  1046. 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1047. 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** -@- In the Half duplex communication, it is forbidden to run the transmit
  1048. 1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and receive process in parallel, the UART state HAL_UART_STATE_BUSY_TX_RX can't be useful.
  1049. 1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1050. 1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim
  1051. 1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  1052. 1008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1053. 1009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1054. 1010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1055. 1011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in blocking mode.
  1056. 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1057. 1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1058. 1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer
  1059. 1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be sent
  1060. 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration
  1061. 1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1062. 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1063. 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint3
  1064. 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1065. 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp;
  1066. 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U;
  1067. 1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1068. 1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */
  1069. 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY)
  1070. 1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1071. 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U))
  1072. 1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1073. 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  1074. 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1075. 1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1076. 1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1077. 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1078. 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1079. 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1080. 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
  1081. 1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1082. 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout managment */
  1083. 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick();
  1084. 1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1085. 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size;
  1086. 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size;
  1087. 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U)
  1088. 1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1089. 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount--;
  1090. 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B)
  1091. 1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1092. 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  1093. 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1094. 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1095. 1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1096. 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) pData;
  1097. 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (*tmp & (uint16_t)0x01FF);
  1098. 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  1099. 1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1100. 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U;
  1101. 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1102. 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1103. ARM GAS /tmp/ccD7nRW1.s page 20
  1104. 1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1105. 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U;
  1106. 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1107. 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1108. 1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1109. 1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1110. 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
  1111. 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1112. 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1113. 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1114. 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (*pData++ & (uint8_t)0xFF);
  1115. 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1116. 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1117. 1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1118. 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK)
  1119. 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1120. 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1121. 1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1122. 1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1123. 1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */
  1124. 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  1125. 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1126. 1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1127. 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1128. 1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1129. 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1130. 1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1131. 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1132. 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1133. 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  1134. 1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1135. 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1136. 1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1137. 1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1138. 1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in blocking mode.
  1139. 1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1140. 1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1141. 1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer
  1142. 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be received
  1143. 1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration
  1144. 1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1145. 1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1146. 1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32
  1147. 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1148. 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp;
  1149. 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U;
  1150. 1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1151. 1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */
  1152. 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY)
  1153. 1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1154. 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U))
  1155. 1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1156. 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  1157. 1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1158. 1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1159. 1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1160. 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1161. ARM GAS /tmp/ccD7nRW1.s page 21
  1162. 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1163. 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1164. 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
  1165. 1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1166. 1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout managment */
  1167. 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick();
  1168. 1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1169. 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size;
  1170. 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size;
  1171. 1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1172. 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the remain data to be received */
  1173. 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->RxXferCount > 0U)
  1174. 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1175. 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--;
  1176. 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B)
  1177. 1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1178. 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK
  1179. 1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1180. 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1181. 1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1182. 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) pData;
  1183. 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  1184. 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1185. 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF);
  1186. 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U;
  1187. 1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1188. 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1189. 1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1190. 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x00FF);
  1191. 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U;
  1192. 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1193. 1147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1194. 1148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1195. 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1196. 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1197. 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK
  1198. 1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1199. 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1200. 1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1201. 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  1202. 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1203. 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pData++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF);
  1204. 1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1205. 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1206. 1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1207. 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pData++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F);
  1208. 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1209. 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1210. 1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1211. 1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1212. 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1213. 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */
  1214. 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  1215. 1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1216. 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1217. 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1218. 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1219. ARM GAS /tmp/ccD7nRW1.s page 22
  1220. 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1221. 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1222. 1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1223. 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1224. 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  1225. 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1226. 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1227. 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1228. 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1229. 1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode.
  1230. 1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1231. 1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1232. 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer
  1233. 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be sent
  1234. 1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1235. 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1236. 1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
  1237. 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1238. 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */
  1239. 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY)
  1240. 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1241. 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U))
  1242. 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1243. 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  1244. 1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1245. 1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1246. 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1247. 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1248. 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1249. 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData;
  1250. 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size;
  1251. 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size;
  1252. 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1253. 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1254. 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
  1255. 1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1256. 1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1257. 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1258. 1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1259. 1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit data register empty Interrupt */
  1260. 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TXE);
  1261. 1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1262. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1263. 1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1264. 1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1265. 1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1266. 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  1267. 1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1268. 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1269. 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1270. 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1271. 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode.
  1272. 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1273. 1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1274. 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer
  1275. 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be received
  1276. 1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1277. ARM GAS /tmp/ccD7nRW1.s page 23
  1278. 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1279. 1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
  1280. 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1281. 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */
  1282. 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY)
  1283. 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1284. 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U))
  1285. 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1286. 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  1287. 1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1288. 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1289. 1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1290. 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1291. 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1292. 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData;
  1293. 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size;
  1294. 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size;
  1295. 1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1296. 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1297. 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
  1298. 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1299. 1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1300. 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1301. 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1302. 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */
  1303. 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_PE);
  1304. 1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1305. 1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */
  1306. 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_ERR);
  1307. 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1308. 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Data Register not empty Interrupt */
  1309. 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE);
  1310. 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1311. 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1312. 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1313. 1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1314. 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1315. 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  1316. 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1317. 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1318. 1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1319. 1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1320. 1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode.
  1321. 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1322. 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1323. 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer
  1324. 1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be sent
  1325. 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1326. 1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1327. 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
  1328. 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1329. 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp;
  1330. 1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1331. 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */
  1332. 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY)
  1333. 1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1334. 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U))
  1335. ARM GAS /tmp/ccD7nRW1.s page 24
  1336. 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1337. 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  1338. 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1339. 1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1340. 1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1341. 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1342. 1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1343. 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData;
  1344. 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size;
  1345. 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size;
  1346. 1297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1347. 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1348. 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
  1349. 1300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1350. 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */
  1351. 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt;
  1352. 1303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1353. 1304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */
  1354. 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt;
  1355. 1306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1356. 1307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */
  1357. 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferErrorCallback = UART_DMAError;
  1358. 1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1359. 1310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */
  1360. 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
  1361. 1312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1362. 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART transmit DMA stream */
  1363. 1314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint32_t *)&pData;
  1364. 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmatx, *(uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size);
  1365. 1316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1366. 1317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the TC flag in the SR register by writing 0 to it */
  1367. 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC);
  1368. 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1369. 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1370. 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1371. 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1372. 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for transmit request by setting the DMAT bit
  1373. 1324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */
  1374. 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1375. 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1376. 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1377. 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1378. 1329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1379. 1330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1380. 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  1381. 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1382. 1333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1383. 1334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1384. 1335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1385. 1336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode.
  1386. 1337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1387. 1338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1388. 1339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer
  1389. 1340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be received
  1390. 1341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When the UART parity is enabled (PCE = 1) the received data contains the parity bit.
  1391. 1342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1392. 1343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1393. ARM GAS /tmp/ccD7nRW1.s page 25
  1394. 1344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
  1395. 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1396. 1346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp;
  1397. 1347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1398. 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */
  1399. 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY)
  1400. 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1401. 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U))
  1402. 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1403. 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR;
  1404. 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1405. 1355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1406. 1356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1407. 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1408. 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1409. 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData;
  1410. 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size;
  1411. 1361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1412. 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1413. 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
  1414. 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1415. 1365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */
  1416. 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt;
  1417. 1367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1418. 1368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */
  1419. 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt;
  1420. 1370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1421. 1371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */
  1422. 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferErrorCallback = UART_DMAError;
  1423. 1373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1424. 1374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */
  1425. 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
  1426. 1376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1427. 1377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA stream */
  1428. 1378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint32_t *)&pData;
  1429. 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size);
  1430. 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1431. 1381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the Overrun flag just before enabling the DMA Rx request: can be mandatory for the sec
  1432. 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart);
  1433. 1383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1434. 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1435. 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1436. 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1437. 1387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */
  1438. 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
  1439. 1389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1440. 1390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */
  1441. 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
  1442. 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1443. 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for the receiver request by setting the DMAR bit
  1444. 1394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */
  1445. 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1446. 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1447. 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1448. 1398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1449. 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1450. 1400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1451. ARM GAS /tmp/ccD7nRW1.s page 26
  1452. 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  1453. 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1454. 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1455. 1404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1456. 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1457. 1406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Pauses the DMA Transfer.
  1458. 1407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1459. 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1460. 1409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1461. 1410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1462. 1411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart)
  1463. 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1464. 1413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  1465. 1414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1466. 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1467. 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1468. 1417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1469. 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT);
  1470. 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest)
  1471. 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1472. 1421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request */
  1473. 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1474. 1423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1475. 1424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1476. 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  1477. 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest)
  1478. 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1479. 1428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  1480. 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
  1481. 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  1482. 1431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1483. 1432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request */
  1484. 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1485. 1434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1486. 1435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1487. 1436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1488. 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1489. 1438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1490. 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1491. 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1492. 1441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1493. 1442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1494. 1443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Resumes the DMA Transfer.
  1495. 1444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1496. 1445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1497. 1446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1498. 1447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1499. 1448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart)
  1500. 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1501. 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  1502. 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  1503. 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1504. 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX)
  1505. 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1506. 1455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Tx request */
  1507. 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1508. 1457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1509. ARM GAS /tmp/ccD7nRW1.s page 27
  1510. 1458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1511. 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX)
  1512. 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1513. 1461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the Overrun flag before resuming the Rx transfer*/
  1514. 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart);
  1515. 1463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1516. 1464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reenable PE and ERR (Frame error, noise error, overrun error) interrupts */
  1517. 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
  1518. 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
  1519. 1467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1520. 1468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Rx request */
  1521. 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1522. 1470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1523. 1471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1524. 1472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  1525. 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  1526. 1474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1527. 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1528. 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1529. 1477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1530. 1478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1531. 1479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Stops the DMA Transfer.
  1532. 1480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  1533. 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  1534. 1482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1535. 1483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1536. 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart)
  1537. 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1538. 1486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  1539. 1487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application
  1540. 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback()
  1541. 1489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated
  1542. 1490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the correspond call back is executed HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback()
  1543. 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1544. 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1545. 1493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */
  1546. 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT);
  1547. 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest)
  1548. 1496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1549. 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1550. 1498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1551. 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream */
  1552. 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL)
  1553. 1501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1554. 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmatx);
  1555. 1503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1556. 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart);
  1557. 1505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1558. 1506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1559. 1507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */
  1560. 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  1561. 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest)
  1562. 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1563. 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1564. 1512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1565. 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */
  1566. 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  1567. ARM GAS /tmp/ccD7nRW1.s page 28
  1568. 1515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1569. 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmarx);
  1570. 1517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1571. 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart);
  1572. 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1573. 1520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1574. 1521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1575. 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1576. 1523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1577. 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1578. 1525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing transfers (blocking mode).
  1579. 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  1580. 1527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or
  1581. 1528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations :
  1582. 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx)
  1583. 1530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
  1584. 1531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode)
  1585. 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY
  1586. 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere
  1587. 1534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1588. 1535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1589. 1536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart)
  1590. 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1591. 1538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  1592. 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_
  1593. 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  1594. 1541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1595. 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
  1596. 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
  1597. 1544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1598. 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1599. 1546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1600. 1547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream: use blocking DMA Abort API (no callback) */
  1601. 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL)
  1602. 1549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1603. 1550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
  1604. 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
  1605. 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
  1606. 1553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1607. 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK)
  1608. 1555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1609. 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT)
  1610. 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1611. 1558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */
  1612. 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA;
  1613. 1560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1614. 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1615. 1562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1616. 1563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1617. 1564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1618. 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1619. 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1620. 1567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
  1621. 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  1622. 1569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1623. 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1624. 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1625. ARM GAS /tmp/ccD7nRW1.s page 29
  1626. 1572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream: use blocking DMA Abort API (no callback) */
  1627. 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  1628. 1574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1629. 1575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
  1630. 1576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
  1631. 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
  1632. 1578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1633. 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK)
  1634. 1580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1635. 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT)
  1636. 1582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1637. 1583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */
  1638. 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA;
  1639. 1585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1640. 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1641. 1587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1642. 1588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1643. 1589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1644. 1590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1645. 1591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1646. 1592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */
  1647. 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  1648. 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  1649. 1595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1650. 1596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */
  1651. 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1652. 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1653. 1599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState and huart->gState to Ready */
  1654. 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  1655. 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  1656. 1602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1657. 1603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1658. 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1659. 1605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1660. 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1661. 1607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (blocking mode).
  1662. 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  1663. 1609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt
  1664. 1610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations :
  1665. 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx)
  1666. 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
  1667. 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode)
  1668. 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY
  1669. 1615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere
  1670. 1616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1671. 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1672. 1618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart)
  1673. 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1674. 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
  1675. 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
  1676. 1622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1677. 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
  1678. 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
  1679. 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1680. 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1681. 1627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1682. 1628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */
  1683. ARM GAS /tmp/ccD7nRW1.s page 30
  1684. 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL)
  1685. 1630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1686. 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
  1687. 1632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
  1688. 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
  1689. 1634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1690. 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK)
  1691. 1636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1692. 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT)
  1693. 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1694. 1639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */
  1695. 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA;
  1696. 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1697. 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1698. 1643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1699. 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1700. 1645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1701. 1646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1702. 1647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1703. 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */
  1704. 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  1705. 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1706. 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */
  1707. 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  1708. 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1709. 1654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1710. 1655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1711. 1656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1712. 1657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1713. 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (blocking mode).
  1714. 1659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  1715. 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt
  1716. 1661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations :
  1717. 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx)
  1718. 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
  1719. 1664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode)
  1720. 1665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY
  1721. 1666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere
  1722. 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1723. 1668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1724. 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart)
  1725. 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1726. 1671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  1727. 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
  1728. 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  1729. 1674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1730. 1675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
  1731. 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  1732. 1677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1733. 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1734. 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1735. 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */
  1736. 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  1737. 1682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1738. 1683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
  1739. 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
  1740. 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
  1741. ARM GAS /tmp/ccD7nRW1.s page 31
  1742. 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1743. 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK)
  1744. 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1745. 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT)
  1746. 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1747. 1691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */
  1748. 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA;
  1749. 1693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1750. 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  1751. 1695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1752. 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1753. 1697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1754. 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1755. 1699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1756. 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */
  1757. 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  1758. 1702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1759. 1703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */
  1760. 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  1761. 1705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1762. 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1763. 1707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1764. 1708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1765. 1709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1766. 1710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing transfers (Interrupt mode).
  1767. 1711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  1768. 1712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or
  1769. 1713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations :
  1770. 1714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx)
  1771. 1715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
  1772. 1716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode)
  1773. 1717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY
  1774. 1718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback
  1775. 1719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be
  1776. 1720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex
  1777. 1721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1778. 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1779. 1723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart)
  1780. 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1781. 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U;
  1782. 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1783. 1727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  1784. 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_
  1785. 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  1786. 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1787. 1731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks sh
  1788. 1732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** before any call to DMA Abort functions */
  1789. 1733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Tx Handle is valid */
  1790. 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL)
  1791. 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1792. 1736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled.
  1793. 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */
  1794. 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
  1795. 1739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1796. 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback;
  1797. 1741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1798. 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1799. ARM GAS /tmp/ccD7nRW1.s page 32
  1800. 1743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1801. 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
  1802. 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1803. 1746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1804. 1747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Rx Handle is valid */
  1805. 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  1806. 1749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1807. 1750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled.
  1808. 1751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */
  1809. 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  1810. 1753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1811. 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback;
  1812. 1755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1813. 1756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1814. 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1815. 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
  1816. 1759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1817. 1760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1818. 1761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1819. 1762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
  1820. 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
  1821. 1764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1822. 1765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable DMA Tx at UART level */
  1823. 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1824. 1767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1825. 1768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use non blocking DMA Abort API (callback) */
  1826. 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL)
  1827. 1770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1828. 1771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Tx DMA Abort callback has already been initialised :
  1829. 1772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
  1830. 1773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1831. 1774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */
  1832. 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK)
  1833. 1776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1834. 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
  1835. 1778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1836. 1779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1837. 1780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1838. 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U;
  1839. 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1840. 1783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1841. 1784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1842. 1785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1843. 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
  1844. 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  1845. 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1846. 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1847. 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1848. 1791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use non blocking DMA Abort API (callback) */
  1849. 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  1850. 1793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1851. 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Rx DMA Abort callback has already been initialised :
  1852. 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
  1853. 1796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1854. 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */
  1855. 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
  1856. 1799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1857. ARM GAS /tmp/ccD7nRW1.s page 33
  1858. 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
  1859. 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U;
  1860. 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1861. 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1862. 1804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1863. 1805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U;
  1864. 1806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1865. 1807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1866. 1808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1867. 1809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1868. 1810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* if no DMA abort complete callback execution is required => call user Abort Complete callback *
  1869. 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (AbortCplt == 0x01U)
  1870. 1812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1871. 1813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */
  1872. 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  1873. 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  1874. 1816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1875. 1817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */
  1876. 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  1877. 1819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1878. 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */
  1879. 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  1880. 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  1881. 1823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1882. 1824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
  1883. 1825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  1884. 1826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */
  1885. 1827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart);
  1886. 1828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  1887. 1829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */
  1888. 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart);
  1889. 1831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  1890. 1832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1891. 1833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1892. 1834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1893. 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1894. 1836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1895. 1837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1896. 1838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (Interrupt mode).
  1897. 1839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  1898. 1840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt
  1899. 1841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations :
  1900. 1842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx)
  1901. 1843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
  1902. 1844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode)
  1903. 1845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY
  1904. 1846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback
  1905. 1847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be
  1906. 1848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex
  1907. 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1908. 1850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1909. 1851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart)
  1910. 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1911. 1853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
  1912. 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
  1913. 1855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1914. 1856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
  1915. ARM GAS /tmp/ccD7nRW1.s page 34
  1916. 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
  1917. 1858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1918. 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  1919. 1860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1920. 1861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */
  1921. 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL)
  1922. 1863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1923. 1864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback :
  1924. 1865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
  1925. 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback;
  1926. 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1927. 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */
  1928. 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK)
  1929. 1870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1930. 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */
  1931. 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback(huart->hdmatx);
  1932. 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1933. 1874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1934. 1875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1935. 1876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1936. 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */
  1937. 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  1938. 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1939. 1880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */
  1940. 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  1941. 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1942. 1883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
  1943. 1884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  1944. 1885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */
  1945. 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart);
  1946. 1887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  1947. 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */
  1948. 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart);
  1949. 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  1950. 1891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1951. 1892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1952. 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  1953. 1894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1954. 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */
  1955. 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  1956. 1897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1957. 1898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */
  1958. 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  1959. 1900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1960. 1901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
  1961. 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  1962. 1903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */
  1963. 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart);
  1964. 1905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  1965. 1906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */
  1966. 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart);
  1967. 1908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  1968. 1909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1969. 1910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1970. 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  1971. 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  1972. 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1973. ARM GAS /tmp/ccD7nRW1.s page 35
  1974. 1914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  1975. 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (Interrupt mode).
  1976. 1916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  1977. 1917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt
  1978. 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations :
  1979. 1919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx)
  1980. 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
  1981. 1921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode)
  1982. 1922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY
  1983. 1923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback
  1984. 1924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be
  1985. 1925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex
  1986. 1926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  1987. 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  1988. 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart)
  1989. 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1990. 1930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  1991. 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
  1992. 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  1993. 1933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1994. 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
  1995. 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  1996. 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  1997. 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  1998. 1938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  1999. 1939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */
  2000. 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  2001. 1941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2002. 1942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback :
  2003. 1943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
  2004. 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback;
  2005. 1945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2006. 1946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */
  2007. 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
  2008. 1948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2009. 1949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */
  2010. 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx);
  2011. 1951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2012. 1952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2013. 1953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  2014. 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2015. 1955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */
  2016. 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  2017. 1957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2018. 1958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */
  2019. 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  2020. 1960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2021. 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
  2022. 1962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2023. 1963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */
  2024. 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart);
  2025. 1965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2026. 1966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */
  2027. 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart);
  2028. 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2029. 1969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2030. 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2031. ARM GAS /tmp/ccD7nRW1.s page 36
  2032. 1971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  2033. 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2034. 1973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */
  2035. 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  2036. 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2037. 1976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */
  2038. 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  2039. 1978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2040. 1979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
  2041. 1980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2042. 1981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */
  2043. 1982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart);
  2044. 1983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2045. 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */
  2046. 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart);
  2047. 1986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2048. 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2049. 1988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2050. 1989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  2051. 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2052. 1991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2053. 1992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2054. 1993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART interrupt request.
  2055. 1994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2056. 1995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2057. 1996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2058. 1997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2059. 1998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
  2060. 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2061. 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR);
  2062. 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1);
  2063. 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3);
  2064. 2003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U;
  2065. 2004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  2066. 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2067. 2006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If no error occurs */
  2068. 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));
  2069. 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (errorflags == RESET)
  2070. 2009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2071. 2010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -------------------------------------------------*/
  2072. 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
  2073. 2012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2074. 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart);
  2075. 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  2076. 2015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2077. 2016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2078. 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2079. 2018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If some errors occur */
  2080. 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE
  2081. 2020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2082. 2021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART parity error interrupt occurred ----------------------------------*/
  2083. 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
  2084. 2023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2085. 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE;
  2086. 2025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2087. 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2088. 2027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART noise error interrupt occurred -----------------------------------*/
  2089. ARM GAS /tmp/ccD7nRW1.s page 37
  2090. 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  2091. 2029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2092. 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE;
  2093. 2031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2094. 2032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2095. 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART frame error interrupt occurred -----------------------------------*/
  2096. 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  2097. 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2098. 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE;
  2099. 2037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2100. 2038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2101. 2039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Over-Run interrupt occurred --------------------------------------*/
  2102. 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_ORE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
  2103. 2041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2104. 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_ORE;
  2105. 2043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2106. 2044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2107. 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call UART Error Call back function if need be --------------------------*/
  2108. 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE)
  2109. 2047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2110. 2048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -----------------------------------------------*/
  2111. 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
  2112. 2050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2113. 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart);
  2114. 2052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2115. 2053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2116. 2054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Overrun error occurs, or if any error occurs in DMA mode reception,
  2117. 2055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** consider error as blocking */
  2118. 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  2119. 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest)
  2120. 2058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2121. 2059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Blocking error : transfer is aborted
  2122. 2060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the UART state ready to be able to start again the process,
  2123. 2061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Disable Rx Interrupts, and disable Rx DMA request, if ongoing */
  2124. 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart);
  2125. 2063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2126. 2064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
  2127. 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  2128. 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2129. 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  2130. 2068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2131. 2069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */
  2132. 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  2133. 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2134. 2072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback :
  2135. 2073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */
  2136. 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError;
  2137. 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
  2138. 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2139. 2077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly XferAbortCallback function in case of error */
  2140. 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx);
  2141. 2079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2142. 2080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2143. 2081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  2144. 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2145. 2083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */
  2146. 2084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2147. ARM GAS /tmp/ccD7nRW1.s page 38
  2148. 2085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/
  2149. 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart);
  2150. 2087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2151. 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/
  2152. 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
  2153. 2090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2154. 2091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2155. 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2156. 2093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  2157. 2094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2158. 2095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */
  2159. 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2160. 2097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/
  2161. 2098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart);
  2162. 2099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2163. 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/
  2164. 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
  2165. 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2166. 2103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2167. 2104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2168. 2105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  2169. 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2170. 2107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Non Blocking error : transfer could go on.
  2171. 2108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Error is notified to user through user error callback */
  2172. 2109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2173. 2110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/
  2174. 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart);
  2175. 2112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2176. 2113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/
  2177. 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
  2178. 2115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2179. 2116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2180. 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  2181. 2118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2182. 2119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2183. 2120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  2184. 2121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */
  2185. 2122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2186. 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter ------------------------------------------------*/
  2187. 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
  2188. 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2189. 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Transmit_IT(huart);
  2190. 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  2191. 2128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2192. 2129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2193. 2130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter end --------------------------------------------*/
  2194. 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
  2195. 2132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2196. 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTransmit_IT(huart);
  2197. 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  2198. 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2199. 2136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2200. 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2201. 2138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2202. 2139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Tx Transfer completed callbacks.
  2203. 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2204. 2141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2205. ARM GAS /tmp/ccD7nRW1.s page 39
  2206. 2142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2207. 2143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2208. 2144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
  2209. 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2210. 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2211. 2147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2212. 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
  2213. 2149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxCpltCallback could be implemented in the user file
  2214. 2150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2215. 2151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2216. 2152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2217. 2153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2218. 2154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Tx Half Transfer completed callbacks.
  2219. 2155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2220. 2156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2221. 2157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2222. 2158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2223. 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart)
  2224. 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2225. 2161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2226. 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2227. 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
  2228. 2164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxHalfCpltCallback could be implemented in the user file
  2229. 2165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2230. 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2231. 2167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2232. 2168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2233. 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Transfer completed callbacks.
  2234. 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2235. 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2236. 2172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2237. 2173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2238. 2174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  2239. 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2240. 2176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2241. 2177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2242. 2178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
  2243. 2179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxCpltCallback could be implemented in the user file
  2244. 2180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2245. 2181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2246. 2182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2247. 2183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2248. 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Half Transfer completed callbacks.
  2249. 2185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2250. 2186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2251. 2187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2252. 2188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2253. 2189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)
  2254. 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2255. 2191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2256. 2192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2257. 2193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
  2258. 2194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxHalfCpltCallback could be implemented in the user file
  2259. 2195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2260. 2196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2261. 2197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2262. 2198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2263. ARM GAS /tmp/ccD7nRW1.s page 40
  2264. 2199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART error callbacks.
  2265. 2200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2266. 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2267. 2202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2268. 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2269. 2204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
  2270. 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2271. 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2272. 2207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2273. 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
  2274. 2209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_ErrorCallback could be implemented in the user file
  2275. 2210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2276. 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2277. 2212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2278. 2213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2279. 2214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Complete callback.
  2280. 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  2281. 2216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2282. 2217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2283. 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart)
  2284. 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2285. 2220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2286. 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2287. 2222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2288. 2223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
  2289. 2224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortCpltCallback can be implemented in the user file.
  2290. 2225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2291. 2226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2292. 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2293. 2228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2294. 2229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Complete callback.
  2295. 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  2296. 2231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2297. 2232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2298. 2233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart)
  2299. 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2300. 2235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2301. 2236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2302. 2237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2303. 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
  2304. 2239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file.
  2305. 2240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2306. 2241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2307. 2242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2308. 2243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2309. 2244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Receive Complete callback.
  2310. 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  2311. 2246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2312. 2247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2313. 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart)
  2314. 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2315. 2250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  2316. 2251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart);
  2317. 2252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2318. 2253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
  2319. 2254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file.
  2320. 2255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2321. ARM GAS /tmp/ccD7nRW1.s page 41
  2322. 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2323. 2257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2324. 2258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2325. 2259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @}
  2326. 2260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2327. 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2328. 2262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions
  2329. 2263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART control functions
  2330. 2264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *
  2331. 2265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim
  2332. 2266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==============================================================================
  2333. 2267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral Control functions #####
  2334. 2268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==============================================================================
  2335. 2269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  2336. 2270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to control the UART:
  2337. 2271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_LIN_SendBreak() API can be helpful to transmit the break character.
  2338. 2272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnterMuteMode() API can be helpful to enter the UART in mute mode.
  2339. 2273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_ExitMuteMode() API can be helpful to exit the UART mute mode by software
  2340. 2274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableTransmitter() API to enable the UART transmitter and disables the UART
  2341. 2275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableReceiver() API to enable the UART receiver and disables the UART trans
  2342. 2276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2343. 2277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim
  2344. 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  2345. 2279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2346. 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2347. 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2348. 2282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Transmits break characters.
  2349. 2283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2350. 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2351. 2285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  2352. 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2353. 2287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart)
  2354. 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2355. 2289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  2356. 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
  2357. 2291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2358. 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  2359. 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  2360. 2294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2361. 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  2362. 2296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2363. 2297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Send break characters */
  2364. 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_SBK);
  2365. 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2366. 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2367. 2301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2368. 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  2369. 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  2370. 2304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2371. 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  2372. 2306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2373. 2307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2374. 2308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2375. 2309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enters the UART in mute mode.
  2376. 2310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2377. 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2378. 2312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  2379. ARM GAS /tmp/ccD7nRW1.s page 42
  2380. 2313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2381. 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart)
  2382. 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2383. 2316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  2384. 2317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
  2385. 2318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2386. 2319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  2387. 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  2388. 2321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2389. 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  2390. 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2391. 2324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART mute mode by setting the RWU bit in the CR1 register */
  2392. 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RWU);
  2393. 2326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2394. 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2395. 2328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2396. 2329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  2397. 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  2398. 2331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2399. 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  2400. 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2401. 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2402. 2335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2403. 2336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Exits the UART mute mode: wake up software.
  2404. 2337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2405. 2338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2406. 2339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  2407. 2340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2408. 2341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart)
  2409. 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2410. 2343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  2411. 2344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
  2412. 2345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2413. 2346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  2414. 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  2415. 2348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2416. 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  2417. 2350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2418. 2351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the USART mute mode by clearing the RWU bit in the CR1 register */
  2419. 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_RWU);
  2420. 2353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2421. 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2422. 2355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2423. 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  2424. 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  2425. 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2426. 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  2427. 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2428. 2361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2429. 2362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2430. 2363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART transmitter and disables the UART receiver.
  2431. 2364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2432. 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2433. 2366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  2434. 2367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2435. 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart)
  2436. 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2437. ARM GAS /tmp/ccD7nRW1.s page 43
  2438. 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U;
  2439. 2371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2440. 2372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  2441. 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  2442. 2374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2443. 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  2444. 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2445. 2377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/
  2446. 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1;
  2447. 2379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2448. 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */
  2449. 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE));
  2450. 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2451. 2383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART's transmit interface by setting the TE bit in the USART CR1 register */
  2452. 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_TE;
  2453. 2385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2454. 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */
  2455. 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg);
  2456. 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2457. 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2458. 2390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2459. 2391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  2460. 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  2461. 2393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2462. 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  2463. 2395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2464. 2396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2465. 2397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2466. 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART receiver and disables the UART transmitter.
  2467. 2399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2468. 2400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2469. 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  2470. 2402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2471. 2403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart)
  2472. 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2473. 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U;
  2474. 2406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2475. 2407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  2476. 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart);
  2477. 2409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2478. 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
  2479. 2411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2480. 2412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/
  2481. 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1;
  2482. 2414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2483. 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */
  2484. 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE));
  2485. 2417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2486. 2418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART's receive interface by setting the RE bit in the USART CR1 register */
  2487. 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_RE;
  2488. 2420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2489. 2421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */
  2490. 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg);
  2491. 2423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2492. 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2493. 2425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2494. 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  2495. ARM GAS /tmp/ccD7nRW1.s page 44
  2496. 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  2497. 2428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2498. 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  2499. 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2500. 2431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2501. 2432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2502. 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @}
  2503. 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2504. 2435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2505. 2436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group4 Peripheral State and Errors functions
  2506. 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART State and Errors functions
  2507. 2438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *
  2508. 2439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim
  2509. 2440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==============================================================================
  2510. 2441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral State and Errors functions #####
  2511. 2442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ==============================================================================
  2512. 2443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..]
  2513. 2444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to return the State of
  2514. 2445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART communication process, return Peripheral Errors occurred during communication
  2515. 2446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** process
  2516. 2447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_GetState() API can be helpful to check in run-time the state of the UART peripheral
  2517. 2448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_GetError() check in run-time errors that could be occurred during communication.
  2518. 2449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2519. 2450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim
  2520. 2451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  2521. 2452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2522. 2453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2523. 2454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2524. 2455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Returns the UART state.
  2525. 2456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2526. 2457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2527. 2458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL state
  2528. 2459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2529. 2460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart)
  2530. 2461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2531. 2462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U;
  2532. 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp1 = huart->gState;
  2533. 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState;
  2534. 2465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2535. 2466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (HAL_UART_StateTypeDef)(temp1 | temp2);
  2536. 2467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2537. 2468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2538. 2469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2539. 2470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Return the UART error code
  2540. 2471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2541. 2472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART.
  2542. 2473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval UART Error Code
  2543. 2474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2544. 2475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart)
  2545. 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2546. 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode;
  2547. 2478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2548. 2479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2549. 2480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2550. 2481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @}
  2551. 2482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2552. 2483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2553. ARM GAS /tmp/ccD7nRW1.s page 45
  2554. 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2555. 2485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @}
  2556. 2486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2557. 2487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2558. 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Private_Functions UART Private Functions
  2559. 2489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{
  2560. 2490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2561. 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2562. 2492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2563. 2493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialize the callbacks to their default values.
  2564. 2494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  2565. 2495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval none
  2566. 2496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2567. 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2568. 2498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart)
  2569. 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2570. 2500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the UART Callback settings */
  2571. 2501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC
  2572. 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallb
  2573. 2503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltC
  2574. 2504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallb
  2575. 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallba
  2576. 2506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCa
  2577. 2507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransm
  2578. 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceiv
  2579. 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2580. 2510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2581. 2511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2582. 2512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2583. 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2584. 2514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process complete callback.
  2585. 2515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2586. 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2587. 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2588. 2518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2589. 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma)
  2590. 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2591. 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2592. 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/
  2593. 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U)
  2594. 2524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2595. 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  2596. 2526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2597. 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for transmit request by setting the DMAT bit
  2598. 2528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */
  2599. 2529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
  2600. 2530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2601. 2531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */
  2602. 2532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
  2603. 2533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2604. 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2605. 2535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Circular mode */
  2606. 2536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  2607. 2537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2608. 2538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2609. 2539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/
  2610. 2540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart);
  2611. ARM GAS /tmp/ccD7nRW1.s page 46
  2612. 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2613. 2542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/
  2614. 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart);
  2615. 2544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2616. 2545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2617. 2546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2618. 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2619. 2548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2620. 2549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process half complete callback
  2621. 2550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2622. 2551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2623. 2552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2624. 2553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2625. 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
  2626. 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2627. 2556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2628. 2557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2629. 2558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2630. 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/
  2631. 2560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback(huart);
  2632. 2561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2633. 2562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/
  2634. 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback(huart);
  2635. 2564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2636. 2565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2637. 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2638. 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2639. 2568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART receive process complete callback.
  2640. 2569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2641. 2570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2642. 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2643. 2572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2644. 2573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
  2645. 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2646. 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2647. 2576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/
  2648. 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U)
  2649. 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2650. 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0U;
  2651. 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2652. 2581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  2653. 2582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
  2654. 2583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  2655. 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2656. 2585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by setting the DMAR bit
  2657. 2586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */
  2658. 2587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
  2659. 2588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2660. 2589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */
  2661. 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  2662. 2591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2663. 2592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2664. 2593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/
  2665. 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart);
  2666. 2595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2667. 2596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/
  2668. 2597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart);
  2669. ARM GAS /tmp/ccD7nRW1.s page 47
  2670. 2598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2671. 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2672. 2600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2673. 2601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2674. 2602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART receive process half complete callback
  2675. 2603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2676. 2604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2677. 2605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2678. 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2679. 2607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
  2680. 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2681. 2609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2682. 2610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2683. 2611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2684. 2612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Half complete callback*/
  2685. 2613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback(huart);
  2686. 2614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2687. 2615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Half complete callback*/
  2688. 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxHalfCpltCallback(huart);
  2689. 2617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2690. 2618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2691. 2619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2692. 2620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2693. 2621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication error callback.
  2694. 2622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2695. 2623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2696. 2624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2697. 2625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2698. 2626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma)
  2699. 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2700. 2628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  2701. 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2702. 2630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2703. 2631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */
  2704. 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT);
  2705. 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest)
  2706. 2634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2707. 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  2708. 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart);
  2709. 2637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2710. 2638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2711. 2639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */
  2712. 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
  2713. 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest)
  2714. 2642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2715. 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  2716. 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart);
  2717. 2645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2718. 2646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2719. 2647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_DMA;
  2720. 2648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2721. 2649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/
  2722. 2650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart);
  2723. 2651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2724. 2652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/
  2725. 2653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
  2726. 2654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2727. ARM GAS /tmp/ccD7nRW1.s page 48
  2728. 2655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2729. 2656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2730. 2657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2731. 2658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART Communication Timeout.
  2732. 2659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  2733. 2660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  2734. 2661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Flag specifies the UART flag to check.
  2735. 2662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Status The new Flag status (SET or RESET).
  2736. 2663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Tickstart Tick start value
  2737. 2664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration
  2738. 2665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  2739. 2666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2740. 2667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag
  2741. 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2742. 2669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */
  2743. 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
  2744. 2671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2745. 2672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check for the Timeout */
  2746. 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY)
  2747. 2674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2748. 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout))
  2749. 2676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2750. 2677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for t
  2751. 2678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
  2752. 2679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  2753. 2680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2754. 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2755. 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  2756. 2683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2757. 2684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */
  2758. 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart);
  2759. 2686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2760. 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT;
  2761. 2688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2762. 2689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2763. 2690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2764. 2691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  2765. 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2766. 2693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2767. 2694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2768. 2695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit compl
  2769. 2696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  2770. 2697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2771. 2698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2772. 2699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart)
  2773. 2700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2774. 27 .loc 1 2700 0
  2775. 28 .cfi_startproc
  2776. 29 @ args = 0, pretend = 0, frame = 0
  2777. 30 @ frame_needed = 0, uses_anonymous_args = 0
  2778. 31 @ link register save eliminated.
  2779. 32 .LVL0:
  2780. 2701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
  2781. 2702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
  2782. 33 .loc 1 2702 0
  2783. 34 0000 0268 ldr r2, [r0]
  2784. 35 0002 D368 ldr r3, [r2, #12]
  2785. ARM GAS /tmp/ccD7nRW1.s page 49
  2786. 36 0004 23F0C003 bic r3, r3, #192
  2787. 37 0008 D360 str r3, [r2, #12]
  2788. 2703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2789. 2704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */
  2790. 2705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2791. 38 .loc 1 2705 0
  2792. 39 000a 2023 movs r3, #32
  2793. 40 000c 80F83930 strb r3, [r0, #57]
  2794. 41 0010 7047 bx lr
  2795. 42 .cfi_endproc
  2796. 43 .LFE174:
  2797. 45 .section .text.UART_EndRxTransfer,"ax",%progbits
  2798. 46 .align 1
  2799. 47 .syntax unified
  2800. 48 .thumb
  2801. 49 .thumb_func
  2802. 50 .fpu fpv4-sp-d16
  2803. 52 UART_EndRxTransfer:
  2804. 53 .LFB175:
  2805. 2706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2806. 2707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2807. 2708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2808. 2709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception comp
  2809. 2710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle.
  2810. 2711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2811. 2712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2812. 2713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
  2813. 2714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2814. 54 .loc 1 2714 0
  2815. 55 .cfi_startproc
  2816. 56 @ args = 0, pretend = 0, frame = 0
  2817. 57 @ frame_needed = 0, uses_anonymous_args = 0
  2818. 58 @ link register save eliminated.
  2819. 59 .LVL1:
  2820. 2715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  2821. 2716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
  2822. 60 .loc 1 2716 0
  2823. 61 0000 0268 ldr r2, [r0]
  2824. 62 0002 D368 ldr r3, [r2, #12]
  2825. 63 0004 23F49073 bic r3, r3, #288
  2826. 64 0008 D360 str r3, [r2, #12]
  2827. 2717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  2828. 65 .loc 1 2717 0
  2829. 66 000a 0268 ldr r2, [r0]
  2830. 67 000c 5369 ldr r3, [r2, #20]
  2831. 68 000e 23F00103 bic r3, r3, #1
  2832. 69 0012 5361 str r3, [r2, #20]
  2833. 2718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2834. 2719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */
  2835. 2720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  2836. 70 .loc 1 2720 0
  2837. 71 0014 2023 movs r3, #32
  2838. 72 0016 80F83A30 strb r3, [r0, #58]
  2839. 73 001a 7047 bx lr
  2840. 74 .cfi_endproc
  2841. 75 .LFE175:
  2842. 77 .section .text.UART_Transmit_IT,"ax",%progbits
  2843. ARM GAS /tmp/ccD7nRW1.s page 50
  2844. 78 .align 1
  2845. 79 .syntax unified
  2846. 80 .thumb
  2847. 81 .thumb_func
  2848. 82 .fpu fpv4-sp-d16
  2849. 84 UART_Transmit_IT:
  2850. 85 .LFB181:
  2851. 2721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2852. 2722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2853. 2723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2854. 2724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication abort callback, when initiated by HAL services on Error
  2855. 2725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Abort procedure following error occurrence).
  2856. 2726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2857. 2727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2858. 2728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2859. 2729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2860. 2730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma)
  2861. 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2862. 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2863. 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  2864. 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  2865. 2735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2866. 2736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2867. 2737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/
  2868. 2738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart);
  2869. 2739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2870. 2740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/
  2871. 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
  2872. 2742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2873. 2743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2874. 2744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2875. 2745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2876. 2746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user
  2877. 2747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Tx Abort procedure following user abort request).
  2878. 2748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no
  2879. 2749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Rx DMA Handle.
  2880. 2750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2881. 2751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2882. 2752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2883. 2753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2884. 2754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
  2885. 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2886. 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2887. 2757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2888. 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
  2889. 2759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2890. 2760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */
  2891. 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL)
  2892. 2762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2893. 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx->XferAbortCallback != NULL)
  2894. 2764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2895. 2765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  2896. 2766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2897. 2767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2898. 2768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2899. 2769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba
  2900. 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  2901. ARM GAS /tmp/ccD7nRW1.s page 51
  2902. 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  2903. 2772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2904. 2773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */
  2905. 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  2906. 2775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2907. 2776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */
  2908. 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2909. 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  2910. 2779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2911. 2780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */
  2912. 2781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2913. 2782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */
  2914. 2783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart);
  2915. 2784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2916. 2785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */
  2917. 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart);
  2918. 2787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2919. 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2920. 2789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2921. 2790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2922. 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user
  2923. 2792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Rx Abort procedure following user abort request).
  2924. 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no
  2925. 2794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Tx DMA Handle.
  2926. 2795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2927. 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2928. 2797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2929. 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2930. 2799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
  2931. 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2932. 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2933. 2802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2934. 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
  2935. 2804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2936. 2805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */
  2937. 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL)
  2938. 2807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2939. 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx->XferAbortCallback != NULL)
  2940. 2809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2941. 2810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  2942. 2811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2943. 2812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2944. 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2945. 2814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba
  2946. 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  2947. 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  2948. 2817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2949. 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */
  2950. 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  2951. 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2952. 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */
  2953. 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2954. 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  2955. 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2956. 2825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */
  2957. 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2958. 2827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */
  2959. ARM GAS /tmp/ccD7nRW1.s page 52
  2960. 2828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart);
  2961. 2829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2962. 2830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */
  2963. 2831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart);
  2964. 2832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2965. 2833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2966. 2834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2967. 2835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2968. 2836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user by a call to
  2969. 2837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer)
  2970. 2838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Tx Abort procedure following user abort reques
  2971. 2839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Tx Abort Complete callback execution).
  2972. 2840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  2973. 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  2974. 2842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  2975. 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  2976. 2844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
  2977. 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  2978. 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  2979. 2847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2980. 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  2981. 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2982. 2850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */
  2983. 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  2984. 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2985. 2853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */
  2986. 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  2987. 2855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */
  2988. 2856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart);
  2989. 2857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  2990. 2858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */
  2991. 2859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart);
  2992. 2860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  2993. 2861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  2994. 2862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  2995. 2863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  2996. 2864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user by a call to
  2997. 2865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortReceive_IT API (Abort only Rx transfer)
  2998. 2866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Rx Abort procedure following user abort reques
  2999. 2867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Rx Abort Complete callback execution).
  3000. 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  3001. 2869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module.
  3002. 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  3003. 2871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  3004. 2872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
  3005. 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3006. 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  3007. 2875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3008. 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  3009. 2877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3010. 2878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */
  3011. 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  3012. 2880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3013. 2881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */
  3014. 2882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  3015. 2883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */
  3016. 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart);
  3017. ARM GAS /tmp/ccD7nRW1.s page 53
  3018. 2885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  3019. 2886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */
  3020. 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart);
  3021. 2888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  3022. 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3023. 2890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3024. 2891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  3025. 2892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode.
  3026. 2893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  3027. 2894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  3028. 2895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  3029. 2896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  3030. 2897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart)
  3031. 2898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3032. 86 .loc 1 2898 0
  3033. 87 .cfi_startproc
  3034. 88 @ args = 0, pretend = 0, frame = 0
  3035. 89 @ frame_needed = 0, uses_anonymous_args = 0
  3036. 90 @ link register save eliminated.
  3037. 91 .LVL2:
  3038. 2899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp;
  3039. 2900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3040. 2901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is ongoing */
  3041. 2902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX)
  3042. 92 .loc 1 2902 0
  3043. 93 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  3044. 94 0004 DBB2 uxtb r3, r3
  3045. 95 0006 212B cmp r3, #33
  3046. 96 0008 01D0 beq .L10
  3047. 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3048. 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B)
  3049. 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3050. 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) huart->pTxBuffPtr;
  3051. 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
  3052. 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  3053. 2909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3054. 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U;
  3055. 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3056. 2912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3057. 2913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3058. 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 1U;
  3059. 2915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3060. 2916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3061. 2917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3062. 2918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3063. 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF);
  3064. 2920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3065. 2921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3066. 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (--huart->TxXferCount == 0U)
  3067. 2923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3068. 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */
  3069. 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TXE);
  3070. 2926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3071. 2927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */
  3072. 2928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TC);
  3073. 2929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3074. 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  3075. ARM GAS /tmp/ccD7nRW1.s page 54
  3076. 2931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3077. 2932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3078. 2933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3079. 2934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  3080. 97 .loc 1 2934 0
  3081. 98 000a 0220 movs r0, #2
  3082. 99 .LVL3:
  3083. 100 000c 7047 bx lr
  3084. 101 .LVL4:
  3085. 102 .L10:
  3086. 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3087. 103 .loc 1 2904 0
  3088. 104 000e 8368 ldr r3, [r0, #8]
  3089. 105 0010 B3F5805F cmp r3, #4096
  3090. 106 0014 17D0 beq .L11
  3091. 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3092. 107 .loc 1 2919 0
  3093. 108 0016 0268 ldr r2, [r0]
  3094. 109 0018 036A ldr r3, [r0, #32]
  3095. 110 001a 591C adds r1, r3, #1
  3096. 111 001c 0162 str r1, [r0, #32]
  3097. 112 001e 1B78 ldrb r3, [r3] @ zero_extendqisi2
  3098. 113 0020 5360 str r3, [r2, #4]
  3099. 114 .L7:
  3100. 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3101. 115 .loc 1 2922 0
  3102. 116 0022 C38C ldrh r3, [r0, #38]
  3103. 117 0024 9BB2 uxth r3, r3
  3104. 118 0026 013B subs r3, r3, #1
  3105. 119 0028 9BB2 uxth r3, r3
  3106. 120 002a C384 strh r3, [r0, #38] @ movhi
  3107. 121 002c DBB9 cbnz r3, .L9
  3108. 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3109. 122 .loc 1 2925 0
  3110. 123 002e 0268 ldr r2, [r0]
  3111. 124 0030 D368 ldr r3, [r2, #12]
  3112. 125 0032 23F08003 bic r3, r3, #128
  3113. 126 0036 D360 str r3, [r2, #12]
  3114. 2928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3115. 127 .loc 1 2928 0
  3116. 128 0038 0268 ldr r2, [r0]
  3117. 129 003a D368 ldr r3, [r2, #12]
  3118. 130 003c 43F04003 orr r3, r3, #64
  3119. 131 0040 D360 str r3, [r2, #12]
  3120. 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3121. 132 .loc 1 2930 0
  3122. 133 0042 0020 movs r0, #0
  3123. 134 .LVL5:
  3124. 135 0044 7047 bx lr
  3125. 136 .LVL6:
  3126. 137 .L11:
  3127. 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
  3128. 138 .loc 1 2906 0
  3129. 139 0046 036A ldr r3, [r0, #32]
  3130. 140 .LVL7:
  3131. 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  3132. 141 .loc 1 2907 0
  3133. ARM GAS /tmp/ccD7nRW1.s page 55
  3134. 142 0048 0268 ldr r2, [r0]
  3135. 143 004a 1B88 ldrh r3, [r3]
  3136. 144 .LVL8:
  3137. 145 004c C3F30803 ubfx r3, r3, #0, #9
  3138. 146 0050 5360 str r3, [r2, #4]
  3139. 147 .LVL9:
  3140. 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3141. 148 .loc 1 2908 0
  3142. 149 0052 0369 ldr r3, [r0, #16]
  3143. 150 0054 1BB9 cbnz r3, .L6
  3144. 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3145. 151 .loc 1 2910 0
  3146. 152 0056 036A ldr r3, [r0, #32]
  3147. 153 0058 0233 adds r3, r3, #2
  3148. 154 005a 0362 str r3, [r0, #32]
  3149. 155 005c E1E7 b .L7
  3150. 156 .L6:
  3151. 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3152. 157 .loc 1 2914 0
  3153. 158 005e 036A ldr r3, [r0, #32]
  3154. 159 0060 0133 adds r3, r3, #1
  3155. 160 0062 0362 str r3, [r0, #32]
  3156. 161 0064 DDE7 b .L7
  3157. 162 .L9:
  3158. 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3159. 163 .loc 1 2930 0
  3160. 164 0066 0020 movs r0, #0
  3161. 165 .LVL10:
  3162. 2935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3163. 2936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3164. 166 .loc 1 2936 0
  3165. 167 0068 7047 bx lr
  3166. 168 .cfi_endproc
  3167. 169 .LFE181:
  3168. 171 .section .text.UART_SetConfig,"ax",%progbits
  3169. 172 .align 1
  3170. 173 .syntax unified
  3171. 174 .thumb
  3172. 175 .thumb_func
  3173. 176 .fpu fpv4-sp-d16
  3174. 178 UART_SetConfig:
  3175. 179 .LFB184:
  3176. 2937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3177. 2938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  3178. 2939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Wraps up transmission in non blocking mode.
  3179. 2940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  3180. 2941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  3181. 2942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  3182. 2943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  3183. 2944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart)
  3184. 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3185. 2946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */
  3186. 2947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TC);
  3187. 2948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3188. 2949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Tx process is ended, restore huart->gState to Ready */
  3189. 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  3190. 2951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3191. ARM GAS /tmp/ccD7nRW1.s page 56
  3192. 2952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  3193. 2953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/
  3194. 2954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart);
  3195. 2955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  3196. 2956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/
  3197. 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart);
  3198. 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  3199. 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3200. 2960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  3201. 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3202. 2962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3203. 2963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  3204. 2964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode
  3205. 2965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  3206. 2966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  3207. 2967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status
  3208. 2968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  3209. 2969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart)
  3210. 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3211. 2971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp;
  3212. 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3213. 2973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is ongoing */
  3214. 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX)
  3215. 2975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3216. 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B)
  3217. 2977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3218. 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr;
  3219. 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  3220. 2980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3221. 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF);
  3222. 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U;
  3223. 2983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3224. 2984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3225. 2985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3226. 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x00FF);
  3227. 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U;
  3228. 2988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3229. 2989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3230. 2990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3231. 2991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3232. 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  3233. 2993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3234. 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF);
  3235. 2995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3236. 2996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3237. 2997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3238. 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F);
  3239. 2999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3240. 3000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3241. 3001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3242. 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (--huart->RxXferCount == 0U)
  3243. 3003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3244. 3004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Data Register not empty Interrupt */
  3245. 3005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE);
  3246. 3006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3247. 3007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt */
  3248. 3008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_PE);
  3249. ARM GAS /tmp/ccD7nRW1.s page 57
  3250. 3009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3251. 3010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
  3252. 3011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_ERR);
  3253. 3012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3254. 3013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */
  3255. 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  3256. 3015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3257. 3016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  3258. 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/
  3259. 3018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart);
  3260. 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  3261. 3020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/
  3262. 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart);
  3263. 3022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  3264. 3023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3265. 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  3266. 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3267. 3026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK;
  3268. 3027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3269. 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3270. 3029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3271. 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY;
  3272. 3031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3273. 3032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3274. 3033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3275. 3034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /**
  3276. 3035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Configures the UART peripheral.
  3277. 3036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
  3278. 3037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module.
  3279. 3038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None
  3280. 3039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */
  3281. 3040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_SetConfig(UART_HandleTypeDef *huart)
  3282. 3041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3283. 180 .loc 1 3041 0
  3284. 181 .cfi_startproc
  3285. 182 @ args = 0, pretend = 0, frame = 0
  3286. 183 @ frame_needed = 0, uses_anonymous_args = 0
  3287. 184 .LVL11:
  3288. 185 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
  3289. 186 .LCFI0:
  3290. 187 .cfi_def_cfa_offset 32
  3291. 188 .cfi_offset 4, -32
  3292. 189 .cfi_offset 5, -28
  3293. 190 .cfi_offset 6, -24
  3294. 191 .cfi_offset 7, -20
  3295. 192 .cfi_offset 8, -16
  3296. 193 .cfi_offset 9, -12
  3297. 194 .cfi_offset 10, -8
  3298. 195 .cfi_offset 14, -4
  3299. 196 0004 0446 mov r4, r0
  3300. 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg;
  3301. 3043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3302. 3044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  3303. 3045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate));
  3304. 3046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits));
  3305. 3047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity));
  3306. 3048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode));
  3307. ARM GAS /tmp/ccD7nRW1.s page 58
  3308. 3049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3309. 3050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR2 Configuration -----------------------*/
  3310. 3051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Stop Bits: Set STOP[13:12] bits
  3311. 3052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** according to huart->Init.StopBits value */
  3312. 3053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
  3313. 197 .loc 1 3053 0
  3314. 198 0006 0268 ldr r2, [r0]
  3315. 199 0008 1369 ldr r3, [r2, #16]
  3316. 200 000a 23F44053 bic r3, r3, #12288
  3317. 201 000e C168 ldr r1, [r0, #12]
  3318. 202 0010 0B43 orrs r3, r3, r1
  3319. 203 0012 1361 str r3, [r2, #16]
  3320. 3054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3321. 3055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/
  3322. 3056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Word Length, Parity and mode:
  3323. 3057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the M bits according to huart->Init.WordLength value
  3324. 3058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set PCE and PS bits according to huart->Init.Parity value
  3325. 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set TE and RE bits according to huart->Init.Mode value
  3326. 3060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set OVER8 bit according to huart->Init.OverSampling value */
  3327. 3061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3328. 3062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.O
  3329. 204 .loc 1 3062 0
  3330. 205 0014 8368 ldr r3, [r0, #8]
  3331. 206 0016 0269 ldr r2, [r0, #16]
  3332. 207 0018 1343 orrs r3, r3, r2
  3333. 208 001a 4269 ldr r2, [r0, #20]
  3334. 209 001c 1343 orrs r3, r3, r2
  3335. 210 001e C269 ldr r2, [r0, #28]
  3336. 211 0020 1343 orrs r3, r3, r2
  3337. 212 .LVL12:
  3338. 3063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1,
  3339. 213 .loc 1 3063 0
  3340. 214 0022 0168 ldr r1, [r0]
  3341. 215 0024 CA68 ldr r2, [r1, #12]
  3342. 216 0026 22F41642 bic r2, r2, #38400
  3343. 217 002a 22F00C02 bic r2, r2, #12
  3344. 218 002e 1343 orrs r3, r3, r2
  3345. 219 .LVL13:
  3346. 220 0030 CB60 str r3, [r1, #12]
  3347. 221 .LVL14:
  3348. 3064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE |
  3349. 3065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg);
  3350. 3066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3351. 3067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR3 Configuration -----------------------*/
  3352. 3068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART HFC: Set CTSE and RTSE bits according to huart->Init.HwFlowCtl value */
  3353. 3069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl);
  3354. 222 .loc 1 3069 0
  3355. 223 0032 0268 ldr r2, [r0]
  3356. 224 0034 5369 ldr r3, [r2, #20]
  3357. 225 0036 23F44073 bic r3, r3, #768
  3358. 226 003a 8169 ldr r1, [r0, #24]
  3359. 227 003c 0B43 orrs r3, r3, r1
  3360. 228 003e 5361 str r3, [r2, #20]
  3361. 3070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3362. 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Over Sampling */
  3363. 3072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.OverSampling == UART_OVERSAMPLING_8)
  3364. 229 .loc 1 3072 0
  3365. ARM GAS /tmp/ccD7nRW1.s page 59
  3366. 230 0040 C369 ldr r3, [r0, #28]
  3367. 231 0042 B3F5004F cmp r3, #32768
  3368. 232 0046 62D0 beq .L20
  3369. 3073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3370. 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration ---------------------*/
  3371. 3075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if defined(USART6)
  3372. 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6))
  3373. 3077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3374. 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  3375. 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3376. 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  3377. 3081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Instance == USART1)
  3378. 3082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3379. 3083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  3380. 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3381. 3085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USART6 */
  3382. 3086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3383. 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3384. 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  3385. 3089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3386. 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3387. 3091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3388. 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3389. 3093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration ---------------------*/
  3390. 3094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if defined(USART6)
  3391. 3095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6))
  3392. 233 .loc 1 3095 0
  3393. 234 0048 D0F80080 ldr r8, [r0]
  3394. 235 004c BB4B ldr r3, .L21
  3395. 236 004e 9845 cmp r8, r3
  3396. 237 0050 00F01B81 beq .L17
  3397. 238 .loc 1 3095 0 is_stmt 0 discriminator 1
  3398. 239 0054 03F58063 add r3, r3, #1024
  3399. 240 0058 9845 cmp r8, r3
  3400. 241 005a 00F01681 beq .L17
  3401. 3096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3402. 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  3403. 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3404. 3099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else
  3405. 3100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Instance == USART1)
  3406. 3101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3407. 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate);
  3408. 3103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3409. 3104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USART6 */
  3410. 3105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else
  3411. 3106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3412. 3107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate);
  3413. 242 .loc 1 3107 0 is_stmt 1
  3414. 243 005e FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3415. 244 .LVL15:
  3416. 245 0062 00EB8000 add r0, r0, r0, lsl #2
  3417. 246 0066 00EB8000 add r0, r0, r0, lsl #2
  3418. 247 006a 6568 ldr r5, [r4, #4]
  3419. 248 006c AD00 lsls r5, r5, #2
  3420. 249 006e B0FBF5F5 udiv r5, r0, r5
  3421. 250 0072 B34F ldr r7, .L21+4
  3422. 251 0074 A7FB0535 umull r3, r5, r7, r5
  3423. ARM GAS /tmp/ccD7nRW1.s page 60
  3424. 252 0078 6D09 lsrs r5, r5, #5
  3425. 253 007a 2E01 lsls r6, r5, #4
  3426. 254 007c FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3427. 255 .LVL16:
  3428. 256 0080 00EB8000 add r0, r0, r0, lsl #2
  3429. 257 0084 00EB8000 add r0, r0, r0, lsl #2
  3430. 258 0088 6568 ldr r5, [r4, #4]
  3431. 259 008a AD00 lsls r5, r5, #2
  3432. 260 008c B0FBF5FA udiv r10, r0, r5
  3433. 261 0090 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3434. 262 .LVL17:
  3435. 263 0094 00EB8000 add r0, r0, r0, lsl #2
  3436. 264 0098 00EB8000 add r0, r0, r0, lsl #2
  3437. 265 009c 6568 ldr r5, [r4, #4]
  3438. 266 009e AD00 lsls r5, r5, #2
  3439. 267 00a0 B0FBF5F5 udiv r5, r0, r5
  3440. 268 00a4 A7FB0535 umull r3, r5, r7, r5
  3441. 269 00a8 6D09 lsrs r5, r5, #5
  3442. 270 00aa 4FF06409 mov r9, #100
  3443. 271 00ae 09FB15A5 mls r5, r9, r5, r10
  3444. 272 00b2 2D01 lsls r5, r5, #4
  3445. 273 00b4 3235 adds r5, r5, #50
  3446. 274 00b6 A7FB0535 umull r3, r5, r7, r5
  3447. 275 00ba 6D09 lsrs r5, r5, #5
  3448. 276 00bc 05F0F005 and r5, r5, #240
  3449. 277 00c0 3544 add r5, r5, r6
  3450. 278 00c2 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3451. 279 .LVL18:
  3452. 280 00c6 00EB8000 add r0, r0, r0, lsl #2
  3453. 281 00ca 00EB8000 add r0, r0, r0, lsl #2
  3454. 282 00ce 6668 ldr r6, [r4, #4]
  3455. 283 00d0 B600 lsls r6, r6, #2
  3456. 284 00d2 B0FBF6F6 udiv r6, r0, r6
  3457. 285 00d6 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3458. 286 .LVL19:
  3459. 287 00da 00EB8000 add r0, r0, r0, lsl #2
  3460. 288 00de 00EB8000 add r0, r0, r0, lsl #2
  3461. 289 00e2 6368 ldr r3, [r4, #4]
  3462. 290 00e4 9B00 lsls r3, r3, #2
  3463. 291 00e6 B0FBF3F0 udiv r0, r0, r3
  3464. 292 00ea A7FB0030 umull r3, r0, r7, r0
  3465. 293 00ee 4009 lsrs r0, r0, #5
  3466. 294 00f0 09FB1069 mls r9, r9, r0, r6
  3467. 295 00f4 4FEA0919 lsl r9, r9, #4
  3468. 296 00f8 09F13209 add r9, r9, #50
  3469. 297 00fc A7FB0937 umull r3, r7, r7, r9
  3470. 298 0100 C7F34317 ubfx r7, r7, #5, #4
  3471. 299 0104 2F44 add r7, r7, r5
  3472. 300 0106 C8F80870 str r7, [r8, #8]
  3473. 301 010a BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
  3474. 302 .LVL20:
  3475. 303 .L20:
  3476. 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3477. 304 .loc 1 3076 0
  3478. 305 010e D0F80080 ldr r8, [r0]
  3479. 306 0112 03F18043 add r3, r3, #1073741824
  3480. 307 0116 03F51043 add r3, r3, #36864
  3481. ARM GAS /tmp/ccD7nRW1.s page 61
  3482. 308 011a 9845 cmp r8, r3
  3483. 309 011c 5CD0 beq .L14
  3484. 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3485. 310 .loc 1 3076 0 is_stmt 0 discriminator 1
  3486. 311 011e 03F58063 add r3, r3, #1024
  3487. 312 0122 9845 cmp r8, r3
  3488. 313 0124 58D0 beq .L14
  3489. 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3490. 314 .loc 1 3088 0 is_stmt 1
  3491. 315 0126 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3492. 316 .LVL21:
  3493. 317 012a 00EB8000 add r0, r0, r0, lsl #2
  3494. 318 012e 00EB8000 add r0, r0, r0, lsl #2
  3495. 319 0132 6568 ldr r5, [r4, #4]
  3496. 320 0134 6D00 lsls r5, r5, #1
  3497. 321 0136 B0FBF5F5 udiv r5, r0, r5
  3498. 322 013a 814F ldr r7, .L21+4
  3499. 323 013c A7FB0535 umull r3, r5, r7, r5
  3500. 324 0140 6D09 lsrs r5, r5, #5
  3501. 325 0142 2E01 lsls r6, r5, #4
  3502. 326 0144 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3503. 327 .LVL22:
  3504. 328 0148 00EB8000 add r0, r0, r0, lsl #2
  3505. 329 014c 00EB8000 add r0, r0, r0, lsl #2
  3506. 330 0150 6568 ldr r5, [r4, #4]
  3507. 331 0152 6D00 lsls r5, r5, #1
  3508. 332 0154 B0FBF5FA udiv r10, r0, r5
  3509. 333 0158 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3510. 334 .LVL23:
  3511. 335 015c 00EB8000 add r0, r0, r0, lsl #2
  3512. 336 0160 00EB8000 add r0, r0, r0, lsl #2
  3513. 337 0164 6568 ldr r5, [r4, #4]
  3514. 338 0166 6D00 lsls r5, r5, #1
  3515. 339 0168 B0FBF5F5 udiv r5, r0, r5
  3516. 340 016c A7FB0535 umull r3, r5, r7, r5
  3517. 341 0170 6D09 lsrs r5, r5, #5
  3518. 342 0172 4FF06409 mov r9, #100
  3519. 343 0176 09FB15A5 mls r5, r9, r5, r10
  3520. 344 017a ED00 lsls r5, r5, #3
  3521. 345 017c 3235 adds r5, r5, #50
  3522. 346 017e A7FB0535 umull r3, r5, r7, r5
  3523. 347 0182 6D09 lsrs r5, r5, #5
  3524. 348 0184 6D00 lsls r5, r5, #1
  3525. 349 0186 05F4F875 and r5, r5, #496
  3526. 350 018a 3544 add r5, r5, r6
  3527. 351 018c FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3528. 352 .LVL24:
  3529. 353 0190 00EB8000 add r0, r0, r0, lsl #2
  3530. 354 0194 00EB8000 add r0, r0, r0, lsl #2
  3531. 355 0198 6668 ldr r6, [r4, #4]
  3532. 356 019a 7600 lsls r6, r6, #1
  3533. 357 019c B0FBF6F6 udiv r6, r0, r6
  3534. 358 01a0 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
  3535. 359 .LVL25:
  3536. 360 01a4 00EB8000 add r0, r0, r0, lsl #2
  3537. 361 01a8 00EB8000 add r0, r0, r0, lsl #2
  3538. 362 01ac 6368 ldr r3, [r4, #4]
  3539. ARM GAS /tmp/ccD7nRW1.s page 62
  3540. 363 01ae 5B00 lsls r3, r3, #1
  3541. 364 01b0 B0FBF3F3 udiv r3, r0, r3
  3542. 365 01b4 A7FB0323 umull r2, r3, r7, r3
  3543. 366 01b8 5B09 lsrs r3, r3, #5
  3544. 367 01ba 09FB1369 mls r9, r9, r3, r6
  3545. 368 01be 4FEAC909 lsl r9, r9, #3
  3546. 369 01c2 09F13209 add r9, r9, #50
  3547. 370 01c6 A7FB0937 umull r3, r7, r7, r9
  3548. 371 01ca C7F34217 ubfx r7, r7, #5, #3
  3549. 372 01ce 2F44 add r7, r7, r5
  3550. 373 01d0 C8F80870 str r7, [r8, #8]
  3551. 374 01d4 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
  3552. 375 .LVL26:
  3553. 376 .L14:
  3554. 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3555. 377 .loc 1 3078 0
  3556. 378 01d8 FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3557. 379 .LVL27:
  3558. 380 01dc 00EB8000 add r0, r0, r0, lsl #2
  3559. 381 01e0 00EB8000 add r0, r0, r0, lsl #2
  3560. 382 01e4 6568 ldr r5, [r4, #4]
  3561. 383 01e6 6D00 lsls r5, r5, #1
  3562. 384 01e8 B0FBF5F5 udiv r5, r0, r5
  3563. 385 01ec 544F ldr r7, .L21+4
  3564. 386 01ee A7FB0535 umull r3, r5, r7, r5
  3565. 387 01f2 6D09 lsrs r5, r5, #5
  3566. 388 01f4 2E01 lsls r6, r5, #4
  3567. 389 01f6 FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3568. 390 .LVL28:
  3569. 391 01fa 00EB8000 add r0, r0, r0, lsl #2
  3570. 392 01fe 00EB8000 add r0, r0, r0, lsl #2
  3571. 393 0202 6568 ldr r5, [r4, #4]
  3572. 394 0204 6D00 lsls r5, r5, #1
  3573. 395 0206 B0FBF5FA udiv r10, r0, r5
  3574. 396 020a FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3575. 397 .LVL29:
  3576. 398 020e 00EB8000 add r0, r0, r0, lsl #2
  3577. 399 0212 00EB8000 add r0, r0, r0, lsl #2
  3578. 400 0216 6568 ldr r5, [r4, #4]
  3579. 401 0218 6D00 lsls r5, r5, #1
  3580. 402 021a B0FBF5F5 udiv r5, r0, r5
  3581. 403 021e A7FB0535 umull r3, r5, r7, r5
  3582. 404 0222 6D09 lsrs r5, r5, #5
  3583. 405 0224 4FF06409 mov r9, #100
  3584. 406 0228 09FB15A5 mls r5, r9, r5, r10
  3585. 407 022c ED00 lsls r5, r5, #3
  3586. 408 022e 3235 adds r5, r5, #50
  3587. 409 0230 A7FB0535 umull r3, r5, r7, r5
  3588. 410 0234 6D09 lsrs r5, r5, #5
  3589. 411 0236 6D00 lsls r5, r5, #1
  3590. 412 0238 05F4F875 and r5, r5, #496
  3591. 413 023c 3544 add r5, r5, r6
  3592. 414 023e FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3593. 415 .LVL30:
  3594. 416 0242 00EB8000 add r0, r0, r0, lsl #2
  3595. 417 0246 00EB8000 add r0, r0, r0, lsl #2
  3596. 418 024a 6668 ldr r6, [r4, #4]
  3597. ARM GAS /tmp/ccD7nRW1.s page 63
  3598. 419 024c 7600 lsls r6, r6, #1
  3599. 420 024e B0FBF6F6 udiv r6, r0, r6
  3600. 421 0252 FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3601. 422 .LVL31:
  3602. 423 0256 00EB8000 add r0, r0, r0, lsl #2
  3603. 424 025a 00EB8000 add r0, r0, r0, lsl #2
  3604. 425 025e 6368 ldr r3, [r4, #4]
  3605. 426 0260 5B00 lsls r3, r3, #1
  3606. 427 0262 B0FBF3F3 udiv r3, r0, r3
  3607. 428 0266 A7FB0323 umull r2, r3, r7, r3
  3608. 429 026a 5B09 lsrs r3, r3, #5
  3609. 430 026c 09FB1369 mls r9, r9, r3, r6
  3610. 431 0270 4FEAC909 lsl r9, r9, #3
  3611. 432 0274 09F13209 add r9, r9, #50
  3612. 433 0278 A7FB0937 umull r3, r7, r7, r9
  3613. 434 027c C7F34217 ubfx r7, r7, #5, #3
  3614. 435 0280 2F44 add r7, r7, r5
  3615. 436 0282 C8F80870 str r7, [r8, #8]
  3616. 437 0286 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
  3617. 438 .LVL32:
  3618. 439 .L17:
  3619. 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3620. 440 .loc 1 3097 0
  3621. 441 028a FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3622. 442 .LVL33:
  3623. 443 028e 00EB8000 add r0, r0, r0, lsl #2
  3624. 444 0292 00EB8000 add r0, r0, r0, lsl #2
  3625. 445 0296 6568 ldr r5, [r4, #4]
  3626. 446 0298 AD00 lsls r5, r5, #2
  3627. 447 029a B0FBF5F5 udiv r5, r0, r5
  3628. 448 029e 284F ldr r7, .L21+4
  3629. 449 02a0 A7FB0535 umull r3, r5, r7, r5
  3630. 450 02a4 6D09 lsrs r5, r5, #5
  3631. 451 02a6 2E01 lsls r6, r5, #4
  3632. 452 02a8 FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3633. 453 .LVL34:
  3634. 454 02ac 00EB8000 add r0, r0, r0, lsl #2
  3635. 455 02b0 00EB8000 add r0, r0, r0, lsl #2
  3636. 456 02b4 6568 ldr r5, [r4, #4]
  3637. 457 02b6 AD00 lsls r5, r5, #2
  3638. 458 02b8 B0FBF5FA udiv r10, r0, r5
  3639. 459 02bc FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3640. 460 .LVL35:
  3641. 461 02c0 00EB8000 add r0, r0, r0, lsl #2
  3642. 462 02c4 00EB8000 add r0, r0, r0, lsl #2
  3643. 463 02c8 6568 ldr r5, [r4, #4]
  3644. 464 02ca AD00 lsls r5, r5, #2
  3645. 465 02cc B0FBF5F5 udiv r5, r0, r5
  3646. 466 02d0 A7FB0535 umull r3, r5, r7, r5
  3647. 467 02d4 6D09 lsrs r5, r5, #5
  3648. 468 02d6 4FF06409 mov r9, #100
  3649. 469 02da 09FB15A5 mls r5, r9, r5, r10
  3650. 470 02de 2D01 lsls r5, r5, #4
  3651. 471 02e0 3235 adds r5, r5, #50
  3652. 472 02e2 A7FB0535 umull r3, r5, r7, r5
  3653. 473 02e6 6D09 lsrs r5, r5, #5
  3654. 474 02e8 05F0F005 and r5, r5, #240
  3655. ARM GAS /tmp/ccD7nRW1.s page 64
  3656. 475 02ec 3544 add r5, r5, r6
  3657. 476 02ee FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3658. 477 .LVL36:
  3659. 478 02f2 00EB8000 add r0, r0, r0, lsl #2
  3660. 479 02f6 00EB8000 add r0, r0, r0, lsl #2
  3661. 480 02fa 6668 ldr r6, [r4, #4]
  3662. 481 02fc B600 lsls r6, r6, #2
  3663. 482 02fe B0FBF6F6 udiv r6, r0, r6
  3664. 483 0302 FFF7FEFF bl HAL_RCC_GetPCLK2Freq
  3665. 484 .LVL37:
  3666. 485 0306 00EB8000 add r0, r0, r0, lsl #2
  3667. 486 030a 00EB8000 add r0, r0, r0, lsl #2
  3668. 487 030e 6368 ldr r3, [r4, #4]
  3669. 488 0310 9B00 lsls r3, r3, #2
  3670. 489 0312 B0FBF3F3 udiv r3, r0, r3
  3671. 490 0316 A7FB0323 umull r2, r3, r7, r3
  3672. 491 031a 5B09 lsrs r3, r3, #5
  3673. 492 031c 09FB1369 mls r9, r9, r3, r6
  3674. 493 0320 4FEA0919 lsl r9, r9, #4
  3675. 494 0324 09F13209 add r9, r9, #50
  3676. 495 0328 A7FB0937 umull r3, r7, r7, r9
  3677. 496 032c C7F34317 ubfx r7, r7, #5, #4
  3678. 497 0330 2F44 add r7, r7, r5
  3679. 498 0332 C8F80870 str r7, [r8, #8]
  3680. 499 0336 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
  3681. 500 .LVL38:
  3682. 501 .L22:
  3683. 502 033a 00BF .align 2
  3684. 503 .L21:
  3685. 504 033c 00100140 .word 1073811456
  3686. 505 0340 1F85EB51 .word 1374389535
  3687. 506 .cfi_endproc
  3688. 507 .LFE184:
  3689. 509 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits
  3690. 510 .align 1
  3691. 511 .syntax unified
  3692. 512 .thumb
  3693. 513 .thumb_func
  3694. 514 .fpu fpv4-sp-d16
  3695. 516 UART_WaitOnFlagUntilTimeout:
  3696. 517 .LFB173:
  3697. 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */
  3698. 518 .loc 1 2668 0
  3699. 519 .cfi_startproc
  3700. 520 @ args = 4, pretend = 0, frame = 0
  3701. 521 @ frame_needed = 0, uses_anonymous_args = 0
  3702. 522 .LVL39:
  3703. 523 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
  3704. 524 .LCFI1:
  3705. 525 .cfi_def_cfa_offset 24
  3706. 526 .cfi_offset 4, -24
  3707. 527 .cfi_offset 5, -20
  3708. 528 .cfi_offset 6, -16
  3709. 529 .cfi_offset 7, -12
  3710. 530 .cfi_offset 8, -8
  3711. 531 .cfi_offset 14, -4
  3712. 532 0004 0546 mov r5, r0
  3713. ARM GAS /tmp/ccD7nRW1.s page 65
  3714. 533 0006 0F46 mov r7, r1
  3715. 534 0008 1646 mov r6, r2
  3716. 535 000a 9846 mov r8, r3
  3717. 536 000c 069C ldr r4, [sp, #24]
  3718. 537 .LVL40:
  3719. 538 .L25:
  3720. 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3721. 539 .loc 1 2670 0
  3722. 540 000e 2B68 ldr r3, [r5]
  3723. 541 0010 1B68 ldr r3, [r3]
  3724. 542 0012 37EA0303 bics r3, r7, r3
  3725. 543 0016 0CBF ite eq
  3726. 544 0018 0123 moveq r3, #1
  3727. 545 001a 0023 movne r3, #0
  3728. 546 001c B342 cmp r3, r6
  3729. 547 001e 1ED1 bne .L30
  3730. 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3731. 548 .loc 1 2673 0
  3732. 549 0020 B4F1FF3F cmp r4, #-1
  3733. 550 0024 F3D0 beq .L25
  3734. 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3735. 551 .loc 1 2675 0
  3736. 552 0026 2CB1 cbz r4, .L26
  3737. 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3738. 553 .loc 1 2675 0 is_stmt 0 discriminator 1
  3739. 554 0028 FFF7FEFF bl HAL_GetTick
  3740. 555 .LVL41:
  3741. 556 002c A0EB0800 sub r0, r0, r8
  3742. 557 0030 8442 cmp r4, r0
  3743. 558 0032 ECD2 bcs .L25
  3744. 559 .L26:
  3745. 2678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  3746. 560 .loc 1 2678 0 is_stmt 1
  3747. 561 0034 2A68 ldr r2, [r5]
  3748. 562 0036 D368 ldr r3, [r2, #12]
  3749. 563 0038 23F4D073 bic r3, r3, #416
  3750. 564 003c D360 str r3, [r2, #12]
  3751. 2679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3752. 565 .loc 1 2679 0
  3753. 566 003e 2A68 ldr r2, [r5]
  3754. 567 0040 5369 ldr r3, [r2, #20]
  3755. 568 0042 23F00103 bic r3, r3, #1
  3756. 569 0046 5361 str r3, [r2, #20]
  3757. 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  3758. 570 .loc 1 2681 0
  3759. 571 0048 2023 movs r3, #32
  3760. 572 004a 85F83930 strb r3, [r5, #57]
  3761. 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3762. 573 .loc 1 2682 0
  3763. 574 004e 85F83A30 strb r3, [r5, #58]
  3764. 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3765. 575 .loc 1 2685 0
  3766. 576 0052 0023 movs r3, #0
  3767. 577 0054 85F83830 strb r3, [r5, #56]
  3768. 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3769. 578 .loc 1 2687 0
  3770. 579 0058 0320 movs r0, #3
  3771. ARM GAS /tmp/ccD7nRW1.s page 66
  3772. 580 005a BDE8F081 pop {r4, r5, r6, r7, r8, pc}
  3773. 581 .LVL42:
  3774. 582 .L30:
  3775. 2691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3776. 583 .loc 1 2691 0
  3777. 584 005e 0020 movs r0, #0
  3778. 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3779. 585 .loc 1 2692 0
  3780. 586 0060 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
  3781. 587 .cfi_endproc
  3782. 588 .LFE173:
  3783. 590 .section .text.HAL_UART_MspInit,"ax",%progbits
  3784. 591 .align 1
  3785. 592 .weak HAL_UART_MspInit
  3786. 593 .syntax unified
  3787. 594 .thumb
  3788. 595 .thumb_func
  3789. 596 .fpu fpv4-sp-d16
  3790. 598 HAL_UART_MspInit:
  3791. 599 .LFB135:
  3792. 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  3793. 600 .loc 1 668 0
  3794. 601 .cfi_startproc
  3795. 602 @ args = 0, pretend = 0, frame = 0
  3796. 603 @ frame_needed = 0, uses_anonymous_args = 0
  3797. 604 @ link register save eliminated.
  3798. 605 .LVL43:
  3799. 606 0000 7047 bx lr
  3800. 607 .cfi_endproc
  3801. 608 .LFE135:
  3802. 610 .section .text.HAL_UART_Init,"ax",%progbits
  3803. 611 .align 1
  3804. 612 .global HAL_UART_Init
  3805. 613 .syntax unified
  3806. 614 .thumb
  3807. 615 .thumb_func
  3808. 616 .fpu fpv4-sp-d16
  3809. 618 HAL_UART_Init:
  3810. 619 .LFB130:
  3811. 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  3812. 620 .loc 1 318 0
  3813. 621 .cfi_startproc
  3814. 622 @ args = 0, pretend = 0, frame = 0
  3815. 623 @ frame_needed = 0, uses_anonymous_args = 0
  3816. 624 .LVL44:
  3817. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3818. 625 .loc 1 320 0
  3819. 626 0000 58B3 cbz r0, .L35
  3820. 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  3821. 627 .loc 1 318 0
  3822. 628 0002 10B5 push {r4, lr}
  3823. 629 .LCFI2:
  3824. 630 .cfi_def_cfa_offset 8
  3825. 631 .cfi_offset 4, -8
  3826. 632 .cfi_offset 14, -4
  3827. 633 0004 0446 mov r4, r0
  3828. 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3829. ARM GAS /tmp/ccD7nRW1.s page 67
  3830. 634 .loc 1 339 0
  3831. 635 0006 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  3832. 636 000a 0BB3 cbz r3, .L40
  3833. 637 .LVL45:
  3834. 638 .L34:
  3835. 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3836. 639 .loc 1 360 0
  3837. 640 000c 2423 movs r3, #36
  3838. 641 000e 84F83930 strb r3, [r4, #57]
  3839. 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3840. 642 .loc 1 363 0
  3841. 643 0012 2268 ldr r2, [r4]
  3842. 644 0014 D368 ldr r3, [r2, #12]
  3843. 645 0016 23F40053 bic r3, r3, #8192
  3844. 646 001a D360 str r3, [r2, #12]
  3845. 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3846. 647 .loc 1 366 0
  3847. 648 001c 2046 mov r0, r4
  3848. 649 001e FFF7FEFF bl UART_SetConfig
  3849. 650 .LVL46:
  3850. 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
  3851. 651 .loc 1 371 0
  3852. 652 0022 2268 ldr r2, [r4]
  3853. 653 0024 1369 ldr r3, [r2, #16]
  3854. 654 0026 23F49043 bic r3, r3, #18432
  3855. 655 002a 1361 str r3, [r2, #16]
  3856. 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3857. 656 .loc 1 372 0
  3858. 657 002c 2268 ldr r2, [r4]
  3859. 658 002e 5369 ldr r3, [r2, #20]
  3860. 659 0030 23F02A03 bic r3, r3, #42
  3861. 660 0034 5361 str r3, [r2, #20]
  3862. 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3863. 661 .loc 1 375 0
  3864. 662 0036 2268 ldr r2, [r4]
  3865. 663 0038 D368 ldr r3, [r2, #12]
  3866. 664 003a 43F40053 orr r3, r3, #8192
  3867. 665 003e D360 str r3, [r2, #12]
  3868. 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  3869. 666 .loc 1 378 0
  3870. 667 0040 0020 movs r0, #0
  3871. 668 0042 E063 str r0, [r4, #60]
  3872. 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  3873. 669 .loc 1 379 0
  3874. 670 0044 2023 movs r3, #32
  3875. 671 0046 84F83930 strb r3, [r4, #57]
  3876. 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3877. 672 .loc 1 380 0
  3878. 673 004a 84F83A30 strb r3, [r4, #58]
  3879. 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3880. 674 .loc 1 382 0
  3881. 675 004e 10BD pop {r4, pc}
  3882. 676 .LVL47:
  3883. 677 .L40:
  3884. 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3885. 678 .loc 1 342 0
  3886. 679 0050 80F83830 strb r3, [r0, #56]
  3887. ARM GAS /tmp/ccD7nRW1.s page 68
  3888. 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  3889. 680 .loc 1 356 0
  3890. 681 0054 FFF7FEFF bl HAL_UART_MspInit
  3891. 682 .LVL48:
  3892. 683 0058 D8E7 b .L34
  3893. 684 .LVL49:
  3894. 685 .L35:
  3895. 686 .LCFI3:
  3896. 687 .cfi_def_cfa_offset 0
  3897. 688 .cfi_restore 4
  3898. 689 .cfi_restore 14
  3899. 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3900. 690 .loc 1 322 0
  3901. 691 005a 0120 movs r0, #1
  3902. 692 .LVL50:
  3903. 693 005c 7047 bx lr
  3904. 694 .cfi_endproc
  3905. 695 .LFE130:
  3906. 697 .section .text.HAL_HalfDuplex_Init,"ax",%progbits
  3907. 698 .align 1
  3908. 699 .global HAL_HalfDuplex_Init
  3909. 700 .syntax unified
  3910. 701 .thumb
  3911. 702 .thumb_func
  3912. 703 .fpu fpv4-sp-d16
  3913. 705 HAL_HalfDuplex_Init:
  3914. 706 .LFB131:
  3915. 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  3916. 707 .loc 1 393 0
  3917. 708 .cfi_startproc
  3918. 709 @ args = 0, pretend = 0, frame = 0
  3919. 710 @ frame_needed = 0, uses_anonymous_args = 0
  3920. 711 .LVL51:
  3921. 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3922. 712 .loc 1 395 0
  3923. 713 0000 0028 cmp r0, #0
  3924. 714 0002 30D0 beq .L44
  3925. 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  3926. 715 .loc 1 393 0
  3927. 716 0004 10B5 push {r4, lr}
  3928. 717 .LCFI4:
  3929. 718 .cfi_def_cfa_offset 8
  3930. 719 .cfi_offset 4, -8
  3931. 720 .cfi_offset 14, -4
  3932. 721 0006 0446 mov r4, r0
  3933. 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  3934. 722 .loc 1 405 0
  3935. 723 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  3936. 724 000c 33B3 cbz r3, .L49
  3937. 725 .LVL52:
  3938. 726 .L43:
  3939. 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3940. 727 .loc 1 426 0
  3941. 728 000e 2423 movs r3, #36
  3942. 729 0010 84F83930 strb r3, [r4, #57]
  3943. 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3944. 730 .loc 1 429 0
  3945. ARM GAS /tmp/ccD7nRW1.s page 69
  3946. 731 0014 2268 ldr r2, [r4]
  3947. 732 0016 D368 ldr r3, [r2, #12]
  3948. 733 0018 23F40053 bic r3, r3, #8192
  3949. 734 001c D360 str r3, [r2, #12]
  3950. 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3951. 735 .loc 1 432 0
  3952. 736 001e 2046 mov r0, r4
  3953. 737 0020 FFF7FEFF bl UART_SetConfig
  3954. 738 .LVL53:
  3955. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN));
  3956. 739 .loc 1 437 0
  3957. 740 0024 2268 ldr r2, [r4]
  3958. 741 0026 1369 ldr r3, [r2, #16]
  3959. 742 0028 23F49043 bic r3, r3, #18432
  3960. 743 002c 1361 str r3, [r2, #16]
  3961. 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3962. 744 .loc 1 438 0
  3963. 745 002e 2268 ldr r2, [r4]
  3964. 746 0030 5369 ldr r3, [r2, #20]
  3965. 747 0032 23F02203 bic r3, r3, #34
  3966. 748 0036 5361 str r3, [r2, #20]
  3967. 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3968. 749 .loc 1 441 0
  3969. 750 0038 2268 ldr r2, [r4]
  3970. 751 003a 5369 ldr r3, [r2, #20]
  3971. 752 003c 43F00803 orr r3, r3, #8
  3972. 753 0040 5361 str r3, [r2, #20]
  3973. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3974. 754 .loc 1 444 0
  3975. 755 0042 2268 ldr r2, [r4]
  3976. 756 0044 D368 ldr r3, [r2, #12]
  3977. 757 0046 43F40053 orr r3, r3, #8192
  3978. 758 004a D360 str r3, [r2, #12]
  3979. 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  3980. 759 .loc 1 447 0
  3981. 760 004c 0020 movs r0, #0
  3982. 761 004e E063 str r0, [r4, #60]
  3983. 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  3984. 762 .loc 1 448 0
  3985. 763 0050 2023 movs r3, #32
  3986. 764 0052 84F83930 strb r3, [r4, #57]
  3987. 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3988. 765 .loc 1 449 0
  3989. 766 0056 84F83A30 strb r3, [r4, #58]
  3990. 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  3991. 767 .loc 1 451 0
  3992. 768 005a 10BD pop {r4, pc}
  3993. 769 .LVL54:
  3994. 770 .L49:
  3995. 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  3996. 771 .loc 1 408 0
  3997. 772 005c 80F83830 strb r3, [r0, #56]
  3998. 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  3999. 773 .loc 1 422 0
  4000. 774 0060 FFF7FEFF bl HAL_UART_MspInit
  4001. 775 .LVL55:
  4002. 776 0064 D3E7 b .L43
  4003. ARM GAS /tmp/ccD7nRW1.s page 70
  4004. 777 .LVL56:
  4005. 778 .L44:
  4006. 779 .LCFI5:
  4007. 780 .cfi_def_cfa_offset 0
  4008. 781 .cfi_restore 4
  4009. 782 .cfi_restore 14
  4010. 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4011. 783 .loc 1 397 0
  4012. 784 0066 0120 movs r0, #1
  4013. 785 .LVL57:
  4014. 786 0068 7047 bx lr
  4015. 787 .cfi_endproc
  4016. 788 .LFE131:
  4017. 790 .section .text.HAL_LIN_Init,"ax",%progbits
  4018. 791 .align 1
  4019. 792 .global HAL_LIN_Init
  4020. 793 .syntax unified
  4021. 794 .thumb
  4022. 795 .thumb_func
  4023. 796 .fpu fpv4-sp-d16
  4024. 798 HAL_LIN_Init:
  4025. 799 .LFB132:
  4026. 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  4027. 800 .loc 1 466 0
  4028. 801 .cfi_startproc
  4029. 802 @ args = 0, pretend = 0, frame = 0
  4030. 803 @ frame_needed = 0, uses_anonymous_args = 0
  4031. 804 .LVL58:
  4032. 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4033. 805 .loc 1 468 0
  4034. 806 0000 0028 cmp r0, #0
  4035. 807 0002 3BD0 beq .L53
  4036. 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  4037. 808 .loc 1 466 0
  4038. 809 0004 38B5 push {r3, r4, r5, lr}
  4039. 810 .LCFI6:
  4040. 811 .cfi_def_cfa_offset 16
  4041. 812 .cfi_offset 3, -16
  4042. 813 .cfi_offset 4, -12
  4043. 814 .cfi_offset 5, -8
  4044. 815 .cfi_offset 14, -4
  4045. 816 0006 0446 mov r4, r0
  4046. 817 0008 0D46 mov r5, r1
  4047. 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4048. 818 .loc 1 481 0
  4049. 819 000a 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  4050. 820 000e 002B cmp r3, #0
  4051. 821 0010 2FD0 beq .L58
  4052. 822 .LVL59:
  4053. 823 .L52:
  4054. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4055. 824 .loc 1 502 0
  4056. 825 0012 2423 movs r3, #36
  4057. 826 0014 84F83930 strb r3, [r4, #57]
  4058. 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4059. 827 .loc 1 505 0
  4060. 828 0018 2268 ldr r2, [r4]
  4061. ARM GAS /tmp/ccD7nRW1.s page 71
  4062. 829 001a D368 ldr r3, [r2, #12]
  4063. 830 001c 23F40053 bic r3, r3, #8192
  4064. 831 0020 D360 str r3, [r2, #12]
  4065. 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4066. 832 .loc 1 508 0
  4067. 833 0022 2046 mov r0, r4
  4068. 834 0024 FFF7FEFF bl UART_SetConfig
  4069. 835 .LVL60:
  4070. 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN));
  4071. 836 .loc 1 513 0
  4072. 837 0028 2268 ldr r2, [r4]
  4073. 838 002a 1369 ldr r3, [r2, #16]
  4074. 839 002c 23F40063 bic r3, r3, #2048
  4075. 840 0030 1361 str r3, [r2, #16]
  4076. 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4077. 841 .loc 1 514 0
  4078. 842 0032 2268 ldr r2, [r4]
  4079. 843 0034 5369 ldr r3, [r2, #20]
  4080. 844 0036 23F02A03 bic r3, r3, #42
  4081. 845 003a 5361 str r3, [r2, #20]
  4082. 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4083. 846 .loc 1 517 0
  4084. 847 003c 2268 ldr r2, [r4]
  4085. 848 003e 1369 ldr r3, [r2, #16]
  4086. 849 0040 43F48043 orr r3, r3, #16384
  4087. 850 0044 1361 str r3, [r2, #16]
  4088. 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength);
  4089. 851 .loc 1 520 0
  4090. 852 0046 2268 ldr r2, [r4]
  4091. 853 0048 1369 ldr r3, [r2, #16]
  4092. 854 004a 23F02003 bic r3, r3, #32
  4093. 855 004e 1361 str r3, [r2, #16]
  4094. 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4095. 856 .loc 1 521 0
  4096. 857 0050 2368 ldr r3, [r4]
  4097. 858 0052 1969 ldr r1, [r3, #16]
  4098. 859 0054 0D43 orrs r5, r5, r1
  4099. 860 .LVL61:
  4100. 861 0056 1D61 str r5, [r3, #16]
  4101. 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4102. 862 .loc 1 524 0
  4103. 863 0058 2268 ldr r2, [r4]
  4104. 864 005a D368 ldr r3, [r2, #12]
  4105. 865 005c 43F40053 orr r3, r3, #8192
  4106. 866 0060 D360 str r3, [r2, #12]
  4107. 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  4108. 867 .loc 1 527 0
  4109. 868 0062 0020 movs r0, #0
  4110. 869 0064 E063 str r0, [r4, #60]
  4111. 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  4112. 870 .loc 1 528 0
  4113. 871 0066 2023 movs r3, #32
  4114. 872 0068 84F83930 strb r3, [r4, #57]
  4115. 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4116. 873 .loc 1 529 0
  4117. 874 006c 84F83A30 strb r3, [r4, #58]
  4118. 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4119. ARM GAS /tmp/ccD7nRW1.s page 72
  4120. 875 .loc 1 531 0
  4121. 876 0070 38BD pop {r3, r4, r5, pc}
  4122. 877 .LVL62:
  4123. 878 .L58:
  4124. 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4125. 879 .loc 1 484 0
  4126. 880 0072 80F83830 strb r3, [r0, #56]
  4127. 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  4128. 881 .loc 1 498 0
  4129. 882 0076 FFF7FEFF bl HAL_UART_MspInit
  4130. 883 .LVL63:
  4131. 884 007a CAE7 b .L52
  4132. 885 .LVL64:
  4133. 886 .L53:
  4134. 887 .LCFI7:
  4135. 888 .cfi_def_cfa_offset 0
  4136. 889 .cfi_restore 3
  4137. 890 .cfi_restore 4
  4138. 891 .cfi_restore 5
  4139. 892 .cfi_restore 14
  4140. 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4141. 893 .loc 1 470 0
  4142. 894 007c 0120 movs r0, #1
  4143. 895 .LVL65:
  4144. 896 007e 7047 bx lr
  4145. 897 .cfi_endproc
  4146. 898 .LFE132:
  4147. 900 .section .text.HAL_MultiProcessor_Init,"ax",%progbits
  4148. 901 .align 1
  4149. 902 .global HAL_MultiProcessor_Init
  4150. 903 .syntax unified
  4151. 904 .thumb
  4152. 905 .thumb_func
  4153. 906 .fpu fpv4-sp-d16
  4154. 908 HAL_MultiProcessor_Init:
  4155. 909 .LFB133:
  4156. 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  4157. 910 .loc 1 547 0
  4158. 911 .cfi_startproc
  4159. 912 @ args = 0, pretend = 0, frame = 0
  4160. 913 @ frame_needed = 0, uses_anonymous_args = 0
  4161. 914 .LVL66:
  4162. 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4163. 915 .loc 1 549 0
  4164. 916 0000 0028 cmp r0, #0
  4165. 917 0002 40D0 beq .L62
  4166. 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  4167. 918 .loc 1 547 0
  4168. 919 0004 70B5 push {r4, r5, r6, lr}
  4169. 920 .LCFI8:
  4170. 921 .cfi_def_cfa_offset 16
  4171. 922 .cfi_offset 4, -16
  4172. 923 .cfi_offset 5, -12
  4173. 924 .cfi_offset 6, -8
  4174. 925 .cfi_offset 14, -4
  4175. 926 0006 0446 mov r4, r0
  4176. 927 0008 1646 mov r6, r2
  4177. ARM GAS /tmp/ccD7nRW1.s page 73
  4178. 928 000a 0D46 mov r5, r1
  4179. 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4180. 929 .loc 1 563 0
  4181. 930 000c 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  4182. 931 0010 002B cmp r3, #0
  4183. 932 0012 33D0 beq .L67
  4184. 933 .LVL67:
  4185. 934 .L61:
  4186. 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4187. 935 .loc 1 584 0
  4188. 936 0014 2423 movs r3, #36
  4189. 937 0016 84F83930 strb r3, [r4, #57]
  4190. 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4191. 938 .loc 1 587 0
  4192. 939 001a 2268 ldr r2, [r4]
  4193. 940 001c D368 ldr r3, [r2, #12]
  4194. 941 001e 23F40053 bic r3, r3, #8192
  4195. 942 0022 D360 str r3, [r2, #12]
  4196. 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4197. 943 .loc 1 590 0
  4198. 944 0024 2046 mov r0, r4
  4199. 945 0026 FFF7FEFF bl UART_SetConfig
  4200. 946 .LVL68:
  4201. 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
  4202. 947 .loc 1 595 0
  4203. 948 002a 2268 ldr r2, [r4]
  4204. 949 002c 1369 ldr r3, [r2, #16]
  4205. 950 002e 23F49043 bic r3, r3, #18432
  4206. 951 0032 1361 str r3, [r2, #16]
  4207. 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4208. 952 .loc 1 596 0
  4209. 953 0034 2268 ldr r2, [r4]
  4210. 954 0036 5369 ldr r3, [r2, #20]
  4211. 955 0038 23F02A03 bic r3, r3, #42
  4212. 956 003c 5361 str r3, [r2, #20]
  4213. 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address);
  4214. 957 .loc 1 599 0
  4215. 958 003e 2268 ldr r2, [r4]
  4216. 959 0040 1369 ldr r3, [r2, #16]
  4217. 960 0042 23F00F03 bic r3, r3, #15
  4218. 961 0046 1361 str r3, [r2, #16]
  4219. 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4220. 962 .loc 1 600 0
  4221. 963 0048 2368 ldr r3, [r4]
  4222. 964 004a 1969 ldr r1, [r3, #16]
  4223. 965 004c 0D43 orrs r5, r5, r1
  4224. 966 004e 1D61 str r5, [r3, #16]
  4225. 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod);
  4226. 967 .loc 1 603 0
  4227. 968 0050 2268 ldr r2, [r4]
  4228. 969 0052 D368 ldr r3, [r2, #12]
  4229. 970 0054 23F40063 bic r3, r3, #2048
  4230. 971 0058 D360 str r3, [r2, #12]
  4231. 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4232. 972 .loc 1 604 0
  4233. 973 005a 2168 ldr r1, [r4]
  4234. 974 005c CB68 ldr r3, [r1, #12]
  4235. ARM GAS /tmp/ccD7nRW1.s page 74
  4236. 975 005e 3343 orrs r3, r3, r6
  4237. 976 0060 CB60 str r3, [r1, #12]
  4238. 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4239. 977 .loc 1 607 0
  4240. 978 0062 2268 ldr r2, [r4]
  4241. 979 0064 D368 ldr r3, [r2, #12]
  4242. 980 0066 43F40053 orr r3, r3, #8192
  4243. 981 006a D360 str r3, [r2, #12]
  4244. 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  4245. 982 .loc 1 610 0
  4246. 983 006c 0020 movs r0, #0
  4247. 984 006e E063 str r0, [r4, #60]
  4248. 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  4249. 985 .loc 1 611 0
  4250. 986 0070 2023 movs r3, #32
  4251. 987 0072 84F83930 strb r3, [r4, #57]
  4252. 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4253. 988 .loc 1 612 0
  4254. 989 0076 84F83A30 strb r3, [r4, #58]
  4255. 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4256. 990 .loc 1 614 0
  4257. 991 007a 70BD pop {r4, r5, r6, pc}
  4258. 992 .LVL69:
  4259. 993 .L67:
  4260. 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4261. 994 .loc 1 566 0
  4262. 995 007c 80F83830 strb r3, [r0, #56]
  4263. 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  4264. 996 .loc 1 580 0
  4265. 997 0080 FFF7FEFF bl HAL_UART_MspInit
  4266. 998 .LVL70:
  4267. 999 0084 C6E7 b .L61
  4268. 1000 .LVL71:
  4269. 1001 .L62:
  4270. 1002 .LCFI9:
  4271. 1003 .cfi_def_cfa_offset 0
  4272. 1004 .cfi_restore 4
  4273. 1005 .cfi_restore 5
  4274. 1006 .cfi_restore 6
  4275. 1007 .cfi_restore 14
  4276. 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4277. 1008 .loc 1 551 0
  4278. 1009 0086 0120 movs r0, #1
  4279. 1010 .LVL72:
  4280. 1011 0088 7047 bx lr
  4281. 1012 .cfi_endproc
  4282. 1013 .LFE133:
  4283. 1015 .section .text.HAL_UART_MspDeInit,"ax",%progbits
  4284. 1016 .align 1
  4285. 1017 .weak HAL_UART_MspDeInit
  4286. 1018 .syntax unified
  4287. 1019 .thumb
  4288. 1020 .thumb_func
  4289. 1021 .fpu fpv4-sp-d16
  4290. 1023 HAL_UART_MspDeInit:
  4291. 1024 .LFB136:
  4292. 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  4293. ARM GAS /tmp/ccD7nRW1.s page 75
  4294. 1025 .loc 1 683 0
  4295. 1026 .cfi_startproc
  4296. 1027 @ args = 0, pretend = 0, frame = 0
  4297. 1028 @ frame_needed = 0, uses_anonymous_args = 0
  4298. 1029 @ link register save eliminated.
  4299. 1030 .LVL73:
  4300. 1031 0000 7047 bx lr
  4301. 1032 .cfi_endproc
  4302. 1033 .LFE136:
  4303. 1035 .section .text.HAL_UART_DeInit,"ax",%progbits
  4304. 1036 .align 1
  4305. 1037 .global HAL_UART_DeInit
  4306. 1038 .syntax unified
  4307. 1039 .thumb
  4308. 1040 .thumb_func
  4309. 1041 .fpu fpv4-sp-d16
  4310. 1043 HAL_UART_DeInit:
  4311. 1044 .LFB134:
  4312. 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  4313. 1045 .loc 1 624 0
  4314. 1046 .cfi_startproc
  4315. 1047 @ args = 0, pretend = 0, frame = 0
  4316. 1048 @ frame_needed = 0, uses_anonymous_args = 0
  4317. 1049 .LVL74:
  4318. 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4319. 1050 .loc 1 626 0
  4320. 1051 0000 A0B1 cbz r0, .L71
  4321. 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */
  4322. 1052 .loc 1 624 0
  4323. 1053 0002 10B5 push {r4, lr}
  4324. 1054 .LCFI10:
  4325. 1055 .cfi_def_cfa_offset 8
  4326. 1056 .cfi_offset 4, -8
  4327. 1057 .cfi_offset 14, -4
  4328. 1058 0004 0446 mov r4, r0
  4329. 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4330. 1059 .loc 1 634 0
  4331. 1060 0006 2423 movs r3, #36
  4332. 1061 0008 80F83930 strb r3, [r0, #57]
  4333. 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4334. 1062 .loc 1 637 0
  4335. 1063 000c 0268 ldr r2, [r0]
  4336. 1064 000e D368 ldr r3, [r2, #12]
  4337. 1065 0010 23F40053 bic r3, r3, #8192
  4338. 1066 0014 D360 str r3, [r2, #12]
  4339. 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  4340. 1067 .loc 1 648 0
  4341. 1068 0016 FFF7FEFF bl HAL_UART_MspDeInit
  4342. 1069 .LVL75:
  4343. 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET;
  4344. 1070 .loc 1 651 0
  4345. 1071 001a 0020 movs r0, #0
  4346. 1072 001c E063 str r0, [r4, #60]
  4347. 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET;
  4348. 1073 .loc 1 652 0
  4349. 1074 001e 84F83900 strb r0, [r4, #57]
  4350. 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4351. ARM GAS /tmp/ccD7nRW1.s page 76
  4352. 1075 .loc 1 653 0
  4353. 1076 0022 84F83A00 strb r0, [r4, #58]
  4354. 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4355. 1077 .loc 1 656 0
  4356. 1078 0026 84F83800 strb r0, [r4, #56]
  4357. 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4358. 1079 .loc 1 658 0
  4359. 1080 002a 10BD pop {r4, pc}
  4360. 1081 .LVL76:
  4361. 1082 .L71:
  4362. 1083 .LCFI11:
  4363. 1084 .cfi_def_cfa_offset 0
  4364. 1085 .cfi_restore 4
  4365. 1086 .cfi_restore 14
  4366. 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4367. 1087 .loc 1 628 0
  4368. 1088 002c 0120 movs r0, #1
  4369. 1089 .LVL77:
  4370. 1090 002e 7047 bx lr
  4371. 1091 .cfi_endproc
  4372. 1092 .LFE134:
  4373. 1094 .section .text.HAL_UART_Transmit,"ax",%progbits
  4374. 1095 .align 1
  4375. 1096 .global HAL_UART_Transmit
  4376. 1097 .syntax unified
  4377. 1098 .thumb
  4378. 1099 .thumb_func
  4379. 1100 .fpu fpv4-sp-d16
  4380. 1102 HAL_UART_Transmit:
  4381. 1103 .LFB137:
  4382. 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp;
  4383. 1104 .loc 1 1020 0
  4384. 1105 .cfi_startproc
  4385. 1106 @ args = 0, pretend = 0, frame = 0
  4386. 1107 @ frame_needed = 0, uses_anonymous_args = 0
  4387. 1108 .LVL78:
  4388. 1109 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
  4389. 1110 .LCFI12:
  4390. 1111 .cfi_def_cfa_offset 24
  4391. 1112 .cfi_offset 4, -24
  4392. 1113 .cfi_offset 5, -20
  4393. 1114 .cfi_offset 6, -16
  4394. 1115 .cfi_offset 7, -12
  4395. 1116 .cfi_offset 8, -8
  4396. 1117 .cfi_offset 14, -4
  4397. 1118 0004 82B0 sub sp, sp, #8
  4398. 1119 .LCFI13:
  4399. 1120 .cfi_def_cfa_offset 32
  4400. 1121 0006 1E46 mov r6, r3
  4401. 1122 .LVL79:
  4402. 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4403. 1123 .loc 1 1025 0
  4404. 1124 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  4405. 1125 .LVL80:
  4406. 1126 000c DBB2 uxtb r3, r3
  4407. 1127 000e 202B cmp r3, #32
  4408. 1128 0010 04D0 beq .L91
  4409. ARM GAS /tmp/ccD7nRW1.s page 77
  4410. 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4411. 1129 .loc 1 1088 0
  4412. 1130 0012 0223 movs r3, #2
  4413. 1131 .LVL81:
  4414. 1132 .L77:
  4415. 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4416. 1133 .loc 1 1090 0
  4417. 1134 0014 1846 mov r0, r3
  4418. 1135 0016 02B0 add sp, sp, #8
  4419. 1136 .LCFI14:
  4420. 1137 .cfi_remember_state
  4421. 1138 .cfi_def_cfa_offset 24
  4422. 1139 @ sp needed
  4423. 1140 0018 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
  4424. 1141 .LVL82:
  4425. 1142 .L91:
  4426. 1143 .LCFI15:
  4427. 1144 .cfi_restore_state
  4428. 1145 001c 0446 mov r4, r0
  4429. 1146 001e 0D46 mov r5, r1
  4430. 1147 0020 9046 mov r8, r2
  4431. 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4432. 1148 .loc 1 1027 0
  4433. 1149 0022 0029 cmp r1, #0
  4434. 1150 0024 55D0 beq .L84
  4435. 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4436. 1151 .loc 1 1027 0 is_stmt 0 discriminator 1
  4437. 1152 0026 002A cmp r2, #0
  4438. 1153 0028 55D0 beq .L85
  4439. 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4440. 1154 .loc 1 1033 0 is_stmt 1
  4441. 1155 002a 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  4442. 1156 002e 012B cmp r3, #1
  4443. 1157 0030 01D1 bne .L92
  4444. 1158 0032 0223 movs r3, #2
  4445. 1159 0034 EEE7 b .L77
  4446. 1160 .L92:
  4447. 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4448. 1161 .loc 1 1033 0 is_stmt 0 discriminator 2
  4449. 1162 0036 0123 movs r3, #1
  4450. 1163 0038 80F83830 strb r3, [r0, #56]
  4451. 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
  4452. 1164 .loc 1 1035 0 is_stmt 1 discriminator 2
  4453. 1165 003c 0023 movs r3, #0
  4454. 1166 003e C363 str r3, [r0, #60]
  4455. 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4456. 1167 .loc 1 1036 0 discriminator 2
  4457. 1168 0040 2123 movs r3, #33
  4458. 1169 0042 80F83930 strb r3, [r0, #57]
  4459. 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4460. 1170 .loc 1 1039 0 discriminator 2
  4461. 1171 0046 FFF7FEFF bl HAL_GetTick
  4462. 1172 .LVL83:
  4463. 1173 004a 0746 mov r7, r0
  4464. 1174 .LVL84:
  4465. 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size;
  4466. 1175 .loc 1 1041 0 discriminator 2
  4467. ARM GAS /tmp/ccD7nRW1.s page 78
  4468. 1176 004c A4F82480 strh r8, [r4, #36] @ movhi
  4469. 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U)
  4470. 1177 .loc 1 1042 0 discriminator 2
  4471. 1178 0050 A4F82680 strh r8, [r4, #38] @ movhi
  4472. 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4473. 1179 .loc 1 1043 0 discriminator 2
  4474. 1180 0054 10E0 b .L78
  4475. 1181 .LVL85:
  4476. 1182 .L94:
  4477. 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4478. 1183 .loc 1 1048 0
  4479. 1184 0056 0096 str r6, [sp]
  4480. 1185 0058 3B46 mov r3, r7
  4481. 1186 005a 0022 movs r2, #0
  4482. 1187 005c 8021 movs r1, #128
  4483. 1188 005e 2046 mov r0, r4
  4484. 1189 0060 FFF7FEFF bl UART_WaitOnFlagUntilTimeout
  4485. 1190 .LVL86:
  4486. 1191 0064 0028 cmp r0, #0
  4487. 1192 0066 38D1 bne .L87
  4488. 1193 .LVL87:
  4489. 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  4490. 1194 .loc 1 1053 0
  4491. 1195 0068 2268 ldr r2, [r4]
  4492. 1196 006a 2B88 ldrh r3, [r5]
  4493. 1197 006c C3F30803 ubfx r3, r3, #0, #9
  4494. 1198 0070 5360 str r3, [r2, #4]
  4495. 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4496. 1199 .loc 1 1054 0
  4497. 1200 0072 2369 ldr r3, [r4, #16]
  4498. 1201 0074 CBB9 cbnz r3, .L80
  4499. 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4500. 1202 .loc 1 1056 0
  4501. 1203 0076 0235 adds r5, r5, #2
  4502. 1204 .LVL88:
  4503. 1205 .L78:
  4504. 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4505. 1206 .loc 1 1043 0
  4506. 1207 0078 E38C ldrh r3, [r4, #38]
  4507. 1208 007a 9BB2 uxth r3, r3
  4508. 1209 007c BBB1 cbz r3, .L93
  4509. 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B)
  4510. 1210 .loc 1 1045 0
  4511. 1211 007e E38C ldrh r3, [r4, #38]
  4512. 1212 0080 9BB2 uxth r3, r3
  4513. 1213 0082 013B subs r3, r3, #1
  4514. 1214 0084 9BB2 uxth r3, r3
  4515. 1215 0086 E384 strh r3, [r4, #38] @ movhi
  4516. 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4517. 1216 .loc 1 1046 0
  4518. 1217 0088 A368 ldr r3, [r4, #8]
  4519. 1218 008a B3F5805F cmp r3, #4096
  4520. 1219 008e E2D0 beq .L94
  4521. 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4522. 1220 .loc 1 1065 0
  4523. 1221 0090 0096 str r6, [sp]
  4524. 1222 0092 3B46 mov r3, r7
  4525. ARM GAS /tmp/ccD7nRW1.s page 79
  4526. 1223 0094 0022 movs r2, #0
  4527. 1224 0096 8021 movs r1, #128
  4528. 1225 0098 2046 mov r0, r4
  4529. 1226 009a FFF7FEFF bl UART_WaitOnFlagUntilTimeout
  4530. 1227 .LVL89:
  4531. 1228 009e F0B9 cbnz r0, .L88
  4532. 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4533. 1229 .loc 1 1069 0
  4534. 1230 00a0 2368 ldr r3, [r4]
  4535. 1231 .LVL90:
  4536. 1232 00a2 2A78 ldrb r2, [r5] @ zero_extendqisi2
  4537. 1233 00a4 5A60 str r2, [r3, #4]
  4538. 1234 00a6 0135 adds r5, r5, #1
  4539. 1235 .LVL91:
  4540. 1236 00a8 E6E7 b .L78
  4541. 1237 .LVL92:
  4542. 1238 .L80:
  4543. 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4544. 1239 .loc 1 1060 0
  4545. 1240 00aa 0135 adds r5, r5, #1
  4546. 1241 .LVL93:
  4547. 1242 00ac E4E7 b .L78
  4548. 1243 .LVL94:
  4549. 1244 .L93:
  4550. 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4551. 1245 .loc 1 1073 0
  4552. 1246 00ae 0096 str r6, [sp]
  4553. 1247 00b0 3B46 mov r3, r7
  4554. 1248 00b2 0022 movs r2, #0
  4555. 1249 00b4 4021 movs r1, #64
  4556. 1250 00b6 2046 mov r0, r4
  4557. 1251 00b8 FFF7FEFF bl UART_WaitOnFlagUntilTimeout
  4558. 1252 .LVL95:
  4559. 1253 00bc 0346 mov r3, r0
  4560. 1254 00be 08B1 cbz r0, .L95
  4561. 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4562. 1255 .loc 1 1075 0
  4563. 1256 00c0 0323 movs r3, #3
  4564. 1257 00c2 A7E7 b .L77
  4565. 1258 .L95:
  4566. 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4567. 1259 .loc 1 1079 0
  4568. 1260 00c4 2022 movs r2, #32
  4569. 1261 00c6 84F83920 strb r2, [r4, #57]
  4570. 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4571. 1262 .loc 1 1082 0
  4572. 1263 00ca 0022 movs r2, #0
  4573. 1264 00cc 84F83820 strb r2, [r4, #56]
  4574. 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4575. 1265 .loc 1 1084 0
  4576. 1266 00d0 A0E7 b .L77
  4577. 1267 .LVL96:
  4578. 1268 .L84:
  4579. 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4580. 1269 .loc 1 1029 0
  4581. 1270 00d2 0123 movs r3, #1
  4582. 1271 00d4 9EE7 b .L77
  4583. ARM GAS /tmp/ccD7nRW1.s page 80
  4584. 1272 .L85:
  4585. 1273 00d6 0123 movs r3, #1
  4586. 1274 00d8 9CE7 b .L77
  4587. 1275 .LVL97:
  4588. 1276 .L87:
  4589. 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4590. 1277 .loc 1 1050 0
  4591. 1278 00da 0323 movs r3, #3
  4592. 1279 00dc 9AE7 b .L77
  4593. 1280 .L88:
  4594. 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4595. 1281 .loc 1 1067 0
  4596. 1282 00de 0323 movs r3, #3
  4597. 1283 00e0 98E7 b .L77
  4598. 1284 .cfi_endproc
  4599. 1285 .LFE137:
  4600. 1287 .section .text.HAL_UART_Receive,"ax",%progbits
  4601. 1288 .align 1
  4602. 1289 .global HAL_UART_Receive
  4603. 1290 .syntax unified
  4604. 1291 .thumb
  4605. 1292 .thumb_func
  4606. 1293 .fpu fpv4-sp-d16
  4607. 1295 HAL_UART_Receive:
  4608. 1296 .LFB138:
  4609. 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp;
  4610. 1297 .loc 1 1102 0
  4611. 1298 .cfi_startproc
  4612. 1299 @ args = 0, pretend = 0, frame = 0
  4613. 1300 @ frame_needed = 0, uses_anonymous_args = 0
  4614. 1301 .LVL98:
  4615. 1302 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
  4616. 1303 .LCFI16:
  4617. 1304 .cfi_def_cfa_offset 24
  4618. 1305 .cfi_offset 4, -24
  4619. 1306 .cfi_offset 5, -20
  4620. 1307 .cfi_offset 6, -16
  4621. 1308 .cfi_offset 7, -12
  4622. 1309 .cfi_offset 8, -8
  4623. 1310 .cfi_offset 14, -4
  4624. 1311 0004 82B0 sub sp, sp, #8
  4625. 1312 .LCFI17:
  4626. 1313 .cfi_def_cfa_offset 32
  4627. 1314 0006 1E46 mov r6, r3
  4628. 1315 .LVL99:
  4629. 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4630. 1316 .loc 1 1107 0
  4631. 1317 0008 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
  4632. 1318 .LVL100:
  4633. 1319 000c DBB2 uxtb r3, r3
  4634. 1320 000e 202B cmp r3, #32
  4635. 1321 0010 03D0 beq .L111
  4636. 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4637. 1322 .loc 1 1177 0
  4638. 1323 0012 0220 movs r0, #2
  4639. 1324 .LVL101:
  4640. 1325 .L97:
  4641. ARM GAS /tmp/ccD7nRW1.s page 81
  4642. 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4643. 1326 .loc 1 1179 0
  4644. 1327 0014 02B0 add sp, sp, #8
  4645. 1328 .LCFI18:
  4646. 1329 .cfi_remember_state
  4647. 1330 .cfi_def_cfa_offset 24
  4648. 1331 @ sp needed
  4649. 1332 0016 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
  4650. 1333 .LVL102:
  4651. 1334 .L111:
  4652. 1335 .LCFI19:
  4653. 1336 .cfi_restore_state
  4654. 1337 001a 0446 mov r4, r0
  4655. 1338 001c 0D46 mov r5, r1
  4656. 1339 001e 9046 mov r8, r2
  4657. 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4658. 1340 .loc 1 1109 0
  4659. 1341 0020 0029 cmp r1, #0
  4660. 1342 0022 58D0 beq .L105
  4661. 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4662. 1343 .loc 1 1109 0 is_stmt 0 discriminator 1
  4663. 1344 0024 002A cmp r2, #0
  4664. 1345 0026 58D0 beq .L106
  4665. 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4666. 1346 .loc 1 1115 0 is_stmt 1
  4667. 1347 0028 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  4668. 1348 002c 012B cmp r3, #1
  4669. 1349 002e 01D1 bne .L112
  4670. 1350 0030 0220 movs r0, #2
  4671. 1351 .LVL103:
  4672. 1352 0032 EFE7 b .L97
  4673. 1353 .LVL104:
  4674. 1354 .L112:
  4675. 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4676. 1355 .loc 1 1115 0 is_stmt 0 discriminator 2
  4677. 1356 0034 0123 movs r3, #1
  4678. 1357 0036 80F83830 strb r3, [r0, #56]
  4679. 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
  4680. 1358 .loc 1 1117 0 is_stmt 1 discriminator 2
  4681. 1359 003a 0023 movs r3, #0
  4682. 1360 003c C363 str r3, [r0, #60]
  4683. 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4684. 1361 .loc 1 1118 0 discriminator 2
  4685. 1362 003e 2223 movs r3, #34
  4686. 1363 0040 80F83A30 strb r3, [r0, #58]
  4687. 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4688. 1364 .loc 1 1121 0 discriminator 2
  4689. 1365 0044 FFF7FEFF bl HAL_GetTick
  4690. 1366 .LVL105:
  4691. 1367 0048 0746 mov r7, r0
  4692. 1368 .LVL106:
  4693. 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size;
  4694. 1369 .loc 1 1123 0 discriminator 2
  4695. 1370 004a A4F82C80 strh r8, [r4, #44] @ movhi
  4696. 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4697. 1371 .loc 1 1124 0 discriminator 2
  4698. 1372 004e A4F82E80 strh r8, [r4, #46] @ movhi
  4699. ARM GAS /tmp/ccD7nRW1.s page 82
  4700. 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4701. 1373 .loc 1 1127 0 discriminator 2
  4702. 1374 0052 1DE0 b .L98
  4703. 1375 .LVL107:
  4704. 1376 .L114:
  4705. 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4706. 1377 .loc 1 1132 0
  4707. 1378 0054 0096 str r6, [sp]
  4708. 1379 0056 3B46 mov r3, r7
  4709. 1380 0058 0022 movs r2, #0
  4710. 1381 005a 2021 movs r1, #32
  4711. 1382 005c 2046 mov r0, r4
  4712. 1383 005e FFF7FEFF bl UART_WaitOnFlagUntilTimeout
  4713. 1384 .LVL108:
  4714. 1385 0062 0028 cmp r0, #0
  4715. 1386 0064 3BD1 bne .L108
  4716. 1387 .LVL109:
  4717. 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4718. 1388 .loc 1 1137 0
  4719. 1389 0066 2369 ldr r3, [r4, #16]
  4720. 1390 0068 33B9 cbnz r3, .L100
  4721. 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U;
  4722. 1391 .loc 1 1139 0
  4723. 1392 006a 2368 ldr r3, [r4]
  4724. 1393 006c 5B68 ldr r3, [r3, #4]
  4725. 1394 006e C3F30803 ubfx r3, r3, #0, #9
  4726. 1395 0072 25F8023B strh r3, [r5], #2 @ movhi
  4727. 1396 .LVL110:
  4728. 1397 0076 0BE0 b .L98
  4729. 1398 .LVL111:
  4730. 1399 .L100:
  4731. 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U;
  4732. 1400 .loc 1 1144 0
  4733. 1401 0078 2368 ldr r3, [r4]
  4734. 1402 007a 5B68 ldr r3, [r3, #4]
  4735. 1403 007c DBB2 uxtb r3, r3
  4736. 1404 007e 25F8013B strh r3, [r5], #1 @ movhi
  4737. 1405 .LVL112:
  4738. 1406 0082 05E0 b .L98
  4739. 1407 .LVL113:
  4740. 1408 .L102:
  4741. 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4742. 1409 .loc 1 1161 0
  4743. 1410 0084 2368 ldr r3, [r4]
  4744. 1411 0086 5B68 ldr r3, [r3, #4]
  4745. 1412 0088 03F07F03 and r3, r3, #127
  4746. 1413 008c 2B70 strb r3, [r5]
  4747. 1414 008e 0135 adds r5, r5, #1
  4748. 1415 .LVL114:
  4749. 1416 .L98:
  4750. 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4751. 1417 .loc 1 1127 0
  4752. 1418 0090 E38D ldrh r3, [r4, #46]
  4753. 1419 0092 9BB2 uxth r3, r3
  4754. 1420 0094 C3B1 cbz r3, .L113
  4755. 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B)
  4756. 1421 .loc 1 1129 0
  4757. ARM GAS /tmp/ccD7nRW1.s page 83
  4758. 1422 0096 E38D ldrh r3, [r4, #46]
  4759. 1423 0098 9BB2 uxth r3, r3
  4760. 1424 009a 013B subs r3, r3, #1
  4761. 1425 009c 9BB2 uxth r3, r3
  4762. 1426 009e E385 strh r3, [r4, #46] @ movhi
  4763. 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4764. 1427 .loc 1 1130 0
  4765. 1428 00a0 A368 ldr r3, [r4, #8]
  4766. 1429 00a2 B3F5805F cmp r3, #4096
  4767. 1430 00a6 D5D0 beq .L114
  4768. 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4769. 1431 .loc 1 1151 0
  4770. 1432 00a8 0096 str r6, [sp]
  4771. 1433 00aa 3B46 mov r3, r7
  4772. 1434 00ac 0022 movs r2, #0
  4773. 1435 00ae 2021 movs r1, #32
  4774. 1436 00b0 2046 mov r0, r4
  4775. 1437 00b2 FFF7FEFF bl UART_WaitOnFlagUntilTimeout
  4776. 1438 .LVL115:
  4777. 1439 00b6 A0B9 cbnz r0, .L109
  4778. 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4779. 1440 .loc 1 1155 0
  4780. 1441 00b8 2369 ldr r3, [r4, #16]
  4781. 1442 00ba 002B cmp r3, #0
  4782. 1443 00bc E2D1 bne .L102
  4783. 1444 .LVL116:
  4784. 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4785. 1445 .loc 1 1157 0
  4786. 1446 00be 2368 ldr r3, [r4]
  4787. 1447 00c0 5B68 ldr r3, [r3, #4]
  4788. 1448 00c2 2B70 strb r3, [r5]
  4789. 1449 00c4 0135 adds r5, r5, #1
  4790. 1450 .LVL117:
  4791. 1451 00c6 E3E7 b .L98
  4792. 1452 .L113:
  4793. 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4794. 1453 .loc 1 1168 0
  4795. 1454 00c8 2023 movs r3, #32
  4796. 1455 00ca 84F83A30 strb r3, [r4, #58]
  4797. 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4798. 1456 .loc 1 1171 0
  4799. 1457 00ce 0020 movs r0, #0
  4800. 1458 00d0 84F83800 strb r0, [r4, #56]
  4801. 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4802. 1459 .loc 1 1173 0
  4803. 1460 00d4 9EE7 b .L97
  4804. 1461 .LVL118:
  4805. 1462 .L105:
  4806. 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4807. 1463 .loc 1 1111 0
  4808. 1464 00d6 0120 movs r0, #1
  4809. 1465 .LVL119:
  4810. 1466 00d8 9CE7 b .L97
  4811. 1467 .LVL120:
  4812. 1468 .L106:
  4813. 1469 00da 0120 movs r0, #1
  4814. 1470 .LVL121:
  4815. ARM GAS /tmp/ccD7nRW1.s page 84
  4816. 1471 00dc 9AE7 b .L97
  4817. 1472 .LVL122:
  4818. 1473 .L108:
  4819. 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4820. 1474 .loc 1 1134 0
  4821. 1475 00de 0320 movs r0, #3
  4822. 1476 00e0 98E7 b .L97
  4823. 1477 .L109:
  4824. 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4825. 1478 .loc 1 1153 0
  4826. 1479 00e2 0320 movs r0, #3
  4827. 1480 00e4 96E7 b .L97
  4828. 1481 .cfi_endproc
  4829. 1482 .LFE138:
  4830. 1484 .section .text.HAL_UART_Transmit_IT,"ax",%progbits
  4831. 1485 .align 1
  4832. 1486 .global HAL_UART_Transmit_IT
  4833. 1487 .syntax unified
  4834. 1488 .thumb
  4835. 1489 .thumb_func
  4836. 1490 .fpu fpv4-sp-d16
  4837. 1492 HAL_UART_Transmit_IT:
  4838. 1493 .LFB139:
  4839. 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */
  4840. 1494 .loc 1 1190 0
  4841. 1495 .cfi_startproc
  4842. 1496 @ args = 0, pretend = 0, frame = 0
  4843. 1497 @ frame_needed = 0, uses_anonymous_args = 0
  4844. 1498 @ link register save eliminated.
  4845. 1499 .LVL123:
  4846. 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4847. 1500 .loc 1 1192 0
  4848. 1501 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  4849. 1502 0004 DBB2 uxtb r3, r3
  4850. 1503 0006 202B cmp r3, #32
  4851. 1504 0008 01D0 beq .L121
  4852. 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4853. 1505 .loc 1 1219 0
  4854. 1506 000a 0220 movs r0, #2
  4855. 1507 .LVL124:
  4856. 1508 000c 7047 bx lr
  4857. 1509 .LVL125:
  4858. 1510 .L121:
  4859. 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4860. 1511 .loc 1 1194 0
  4861. 1512 000e A9B1 cbz r1, .L118
  4862. 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4863. 1513 .loc 1 1194 0 is_stmt 0 discriminator 1
  4864. 1514 0010 B2B1 cbz r2, .L119
  4865. 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4866. 1515 .loc 1 1200 0 is_stmt 1
  4867. 1516 0012 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  4868. 1517 0016 012B cmp r3, #1
  4869. 1518 0018 14D0 beq .L120
  4870. 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size;
  4871. 1519 .loc 1 1202 0 discriminator 2
  4872. 1520 001a 0162 str r1, [r0, #32]
  4873. ARM GAS /tmp/ccD7nRW1.s page 85
  4874. 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size;
  4875. 1521 .loc 1 1203 0 discriminator 2
  4876. 1522 001c 8284 strh r2, [r0, #36] @ movhi
  4877. 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4878. 1523 .loc 1 1204 0 discriminator 2
  4879. 1524 001e C284 strh r2, [r0, #38] @ movhi
  4880. 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
  4881. 1525 .loc 1 1206 0 discriminator 2
  4882. 1526 0020 0023 movs r3, #0
  4883. 1527 0022 C363 str r3, [r0, #60]
  4884. 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4885. 1528 .loc 1 1207 0 discriminator 2
  4886. 1529 0024 2122 movs r2, #33
  4887. 1530 .LVL126:
  4888. 1531 0026 80F83920 strb r2, [r0, #57]
  4889. 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4890. 1532 .loc 1 1210 0 discriminator 2
  4891. 1533 002a 80F83830 strb r3, [r0, #56]
  4892. 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4893. 1534 .loc 1 1213 0 discriminator 2
  4894. 1535 002e 0168 ldr r1, [r0]
  4895. 1536 .LVL127:
  4896. 1537 0030 CA68 ldr r2, [r1, #12]
  4897. 1538 0032 42F08002 orr r2, r2, #128
  4898. 1539 0036 CA60 str r2, [r1, #12]
  4899. 1540 .LVL128:
  4900. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4901. 1541 .loc 1 1215 0 discriminator 2
  4902. 1542 0038 1846 mov r0, r3
  4903. 1543 .LVL129:
  4904. 1544 003a 7047 bx lr
  4905. 1545 .LVL130:
  4906. 1546 .L118:
  4907. 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4908. 1547 .loc 1 1196 0
  4909. 1548 003c 0120 movs r0, #1
  4910. 1549 .LVL131:
  4911. 1550 003e 7047 bx lr
  4912. 1551 .LVL132:
  4913. 1552 .L119:
  4914. 1553 0040 0120 movs r0, #1
  4915. 1554 .LVL133:
  4916. 1555 0042 7047 bx lr
  4917. 1556 .LVL134:
  4918. 1557 .L120:
  4919. 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4920. 1558 .loc 1 1200 0
  4921. 1559 0044 0220 movs r0, #2
  4922. 1560 .LVL135:
  4923. 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4924. 1561 .loc 1 1221 0
  4925. 1562 0046 7047 bx lr
  4926. 1563 .cfi_endproc
  4927. 1564 .LFE139:
  4928. 1566 .section .text.HAL_UART_Receive_IT,"ax",%progbits
  4929. 1567 .align 1
  4930. 1568 .global HAL_UART_Receive_IT
  4931. ARM GAS /tmp/ccD7nRW1.s page 86
  4932. 1569 .syntax unified
  4933. 1570 .thumb
  4934. 1571 .thumb_func
  4935. 1572 .fpu fpv4-sp-d16
  4936. 1574 HAL_UART_Receive_IT:
  4937. 1575 .LFB140:
  4938. 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */
  4939. 1576 .loc 1 1232 0
  4940. 1577 .cfi_startproc
  4941. 1578 @ args = 0, pretend = 0, frame = 0
  4942. 1579 @ frame_needed = 0, uses_anonymous_args = 0
  4943. 1580 @ link register save eliminated.
  4944. 1581 .LVL136:
  4945. 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4946. 1582 .loc 1 1234 0
  4947. 1583 0000 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
  4948. 1584 0004 DBB2 uxtb r3, r3
  4949. 1585 0006 202B cmp r3, #32
  4950. 1586 0008 01D0 beq .L128
  4951. 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  4952. 1587 .loc 1 1267 0
  4953. 1588 000a 0220 movs r0, #2
  4954. 1589 .LVL137:
  4955. 1590 000c 7047 bx lr
  4956. 1591 .LVL138:
  4957. 1592 .L128:
  4958. 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4959. 1593 .loc 1 1236 0
  4960. 1594 000e F9B1 cbz r1, .L125
  4961. 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  4962. 1595 .loc 1 1236 0 is_stmt 0 discriminator 1
  4963. 1596 0010 02B3 cbz r2, .L126
  4964. 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4965. 1597 .loc 1 1242 0 is_stmt 1
  4966. 1598 0012 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  4967. 1599 0016 012B cmp r3, #1
  4968. 1600 0018 1ED0 beq .L127
  4969. 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size;
  4970. 1601 .loc 1 1244 0 discriminator 2
  4971. 1602 001a 8162 str r1, [r0, #40]
  4972. 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size;
  4973. 1603 .loc 1 1245 0 discriminator 2
  4974. 1604 001c 8285 strh r2, [r0, #44] @ movhi
  4975. 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4976. 1605 .loc 1 1246 0 discriminator 2
  4977. 1606 001e C285 strh r2, [r0, #46] @ movhi
  4978. 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
  4979. 1607 .loc 1 1248 0 discriminator 2
  4980. 1608 0020 0023 movs r3, #0
  4981. 1609 0022 C363 str r3, [r0, #60]
  4982. 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4983. 1610 .loc 1 1249 0 discriminator 2
  4984. 1611 0024 2222 movs r2, #34
  4985. 1612 .LVL139:
  4986. 1613 0026 80F83A20 strb r2, [r0, #58]
  4987. 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4988. 1614 .loc 1 1252 0 discriminator 2
  4989. ARM GAS /tmp/ccD7nRW1.s page 87
  4990. 1615 002a 80F83830 strb r3, [r0, #56]
  4991. 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  4992. 1616 .loc 1 1255 0 discriminator 2
  4993. 1617 002e 0168 ldr r1, [r0]
  4994. 1618 .LVL140:
  4995. 1619 0030 CA68 ldr r2, [r1, #12]
  4996. 1620 0032 42F48072 orr r2, r2, #256
  4997. 1621 0036 CA60 str r2, [r1, #12]
  4998. 1622 .LVL141:
  4999. 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5000. 1623 .loc 1 1258 0 discriminator 2
  5001. 1624 0038 0168 ldr r1, [r0]
  5002. 1625 003a 4A69 ldr r2, [r1, #20]
  5003. 1626 003c 42F00102 orr r2, r2, #1
  5004. 1627 0040 4A61 str r2, [r1, #20]
  5005. 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5006. 1628 .loc 1 1261 0 discriminator 2
  5007. 1629 0042 0168 ldr r1, [r0]
  5008. 1630 0044 CA68 ldr r2, [r1, #12]
  5009. 1631 0046 42F02002 orr r2, r2, #32
  5010. 1632 004a CA60 str r2, [r1, #12]
  5011. 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5012. 1633 .loc 1 1263 0 discriminator 2
  5013. 1634 004c 1846 mov r0, r3
  5014. 1635 .LVL142:
  5015. 1636 004e 7047 bx lr
  5016. 1637 .LVL143:
  5017. 1638 .L125:
  5018. 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5019. 1639 .loc 1 1238 0
  5020. 1640 0050 0120 movs r0, #1
  5021. 1641 .LVL144:
  5022. 1642 0052 7047 bx lr
  5023. 1643 .LVL145:
  5024. 1644 .L126:
  5025. 1645 0054 0120 movs r0, #1
  5026. 1646 .LVL146:
  5027. 1647 0056 7047 bx lr
  5028. 1648 .LVL147:
  5029. 1649 .L127:
  5030. 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5031. 1650 .loc 1 1242 0
  5032. 1651 0058 0220 movs r0, #2
  5033. 1652 .LVL148:
  5034. 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5035. 1653 .loc 1 1269 0
  5036. 1654 005a 7047 bx lr
  5037. 1655 .cfi_endproc
  5038. 1656 .LFE140:
  5039. 1658 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits
  5040. 1659 .align 1
  5041. 1660 .global HAL_UART_Transmit_DMA
  5042. 1661 .syntax unified
  5043. 1662 .thumb
  5044. 1663 .thumb_func
  5045. 1664 .fpu fpv4-sp-d16
  5046. 1666 HAL_UART_Transmit_DMA:
  5047. ARM GAS /tmp/ccD7nRW1.s page 88
  5048. 1667 .LFB141:
  5049. 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp;
  5050. 1668 .loc 1 1280 0
  5051. 1669 .cfi_startproc
  5052. 1670 @ args = 0, pretend = 0, frame = 0
  5053. 1671 @ frame_needed = 0, uses_anonymous_args = 0
  5054. 1672 .LVL149:
  5055. 1673 0000 38B5 push {r3, r4, r5, lr}
  5056. 1674 .LCFI20:
  5057. 1675 .cfi_def_cfa_offset 16
  5058. 1676 .cfi_offset 3, -16
  5059. 1677 .cfi_offset 4, -12
  5060. 1678 .cfi_offset 5, -8
  5061. 1679 .cfi_offset 14, -4
  5062. 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5063. 1680 .loc 1 1284 0
  5064. 1681 0002 90F83940 ldrb r4, [r0, #57] @ zero_extendqisi2
  5065. 1682 0006 E4B2 uxtb r4, r4
  5066. 1683 0008 202C cmp r4, #32
  5067. 1684 000a 01D0 beq .L136
  5068. 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5069. 1685 .loc 1 1331 0
  5070. 1686 000c 0220 movs r0, #2
  5071. 1687 .LVL150:
  5072. 1688 000e 38BD pop {r3, r4, r5, pc}
  5073. 1689 .LVL151:
  5074. 1690 .L136:
  5075. 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5076. 1691 .loc 1 1286 0
  5077. 1692 0010 0029 cmp r1, #0
  5078. 1693 0012 31D0 beq .L132
  5079. 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5080. 1694 .loc 1 1286 0 is_stmt 0 discriminator 1
  5081. 1695 0014 002A cmp r2, #0
  5082. 1696 0016 31D0 beq .L133
  5083. 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5084. 1697 .loc 1 1292 0 is_stmt 1
  5085. 1698 0018 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  5086. 1699 001c 012B cmp r3, #1
  5087. 1700 001e 01D1 bne .L137
  5088. 1701 0020 0220 movs r0, #2
  5089. 1702 .LVL152:
  5090. 1333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5091. 1703 .loc 1 1333 0
  5092. 1704 0022 38BD pop {r3, r4, r5, pc}
  5093. 1705 .LVL153:
  5094. 1706 .L137:
  5095. 1707 0024 1346 mov r3, r2
  5096. 1708 0026 0446 mov r4, r0
  5097. 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5098. 1709 .loc 1 1292 0 discriminator 2
  5099. 1710 0028 0122 movs r2, #1
  5100. 1711 .LVL154:
  5101. 1712 002a 80F83820 strb r2, [r0, #56]
  5102. 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size;
  5103. 1713 .loc 1 1294 0 discriminator 2
  5104. 1714 002e 0162 str r1, [r0, #32]
  5105. ARM GAS /tmp/ccD7nRW1.s page 89
  5106. 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size;
  5107. 1715 .loc 1 1295 0 discriminator 2
  5108. 1716 0030 8384 strh r3, [r0, #36] @ movhi
  5109. 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5110. 1717 .loc 1 1296 0 discriminator 2
  5111. 1718 0032 C384 strh r3, [r0, #38] @ movhi
  5112. 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
  5113. 1719 .loc 1 1298 0 discriminator 2
  5114. 1720 0034 0025 movs r5, #0
  5115. 1721 0036 C563 str r5, [r0, #60]
  5116. 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5117. 1722 .loc 1 1299 0 discriminator 2
  5118. 1723 0038 2122 movs r2, #33
  5119. 1724 003a 80F83920 strb r2, [r0, #57]
  5120. 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5121. 1725 .loc 1 1302 0 discriminator 2
  5122. 1726 003e 026B ldr r2, [r0, #48]
  5123. 1727 0040 0F48 ldr r0, .L138
  5124. 1728 .LVL155:
  5125. 1729 0042 D063 str r0, [r2, #60]
  5126. 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5127. 1730 .loc 1 1305 0 discriminator 2
  5128. 1731 0044 226B ldr r2, [r4, #48]
  5129. 1732 0046 0F48 ldr r0, .L138+4
  5130. 1733 0048 1064 str r0, [r2, #64]
  5131. 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5132. 1734 .loc 1 1308 0 discriminator 2
  5133. 1735 004a 226B ldr r2, [r4, #48]
  5134. 1736 004c 0E48 ldr r0, .L138+8
  5135. 1737 004e D064 str r0, [r2, #76]
  5136. 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5137. 1738 .loc 1 1311 0 discriminator 2
  5138. 1739 0050 226B ldr r2, [r4, #48]
  5139. 1740 0052 1565 str r5, [r2, #80]
  5140. 1741 .LVL156:
  5141. 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5142. 1742 .loc 1 1315 0 discriminator 2
  5143. 1743 0054 2268 ldr r2, [r4]
  5144. 1744 0056 0432 adds r2, r2, #4
  5145. 1745 0058 206B ldr r0, [r4, #48]
  5146. 1746 005a FFF7FEFF bl HAL_DMA_Start_IT
  5147. 1747 .LVL157:
  5148. 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5149. 1748 .loc 1 1318 0 discriminator 2
  5150. 1749 005e 2368 ldr r3, [r4]
  5151. 1750 0060 6FF04002 mvn r2, #64
  5152. 1751 0064 1A60 str r2, [r3]
  5153. 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5154. 1752 .loc 1 1321 0 discriminator 2
  5155. 1753 0066 84F83850 strb r5, [r4, #56]
  5156. 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5157. 1754 .loc 1 1325 0 discriminator 2
  5158. 1755 006a 2268 ldr r2, [r4]
  5159. 1756 006c 5369 ldr r3, [r2, #20]
  5160. 1757 006e 43F08003 orr r3, r3, #128
  5161. 1758 0072 5361 str r3, [r2, #20]
  5162. 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5163. ARM GAS /tmp/ccD7nRW1.s page 90
  5164. 1759 .loc 1 1327 0 discriminator 2
  5165. 1760 0074 2846 mov r0, r5
  5166. 1761 0076 38BD pop {r3, r4, r5, pc}
  5167. 1762 .LVL158:
  5168. 1763 .L132:
  5169. 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5170. 1764 .loc 1 1288 0
  5171. 1765 0078 0120 movs r0, #1
  5172. 1766 .LVL159:
  5173. 1767 007a 38BD pop {r3, r4, r5, pc}
  5174. 1768 .LVL160:
  5175. 1769 .L133:
  5176. 1770 007c 0120 movs r0, #1
  5177. 1771 .LVL161:
  5178. 1772 007e 38BD pop {r3, r4, r5, pc}
  5179. 1773 .L139:
  5180. 1774 .align 2
  5181. 1775 .L138:
  5182. 1776 0080 00000000 .word UART_DMATransmitCplt
  5183. 1777 0084 00000000 .word UART_DMATxHalfCplt
  5184. 1778 0088 00000000 .word UART_DMAError
  5185. 1779 .cfi_endproc
  5186. 1780 .LFE141:
  5187. 1782 .section .text.HAL_UART_Receive_DMA,"ax",%progbits
  5188. 1783 .align 1
  5189. 1784 .global HAL_UART_Receive_DMA
  5190. 1785 .syntax unified
  5191. 1786 .thumb
  5192. 1787 .thumb_func
  5193. 1788 .fpu fpv4-sp-d16
  5194. 1790 HAL_UART_Receive_DMA:
  5195. 1791 .LFB142:
  5196. 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp;
  5197. 1792 .loc 1 1345 0
  5198. 1793 .cfi_startproc
  5199. 1794 @ args = 0, pretend = 0, frame = 8
  5200. 1795 @ frame_needed = 0, uses_anonymous_args = 0
  5201. 1796 .LVL162:
  5202. 1797 0000 30B5 push {r4, r5, lr}
  5203. 1798 .LCFI21:
  5204. 1799 .cfi_def_cfa_offset 12
  5205. 1800 .cfi_offset 4, -12
  5206. 1801 .cfi_offset 5, -8
  5207. 1802 .cfi_offset 14, -4
  5208. 1803 0002 83B0 sub sp, sp, #12
  5209. 1804 .LCFI22:
  5210. 1805 .cfi_def_cfa_offset 24
  5211. 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5212. 1806 .loc 1 1349 0
  5213. 1807 0004 90F83A40 ldrb r4, [r0, #58] @ zero_extendqisi2
  5214. 1808 0008 E4B2 uxtb r4, r4
  5215. 1809 000a 202C cmp r4, #32
  5216. 1810 000c 02D0 beq .L147
  5217. 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5218. 1811 .loc 1 1401 0
  5219. 1812 000e 0220 movs r0, #2
  5220. 1813 .LVL163:
  5221. ARM GAS /tmp/ccD7nRW1.s page 91
  5222. 1814 .L141:
  5223. 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5224. 1815 .loc 1 1403 0
  5225. 1816 0010 03B0 add sp, sp, #12
  5226. 1817 .LCFI23:
  5227. 1818 .cfi_remember_state
  5228. 1819 .cfi_def_cfa_offset 12
  5229. 1820 @ sp needed
  5230. 1821 0012 30BD pop {r4, r5, pc}
  5231. 1822 .LVL164:
  5232. 1823 .L147:
  5233. 1824 .LCFI24:
  5234. 1825 .cfi_restore_state
  5235. 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5236. 1826 .loc 1 1351 0
  5237. 1827 0014 0029 cmp r1, #0
  5238. 1828 0016 3DD0 beq .L143
  5239. 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5240. 1829 .loc 1 1351 0 is_stmt 0 discriminator 1
  5241. 1830 0018 002A cmp r2, #0
  5242. 1831 001a 3DD0 beq .L144
  5243. 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5244. 1832 .loc 1 1357 0 is_stmt 1
  5245. 1833 001c 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  5246. 1834 0020 012B cmp r3, #1
  5247. 1835 0022 01D1 bne .L148
  5248. 1836 0024 0220 movs r0, #2
  5249. 1837 .LVL165:
  5250. 1838 0026 F3E7 b .L141
  5251. 1839 .LVL166:
  5252. 1840 .L148:
  5253. 1841 0028 1346 mov r3, r2
  5254. 1842 002a 0A46 mov r2, r1
  5255. 1843 .LVL167:
  5256. 1844 002c 0446 mov r4, r0
  5257. 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5258. 1845 .loc 1 1357 0 is_stmt 0 discriminator 2
  5259. 1846 002e 0121 movs r1, #1
  5260. 1847 .LVL168:
  5261. 1848 0030 80F83810 strb r1, [r0, #56]
  5262. 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size;
  5263. 1849 .loc 1 1359 0 is_stmt 1 discriminator 2
  5264. 1850 0034 8262 str r2, [r0, #40]
  5265. 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5266. 1851 .loc 1 1360 0 discriminator 2
  5267. 1852 0036 8385 strh r3, [r0, #44] @ movhi
  5268. 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
  5269. 1853 .loc 1 1362 0 discriminator 2
  5270. 1854 0038 0025 movs r5, #0
  5271. 1855 003a C563 str r5, [r0, #60]
  5272. 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5273. 1856 .loc 1 1363 0 discriminator 2
  5274. 1857 003c 2221 movs r1, #34
  5275. 1858 003e 80F83A10 strb r1, [r0, #58]
  5276. 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5277. 1859 .loc 1 1366 0 discriminator 2
  5278. 1860 0042 416B ldr r1, [r0, #52]
  5279. ARM GAS /tmp/ccD7nRW1.s page 92
  5280. 1861 0044 1548 ldr r0, .L149
  5281. 1862 .LVL169:
  5282. 1863 0046 C863 str r0, [r1, #60]
  5283. 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5284. 1864 .loc 1 1369 0 discriminator 2
  5285. 1865 0048 616B ldr r1, [r4, #52]
  5286. 1866 004a 1548 ldr r0, .L149+4
  5287. 1867 004c 0864 str r0, [r1, #64]
  5288. 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5289. 1868 .loc 1 1372 0 discriminator 2
  5290. 1869 004e 616B ldr r1, [r4, #52]
  5291. 1870 0050 1448 ldr r0, .L149+8
  5292. 1871 0052 C864 str r0, [r1, #76]
  5293. 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5294. 1872 .loc 1 1375 0 discriminator 2
  5295. 1873 0054 616B ldr r1, [r4, #52]
  5296. 1874 0056 0D65 str r5, [r1, #80]
  5297. 1875 .LVL170:
  5298. 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5299. 1876 .loc 1 1379 0 discriminator 2
  5300. 1877 0058 2168 ldr r1, [r4]
  5301. 1878 005a 0431 adds r1, r1, #4
  5302. 1879 005c 606B ldr r0, [r4, #52]
  5303. 1880 005e FFF7FEFF bl HAL_DMA_Start_IT
  5304. 1881 .LVL171:
  5305. 1882 .LBB2:
  5306. 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5307. 1883 .loc 1 1382 0 discriminator 2
  5308. 1884 0062 0195 str r5, [sp, #4]
  5309. 1885 0064 2368 ldr r3, [r4]
  5310. 1886 0066 1A68 ldr r2, [r3]
  5311. 1887 0068 0192 str r2, [sp, #4]
  5312. 1888 006a 5A68 ldr r2, [r3, #4]
  5313. 1889 006c 0192 str r2, [sp, #4]
  5314. 1890 006e 019A ldr r2, [sp, #4]
  5315. 1891 .LBE2:
  5316. 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5317. 1892 .loc 1 1385 0 discriminator 2
  5318. 1893 0070 84F83850 strb r5, [r4, #56]
  5319. 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5320. 1894 .loc 1 1388 0 discriminator 2
  5321. 1895 0074 DA68 ldr r2, [r3, #12]
  5322. 1896 0076 42F48072 orr r2, r2, #256
  5323. 1897 007a DA60 str r2, [r3, #12]
  5324. 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5325. 1898 .loc 1 1391 0 discriminator 2
  5326. 1899 007c 2268 ldr r2, [r4]
  5327. 1900 007e 5369 ldr r3, [r2, #20]
  5328. 1901 0080 43F00103 orr r3, r3, #1
  5329. 1902 0084 5361 str r3, [r2, #20]
  5330. 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5331. 1903 .loc 1 1395 0 discriminator 2
  5332. 1904 0086 2268 ldr r2, [r4]
  5333. 1905 0088 5369 ldr r3, [r2, #20]
  5334. 1906 008a 43F04003 orr r3, r3, #64
  5335. 1907 008e 5361 str r3, [r2, #20]
  5336. 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5337. ARM GAS /tmp/ccD7nRW1.s page 93
  5338. 1908 .loc 1 1397 0 discriminator 2
  5339. 1909 0090 2846 mov r0, r5
  5340. 1910 0092 BDE7 b .L141
  5341. 1911 .LVL172:
  5342. 1912 .L143:
  5343. 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5344. 1913 .loc 1 1353 0
  5345. 1914 0094 0120 movs r0, #1
  5346. 1915 .LVL173:
  5347. 1916 0096 BBE7 b .L141
  5348. 1917 .LVL174:
  5349. 1918 .L144:
  5350. 1919 0098 0120 movs r0, #1
  5351. 1920 .LVL175:
  5352. 1921 009a B9E7 b .L141
  5353. 1922 .L150:
  5354. 1923 .align 2
  5355. 1924 .L149:
  5356. 1925 009c 00000000 .word UART_DMAReceiveCplt
  5357. 1926 00a0 00000000 .word UART_DMARxHalfCplt
  5358. 1927 00a4 00000000 .word UART_DMAError
  5359. 1928 .cfi_endproc
  5360. 1929 .LFE142:
  5361. 1931 .section .text.HAL_UART_DMAPause,"ax",%progbits
  5362. 1932 .align 1
  5363. 1933 .global HAL_UART_DMAPause
  5364. 1934 .syntax unified
  5365. 1935 .thumb
  5366. 1936 .thumb_func
  5367. 1937 .fpu fpv4-sp-d16
  5368. 1939 HAL_UART_DMAPause:
  5369. 1940 .LFB143:
  5370. 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  5371. 1941 .loc 1 1412 0
  5372. 1942 .cfi_startproc
  5373. 1943 @ args = 0, pretend = 0, frame = 0
  5374. 1944 @ frame_needed = 0, uses_anonymous_args = 0
  5375. 1945 @ link register save eliminated.
  5376. 1946 .LVL176:
  5377. 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5378. 1947 .loc 1 1416 0
  5379. 1948 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  5380. 1949 0004 012B cmp r3, #1
  5381. 1950 0006 31D0 beq .L155
  5382. 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5383. 1951 .loc 1 1416 0 is_stmt 0 discriminator 2
  5384. 1952 0008 0123 movs r3, #1
  5385. 1953 000a 80F83830 strb r3, [r0, #56]
  5386. 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest)
  5387. 1954 .loc 1 1418 0 is_stmt 1 discriminator 2
  5388. 1955 000e 0168 ldr r1, [r0]
  5389. 1956 0010 4A69 ldr r2, [r1, #20]
  5390. 1957 0012 02F08002 and r2, r2, #128
  5391. 1958 .LVL177:
  5392. 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5393. 1959 .loc 1 1419 0 discriminator 2
  5394. 1960 0016 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  5395. ARM GAS /tmp/ccD7nRW1.s page 94
  5396. 1961 001a DBB2 uxtb r3, r3
  5397. 1962 001c 212B cmp r3, #33
  5398. 1963 001e 0DD0 beq .L156
  5399. 1964 .L153:
  5400. 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest)
  5401. 1965 .loc 1 1425 0
  5402. 1966 0020 0168 ldr r1, [r0]
  5403. 1967 0022 4A69 ldr r2, [r1, #20]
  5404. 1968 .LVL178:
  5405. 1969 0024 02F04002 and r2, r2, #64
  5406. 1970 .LVL179:
  5407. 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5408. 1971 .loc 1 1426 0
  5409. 1972 0028 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
  5410. 1973 002c DBB2 uxtb r3, r3
  5411. 1974 002e 222B cmp r3, #34
  5412. 1975 0030 0BD0 beq .L157
  5413. 1976 .LVL180:
  5414. 1977 .L154:
  5415. 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5416. 1978 .loc 1 1437 0
  5417. 1979 0032 0023 movs r3, #0
  5418. 1980 0034 80F83830 strb r3, [r0, #56]
  5419. 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5420. 1981 .loc 1 1439 0
  5421. 1982 0038 1846 mov r0, r3
  5422. 1983 .LVL181:
  5423. 1984 003a 7047 bx lr
  5424. 1985 .LVL182:
  5425. 1986 .L156:
  5426. 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5427. 1987 .loc 1 1419 0 discriminator 1
  5428. 1988 003c 002A cmp r2, #0
  5429. 1989 003e EFD0 beq .L153
  5430. 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5431. 1990 .loc 1 1422 0
  5432. 1991 0040 4B69 ldr r3, [r1, #20]
  5433. 1992 0042 23F08003 bic r3, r3, #128
  5434. 1993 0046 4B61 str r3, [r1, #20]
  5435. 1994 0048 EAE7 b .L153
  5436. 1995 .L157:
  5437. 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5438. 1996 .loc 1 1426 0 discriminator 1
  5439. 1997 004a 002A cmp r2, #0
  5440. 1998 004c F1D0 beq .L154
  5441. 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  5442. 1999 .loc 1 1429 0
  5443. 2000 004e CB68 ldr r3, [r1, #12]
  5444. 2001 0050 23F48073 bic r3, r3, #256
  5445. 2002 0054 CB60 str r3, [r1, #12]
  5446. 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5447. 2003 .loc 1 1430 0
  5448. 2004 0056 0268 ldr r2, [r0]
  5449. 2005 .LVL183:
  5450. 2006 0058 5369 ldr r3, [r2, #20]
  5451. 2007 005a 23F00103 bic r3, r3, #1
  5452. 2008 005e 5361 str r3, [r2, #20]
  5453. ARM GAS /tmp/ccD7nRW1.s page 95
  5454. 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5455. 2009 .loc 1 1433 0
  5456. 2010 0060 0268 ldr r2, [r0]
  5457. 2011 0062 5369 ldr r3, [r2, #20]
  5458. 2012 0064 23F04003 bic r3, r3, #64
  5459. 2013 0068 5361 str r3, [r2, #20]
  5460. 2014 006a E2E7 b .L154
  5461. 2015 .LVL184:
  5462. 2016 .L155:
  5463. 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5464. 2017 .loc 1 1416 0
  5465. 2018 006c 0220 movs r0, #2
  5466. 2019 .LVL185:
  5467. 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5468. 2020 .loc 1 1440 0
  5469. 2021 006e 7047 bx lr
  5470. 2022 .cfi_endproc
  5471. 2023 .LFE143:
  5472. 2025 .section .text.HAL_UART_DMAResume,"ax",%progbits
  5473. 2026 .align 1
  5474. 2027 .global HAL_UART_DMAResume
  5475. 2028 .syntax unified
  5476. 2029 .thumb
  5477. 2030 .thumb_func
  5478. 2031 .fpu fpv4-sp-d16
  5479. 2033 HAL_UART_DMAResume:
  5480. 2034 .LFB144:
  5481. 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  5482. 2035 .loc 1 1449 0
  5483. 2036 .cfi_startproc
  5484. 2037 @ args = 0, pretend = 0, frame = 8
  5485. 2038 @ frame_needed = 0, uses_anonymous_args = 0
  5486. 2039 @ link register save eliminated.
  5487. 2040 .LVL186:
  5488. 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5489. 2041 .loc 1 1451 0
  5490. 2042 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  5491. 2043 0004 012B cmp r3, #1
  5492. 2044 0006 34D0 beq .L162
  5493. 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5494. 2045 .loc 1 1451 0 is_stmt 0 discriminator 2
  5495. 2046 0008 0123 movs r3, #1
  5496. 2047 000a 80F83830 strb r3, [r0, #56]
  5497. 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5498. 2048 .loc 1 1453 0 is_stmt 1 discriminator 2
  5499. 2049 000e 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  5500. 2050 0012 DBB2 uxtb r3, r3
  5501. 2051 0014 212B cmp r3, #33
  5502. 2052 0016 09D0 beq .L168
  5503. 2053 .L160:
  5504. 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5505. 2054 .loc 1 1459 0
  5506. 2055 0018 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
  5507. 2056 001c DBB2 uxtb r3, r3
  5508. 2057 001e 222B cmp r3, #34
  5509. 2058 0020 0AD0 beq .L169
  5510. 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5511. ARM GAS /tmp/ccD7nRW1.s page 96
  5512. 2059 .loc 1 1473 0
  5513. 2060 0022 0023 movs r3, #0
  5514. 2061 0024 80F83830 strb r3, [r0, #56]
  5515. 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5516. 2062 .loc 1 1475 0
  5517. 2063 0028 1846 mov r0, r3
  5518. 2064 .LVL187:
  5519. 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5520. 2065 .loc 1 1476 0
  5521. 2066 002a 7047 bx lr
  5522. 2067 .LVL188:
  5523. 2068 .L168:
  5524. 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5525. 2069 .loc 1 1456 0
  5526. 2070 002c 0268 ldr r2, [r0]
  5527. 2071 002e 5369 ldr r3, [r2, #20]
  5528. 2072 0030 43F08003 orr r3, r3, #128
  5529. 2073 0034 5361 str r3, [r2, #20]
  5530. 2074 0036 EFE7 b .L160
  5531. 2075 .L169:
  5532. 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */
  5533. 2076 .loc 1 1449 0
  5534. 2077 0038 82B0 sub sp, sp, #8
  5535. 2078 .LCFI25:
  5536. 2079 .cfi_def_cfa_offset 8
  5537. 2080 .LBB3:
  5538. 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5539. 2081 .loc 1 1462 0
  5540. 2082 003a 0023 movs r3, #0
  5541. 2083 003c 0193 str r3, [sp, #4]
  5542. 2084 003e 0368 ldr r3, [r0]
  5543. 2085 0040 1A68 ldr r2, [r3]
  5544. 2086 0042 0192 str r2, [sp, #4]
  5545. 2087 0044 5A68 ldr r2, [r3, #4]
  5546. 2088 0046 0192 str r2, [sp, #4]
  5547. 2089 0048 019A ldr r2, [sp, #4]
  5548. 2090 .LBE3:
  5549. 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
  5550. 2091 .loc 1 1465 0
  5551. 2092 004a DA68 ldr r2, [r3, #12]
  5552. 2093 004c 42F48072 orr r2, r2, #256
  5553. 2094 0050 DA60 str r2, [r3, #12]
  5554. 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5555. 2095 .loc 1 1466 0
  5556. 2096 0052 0268 ldr r2, [r0]
  5557. 2097 0054 5369 ldr r3, [r2, #20]
  5558. 2098 0056 43F00103 orr r3, r3, #1
  5559. 2099 005a 5361 str r3, [r2, #20]
  5560. 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5561. 2100 .loc 1 1469 0
  5562. 2101 005c 0268 ldr r2, [r0]
  5563. 2102 005e 5369 ldr r3, [r2, #20]
  5564. 2103 0060 43F04003 orr r3, r3, #64
  5565. 2104 0064 5361 str r3, [r2, #20]
  5566. 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5567. 2105 .loc 1 1473 0
  5568. 2106 0066 0023 movs r3, #0
  5569. ARM GAS /tmp/ccD7nRW1.s page 97
  5570. 2107 0068 80F83830 strb r3, [r0, #56]
  5571. 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5572. 2108 .loc 1 1475 0
  5573. 2109 006c 1846 mov r0, r3
  5574. 2110 .LVL189:
  5575. 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5576. 2111 .loc 1 1476 0
  5577. 2112 006e 02B0 add sp, sp, #8
  5578. 2113 .LCFI26:
  5579. 2114 .cfi_def_cfa_offset 0
  5580. 2115 @ sp needed
  5581. 2116 0070 7047 bx lr
  5582. 2117 .LVL190:
  5583. 2118 .L162:
  5584. 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5585. 2119 .loc 1 1451 0
  5586. 2120 0072 0220 movs r0, #2
  5587. 2121 .LVL191:
  5588. 2122 0074 7047 bx lr
  5589. 2123 .cfi_endproc
  5590. 2124 .LFE144:
  5591. 2126 .section .text.HAL_UART_DMAStop,"ax",%progbits
  5592. 2127 .align 1
  5593. 2128 .global HAL_UART_DMAStop
  5594. 2129 .syntax unified
  5595. 2130 .thumb
  5596. 2131 .thumb_func
  5597. 2132 .fpu fpv4-sp-d16
  5598. 2134 HAL_UART_DMAStop:
  5599. 2135 .LFB145:
  5600. 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  5601. 2136 .loc 1 1485 0
  5602. 2137 .cfi_startproc
  5603. 2138 @ args = 0, pretend = 0, frame = 0
  5604. 2139 @ frame_needed = 0, uses_anonymous_args = 0
  5605. 2140 .LVL192:
  5606. 2141 0000 10B5 push {r4, lr}
  5607. 2142 .LCFI27:
  5608. 2143 .cfi_def_cfa_offset 8
  5609. 2144 .cfi_offset 4, -8
  5610. 2145 .cfi_offset 14, -4
  5611. 2146 0002 0446 mov r4, r0
  5612. 2147 .LVL193:
  5613. 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest)
  5614. 2148 .loc 1 1494 0
  5615. 2149 0004 0168 ldr r1, [r0]
  5616. 2150 0006 4A69 ldr r2, [r1, #20]
  5617. 2151 .LVL194:
  5618. 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5619. 2152 .loc 1 1495 0
  5620. 2153 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  5621. 2154 000c DBB2 uxtb r3, r3
  5622. 2155 000e 212B cmp r3, #33
  5623. 2156 0010 0AD0 beq .L176
  5624. 2157 .LVL195:
  5625. 2158 .L171:
  5626. 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest)
  5627. ARM GAS /tmp/ccD7nRW1.s page 98
  5628. 2159 .loc 1 1508 0
  5629. 2160 0012 2168 ldr r1, [r4]
  5630. 2161 0014 4A69 ldr r2, [r1, #20]
  5631. 2162 0016 02F04002 and r2, r2, #64
  5632. 2163 .LVL196:
  5633. 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5634. 2164 .loc 1 1509 0
  5635. 2165 001a 94F83A30 ldrb r3, [r4, #58] @ zero_extendqisi2
  5636. 2166 001e DBB2 uxtb r3, r3
  5637. 2167 0020 222B cmp r3, #34
  5638. 2168 0022 11D0 beq .L177
  5639. 2169 .LVL197:
  5640. 2170 .L173:
  5641. 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5642. 2171 .loc 1 1522 0
  5643. 2172 0024 0020 movs r0, #0
  5644. 2173 0026 10BD pop {r4, pc}
  5645. 2174 .LVL198:
  5646. 2175 .L176:
  5647. 2176 0028 02F08002 and r2, r2, #128
  5648. 2177 .LVL199:
  5649. 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5650. 2178 .loc 1 1495 0 discriminator 1
  5651. 2179 002c 002A cmp r2, #0
  5652. 2180 002e F0D0 beq .L171
  5653. 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5654. 2181 .loc 1 1497 0
  5655. 2182 0030 4B69 ldr r3, [r1, #20]
  5656. 2183 0032 23F08003 bic r3, r3, #128
  5657. 2184 0036 4B61 str r3, [r1, #20]
  5658. 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5659. 2185 .loc 1 1500 0
  5660. 2186 0038 006B ldr r0, [r0, #48]
  5661. 2187 .LVL200:
  5662. 2188 003a 08B1 cbz r0, .L172
  5663. 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5664. 2189 .loc 1 1502 0
  5665. 2190 003c FFF7FEFF bl HAL_DMA_Abort
  5666. 2191 .LVL201:
  5667. 2192 .L172:
  5668. 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5669. 2193 .loc 1 1504 0
  5670. 2194 0040 2046 mov r0, r4
  5671. 2195 0042 FFF7FEFF bl UART_EndTxTransfer
  5672. 2196 .LVL202:
  5673. 2197 0046 E4E7 b .L171
  5674. 2198 .LVL203:
  5675. 2199 .L177:
  5676. 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5677. 2200 .loc 1 1509 0 discriminator 1
  5678. 2201 0048 002A cmp r2, #0
  5679. 2202 004a EBD0 beq .L173
  5680. 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5681. 2203 .loc 1 1511 0
  5682. 2204 004c 4B69 ldr r3, [r1, #20]
  5683. 2205 004e 23F04003 bic r3, r3, #64
  5684. 2206 0052 4B61 str r3, [r1, #20]
  5685. ARM GAS /tmp/ccD7nRW1.s page 99
  5686. 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5687. 2207 .loc 1 1514 0
  5688. 2208 0054 606B ldr r0, [r4, #52]
  5689. 2209 0056 08B1 cbz r0, .L174
  5690. 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5691. 2210 .loc 1 1516 0
  5692. 2211 0058 FFF7FEFF bl HAL_DMA_Abort
  5693. 2212 .LVL204:
  5694. 2213 .L174:
  5695. 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5696. 2214 .loc 1 1518 0
  5697. 2215 005c 2046 mov r0, r4
  5698. 2216 005e FFF7FEFF bl UART_EndRxTransfer
  5699. 2217 .LVL205:
  5700. 2218 0062 DFE7 b .L173
  5701. 2219 .cfi_endproc
  5702. 2220 .LFE145:
  5703. 2222 .section .text.HAL_UART_Abort,"ax",%progbits
  5704. 2223 .align 1
  5705. 2224 .global HAL_UART_Abort
  5706. 2225 .syntax unified
  5707. 2226 .thumb
  5708. 2227 .thumb_func
  5709. 2228 .fpu fpv4-sp-d16
  5710. 2230 HAL_UART_Abort:
  5711. 2231 .LFB146:
  5712. 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  5713. 2232 .loc 1 1537 0
  5714. 2233 .cfi_startproc
  5715. 2234 @ args = 0, pretend = 0, frame = 0
  5716. 2235 @ frame_needed = 0, uses_anonymous_args = 0
  5717. 2236 .LVL206:
  5718. 2237 0000 10B5 push {r4, lr}
  5719. 2238 .LCFI28:
  5720. 2239 .cfi_def_cfa_offset 8
  5721. 2240 .cfi_offset 4, -8
  5722. 2241 .cfi_offset 14, -4
  5723. 2242 0002 0446 mov r4, r0
  5724. 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  5725. 2243 .loc 1 1539 0
  5726. 2244 0004 0268 ldr r2, [r0]
  5727. 2245 0006 D368 ldr r3, [r2, #12]
  5728. 2246 0008 23F4F073 bic r3, r3, #480
  5729. 2247 000c D360 str r3, [r2, #12]
  5730. 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5731. 2248 .loc 1 1540 0
  5732. 2249 000e 0268 ldr r2, [r0]
  5733. 2250 0010 5369 ldr r3, [r2, #20]
  5734. 2251 0012 23F00103 bic r3, r3, #1
  5735. 2252 0016 5361 str r3, [r2, #20]
  5736. 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5737. 2253 .loc 1 1543 0
  5738. 2254 0018 0368 ldr r3, [r0]
  5739. 2255 001a 5A69 ldr r2, [r3, #20]
  5740. 2256 001c 12F0800F tst r2, #128
  5741. 2257 0020 0BD0 beq .L179
  5742. 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5743. ARM GAS /tmp/ccD7nRW1.s page 100
  5744. 2258 .loc 1 1545 0
  5745. 2259 0022 5A69 ldr r2, [r3, #20]
  5746. 2260 0024 22F08002 bic r2, r2, #128
  5747. 2261 0028 5A61 str r2, [r3, #20]
  5748. 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5749. 2262 .loc 1 1548 0
  5750. 2263 002a 036B ldr r3, [r0, #48]
  5751. 2264 002c 2BB1 cbz r3, .L179
  5752. 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5753. 2265 .loc 1 1552 0
  5754. 2266 002e 0022 movs r2, #0
  5755. 2267 0030 1A65 str r2, [r3, #80]
  5756. 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5757. 2268 .loc 1 1554 0
  5758. 2269 0032 006B ldr r0, [r0, #48]
  5759. 2270 .LVL207:
  5760. 2271 0034 FFF7FEFF bl HAL_DMA_Abort
  5761. 2272 .LVL208:
  5762. 2273 0038 D0B9 cbnz r0, .L183
  5763. 2274 .L179:
  5764. 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5765. 2275 .loc 1 1568 0
  5766. 2276 003a 2368 ldr r3, [r4]
  5767. 2277 003c 5A69 ldr r2, [r3, #20]
  5768. 2278 003e 12F0400F tst r2, #64
  5769. 2279 0042 0BD0 beq .L181
  5770. 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5771. 2280 .loc 1 1570 0
  5772. 2281 0044 5A69 ldr r2, [r3, #20]
  5773. 2282 0046 22F04002 bic r2, r2, #64
  5774. 2283 004a 5A61 str r2, [r3, #20]
  5775. 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5776. 2284 .loc 1 1573 0
  5777. 2285 004c 636B ldr r3, [r4, #52]
  5778. 2286 004e 2BB1 cbz r3, .L181
  5779. 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5780. 2287 .loc 1 1577 0
  5781. 2288 0050 0022 movs r2, #0
  5782. 2289 0052 1A65 str r2, [r3, #80]
  5783. 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5784. 2290 .loc 1 1579 0
  5785. 2291 0054 606B ldr r0, [r4, #52]
  5786. 2292 0056 FFF7FEFF bl HAL_DMA_Abort
  5787. 2293 .LVL209:
  5788. 2294 005a 90B9 cbnz r0, .L184
  5789. 2295 .L181:
  5790. 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  5791. 2296 .loc 1 1593 0
  5792. 2297 005c 0020 movs r0, #0
  5793. 2298 005e E084 strh r0, [r4, #38] @ movhi
  5794. 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5795. 2299 .loc 1 1594 0
  5796. 2300 0060 E085 strh r0, [r4, #46] @ movhi
  5797. 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5798. 2301 .loc 1 1597 0
  5799. 2302 0062 E063 str r0, [r4, #60]
  5800. 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
  5801. ARM GAS /tmp/ccD7nRW1.s page 101
  5802. 2303 .loc 1 1600 0
  5803. 2304 0064 2023 movs r3, #32
  5804. 2305 0066 84F83A30 strb r3, [r4, #58]
  5805. 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5806. 2306 .loc 1 1601 0
  5807. 2307 006a 84F83930 strb r3, [r4, #57]
  5808. 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5809. 2308 .loc 1 1604 0
  5810. 2309 006e 10BD pop {r4, pc}
  5811. 2310 .LVL210:
  5812. 2311 .L183:
  5813. 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5814. 2312 .loc 1 1556 0
  5815. 2313 0070 206B ldr r0, [r4, #48]
  5816. 2314 0072 FFF7FEFF bl HAL_DMA_GetError
  5817. 2315 .LVL211:
  5818. 2316 0076 2028 cmp r0, #32
  5819. 2317 0078 DFD1 bne .L179
  5820. 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5821. 2318 .loc 1 1559 0
  5822. 2319 007a 1023 movs r3, #16
  5823. 2320 007c E363 str r3, [r4, #60]
  5824. 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5825. 2321 .loc 1 1561 0
  5826. 2322 007e 0320 movs r0, #3
  5827. 2323 0080 10BD pop {r4, pc}
  5828. 2324 .LVL212:
  5829. 2325 .L184:
  5830. 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5831. 2326 .loc 1 1581 0
  5832. 2327 0082 606B ldr r0, [r4, #52]
  5833. 2328 0084 FFF7FEFF bl HAL_DMA_GetError
  5834. 2329 .LVL213:
  5835. 2330 0088 2028 cmp r0, #32
  5836. 2331 008a E7D1 bne .L181
  5837. 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5838. 2332 .loc 1 1584 0
  5839. 2333 008c 1023 movs r3, #16
  5840. 2334 008e E363 str r3, [r4, #60]
  5841. 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5842. 2335 .loc 1 1586 0
  5843. 2336 0090 0320 movs r0, #3
  5844. 2337 0092 10BD pop {r4, pc}
  5845. 2338 .cfi_endproc
  5846. 2339 .LFE146:
  5847. 2341 .section .text.HAL_UART_AbortTransmit,"ax",%progbits
  5848. 2342 .align 1
  5849. 2343 .global HAL_UART_AbortTransmit
  5850. 2344 .syntax unified
  5851. 2345 .thumb
  5852. 2346 .thumb_func
  5853. 2347 .fpu fpv4-sp-d16
  5854. 2349 HAL_UART_AbortTransmit:
  5855. 2350 .LFB147:
  5856. 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
  5857. 2351 .loc 1 1619 0
  5858. 2352 .cfi_startproc
  5859. ARM GAS /tmp/ccD7nRW1.s page 102
  5860. 2353 @ args = 0, pretend = 0, frame = 0
  5861. 2354 @ frame_needed = 0, uses_anonymous_args = 0
  5862. 2355 .LVL214:
  5863. 2356 0000 10B5 push {r4, lr}
  5864. 2357 .LCFI29:
  5865. 2358 .cfi_def_cfa_offset 8
  5866. 2359 .cfi_offset 4, -8
  5867. 2360 .cfi_offset 14, -4
  5868. 2361 0002 0446 mov r4, r0
  5869. 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5870. 2362 .loc 1 1621 0
  5871. 2363 0004 0268 ldr r2, [r0]
  5872. 2364 0006 D368 ldr r3, [r2, #12]
  5873. 2365 0008 23F0C003 bic r3, r3, #192
  5874. 2366 000c D360 str r3, [r2, #12]
  5875. 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5876. 2367 .loc 1 1624 0
  5877. 2368 000e 0368 ldr r3, [r0]
  5878. 2369 0010 5A69 ldr r2, [r3, #20]
  5879. 2370 0012 12F0800F tst r2, #128
  5880. 2371 0016 0BD0 beq .L186
  5881. 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5882. 2372 .loc 1 1626 0
  5883. 2373 0018 5A69 ldr r2, [r3, #20]
  5884. 2374 001a 22F08002 bic r2, r2, #128
  5885. 2375 001e 5A61 str r2, [r3, #20]
  5886. 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5887. 2376 .loc 1 1629 0
  5888. 2377 0020 036B ldr r3, [r0, #48]
  5889. 2378 0022 2BB1 cbz r3, .L186
  5890. 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5891. 2379 .loc 1 1633 0
  5892. 2380 0024 0022 movs r2, #0
  5893. 2381 0026 1A65 str r2, [r3, #80]
  5894. 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5895. 2382 .loc 1 1635 0
  5896. 2383 0028 006B ldr r0, [r0, #48]
  5897. 2384 .LVL215:
  5898. 2385 002a FFF7FEFF bl HAL_DMA_Abort
  5899. 2386 .LVL216:
  5900. 2387 002e 28B9 cbnz r0, .L189
  5901. 2388 .L186:
  5902. 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5903. 2389 .loc 1 1649 0
  5904. 2390 0030 0020 movs r0, #0
  5905. 2391 0032 E084 strh r0, [r4, #38] @ movhi
  5906. 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5907. 2392 .loc 1 1652 0
  5908. 2393 0034 2023 movs r3, #32
  5909. 2394 0036 84F83930 strb r3, [r4, #57]
  5910. 1655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5911. 2395 .loc 1 1655 0
  5912. 2396 003a 10BD pop {r4, pc}
  5913. 2397 .LVL217:
  5914. 2398 .L189:
  5915. 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5916. 2399 .loc 1 1637 0
  5917. ARM GAS /tmp/ccD7nRW1.s page 103
  5918. 2400 003c 206B ldr r0, [r4, #48]
  5919. 2401 003e FFF7FEFF bl HAL_DMA_GetError
  5920. 2402 .LVL218:
  5921. 2403 0042 2028 cmp r0, #32
  5922. 2404 0044 F4D1 bne .L186
  5923. 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5924. 2405 .loc 1 1640 0
  5925. 2406 0046 1023 movs r3, #16
  5926. 2407 0048 E363 str r3, [r4, #60]
  5927. 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  5928. 2408 .loc 1 1642 0
  5929. 2409 004a 0320 movs r0, #3
  5930. 2410 004c 10BD pop {r4, pc}
  5931. 2411 .cfi_endproc
  5932. 2412 .LFE147:
  5933. 2414 .section .text.HAL_UART_AbortReceive,"ax",%progbits
  5934. 2415 .align 1
  5935. 2416 .global HAL_UART_AbortReceive
  5936. 2417 .syntax unified
  5937. 2418 .thumb
  5938. 2419 .thumb_func
  5939. 2420 .fpu fpv4-sp-d16
  5940. 2422 HAL_UART_AbortReceive:
  5941. 2423 .LFB148:
  5942. 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  5943. 2424 .loc 1 1670 0
  5944. 2425 .cfi_startproc
  5945. 2426 @ args = 0, pretend = 0, frame = 0
  5946. 2427 @ frame_needed = 0, uses_anonymous_args = 0
  5947. 2428 .LVL219:
  5948. 2429 0000 10B5 push {r4, lr}
  5949. 2430 .LCFI30:
  5950. 2431 .cfi_def_cfa_offset 8
  5951. 2432 .cfi_offset 4, -8
  5952. 2433 .cfi_offset 14, -4
  5953. 2434 0002 0446 mov r4, r0
  5954. 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  5955. 2435 .loc 1 1672 0
  5956. 2436 0004 0268 ldr r2, [r0]
  5957. 2437 0006 D368 ldr r3, [r2, #12]
  5958. 2438 0008 23F49073 bic r3, r3, #288
  5959. 2439 000c D360 str r3, [r2, #12]
  5960. 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5961. 2440 .loc 1 1673 0
  5962. 2441 000e 0268 ldr r2, [r0]
  5963. 2442 0010 5369 ldr r3, [r2, #20]
  5964. 2443 0012 23F00103 bic r3, r3, #1
  5965. 2444 0016 5361 str r3, [r2, #20]
  5966. 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5967. 2445 .loc 1 1676 0
  5968. 2446 0018 0368 ldr r3, [r0]
  5969. 2447 001a 5A69 ldr r2, [r3, #20]
  5970. 2448 001c 12F0400F tst r2, #64
  5971. 2449 0020 0BD0 beq .L191
  5972. 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5973. 2450 .loc 1 1678 0
  5974. 2451 0022 5A69 ldr r2, [r3, #20]
  5975. ARM GAS /tmp/ccD7nRW1.s page 104
  5976. 2452 0024 22F04002 bic r2, r2, #64
  5977. 2453 0028 5A61 str r2, [r3, #20]
  5978. 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5979. 2454 .loc 1 1681 0
  5980. 2455 002a 436B ldr r3, [r0, #52]
  5981. 2456 002c 2BB1 cbz r3, .L191
  5982. 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5983. 2457 .loc 1 1685 0
  5984. 2458 002e 0022 movs r2, #0
  5985. 2459 0030 1A65 str r2, [r3, #80]
  5986. 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  5987. 2460 .loc 1 1687 0
  5988. 2461 0032 406B ldr r0, [r0, #52]
  5989. 2462 .LVL220:
  5990. 2463 0034 FFF7FEFF bl HAL_DMA_Abort
  5991. 2464 .LVL221:
  5992. 2465 0038 28B9 cbnz r0, .L194
  5993. 2466 .L191:
  5994. 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5995. 2467 .loc 1 1701 0
  5996. 2468 003a 0020 movs r0, #0
  5997. 2469 003c E085 strh r0, [r4, #46] @ movhi
  5998. 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  5999. 2470 .loc 1 1704 0
  6000. 2471 003e 2023 movs r3, #32
  6001. 2472 0040 84F83A30 strb r3, [r4, #58]
  6002. 1707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6003. 2473 .loc 1 1707 0
  6004. 2474 0044 10BD pop {r4, pc}
  6005. 2475 .LVL222:
  6006. 2476 .L194:
  6007. 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6008. 2477 .loc 1 1689 0
  6009. 2478 0046 606B ldr r0, [r4, #52]
  6010. 2479 0048 FFF7FEFF bl HAL_DMA_GetError
  6011. 2480 .LVL223:
  6012. 2481 004c 2028 cmp r0, #32
  6013. 2482 004e F4D1 bne .L191
  6014. 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6015. 2483 .loc 1 1692 0
  6016. 2484 0050 1023 movs r3, #16
  6017. 2485 0052 E363 str r3, [r4, #60]
  6018. 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6019. 2486 .loc 1 1694 0
  6020. 2487 0054 0320 movs r0, #3
  6021. 2488 0056 10BD pop {r4, pc}
  6022. 2489 .cfi_endproc
  6023. 2490 .LFE148:
  6024. 2492 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits
  6025. 2493 .align 1
  6026. 2494 .weak HAL_UART_TxCpltCallback
  6027. 2495 .syntax unified
  6028. 2496 .thumb
  6029. 2497 .thumb_func
  6030. 2498 .fpu fpv4-sp-d16
  6031. 2500 HAL_UART_TxCpltCallback:
  6032. 2501 .LFB153:
  6033. ARM GAS /tmp/ccD7nRW1.s page 105
  6034. 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  6035. 2502 .loc 1 2145 0
  6036. 2503 .cfi_startproc
  6037. 2504 @ args = 0, pretend = 0, frame = 0
  6038. 2505 @ frame_needed = 0, uses_anonymous_args = 0
  6039. 2506 @ link register save eliminated.
  6040. 2507 .LVL224:
  6041. 2508 0000 7047 bx lr
  6042. 2509 .cfi_endproc
  6043. 2510 .LFE153:
  6044. 2512 .section .text.UART_DMATransmitCplt,"ax",%progbits
  6045. 2513 .align 1
  6046. 2514 .syntax unified
  6047. 2515 .thumb
  6048. 2516 .thumb_func
  6049. 2517 .fpu fpv4-sp-d16
  6050. 2519 UART_DMATransmitCplt:
  6051. 2520 .LFB168:
  6052. 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6053. 2521 .loc 1 2520 0
  6054. 2522 .cfi_startproc
  6055. 2523 @ args = 0, pretend = 0, frame = 0
  6056. 2524 @ frame_needed = 0, uses_anonymous_args = 0
  6057. 2525 .LVL225:
  6058. 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6059. 2526 .loc 1 2520 0
  6060. 2527 0000 08B5 push {r3, lr}
  6061. 2528 .LCFI31:
  6062. 2529 .cfi_def_cfa_offset 8
  6063. 2530 .cfi_offset 3, -8
  6064. 2531 .cfi_offset 14, -4
  6065. 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/
  6066. 2532 .loc 1 2521 0
  6067. 2533 0002 836B ldr r3, [r0, #56]
  6068. 2534 .LVL226:
  6069. 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6070. 2535 .loc 1 2523 0
  6071. 2536 0004 0268 ldr r2, [r0]
  6072. 2537 0006 1268 ldr r2, [r2]
  6073. 2538 0008 12F4807F tst r2, #256
  6074. 2539 000c 0CD1 bne .L197
  6075. 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6076. 2540 .loc 1 2525 0
  6077. 2541 000e 0022 movs r2, #0
  6078. 2542 0010 DA84 strh r2, [r3, #38] @ movhi
  6079. 2529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6080. 2543 .loc 1 2529 0
  6081. 2544 0012 1968 ldr r1, [r3]
  6082. 2545 0014 4A69 ldr r2, [r1, #20]
  6083. 2546 0016 22F08002 bic r2, r2, #128
  6084. 2547 001a 4A61 str r2, [r1, #20]
  6085. 2532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6086. 2548 .loc 1 2532 0
  6087. 2549 001c 1A68 ldr r2, [r3]
  6088. 2550 001e D368 ldr r3, [r2, #12]
  6089. 2551 .LVL227:
  6090. 2552 0020 43F04003 orr r3, r3, #64
  6091. ARM GAS /tmp/ccD7nRW1.s page 106
  6092. 2553 0024 D360 str r3, [r2, #12]
  6093. 2554 0026 08BD pop {r3, pc}
  6094. 2555 .LVL228:
  6095. 2556 .L197:
  6096. 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6097. 2557 .loc 1 2543 0
  6098. 2558 0028 1846 mov r0, r3
  6099. 2559 .LVL229:
  6100. 2560 002a FFF7FEFF bl HAL_UART_TxCpltCallback
  6101. 2561 .LVL230:
  6102. 2562 002e 08BD pop {r3, pc}
  6103. 2563 .cfi_endproc
  6104. 2564 .LFE168:
  6105. 2566 .section .text.UART_EndTransmit_IT,"ax",%progbits
  6106. 2567 .align 1
  6107. 2568 .syntax unified
  6108. 2569 .thumb
  6109. 2570 .thumb_func
  6110. 2571 .fpu fpv4-sp-d16
  6111. 2573 UART_EndTransmit_IT:
  6112. 2574 .LFB182:
  6113. 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */
  6114. 2575 .loc 1 2945 0
  6115. 2576 .cfi_startproc
  6116. 2577 @ args = 0, pretend = 0, frame = 0
  6117. 2578 @ frame_needed = 0, uses_anonymous_args = 0
  6118. 2579 .LVL231:
  6119. 2580 0000 08B5 push {r3, lr}
  6120. 2581 .LCFI32:
  6121. 2582 .cfi_def_cfa_offset 8
  6122. 2583 .cfi_offset 3, -8
  6123. 2584 .cfi_offset 14, -4
  6124. 2947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6125. 2585 .loc 1 2947 0
  6126. 2586 0002 0168 ldr r1, [r0]
  6127. 2587 0004 CB68 ldr r3, [r1, #12]
  6128. 2588 0006 23F04003 bic r3, r3, #64
  6129. 2589 000a CB60 str r3, [r1, #12]
  6130. 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6131. 2590 .loc 1 2950 0
  6132. 2591 000c 2023 movs r3, #32
  6133. 2592 000e 80F83930 strb r3, [r0, #57]
  6134. 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6135. 2593 .loc 1 2957 0
  6136. 2594 0012 FFF7FEFF bl HAL_UART_TxCpltCallback
  6137. 2595 .LVL232:
  6138. 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6139. 2596 .loc 1 2961 0
  6140. 2597 0016 0020 movs r0, #0
  6141. 2598 0018 08BD pop {r3, pc}
  6142. 2599 .cfi_endproc
  6143. 2600 .LFE182:
  6144. 2602 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits
  6145. 2603 .align 1
  6146. 2604 .weak HAL_UART_TxHalfCpltCallback
  6147. 2605 .syntax unified
  6148. 2606 .thumb
  6149. ARM GAS /tmp/ccD7nRW1.s page 107
  6150. 2607 .thumb_func
  6151. 2608 .fpu fpv4-sp-d16
  6152. 2610 HAL_UART_TxHalfCpltCallback:
  6153. 2611 .LFB154:
  6154. 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  6155. 2612 .loc 1 2160 0
  6156. 2613 .cfi_startproc
  6157. 2614 @ args = 0, pretend = 0, frame = 0
  6158. 2615 @ frame_needed = 0, uses_anonymous_args = 0
  6159. 2616 @ link register save eliminated.
  6160. 2617 .LVL233:
  6161. 2618 0000 7047 bx lr
  6162. 2619 .cfi_endproc
  6163. 2620 .LFE154:
  6164. 2622 .section .text.UART_DMATxHalfCplt,"ax",%progbits
  6165. 2623 .align 1
  6166. 2624 .syntax unified
  6167. 2625 .thumb
  6168. 2626 .thumb_func
  6169. 2627 .fpu fpv4-sp-d16
  6170. 2629 UART_DMATxHalfCplt:
  6171. 2630 .LFB169:
  6172. 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6173. 2631 .loc 1 2555 0
  6174. 2632 .cfi_startproc
  6175. 2633 @ args = 0, pretend = 0, frame = 0
  6176. 2634 @ frame_needed = 0, uses_anonymous_args = 0
  6177. 2635 .LVL234:
  6178. 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6179. 2636 .loc 1 2555 0
  6180. 2637 0000 08B5 push {r3, lr}
  6181. 2638 .LCFI33:
  6182. 2639 .cfi_def_cfa_offset 8
  6183. 2640 .cfi_offset 3, -8
  6184. 2641 .cfi_offset 14, -4
  6185. 2642 .LVL235:
  6186. 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6187. 2643 .loc 1 2563 0
  6188. 2644 0002 806B ldr r0, [r0, #56]
  6189. 2645 .LVL236:
  6190. 2646 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback
  6191. 2647 .LVL237:
  6192. 2648 0008 08BD pop {r3, pc}
  6193. 2649 .cfi_endproc
  6194. 2650 .LFE169:
  6195. 2652 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits
  6196. 2653 .align 1
  6197. 2654 .weak HAL_UART_RxCpltCallback
  6198. 2655 .syntax unified
  6199. 2656 .thumb
  6200. 2657 .thumb_func
  6201. 2658 .fpu fpv4-sp-d16
  6202. 2660 HAL_UART_RxCpltCallback:
  6203. 2661 .LFB155:
  6204. 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  6205. 2662 .loc 1 2175 0
  6206. 2663 .cfi_startproc
  6207. ARM GAS /tmp/ccD7nRW1.s page 108
  6208. 2664 @ args = 0, pretend = 0, frame = 0
  6209. 2665 @ frame_needed = 0, uses_anonymous_args = 0
  6210. 2666 @ link register save eliminated.
  6211. 2667 .LVL238:
  6212. 2668 0000 7047 bx lr
  6213. 2669 .cfi_endproc
  6214. 2670 .LFE155:
  6215. 2672 .section .text.UART_DMAReceiveCplt,"ax",%progbits
  6216. 2673 .align 1
  6217. 2674 .syntax unified
  6218. 2675 .thumb
  6219. 2676 .thumb_func
  6220. 2677 .fpu fpv4-sp-d16
  6221. 2679 UART_DMAReceiveCplt:
  6222. 2680 .LFB170:
  6223. 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6224. 2681 .loc 1 2574 0
  6225. 2682 .cfi_startproc
  6226. 2683 @ args = 0, pretend = 0, frame = 0
  6227. 2684 @ frame_needed = 0, uses_anonymous_args = 0
  6228. 2685 .LVL239:
  6229. 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6230. 2686 .loc 1 2574 0
  6231. 2687 0000 08B5 push {r3, lr}
  6232. 2688 .LCFI34:
  6233. 2689 .cfi_def_cfa_offset 8
  6234. 2690 .cfi_offset 3, -8
  6235. 2691 .cfi_offset 14, -4
  6236. 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/
  6237. 2692 .loc 1 2575 0
  6238. 2693 0002 836B ldr r3, [r0, #56]
  6239. 2694 .LVL240:
  6240. 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6241. 2695 .loc 1 2577 0
  6242. 2696 0004 0268 ldr r2, [r0]
  6243. 2697 0006 1268 ldr r2, [r2]
  6244. 2698 0008 12F4807F tst r2, #256
  6245. 2699 000c 13D1 bne .L207
  6246. 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6247. 2700 .loc 1 2579 0
  6248. 2701 000e 0022 movs r2, #0
  6249. 2702 0010 DA85 strh r2, [r3, #46] @ movhi
  6250. 2582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  6251. 2703 .loc 1 2582 0
  6252. 2704 0012 1968 ldr r1, [r3]
  6253. 2705 0014 CA68 ldr r2, [r1, #12]
  6254. 2706 0016 22F48072 bic r2, r2, #256
  6255. 2707 001a CA60 str r2, [r1, #12]
  6256. 2583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6257. 2708 .loc 1 2583 0
  6258. 2709 001c 1968 ldr r1, [r3]
  6259. 2710 001e 4A69 ldr r2, [r1, #20]
  6260. 2711 0020 22F00102 bic r2, r2, #1
  6261. 2712 0024 4A61 str r2, [r1, #20]
  6262. 2587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6263. 2713 .loc 1 2587 0
  6264. 2714 0026 1968 ldr r1, [r3]
  6265. ARM GAS /tmp/ccD7nRW1.s page 109
  6266. 2715 0028 4A69 ldr r2, [r1, #20]
  6267. 2716 002a 22F04002 bic r2, r2, #64
  6268. 2717 002e 4A61 str r2, [r1, #20]
  6269. 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6270. 2718 .loc 1 2590 0
  6271. 2719 0030 2022 movs r2, #32
  6272. 2720 0032 83F83A20 strb r2, [r3, #58]
  6273. 2721 .L207:
  6274. 2597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6275. 2722 .loc 1 2597 0
  6276. 2723 0036 1846 mov r0, r3
  6277. 2724 .LVL241:
  6278. 2725 0038 FFF7FEFF bl HAL_UART_RxCpltCallback
  6279. 2726 .LVL242:
  6280. 2727 003c 08BD pop {r3, pc}
  6281. 2728 .cfi_endproc
  6282. 2729 .LFE170:
  6283. 2731 .section .text.UART_Receive_IT,"ax",%progbits
  6284. 2732 .align 1
  6285. 2733 .syntax unified
  6286. 2734 .thumb
  6287. 2735 .thumb_func
  6288. 2736 .fpu fpv4-sp-d16
  6289. 2738 UART_Receive_IT:
  6290. 2739 .LFB183:
  6291. 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp;
  6292. 2740 .loc 1 2970 0
  6293. 2741 .cfi_startproc
  6294. 2742 @ args = 0, pretend = 0, frame = 0
  6295. 2743 @ frame_needed = 0, uses_anonymous_args = 0
  6296. 2744 .LVL243:
  6297. 2745 0000 08B5 push {r3, lr}
  6298. 2746 .LCFI35:
  6299. 2747 .cfi_def_cfa_offset 8
  6300. 2748 .cfi_offset 3, -8
  6301. 2749 .cfi_offset 14, -4
  6302. 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6303. 2750 .loc 1 2974 0
  6304. 2751 0002 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2
  6305. 2752 0006 DBB2 uxtb r3, r3
  6306. 2753 0008 222B cmp r3, #34
  6307. 2754 000a 01D0 beq .L218
  6308. 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6309. 2755 .loc 1 3030 0
  6310. 2756 000c 0220 movs r0, #2
  6311. 2757 .LVL244:
  6312. 2758 000e 08BD pop {r3, pc}
  6313. 2759 .LVL245:
  6314. 2760 .L218:
  6315. 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6316. 2761 .loc 1 2976 0
  6317. 2762 0010 8368 ldr r3, [r0, #8]
  6318. 2763 0012 B3F5805F cmp r3, #4096
  6319. 2764 0016 0FD0 beq .L219
  6320. 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6321. 2765 .loc 1 2992 0
  6322. 2766 0018 0369 ldr r3, [r0, #16]
  6323. ARM GAS /tmp/ccD7nRW1.s page 110
  6324. 2767 001a 0BBB cbnz r3, .L214
  6325. 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6326. 2768 .loc 1 2994 0
  6327. 2769 001c 836A ldr r3, [r0, #40]
  6328. 2770 001e 5A1C adds r2, r3, #1
  6329. 2771 0020 8262 str r2, [r0, #40]
  6330. 2772 0022 0268 ldr r2, [r0]
  6331. 2773 0024 5268 ldr r2, [r2, #4]
  6332. 2774 0026 1A70 strb r2, [r3]
  6333. 2775 .L213:
  6334. 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6335. 2776 .loc 1 3002 0
  6336. 2777 0028 C38D ldrh r3, [r0, #46]
  6337. 2778 002a 9BB2 uxth r3, r3
  6338. 2779 002c 013B subs r3, r3, #1
  6339. 2780 002e 9BB2 uxth r3, r3
  6340. 2781 0030 C385 strh r3, [r0, #46] @ movhi
  6341. 2782 0032 F3B1 cbz r3, .L220
  6342. 3026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6343. 2783 .loc 1 3026 0
  6344. 2784 0034 0020 movs r0, #0
  6345. 2785 .LVL246:
  6346. 3032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6347. 2786 .loc 1 3032 0
  6348. 2787 0036 08BD pop {r3, pc}
  6349. 2788 .LVL247:
  6350. 2789 .L219:
  6351. 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE)
  6352. 2790 .loc 1 2978 0
  6353. 2791 0038 826A ldr r2, [r0, #40]
  6354. 2792 .LVL248:
  6355. 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6356. 2793 .loc 1 2979 0
  6357. 2794 003a 0369 ldr r3, [r0, #16]
  6358. 2795 003c 43B9 cbnz r3, .L212
  6359. 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U;
  6360. 2796 .loc 1 2981 0
  6361. 2797 003e 0368 ldr r3, [r0]
  6362. 2798 0040 5B68 ldr r3, [r3, #4]
  6363. 2799 0042 C3F30803 ubfx r3, r3, #0, #9
  6364. 2800 0046 1380 strh r3, [r2] @ movhi
  6365. 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6366. 2801 .loc 1 2982 0
  6367. 2802 0048 836A ldr r3, [r0, #40]
  6368. 2803 004a 0233 adds r3, r3, #2
  6369. 2804 004c 8362 str r3, [r0, #40]
  6370. 2805 004e EBE7 b .L213
  6371. 2806 .L212:
  6372. 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U;
  6373. 2807 .loc 1 2986 0
  6374. 2808 0050 0368 ldr r3, [r0]
  6375. 2809 0052 5B68 ldr r3, [r3, #4]
  6376. 2810 0054 DBB2 uxtb r3, r3
  6377. 2811 0056 1380 strh r3, [r2] @ movhi
  6378. 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6379. 2812 .loc 1 2987 0
  6380. 2813 0058 836A ldr r3, [r0, #40]
  6381. ARM GAS /tmp/ccD7nRW1.s page 111
  6382. 2814 005a 0133 adds r3, r3, #1
  6383. 2815 005c 8362 str r3, [r0, #40]
  6384. 2816 005e E3E7 b .L213
  6385. 2817 .LVL249:
  6386. 2818 .L214:
  6387. 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6388. 2819 .loc 1 2998 0
  6389. 2820 0060 826A ldr r2, [r0, #40]
  6390. 2821 0062 531C adds r3, r2, #1
  6391. 2822 0064 8362 str r3, [r0, #40]
  6392. 2823 0066 0368 ldr r3, [r0]
  6393. 2824 0068 5B68 ldr r3, [r3, #4]
  6394. 2825 006a 03F07F03 and r3, r3, #127
  6395. 2826 006e 1370 strb r3, [r2]
  6396. 2827 0070 DAE7 b .L213
  6397. 2828 .L220:
  6398. 3005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6399. 2829 .loc 1 3005 0
  6400. 2830 0072 0268 ldr r2, [r0]
  6401. 2831 0074 D368 ldr r3, [r2, #12]
  6402. 2832 0076 23F02003 bic r3, r3, #32
  6403. 2833 007a D360 str r3, [r2, #12]
  6404. 3008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6405. 2834 .loc 1 3008 0
  6406. 2835 007c 0268 ldr r2, [r0]
  6407. 2836 007e D368 ldr r3, [r2, #12]
  6408. 2837 0080 23F48073 bic r3, r3, #256
  6409. 2838 0084 D360 str r3, [r2, #12]
  6410. 3011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6411. 2839 .loc 1 3011 0
  6412. 2840 0086 0268 ldr r2, [r0]
  6413. 2841 0088 5369 ldr r3, [r2, #20]
  6414. 2842 008a 23F00103 bic r3, r3, #1
  6415. 2843 008e 5361 str r3, [r2, #20]
  6416. 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6417. 2844 .loc 1 3014 0
  6418. 2845 0090 2023 movs r3, #32
  6419. 2846 0092 80F83A30 strb r3, [r0, #58]
  6420. 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6421. 2847 .loc 1 3021 0
  6422. 2848 0096 FFF7FEFF bl HAL_UART_RxCpltCallback
  6423. 2849 .LVL250:
  6424. 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6425. 2850 .loc 1 3024 0
  6426. 2851 009a 0020 movs r0, #0
  6427. 2852 009c 08BD pop {r3, pc}
  6428. 2853 .cfi_endproc
  6429. 2854 .LFE183:
  6430. 2856 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits
  6431. 2857 .align 1
  6432. 2858 .weak HAL_UART_RxHalfCpltCallback
  6433. 2859 .syntax unified
  6434. 2860 .thumb
  6435. 2861 .thumb_func
  6436. 2862 .fpu fpv4-sp-d16
  6437. 2864 HAL_UART_RxHalfCpltCallback:
  6438. 2865 .LFB156:
  6439. ARM GAS /tmp/ccD7nRW1.s page 112
  6440. 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  6441. 2866 .loc 1 2190 0
  6442. 2867 .cfi_startproc
  6443. 2868 @ args = 0, pretend = 0, frame = 0
  6444. 2869 @ frame_needed = 0, uses_anonymous_args = 0
  6445. 2870 @ link register save eliminated.
  6446. 2871 .LVL251:
  6447. 2872 0000 7047 bx lr
  6448. 2873 .cfi_endproc
  6449. 2874 .LFE156:
  6450. 2876 .section .text.UART_DMARxHalfCplt,"ax",%progbits
  6451. 2877 .align 1
  6452. 2878 .syntax unified
  6453. 2879 .thumb
  6454. 2880 .thumb_func
  6455. 2881 .fpu fpv4-sp-d16
  6456. 2883 UART_DMARxHalfCplt:
  6457. 2884 .LFB171:
  6458. 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6459. 2885 .loc 1 2608 0
  6460. 2886 .cfi_startproc
  6461. 2887 @ args = 0, pretend = 0, frame = 0
  6462. 2888 @ frame_needed = 0, uses_anonymous_args = 0
  6463. 2889 .LVL252:
  6464. 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6465. 2890 .loc 1 2608 0
  6466. 2891 0000 08B5 push {r3, lr}
  6467. 2892 .LCFI36:
  6468. 2893 .cfi_def_cfa_offset 8
  6469. 2894 .cfi_offset 3, -8
  6470. 2895 .cfi_offset 14, -4
  6471. 2896 .LVL253:
  6472. 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6473. 2897 .loc 1 2616 0
  6474. 2898 0002 806B ldr r0, [r0, #56]
  6475. 2899 .LVL254:
  6476. 2900 0004 FFF7FEFF bl HAL_UART_RxHalfCpltCallback
  6477. 2901 .LVL255:
  6478. 2902 0008 08BD pop {r3, pc}
  6479. 2903 .cfi_endproc
  6480. 2904 .LFE171:
  6481. 2906 .section .text.HAL_UART_ErrorCallback,"ax",%progbits
  6482. 2907 .align 1
  6483. 2908 .weak HAL_UART_ErrorCallback
  6484. 2909 .syntax unified
  6485. 2910 .thumb
  6486. 2911 .thumb_func
  6487. 2912 .fpu fpv4-sp-d16
  6488. 2914 HAL_UART_ErrorCallback:
  6489. 2915 .LFB157:
  6490. 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  6491. 2916 .loc 1 2205 0
  6492. 2917 .cfi_startproc
  6493. 2918 @ args = 0, pretend = 0, frame = 0
  6494. 2919 @ frame_needed = 0, uses_anonymous_args = 0
  6495. 2920 @ link register save eliminated.
  6496. 2921 .LVL256:
  6497. ARM GAS /tmp/ccD7nRW1.s page 113
  6498. 2922 0000 7047 bx lr
  6499. 2923 .cfi_endproc
  6500. 2924 .LFE157:
  6501. 2926 .section .text.UART_DMAError,"ax",%progbits
  6502. 2927 .align 1
  6503. 2928 .syntax unified
  6504. 2929 .thumb
  6505. 2930 .thumb_func
  6506. 2931 .fpu fpv4-sp-d16
  6507. 2933 UART_DMAError:
  6508. 2934 .LFB172:
  6509. 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  6510. 2935 .loc 1 2627 0
  6511. 2936 .cfi_startproc
  6512. 2937 @ args = 0, pretend = 0, frame = 0
  6513. 2938 @ frame_needed = 0, uses_anonymous_args = 0
  6514. 2939 .LVL257:
  6515. 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U;
  6516. 2940 .loc 1 2627 0
  6517. 2941 0000 10B5 push {r4, lr}
  6518. 2942 .LCFI37:
  6519. 2943 .cfi_def_cfa_offset 8
  6520. 2944 .cfi_offset 4, -8
  6521. 2945 .cfi_offset 14, -4
  6522. 2946 .LVL258:
  6523. 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6524. 2947 .loc 1 2629 0
  6525. 2948 0002 846B ldr r4, [r0, #56]
  6526. 2949 .LVL259:
  6527. 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest)
  6528. 2950 .loc 1 2632 0
  6529. 2951 0004 2368 ldr r3, [r4]
  6530. 2952 0006 5A69 ldr r2, [r3, #20]
  6531. 2953 .LVL260:
  6532. 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6533. 2954 .loc 1 2633 0
  6534. 2955 0008 94F83930 ldrb r3, [r4, #57] @ zero_extendqisi2
  6535. 2956 000c DBB2 uxtb r3, r3
  6536. 2957 000e 212B cmp r3, #33
  6537. 2958 0010 10D0 beq .L229
  6538. 2959 .LVL261:
  6539. 2960 .L226:
  6540. 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest)
  6541. 2961 .loc 1 2640 0
  6542. 2962 0012 2368 ldr r3, [r4]
  6543. 2963 0014 5A69 ldr r2, [r3, #20]
  6544. 2964 0016 02F04002 and r2, r2, #64
  6545. 2965 .LVL262:
  6546. 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6547. 2966 .loc 1 2641 0
  6548. 2967 001a 94F83A30 ldrb r3, [r4, #58] @ zero_extendqisi2
  6549. 2968 001e DBB2 uxtb r3, r3
  6550. 2969 0020 222B cmp r3, #34
  6551. 2970 0022 11D0 beq .L230
  6552. 2971 .LVL263:
  6553. 2972 .L227:
  6554. 2647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  6555. ARM GAS /tmp/ccD7nRW1.s page 114
  6556. 2973 .loc 1 2647 0
  6557. 2974 0024 E36B ldr r3, [r4, #60]
  6558. 2975 0026 43F01003 orr r3, r3, #16
  6559. 2976 002a E363 str r3, [r4, #60]
  6560. 2653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6561. 2977 .loc 1 2653 0
  6562. 2978 002c 2046 mov r0, r4
  6563. 2979 002e FFF7FEFF bl HAL_UART_ErrorCallback
  6564. 2980 .LVL264:
  6565. 2981 0032 10BD pop {r4, pc}
  6566. 2982 .LVL265:
  6567. 2983 .L229:
  6568. 2984 0034 02F08002 and r2, r2, #128
  6569. 2985 .LVL266:
  6570. 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6571. 2986 .loc 1 2633 0 discriminator 1
  6572. 2987 0038 002A cmp r2, #0
  6573. 2988 003a EAD0 beq .L226
  6574. 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart);
  6575. 2989 .loc 1 2635 0
  6576. 2990 003c 0023 movs r3, #0
  6577. 2991 003e E384 strh r3, [r4, #38] @ movhi
  6578. 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6579. 2992 .loc 1 2636 0
  6580. 2993 0040 2046 mov r0, r4
  6581. 2994 .LVL267:
  6582. 2995 0042 FFF7FEFF bl UART_EndTxTransfer
  6583. 2996 .LVL268:
  6584. 2997 0046 E4E7 b .L226
  6585. 2998 .LVL269:
  6586. 2999 .L230:
  6587. 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6588. 3000 .loc 1 2641 0 discriminator 1
  6589. 3001 0048 002A cmp r2, #0
  6590. 3002 004a EBD0 beq .L227
  6591. 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart);
  6592. 3003 .loc 1 2643 0
  6593. 3004 004c 0023 movs r3, #0
  6594. 3005 004e E385 strh r3, [r4, #46] @ movhi
  6595. 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6596. 3006 .loc 1 2644 0
  6597. 3007 0050 2046 mov r0, r4
  6598. 3008 0052 FFF7FEFF bl UART_EndRxTransfer
  6599. 3009 .LVL270:
  6600. 3010 0056 E5E7 b .L227
  6601. 3011 .cfi_endproc
  6602. 3012 .LFE172:
  6603. 3014 .section .text.HAL_UART_IRQHandler,"ax",%progbits
  6604. 3015 .align 1
  6605. 3016 .global HAL_UART_IRQHandler
  6606. 3017 .syntax unified
  6607. 3018 .thumb
  6608. 3019 .thumb_func
  6609. 3020 .fpu fpv4-sp-d16
  6610. 3022 HAL_UART_IRQHandler:
  6611. 3023 .LFB152:
  6612. 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR);
  6613. ARM GAS /tmp/ccD7nRW1.s page 115
  6614. 3024 .loc 1 1999 0
  6615. 3025 .cfi_startproc
  6616. 3026 @ args = 0, pretend = 0, frame = 0
  6617. 3027 @ frame_needed = 0, uses_anonymous_args = 0
  6618. 3028 .LVL271:
  6619. 3029 0000 10B5 push {r4, lr}
  6620. 3030 .LCFI38:
  6621. 3031 .cfi_def_cfa_offset 8
  6622. 3032 .cfi_offset 4, -8
  6623. 3033 .cfi_offset 14, -4
  6624. 3034 0002 0446 mov r4, r0
  6625. 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1);
  6626. 3035 .loc 1 2000 0
  6627. 3036 0004 0268 ldr r2, [r0]
  6628. 3037 0006 1368 ldr r3, [r2]
  6629. 3038 .LVL272:
  6630. 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3);
  6631. 3039 .loc 1 2001 0
  6632. 3040 0008 D168 ldr r1, [r2, #12]
  6633. 3041 .LVL273:
  6634. 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U;
  6635. 3042 .loc 1 2002 0
  6636. 3043 000a 5269 ldr r2, [r2, #20]
  6637. 3044 .LVL274:
  6638. 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6639. 3045 .loc 1 2008 0
  6640. 3046 000c 13F00F00 ands r0, r3, #15
  6641. 3047 .LVL275:
  6642. 3048 0010 05D1 bne .L232
  6643. 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6644. 3049 .loc 1 2011 0
  6645. 3050 0012 13F0200F tst r3, #32
  6646. 3051 0016 02D0 beq .L232
  6647. 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6648. 3052 .loc 1 2011 0 is_stmt 0 discriminator 1
  6649. 3053 0018 11F0200F tst r1, #32
  6650. 3054 001c 53D1 bne .L247
  6651. 3055 .L232:
  6652. 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6653. 3056 .loc 1 2019 0 is_stmt 1
  6654. 3057 001e 0028 cmp r0, #0
  6655. 3058 0020 67D0 beq .L234
  6656. 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6657. 3059 .loc 1 2019 0 is_stmt 0 discriminator 1
  6658. 3060 0022 12F00102 ands r2, r2, #1
  6659. 3061 .LVL276:
  6660. 3062 0026 02D1 bne .L235
  6661. 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6662. 3063 .loc 1 2019 0 discriminator 2
  6663. 3064 0028 11F4907F tst r1, #288
  6664. 3065 002c 61D0 beq .L234
  6665. 3066 .L235:
  6666. 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6667. 3067 .loc 1 2022 0 is_stmt 1
  6668. 3068 002e 13F0010F tst r3, #1
  6669. 3069 0032 06D0 beq .L236
  6670. 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6671. ARM GAS /tmp/ccD7nRW1.s page 116
  6672. 3070 .loc 1 2022 0 is_stmt 0 discriminator 1
  6673. 3071 0034 11F4807F tst r1, #256
  6674. 3072 0038 03D0 beq .L236
  6675. 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6676. 3073 .loc 1 2024 0 is_stmt 1
  6677. 3074 003a E06B ldr r0, [r4, #60]
  6678. 3075 .LVL277:
  6679. 3076 003c 40F00100 orr r0, r0, #1
  6680. 3077 0040 E063 str r0, [r4, #60]
  6681. 3078 .L236:
  6682. 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6683. 3079 .loc 1 2028 0
  6684. 3080 0042 13F0040F tst r3, #4
  6685. 3081 0046 04D0 beq .L237
  6686. 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6687. 3082 .loc 1 2028 0 is_stmt 0 discriminator 1
  6688. 3083 0048 1AB1 cbz r2, .L237
  6689. 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6690. 3084 .loc 1 2030 0 is_stmt 1
  6691. 3085 004a E06B ldr r0, [r4, #60]
  6692. 3086 004c 40F00200 orr r0, r0, #2
  6693. 3087 0050 E063 str r0, [r4, #60]
  6694. 3088 .L237:
  6695. 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6696. 3089 .loc 1 2034 0
  6697. 3090 0052 13F0020F tst r3, #2
  6698. 3091 0056 04D0 beq .L238
  6699. 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6700. 3092 .loc 1 2034 0 is_stmt 0 discriminator 1
  6701. 3093 0058 1AB1 cbz r2, .L238
  6702. 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6703. 3094 .loc 1 2036 0 is_stmt 1
  6704. 3095 005a E06B ldr r0, [r4, #60]
  6705. 3096 005c 40F00400 orr r0, r0, #4
  6706. 3097 0060 E063 str r0, [r4, #60]
  6707. 3098 .L238:
  6708. 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6709. 3099 .loc 1 2040 0
  6710. 3100 0062 13F0080F tst r3, #8
  6711. 3101 0066 04D0 beq .L239
  6712. 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6713. 3102 .loc 1 2040 0 is_stmt 0 discriminator 1
  6714. 3103 0068 1AB1 cbz r2, .L239
  6715. 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6716. 3104 .loc 1 2042 0 is_stmt 1
  6717. 3105 006a E26B ldr r2, [r4, #60]
  6718. 3106 006c 42F00802 orr r2, r2, #8
  6719. 3107 0070 E263 str r2, [r4, #60]
  6720. 3108 .L239:
  6721. 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6722. 3109 .loc 1 2046 0
  6723. 3110 0072 E26B ldr r2, [r4, #60]
  6724. 3111 0074 002A cmp r2, #0
  6725. 3112 0076 48D0 beq .L231
  6726. 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6727. 3113 .loc 1 2049 0
  6728. 3114 0078 13F0200F tst r3, #32
  6729. ARM GAS /tmp/ccD7nRW1.s page 117
  6730. 3115 007c 02D0 beq .L240
  6731. 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6732. 3116 .loc 1 2049 0 is_stmt 0 discriminator 1
  6733. 3117 007e 11F0200F tst r1, #32
  6734. 3118 0082 24D1 bne .L248
  6735. 3119 .LVL278:
  6736. 3120 .L240:
  6737. 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest)
  6738. 3121 .loc 1 2056 0 is_stmt 1
  6739. 3122 0084 2368 ldr r3, [r4]
  6740. 3123 0086 5B69 ldr r3, [r3, #20]
  6741. 3124 0088 03F04003 and r3, r3, #64
  6742. 3125 .LVL279:
  6743. 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6744. 3126 .loc 1 2057 0
  6745. 3127 008c E26B ldr r2, [r4, #60]
  6746. 3128 008e 12F0080F tst r2, #8
  6747. 3129 0092 00D1 bne .L241
  6748. 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6749. 3130 .loc 1 2057 0 is_stmt 0 discriminator 1
  6750. 3131 0094 3BB3 cbz r3, .L242
  6751. 3132 .L241:
  6752. 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6753. 3133 .loc 1 2062 0 is_stmt 1
  6754. 3134 0096 2046 mov r0, r4
  6755. 3135 0098 FFF7FEFF bl UART_EndRxTransfer
  6756. 3136 .LVL280:
  6757. 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6758. 3137 .loc 1 2065 0
  6759. 3138 009c 2368 ldr r3, [r4]
  6760. 3139 009e 5A69 ldr r2, [r3, #20]
  6761. 3140 00a0 12F0400F tst r2, #64
  6762. 3141 00a4 1BD0 beq .L243
  6763. 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6764. 3142 .loc 1 2067 0
  6765. 3143 00a6 5A69 ldr r2, [r3, #20]
  6766. 3144 00a8 22F04002 bic r2, r2, #64
  6767. 3145 00ac 5A61 str r2, [r3, #20]
  6768. 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6769. 3146 .loc 1 2070 0
  6770. 3147 00ae 636B ldr r3, [r4, #52]
  6771. 3148 00b0 8BB1 cbz r3, .L244
  6772. 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
  6773. 3149 .loc 1 2074 0
  6774. 3150 00b2 1A4A ldr r2, .L251
  6775. 3151 00b4 1A65 str r2, [r3, #80]
  6776. 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6777. 3152 .loc 1 2075 0
  6778. 3153 00b6 606B ldr r0, [r4, #52]
  6779. 3154 00b8 FFF7FEFF bl HAL_DMA_Abort_IT
  6780. 3155 .LVL281:
  6781. 3156 00bc 28B3 cbz r0, .L231
  6782. 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6783. 3157 .loc 1 2078 0
  6784. 3158 00be 606B ldr r0, [r4, #52]
  6785. 3159 00c0 036D ldr r3, [r0, #80]
  6786. 3160 00c2 9847 blx r3
  6787. ARM GAS /tmp/ccD7nRW1.s page 118
  6788. 3161 .LVL282:
  6789. 3162 00c4 10BD pop {r4, pc}
  6790. 3163 .LVL283:
  6791. 3164 .L247:
  6792. 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  6793. 3165 .loc 1 2013 0
  6794. 3166 00c6 2046 mov r0, r4
  6795. 3167 .LVL284:
  6796. 3168 00c8 FFF7FEFF bl UART_Receive_IT
  6797. 3169 .LVL285:
  6798. 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6799. 3170 .loc 1 2014 0
  6800. 3171 00cc 10BD pop {r4, pc}
  6801. 3172 .LVL286:
  6802. 3173 .L248:
  6803. 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6804. 3174 .loc 1 2051 0
  6805. 3175 00ce 2046 mov r0, r4
  6806. 3176 00d0 FFF7FEFF bl UART_Receive_IT
  6807. 3177 .LVL287:
  6808. 3178 00d4 D6E7 b .L240
  6809. 3179 .LVL288:
  6810. 3180 .L244:
  6811. 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6812. 3181 .loc 1 2089 0
  6813. 3182 00d6 2046 mov r0, r4
  6814. 3183 00d8 FFF7FEFF bl HAL_UART_ErrorCallback
  6815. 3184 .LVL289:
  6816. 3185 00dc 10BD pop {r4, pc}
  6817. 3186 .LVL290:
  6818. 3187 .L243:
  6819. 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6820. 3188 .loc 1 2101 0
  6821. 3189 00de 2046 mov r0, r4
  6822. 3190 00e0 FFF7FEFF bl HAL_UART_ErrorCallback
  6823. 3191 .LVL291:
  6824. 3192 00e4 10BD pop {r4, pc}
  6825. 3193 .LVL292:
  6826. 3194 .L242:
  6827. 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6828. 3195 .loc 1 2114 0
  6829. 3196 00e6 2046 mov r0, r4
  6830. 3197 00e8 FFF7FEFF bl HAL_UART_ErrorCallback
  6831. 3198 .LVL293:
  6832. 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6833. 3199 .loc 1 2117 0
  6834. 3200 00ec 0023 movs r3, #0
  6835. 3201 00ee E363 str r3, [r4, #60]
  6836. 3202 00f0 10BD pop {r4, pc}
  6837. 3203 .LVL294:
  6838. 3204 .L234:
  6839. 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6840. 3205 .loc 1 2124 0
  6841. 3206 00f2 13F0800F tst r3, #128
  6842. 3207 00f6 02D0 beq .L245
  6843. 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6844. 3208 .loc 1 2124 0 is_stmt 0 discriminator 1
  6845. ARM GAS /tmp/ccD7nRW1.s page 119
  6846. 3209 00f8 11F0800F tst r1, #128
  6847. 3210 00fc 06D1 bne .L249
  6848. 3211 .L245:
  6849. 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6850. 3212 .loc 1 2131 0 is_stmt 1
  6851. 3213 00fe 13F0400F tst r3, #64
  6852. 3214 0102 02D0 beq .L231
  6853. 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6854. 3215 .loc 1 2131 0 is_stmt 0 discriminator 1
  6855. 3216 0104 11F0400F tst r1, #64
  6856. 3217 0108 04D1 bne .L250
  6857. 3218 .LVL295:
  6858. 3219 .L231:
  6859. 3220 010a 10BD pop {r4, pc}
  6860. 3221 .LVL296:
  6861. 3222 .L249:
  6862. 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  6863. 3223 .loc 1 2126 0 is_stmt 1
  6864. 3224 010c 2046 mov r0, r4
  6865. 3225 .LVL297:
  6866. 3226 010e FFF7FEFF bl UART_Transmit_IT
  6867. 3227 .LVL298:
  6868. 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6869. 3228 .loc 1 2127 0
  6870. 3229 0112 10BD pop {r4, pc}
  6871. 3230 .LVL299:
  6872. 3231 .L250:
  6873. 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return;
  6874. 3232 .loc 1 2133 0
  6875. 3233 0114 2046 mov r0, r4
  6876. 3234 .LVL300:
  6877. 3235 0116 FFF7FEFF bl UART_EndTransmit_IT
  6878. 3236 .LVL301:
  6879. 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6880. 3237 .loc 1 2134 0
  6881. 3238 011a F6E7 b .L231
  6882. 3239 .L252:
  6883. 3240 .align 2
  6884. 3241 .L251:
  6885. 3242 011c 00000000 .word UART_DMAAbortOnError
  6886. 3243 .cfi_endproc
  6887. 3244 .LFE152:
  6888. 3246 .section .text.UART_DMAAbortOnError,"ax",%progbits
  6889. 3247 .align 1
  6890. 3248 .syntax unified
  6891. 3249 .thumb
  6892. 3250 .thumb_func
  6893. 3251 .fpu fpv4-sp-d16
  6894. 3253 UART_DMAAbortOnError:
  6895. 3254 .LFB176:
  6896. 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  6897. 3255 .loc 1 2731 0
  6898. 3256 .cfi_startproc
  6899. 3257 @ args = 0, pretend = 0, frame = 0
  6900. 3258 @ frame_needed = 0, uses_anonymous_args = 0
  6901. 3259 .LVL302:
  6902. 3260 0000 08B5 push {r3, lr}
  6903. ARM GAS /tmp/ccD7nRW1.s page 120
  6904. 3261 .LCFI39:
  6905. 3262 .cfi_def_cfa_offset 8
  6906. 3263 .cfi_offset 3, -8
  6907. 3264 .cfi_offset 14, -4
  6908. 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  6909. 3265 .loc 1 2732 0
  6910. 3266 0002 806B ldr r0, [r0, #56]
  6911. 3267 .LVL303:
  6912. 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U;
  6913. 3268 .loc 1 2733 0
  6914. 3269 0004 0023 movs r3, #0
  6915. 3270 0006 C385 strh r3, [r0, #46] @ movhi
  6916. 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6917. 3271 .loc 1 2734 0
  6918. 3272 0008 C384 strh r3, [r0, #38] @ movhi
  6919. 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  6920. 3273 .loc 1 2741 0
  6921. 3274 000a FFF7FEFF bl HAL_UART_ErrorCallback
  6922. 3275 .LVL304:
  6923. 3276 000e 08BD pop {r3, pc}
  6924. 3277 .cfi_endproc
  6925. 3278 .LFE176:
  6926. 3280 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits
  6927. 3281 .align 1
  6928. 3282 .weak HAL_UART_AbortCpltCallback
  6929. 3283 .syntax unified
  6930. 3284 .thumb
  6931. 3285 .thumb_func
  6932. 3286 .fpu fpv4-sp-d16
  6933. 3288 HAL_UART_AbortCpltCallback:
  6934. 3289 .LFB158:
  6935. 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  6936. 3290 .loc 1 2219 0
  6937. 3291 .cfi_startproc
  6938. 3292 @ args = 0, pretend = 0, frame = 0
  6939. 3293 @ frame_needed = 0, uses_anonymous_args = 0
  6940. 3294 @ link register save eliminated.
  6941. 3295 .LVL305:
  6942. 3296 0000 7047 bx lr
  6943. 3297 .cfi_endproc
  6944. 3298 .LFE158:
  6945. 3300 .section .text.HAL_UART_Abort_IT,"ax",%progbits
  6946. 3301 .align 1
  6947. 3302 .global HAL_UART_Abort_IT
  6948. 3303 .syntax unified
  6949. 3304 .thumb
  6950. 3305 .thumb_func
  6951. 3306 .fpu fpv4-sp-d16
  6952. 3308 HAL_UART_Abort_IT:
  6953. 3309 .LFB149:
  6954. 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U;
  6955. 3310 .loc 1 1724 0
  6956. 3311 .cfi_startproc
  6957. 3312 @ args = 0, pretend = 0, frame = 0
  6958. 3313 @ frame_needed = 0, uses_anonymous_args = 0
  6959. 3314 .LVL306:
  6960. 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U;
  6961. ARM GAS /tmp/ccD7nRW1.s page 121
  6962. 3315 .loc 1 1724 0
  6963. 3316 0000 10B5 push {r4, lr}
  6964. 3317 .LCFI40:
  6965. 3318 .cfi_def_cfa_offset 8
  6966. 3319 .cfi_offset 4, -8
  6967. 3320 .cfi_offset 14, -4
  6968. 3321 0002 0446 mov r4, r0
  6969. 3322 .LVL307:
  6970. 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  6971. 3323 .loc 1 1728 0
  6972. 3324 0004 0268 ldr r2, [r0]
  6973. 3325 0006 D368 ldr r3, [r2, #12]
  6974. 3326 0008 23F4F073 bic r3, r3, #480
  6975. 3327 000c D360 str r3, [r2, #12]
  6976. 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  6977. 3328 .loc 1 1729 0
  6978. 3329 000e 0268 ldr r2, [r0]
  6979. 3330 0010 5369 ldr r3, [r2, #20]
  6980. 3331 0012 23F00103 bic r3, r3, #1
  6981. 3332 0016 5361 str r3, [r2, #20]
  6982. 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6983. 3333 .loc 1 1734 0
  6984. 3334 0018 036B ldr r3, [r0, #48]
  6985. 3335 001a 33B1 cbz r3, .L257
  6986. 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6987. 3336 .loc 1 1738 0
  6988. 3337 001c 0268 ldr r2, [r0]
  6989. 3338 001e 5269 ldr r2, [r2, #20]
  6990. 3339 0020 12F0800F tst r2, #128
  6991. 3340 0024 1DD0 beq .L258
  6992. 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  6993. 3341 .loc 1 1740 0
  6994. 3342 0026 264A ldr r2, .L270
  6995. 3343 0028 1A65 str r2, [r3, #80]
  6996. 3344 .L257:
  6997. 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  6998. 3345 .loc 1 1748 0
  6999. 3346 002a 636B ldr r3, [r4, #52]
  7000. 3347 002c 33B1 cbz r3, .L259
  7001. 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7002. 3348 .loc 1 1752 0
  7003. 3349 002e 2268 ldr r2, [r4]
  7004. 3350 0030 5269 ldr r2, [r2, #20]
  7005. 3351 0032 12F0400F tst r2, #64
  7006. 3352 0036 17D0 beq .L260
  7007. 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7008. 3353 .loc 1 1754 0
  7009. 3354 0038 224A ldr r2, .L270+4
  7010. 3355 003a 1A65 str r2, [r3, #80]
  7011. 3356 .L259:
  7012. 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7013. 3357 .loc 1 1763 0
  7014. 3358 003c 2368 ldr r3, [r4]
  7015. 3359 003e 5A69 ldr r2, [r3, #20]
  7016. 3360 0040 12F0800F tst r2, #128
  7017. 3361 0044 13D0 beq .L264
  7018. 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7019. ARM GAS /tmp/ccD7nRW1.s page 122
  7020. 3362 .loc 1 1766 0
  7021. 3363 0046 5A69 ldr r2, [r3, #20]
  7022. 3364 0048 22F08002 bic r2, r2, #128
  7023. 3365 004c 5A61 str r2, [r3, #20]
  7024. 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7025. 3366 .loc 1 1769 0
  7026. 3367 004e 206B ldr r0, [r4, #48]
  7027. 3368 .LVL308:
  7028. 3369 0050 18B3 cbz r0, .L265
  7029. 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7030. 3370 .loc 1 1775 0
  7031. 3371 0052 FFF7FEFF bl HAL_DMA_Abort_IT
  7032. 3372 .LVL309:
  7033. 3373 0056 10B3 cbz r0, .L266
  7034. 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7035. 3374 .loc 1 1777 0
  7036. 3375 0058 236B ldr r3, [r4, #48]
  7037. 3376 005a 0022 movs r2, #0
  7038. 3377 005c 1A65 str r2, [r3, #80]
  7039. 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7040. 3378 .loc 1 1725 0
  7041. 3379 005e 0122 movs r2, #1
  7042. 3380 0060 06E0 b .L261
  7043. 3381 .LVL310:
  7044. 3382 .L258:
  7045. 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7046. 3383 .loc 1 1744 0
  7047. 3384 0062 0022 movs r2, #0
  7048. 3385 0064 1A65 str r2, [r3, #80]
  7049. 3386 0066 E0E7 b .L257
  7050. 3387 .L260:
  7051. 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7052. 3388 .loc 1 1758 0
  7053. 3389 0068 0022 movs r2, #0
  7054. 3390 006a 1A65 str r2, [r3, #80]
  7055. 3391 006c E6E7 b .L259
  7056. 3392 .L264:
  7057. 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7058. 3393 .loc 1 1725 0
  7059. 3394 006e 0122 movs r2, #1
  7060. 3395 .LVL311:
  7061. 3396 .L261:
  7062. 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7063. 3397 .loc 1 1787 0
  7064. 3398 0070 2368 ldr r3, [r4]
  7065. 3399 0072 5969 ldr r1, [r3, #20]
  7066. 3400 0074 11F0400F tst r1, #64
  7067. 3401 0078 0CD0 beq .L262
  7068. 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7069. 3402 .loc 1 1789 0
  7070. 3403 007a 5969 ldr r1, [r3, #20]
  7071. 3404 007c 21F04001 bic r1, r1, #64
  7072. 3405 0080 5961 str r1, [r3, #20]
  7073. 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7074. 3406 .loc 1 1792 0
  7075. 3407 0082 606B ldr r0, [r4, #52]
  7076. 3408 0084 30B1 cbz r0, .L262
  7077. ARM GAS /tmp/ccD7nRW1.s page 123
  7078. 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7079. 3409 .loc 1 1798 0
  7080. 3410 0086 FFF7FEFF bl HAL_DMA_Abort_IT
  7081. 3411 .LVL312:
  7082. 3412 008a 50B1 cbz r0, .L267
  7083. 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U;
  7084. 3413 .loc 1 1800 0
  7085. 3414 008c 636B ldr r3, [r4, #52]
  7086. 3415 008e 0022 movs r2, #0
  7087. 3416 0090 1A65 str r2, [r3, #80]
  7088. 3417 .LVL313:
  7089. 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7090. 3418 .loc 1 1801 0
  7091. 3419 0092 0122 movs r2, #1
  7092. 3420 .LVL314:
  7093. 3421 .L262:
  7094. 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7095. 3422 .loc 1 1811 0
  7096. 3423 0094 3AB9 cbnz r2, .L269
  7097. 3424 .LVL315:
  7098. 3425 .L263:
  7099. 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7100. 3426 .loc 1 1835 0
  7101. 3427 0096 0020 movs r0, #0
  7102. 3428 0098 10BD pop {r4, pc}
  7103. 3429 .LVL316:
  7104. 3430 .L265:
  7105. 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7106. 3431 .loc 1 1725 0
  7107. 3432 009a 0122 movs r2, #1
  7108. 3433 009c E8E7 b .L261
  7109. 3434 .L266:
  7110. 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7111. 3435 .loc 1 1781 0
  7112. 3436 009e 0022 movs r2, #0
  7113. 3437 00a0 E6E7 b .L261
  7114. 3438 .LVL317:
  7115. 3439 .L267:
  7116. 1805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7117. 3440 .loc 1 1805 0
  7118. 3441 00a2 0022 movs r2, #0
  7119. 3442 00a4 F6E7 b .L262
  7120. 3443 .LVL318:
  7121. 3444 .L269:
  7122. 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  7123. 3445 .loc 1 1814 0
  7124. 3446 00a6 0023 movs r3, #0
  7125. 3447 00a8 E384 strh r3, [r4, #38] @ movhi
  7126. 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7127. 3448 .loc 1 1815 0
  7128. 3449 00aa E385 strh r3, [r4, #46] @ movhi
  7129. 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7130. 3450 .loc 1 1818 0
  7131. 3451 00ac E363 str r3, [r4, #60]
  7132. 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  7133. 3452 .loc 1 1821 0
  7134. 3453 00ae 2023 movs r3, #32
  7135. ARM GAS /tmp/ccD7nRW1.s page 124
  7136. 3454 00b0 84F83930 strb r3, [r4, #57]
  7137. 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7138. 3455 .loc 1 1822 0
  7139. 3456 00b4 84F83A30 strb r3, [r4, #58]
  7140. 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7141. 3457 .loc 1 1830 0
  7142. 3458 00b8 2046 mov r0, r4
  7143. 3459 00ba FFF7FEFF bl HAL_UART_AbortCpltCallback
  7144. 3460 .LVL319:
  7145. 3461 00be EAE7 b .L263
  7146. 3462 .L271:
  7147. 3463 .align 2
  7148. 3464 .L270:
  7149. 3465 00c0 00000000 .word UART_DMATxAbortCallback
  7150. 3466 00c4 00000000 .word UART_DMARxAbortCallback
  7151. 3467 .cfi_endproc
  7152. 3468 .LFE149:
  7153. 3470 .section .text.UART_DMARxAbortCallback,"ax",%progbits
  7154. 3471 .align 1
  7155. 3472 .syntax unified
  7156. 3473 .thumb
  7157. 3474 .thumb_func
  7158. 3475 .fpu fpv4-sp-d16
  7159. 3477 UART_DMARxAbortCallback:
  7160. 3478 .LFB178:
  7161. 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  7162. 3479 .loc 1 2800 0
  7163. 3480 .cfi_startproc
  7164. 3481 @ args = 0, pretend = 0, frame = 0
  7165. 3482 @ frame_needed = 0, uses_anonymous_args = 0
  7166. 3483 .LVL320:
  7167. 3484 0000 08B5 push {r3, lr}
  7168. 3485 .LCFI41:
  7169. 3486 .cfi_def_cfa_offset 8
  7170. 3487 .cfi_offset 3, -8
  7171. 3488 .cfi_offset 14, -4
  7172. 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7173. 3489 .loc 1 2801 0
  7174. 3490 0002 806B ldr r0, [r0, #56]
  7175. 3491 .LVL321:
  7176. 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7177. 3492 .loc 1 2803 0
  7178. 3493 0004 436B ldr r3, [r0, #52]
  7179. 3494 0006 0022 movs r2, #0
  7180. 3495 0008 1A65 str r2, [r3, #80]
  7181. 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7182. 3496 .loc 1 2806 0
  7183. 3497 000a 036B ldr r3, [r0, #48]
  7184. 3498 000c 13B1 cbz r3, .L273
  7185. 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7186. 3499 .loc 1 2808 0
  7187. 3500 000e 1B6D ldr r3, [r3, #80]
  7188. 3501 0010 03B1 cbz r3, .L273
  7189. 3502 .LVL322:
  7190. 3503 .L272:
  7191. 3504 0012 08BD pop {r3, pc}
  7192. 3505 .LVL323:
  7193. ARM GAS /tmp/ccD7nRW1.s page 125
  7194. 3506 .L273:
  7195. 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  7196. 3507 .loc 1 2815 0
  7197. 3508 0014 0023 movs r3, #0
  7198. 3509 0016 C384 strh r3, [r0, #38] @ movhi
  7199. 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7200. 3510 .loc 1 2816 0
  7201. 3511 0018 C385 strh r3, [r0, #46] @ movhi
  7202. 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7203. 3512 .loc 1 2819 0
  7204. 3513 001a C363 str r3, [r0, #60]
  7205. 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  7206. 3514 .loc 1 2822 0
  7207. 3515 001c 2023 movs r3, #32
  7208. 3516 001e 80F83930 strb r3, [r0, #57]
  7209. 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7210. 3517 .loc 1 2823 0
  7211. 3518 0022 80F83A30 strb r3, [r0, #58]
  7212. 2831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7213. 3519 .loc 1 2831 0
  7214. 3520 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback
  7215. 3521 .LVL324:
  7216. 3522 002a F2E7 b .L272
  7217. 3523 .cfi_endproc
  7218. 3524 .LFE178:
  7219. 3526 .section .text.UART_DMATxAbortCallback,"ax",%progbits
  7220. 3527 .align 1
  7221. 3528 .syntax unified
  7222. 3529 .thumb
  7223. 3530 .thumb_func
  7224. 3531 .fpu fpv4-sp-d16
  7225. 3533 UART_DMATxAbortCallback:
  7226. 3534 .LFB177:
  7227. 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  7228. 3535 .loc 1 2755 0
  7229. 3536 .cfi_startproc
  7230. 3537 @ args = 0, pretend = 0, frame = 0
  7231. 3538 @ frame_needed = 0, uses_anonymous_args = 0
  7232. 3539 .LVL325:
  7233. 3540 0000 08B5 push {r3, lr}
  7234. 3541 .LCFI42:
  7235. 3542 .cfi_def_cfa_offset 8
  7236. 3543 .cfi_offset 3, -8
  7237. 3544 .cfi_offset 14, -4
  7238. 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7239. 3545 .loc 1 2756 0
  7240. 3546 0002 806B ldr r0, [r0, #56]
  7241. 3547 .LVL326:
  7242. 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7243. 3548 .loc 1 2758 0
  7244. 3549 0004 036B ldr r3, [r0, #48]
  7245. 3550 0006 0022 movs r2, #0
  7246. 3551 0008 1A65 str r2, [r3, #80]
  7247. 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7248. 3552 .loc 1 2761 0
  7249. 3553 000a 436B ldr r3, [r0, #52]
  7250. 3554 000c 13B1 cbz r3, .L277
  7251. ARM GAS /tmp/ccD7nRW1.s page 126
  7252. 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7253. 3555 .loc 1 2763 0
  7254. 3556 000e 1B6D ldr r3, [r3, #80]
  7255. 3557 0010 03B1 cbz r3, .L277
  7256. 3558 .LVL327:
  7257. 3559 .L276:
  7258. 3560 0012 08BD pop {r3, pc}
  7259. 3561 .LVL328:
  7260. 3562 .L277:
  7261. 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U;
  7262. 3563 .loc 1 2770 0
  7263. 3564 0014 0023 movs r3, #0
  7264. 3565 0016 C384 strh r3, [r0, #38] @ movhi
  7265. 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7266. 3566 .loc 1 2771 0
  7267. 3567 0018 C385 strh r3, [r0, #46] @ movhi
  7268. 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7269. 3568 .loc 1 2774 0
  7270. 3569 001a C363 str r3, [r0, #60]
  7271. 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
  7272. 3570 .loc 1 2777 0
  7273. 3571 001c 2023 movs r3, #32
  7274. 3572 001e 80F83930 strb r3, [r0, #57]
  7275. 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7276. 3573 .loc 1 2778 0
  7277. 3574 0022 80F83A30 strb r3, [r0, #58]
  7278. 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7279. 3575 .loc 1 2786 0
  7280. 3576 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback
  7281. 3577 .LVL329:
  7282. 3578 002a F2E7 b .L276
  7283. 3579 .cfi_endproc
  7284. 3580 .LFE177:
  7285. 3582 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits
  7286. 3583 .align 1
  7287. 3584 .weak HAL_UART_AbortTransmitCpltCallback
  7288. 3585 .syntax unified
  7289. 3586 .thumb
  7290. 3587 .thumb_func
  7291. 3588 .fpu fpv4-sp-d16
  7292. 3590 HAL_UART_AbortTransmitCpltCallback:
  7293. 3591 .LFB159:
  7294. 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  7295. 3592 .loc 1 2234 0
  7296. 3593 .cfi_startproc
  7297. 3594 @ args = 0, pretend = 0, frame = 0
  7298. 3595 @ frame_needed = 0, uses_anonymous_args = 0
  7299. 3596 @ link register save eliminated.
  7300. 3597 .LVL330:
  7301. 3598 0000 7047 bx lr
  7302. 3599 .cfi_endproc
  7303. 3600 .LFE159:
  7304. 3602 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits
  7305. 3603 .align 1
  7306. 3604 .global HAL_UART_AbortTransmit_IT
  7307. 3605 .syntax unified
  7308. 3606 .thumb
  7309. ARM GAS /tmp/ccD7nRW1.s page 127
  7310. 3607 .thumb_func
  7311. 3608 .fpu fpv4-sp-d16
  7312. 3610 HAL_UART_AbortTransmit_IT:
  7313. 3611 .LFB150:
  7314. 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
  7315. 3612 .loc 1 1852 0
  7316. 3613 .cfi_startproc
  7317. 3614 @ args = 0, pretend = 0, frame = 0
  7318. 3615 @ frame_needed = 0, uses_anonymous_args = 0
  7319. 3616 .LVL331:
  7320. 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
  7321. 3617 .loc 1 1852 0
  7322. 3618 0000 10B5 push {r4, lr}
  7323. 3619 .LCFI43:
  7324. 3620 .cfi_def_cfa_offset 8
  7325. 3621 .cfi_offset 4, -8
  7326. 3622 .cfi_offset 14, -4
  7327. 3623 0002 0446 mov r4, r0
  7328. 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7329. 3624 .loc 1 1854 0
  7330. 3625 0004 0268 ldr r2, [r0]
  7331. 3626 0006 D368 ldr r3, [r2, #12]
  7332. 3627 0008 23F0C003 bic r3, r3, #192
  7333. 3628 000c D360 str r3, [r2, #12]
  7334. 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7335. 3629 .loc 1 1857 0
  7336. 3630 000e 0368 ldr r3, [r0]
  7337. 3631 0010 5A69 ldr r2, [r3, #20]
  7338. 3632 0012 12F0800F tst r2, #128
  7339. 3633 0016 19D0 beq .L282
  7340. 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7341. 3634 .loc 1 1859 0
  7342. 3635 0018 5A69 ldr r2, [r3, #20]
  7343. 3636 001a 22F08002 bic r2, r2, #128
  7344. 3637 001e 5A61 str r2, [r3, #20]
  7345. 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7346. 3638 .loc 1 1862 0
  7347. 3639 0020 036B ldr r3, [r0, #48]
  7348. 3640 0022 5BB1 cbz r3, .L283
  7349. 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7350. 3641 .loc 1 1866 0
  7351. 3642 0024 0D4A ldr r2, .L287
  7352. 3643 0026 1A65 str r2, [r3, #80]
  7353. 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7354. 3644 .loc 1 1869 0
  7355. 3645 0028 006B ldr r0, [r0, #48]
  7356. 3646 .LVL332:
  7357. 3647 002a FFF7FEFF bl HAL_DMA_Abort_IT
  7358. 3648 .LVL333:
  7359. 3649 002e 08B9 cbnz r0, .L286
  7360. 3650 .L284:
  7361. 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7362. 3651 .loc 1 1912 0
  7363. 3652 0030 0020 movs r0, #0
  7364. 3653 0032 10BD pop {r4, pc}
  7365. 3654 .LVL334:
  7366. 3655 .L286:
  7367. ARM GAS /tmp/ccD7nRW1.s page 128
  7368. 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7369. 3656 .loc 1 1872 0
  7370. 3657 0034 206B ldr r0, [r4, #48]
  7371. 3658 0036 036D ldr r3, [r0, #80]
  7372. 3659 0038 9847 blx r3
  7373. 3660 .LVL335:
  7374. 3661 003a F9E7 b .L284
  7375. 3662 .LVL336:
  7376. 3663 .L283:
  7377. 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7378. 3664 .loc 1 1878 0
  7379. 3665 003c 0023 movs r3, #0
  7380. 3666 003e C384 strh r3, [r0, #38] @ movhi
  7381. 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7382. 3667 .loc 1 1881 0
  7383. 3668 0040 2023 movs r3, #32
  7384. 3669 0042 80F83930 strb r3, [r0, #57]
  7385. 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7386. 3670 .loc 1 1889 0
  7387. 3671 0046 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback
  7388. 3672 .LVL337:
  7389. 3673 004a F1E7 b .L284
  7390. 3674 .LVL338:
  7391. 3675 .L282:
  7392. 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7393. 3676 .loc 1 1896 0
  7394. 3677 004c 0023 movs r3, #0
  7395. 3678 004e C384 strh r3, [r0, #38] @ movhi
  7396. 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7397. 3679 .loc 1 1899 0
  7398. 3680 0050 2023 movs r3, #32
  7399. 3681 0052 80F83930 strb r3, [r0, #57]
  7400. 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7401. 3682 .loc 1 1907 0
  7402. 3683 0056 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback
  7403. 3684 .LVL339:
  7404. 3685 005a E9E7 b .L284
  7405. 3686 .L288:
  7406. 3687 .align 2
  7407. 3688 .L287:
  7408. 3689 005c 00000000 .word UART_DMATxOnlyAbortCallback
  7409. 3690 .cfi_endproc
  7410. 3691 .LFE150:
  7411. 3693 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits
  7412. 3694 .align 1
  7413. 3695 .syntax unified
  7414. 3696 .thumb
  7415. 3697 .thumb_func
  7416. 3698 .fpu fpv4-sp-d16
  7417. 3700 UART_DMATxOnlyAbortCallback:
  7418. 3701 .LFB179:
  7419. 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  7420. 3702 .loc 1 2845 0
  7421. 3703 .cfi_startproc
  7422. 3704 @ args = 0, pretend = 0, frame = 0
  7423. 3705 @ frame_needed = 0, uses_anonymous_args = 0
  7424. 3706 .LVL340:
  7425. ARM GAS /tmp/ccD7nRW1.s page 129
  7426. 3707 0000 08B5 push {r3, lr}
  7427. 3708 .LCFI44:
  7428. 3709 .cfi_def_cfa_offset 8
  7429. 3710 .cfi_offset 3, -8
  7430. 3711 .cfi_offset 14, -4
  7431. 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7432. 3712 .loc 1 2846 0
  7433. 3713 0002 806B ldr r0, [r0, #56]
  7434. 3714 .LVL341:
  7435. 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7436. 3715 .loc 1 2848 0
  7437. 3716 0004 0023 movs r3, #0
  7438. 3717 0006 C384 strh r3, [r0, #38] @ movhi
  7439. 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7440. 3718 .loc 1 2851 0
  7441. 3719 0008 2023 movs r3, #32
  7442. 3720 000a 80F83930 strb r3, [r0, #57]
  7443. 2859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7444. 3721 .loc 1 2859 0
  7445. 3722 000e FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback
  7446. 3723 .LVL342:
  7447. 3724 0012 08BD pop {r3, pc}
  7448. 3725 .cfi_endproc
  7449. 3726 .LFE179:
  7450. 3728 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits
  7451. 3729 .align 1
  7452. 3730 .weak HAL_UART_AbortReceiveCpltCallback
  7453. 3731 .syntax unified
  7454. 3732 .thumb
  7455. 3733 .thumb_func
  7456. 3734 .fpu fpv4-sp-d16
  7457. 3736 HAL_UART_AbortReceiveCpltCallback:
  7458. 3737 .LFB160:
  7459. 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
  7460. 3738 .loc 1 2249 0
  7461. 3739 .cfi_startproc
  7462. 3740 @ args = 0, pretend = 0, frame = 0
  7463. 3741 @ frame_needed = 0, uses_anonymous_args = 0
  7464. 3742 @ link register save eliminated.
  7465. 3743 .LVL343:
  7466. 3744 0000 7047 bx lr
  7467. 3745 .cfi_endproc
  7468. 3746 .LFE160:
  7469. 3748 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits
  7470. 3749 .align 1
  7471. 3750 .global HAL_UART_AbortReceive_IT
  7472. 3751 .syntax unified
  7473. 3752 .thumb
  7474. 3753 .thumb_func
  7475. 3754 .fpu fpv4-sp-d16
  7476. 3756 HAL_UART_AbortReceive_IT:
  7477. 3757 .LFB151:
  7478. 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  7479. 3758 .loc 1 1929 0
  7480. 3759 .cfi_startproc
  7481. 3760 @ args = 0, pretend = 0, frame = 0
  7482. 3761 @ frame_needed = 0, uses_anonymous_args = 0
  7483. ARM GAS /tmp/ccD7nRW1.s page 130
  7484. 3762 .LVL344:
  7485. 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
  7486. 3763 .loc 1 1929 0
  7487. 3764 0000 10B5 push {r4, lr}
  7488. 3765 .LCFI45:
  7489. 3766 .cfi_def_cfa_offset 8
  7490. 3767 .cfi_offset 4, -8
  7491. 3768 .cfi_offset 14, -4
  7492. 3769 0002 0446 mov r4, r0
  7493. 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
  7494. 3770 .loc 1 1931 0
  7495. 3771 0004 0268 ldr r2, [r0]
  7496. 3772 0006 D368 ldr r3, [r2, #12]
  7497. 3773 0008 23F49073 bic r3, r3, #288
  7498. 3774 000c D360 str r3, [r2, #12]
  7499. 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7500. 3775 .loc 1 1932 0
  7501. 3776 000e 0268 ldr r2, [r0]
  7502. 3777 0010 5369 ldr r3, [r2, #20]
  7503. 3778 0012 23F00103 bic r3, r3, #1
  7504. 3779 0016 5361 str r3, [r2, #20]
  7505. 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7506. 3780 .loc 1 1935 0
  7507. 3781 0018 0368 ldr r3, [r0]
  7508. 3782 001a 5A69 ldr r2, [r3, #20]
  7509. 3783 001c 12F0400F tst r2, #64
  7510. 3784 0020 19D0 beq .L293
  7511. 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7512. 3785 .loc 1 1937 0
  7513. 3786 0022 5A69 ldr r2, [r3, #20]
  7514. 3787 0024 22F04002 bic r2, r2, #64
  7515. 3788 0028 5A61 str r2, [r3, #20]
  7516. 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7517. 3789 .loc 1 1940 0
  7518. 3790 002a 436B ldr r3, [r0, #52]
  7519. 3791 002c 5BB1 cbz r3, .L294
  7520. 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7521. 3792 .loc 1 1944 0
  7522. 3793 002e 0E4A ldr r2, .L298
  7523. 3794 0030 1A65 str r2, [r3, #80]
  7524. 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** {
  7525. 3795 .loc 1 1947 0
  7526. 3796 0032 406B ldr r0, [r0, #52]
  7527. 3797 .LVL345:
  7528. 3798 0034 FFF7FEFF bl HAL_DMA_Abort_IT
  7529. 3799 .LVL346:
  7530. 3800 0038 08B9 cbnz r0, .L297
  7531. 3801 .L295:
  7532. 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7533. 3802 .loc 1 1990 0
  7534. 3803 003a 0020 movs r0, #0
  7535. 3804 003c 10BD pop {r4, pc}
  7536. 3805 .LVL347:
  7537. 3806 .L297:
  7538. 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7539. 3807 .loc 1 1950 0
  7540. 3808 003e 606B ldr r0, [r4, #52]
  7541. ARM GAS /tmp/ccD7nRW1.s page 131
  7542. 3809 0040 036D ldr r3, [r0, #80]
  7543. 3810 0042 9847 blx r3
  7544. 3811 .LVL348:
  7545. 3812 0044 F9E7 b .L295
  7546. 3813 .LVL349:
  7547. 3814 .L294:
  7548. 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7549. 3815 .loc 1 1956 0
  7550. 3816 0046 0023 movs r3, #0
  7551. 3817 0048 C385 strh r3, [r0, #46] @ movhi
  7552. 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7553. 3818 .loc 1 1959 0
  7554. 3819 004a 2023 movs r3, #32
  7555. 3820 004c 80F83A30 strb r3, [r0, #58]
  7556. 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7557. 3821 .loc 1 1967 0
  7558. 3822 0050 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback
  7559. 3823 .LVL350:
  7560. 3824 0054 F1E7 b .L295
  7561. 3825 .LVL351:
  7562. 3826 .L293:
  7563. 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7564. 3827 .loc 1 1974 0
  7565. 3828 0056 0023 movs r3, #0
  7566. 3829 0058 C385 strh r3, [r0, #46] @ movhi
  7567. 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7568. 3830 .loc 1 1977 0
  7569. 3831 005a 2023 movs r3, #32
  7570. 3832 005c 80F83A30 strb r3, [r0, #58]
  7571. 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7572. 3833 .loc 1 1985 0
  7573. 3834 0060 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback
  7574. 3835 .LVL352:
  7575. 3836 0064 E9E7 b .L295
  7576. 3837 .L299:
  7577. 3838 0066 00BF .align 2
  7578. 3839 .L298:
  7579. 3840 0068 00000000 .word UART_DMARxOnlyAbortCallback
  7580. 3841 .cfi_endproc
  7581. 3842 .LFE151:
  7582. 3844 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits
  7583. 3845 .align 1
  7584. 3846 .syntax unified
  7585. 3847 .thumb
  7586. 3848 .thumb_func
  7587. 3849 .fpu fpv4-sp-d16
  7588. 3851 UART_DMARxOnlyAbortCallback:
  7589. 3852 .LFB180:
  7590. 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
  7591. 3853 .loc 1 2873 0
  7592. 3854 .cfi_startproc
  7593. 3855 @ args = 0, pretend = 0, frame = 0
  7594. 3856 @ frame_needed = 0, uses_anonymous_args = 0
  7595. 3857 .LVL353:
  7596. 3858 0000 08B5 push {r3, lr}
  7597. 3859 .LCFI46:
  7598. 3860 .cfi_def_cfa_offset 8
  7599. ARM GAS /tmp/ccD7nRW1.s page 132
  7600. 3861 .cfi_offset 3, -8
  7601. 3862 .cfi_offset 14, -4
  7602. 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7603. 3863 .loc 1 2874 0
  7604. 3864 0002 806B ldr r0, [r0, #56]
  7605. 3865 .LVL354:
  7606. 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7607. 3866 .loc 1 2876 0
  7608. 3867 0004 0023 movs r3, #0
  7609. 3868 0006 C385 strh r3, [r0, #46] @ movhi
  7610. 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7611. 3869 .loc 1 2879 0
  7612. 3870 0008 2023 movs r3, #32
  7613. 3871 000a 80F83A30 strb r3, [r0, #58]
  7614. 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */
  7615. 3872 .loc 1 2887 0
  7616. 3873 000e FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback
  7617. 3874 .LVL355:
  7618. 3875 0012 08BD pop {r3, pc}
  7619. 3876 .cfi_endproc
  7620. 3877 .LFE180:
  7621. 3879 .section .text.HAL_LIN_SendBreak,"ax",%progbits
  7622. 3880 .align 1
  7623. 3881 .global HAL_LIN_SendBreak
  7624. 3882 .syntax unified
  7625. 3883 .thumb
  7626. 3884 .thumb_func
  7627. 3885 .fpu fpv4-sp-d16
  7628. 3887 HAL_LIN_SendBreak:
  7629. 3888 .LFB161:
  7630. 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  7631. 3889 .loc 1 2288 0
  7632. 3890 .cfi_startproc
  7633. 3891 @ args = 0, pretend = 0, frame = 0
  7634. 3892 @ frame_needed = 0, uses_anonymous_args = 0
  7635. 3893 @ link register save eliminated.
  7636. 3894 .LVL356:
  7637. 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7638. 3895 .loc 1 2293 0
  7639. 3896 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  7640. 3897 0004 012B cmp r3, #1
  7641. 3898 0006 12D0 beq .L304
  7642. 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7643. 3899 .loc 1 2293 0 is_stmt 0 discriminator 2
  7644. 3900 0008 0123 movs r3, #1
  7645. 3901 000a 80F83830 strb r3, [r0, #56]
  7646. 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7647. 3902 .loc 1 2295 0 is_stmt 1 discriminator 2
  7648. 3903 000e 2423 movs r3, #36
  7649. 3904 0010 80F83930 strb r3, [r0, #57]
  7650. 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7651. 3905 .loc 1 2298 0 discriminator 2
  7652. 3906 0014 0268 ldr r2, [r0]
  7653. 3907 0016 D368 ldr r3, [r2, #12]
  7654. 3908 0018 43F00103 orr r3, r3, #1
  7655. 3909 001c D360 str r3, [r2, #12]
  7656. 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7657. ARM GAS /tmp/ccD7nRW1.s page 133
  7658. 3910 .loc 1 2300 0 discriminator 2
  7659. 3911 001e 2023 movs r3, #32
  7660. 3912 0020 80F83930 strb r3, [r0, #57]
  7661. 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7662. 3913 .loc 1 2303 0 discriminator 2
  7663. 3914 0024 0023 movs r3, #0
  7664. 3915 0026 80F83830 strb r3, [r0, #56]
  7665. 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7666. 3916 .loc 1 2305 0 discriminator 2
  7667. 3917 002a 1846 mov r0, r3
  7668. 3918 .LVL357:
  7669. 3919 002c 7047 bx lr
  7670. 3920 .LVL358:
  7671. 3921 .L304:
  7672. 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7673. 3922 .loc 1 2293 0
  7674. 3923 002e 0220 movs r0, #2
  7675. 3924 .LVL359:
  7676. 2306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7677. 3925 .loc 1 2306 0
  7678. 3926 0030 7047 bx lr
  7679. 3927 .cfi_endproc
  7680. 3928 .LFE161:
  7681. 3930 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits
  7682. 3931 .align 1
  7683. 3932 .global HAL_MultiProcessor_EnterMuteMode
  7684. 3933 .syntax unified
  7685. 3934 .thumb
  7686. 3935 .thumb_func
  7687. 3936 .fpu fpv4-sp-d16
  7688. 3938 HAL_MultiProcessor_EnterMuteMode:
  7689. 3939 .LFB162:
  7690. 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  7691. 3940 .loc 1 2315 0
  7692. 3941 .cfi_startproc
  7693. 3942 @ args = 0, pretend = 0, frame = 0
  7694. 3943 @ frame_needed = 0, uses_anonymous_args = 0
  7695. 3944 @ link register save eliminated.
  7696. 3945 .LVL360:
  7697. 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7698. 3946 .loc 1 2320 0
  7699. 3947 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  7700. 3948 0004 012B cmp r3, #1
  7701. 3949 0006 12D0 beq .L307
  7702. 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7703. 3950 .loc 1 2320 0 is_stmt 0 discriminator 2
  7704. 3951 0008 0123 movs r3, #1
  7705. 3952 000a 80F83830 strb r3, [r0, #56]
  7706. 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7707. 3953 .loc 1 2322 0 is_stmt 1 discriminator 2
  7708. 3954 000e 2423 movs r3, #36
  7709. 3955 0010 80F83930 strb r3, [r0, #57]
  7710. 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7711. 3956 .loc 1 2325 0 discriminator 2
  7712. 3957 0014 0268 ldr r2, [r0]
  7713. 3958 0016 D368 ldr r3, [r2, #12]
  7714. 3959 0018 43F00203 orr r3, r3, #2
  7715. ARM GAS /tmp/ccD7nRW1.s page 134
  7716. 3960 001c D360 str r3, [r2, #12]
  7717. 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7718. 3961 .loc 1 2327 0 discriminator 2
  7719. 3962 001e 2023 movs r3, #32
  7720. 3963 0020 80F83930 strb r3, [r0, #57]
  7721. 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7722. 3964 .loc 1 2330 0 discriminator 2
  7723. 3965 0024 0023 movs r3, #0
  7724. 3966 0026 80F83830 strb r3, [r0, #56]
  7725. 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7726. 3967 .loc 1 2332 0 discriminator 2
  7727. 3968 002a 1846 mov r0, r3
  7728. 3969 .LVL361:
  7729. 3970 002c 7047 bx lr
  7730. 3971 .LVL362:
  7731. 3972 .L307:
  7732. 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7733. 3973 .loc 1 2320 0
  7734. 3974 002e 0220 movs r0, #2
  7735. 3975 .LVL363:
  7736. 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7737. 3976 .loc 1 2333 0
  7738. 3977 0030 7047 bx lr
  7739. 3978 .cfi_endproc
  7740. 3979 .LFE162:
  7741. 3981 .section .text.HAL_MultiProcessor_ExitMuteMode,"ax",%progbits
  7742. 3982 .align 1
  7743. 3983 .global HAL_MultiProcessor_ExitMuteMode
  7744. 3984 .syntax unified
  7745. 3985 .thumb
  7746. 3986 .thumb_func
  7747. 3987 .fpu fpv4-sp-d16
  7748. 3989 HAL_MultiProcessor_ExitMuteMode:
  7749. 3990 .LFB163:
  7750. 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */
  7751. 3991 .loc 1 2342 0
  7752. 3992 .cfi_startproc
  7753. 3993 @ args = 0, pretend = 0, frame = 0
  7754. 3994 @ frame_needed = 0, uses_anonymous_args = 0
  7755. 3995 @ link register save eliminated.
  7756. 3996 .LVL364:
  7757. 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7758. 3997 .loc 1 2347 0
  7759. 3998 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  7760. 3999 0004 012B cmp r3, #1
  7761. 4000 0006 12D0 beq .L310
  7762. 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7763. 4001 .loc 1 2347 0 is_stmt 0 discriminator 2
  7764. 4002 0008 0123 movs r3, #1
  7765. 4003 000a 80F83830 strb r3, [r0, #56]
  7766. 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7767. 4004 .loc 1 2349 0 is_stmt 1 discriminator 2
  7768. 4005 000e 2423 movs r3, #36
  7769. 4006 0010 80F83930 strb r3, [r0, #57]
  7770. 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7771. 4007 .loc 1 2352 0 discriminator 2
  7772. 4008 0014 0268 ldr r2, [r0]
  7773. ARM GAS /tmp/ccD7nRW1.s page 135
  7774. 4009 0016 D368 ldr r3, [r2, #12]
  7775. 4010 0018 23F00203 bic r3, r3, #2
  7776. 4011 001c D360 str r3, [r2, #12]
  7777. 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7778. 4012 .loc 1 2354 0 discriminator 2
  7779. 4013 001e 2023 movs r3, #32
  7780. 4014 0020 80F83930 strb r3, [r0, #57]
  7781. 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7782. 4015 .loc 1 2357 0 discriminator 2
  7783. 4016 0024 0023 movs r3, #0
  7784. 4017 0026 80F83830 strb r3, [r0, #56]
  7785. 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7786. 4018 .loc 1 2359 0 discriminator 2
  7787. 4019 002a 1846 mov r0, r3
  7788. 4020 .LVL365:
  7789. 4021 002c 7047 bx lr
  7790. 4022 .LVL366:
  7791. 4023 .L310:
  7792. 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7793. 4024 .loc 1 2347 0
  7794. 4025 002e 0220 movs r0, #2
  7795. 4026 .LVL367:
  7796. 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7797. 4027 .loc 1 2360 0
  7798. 4028 0030 7047 bx lr
  7799. 4029 .cfi_endproc
  7800. 4030 .LFE163:
  7801. 4032 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits
  7802. 4033 .align 1
  7803. 4034 .global HAL_HalfDuplex_EnableTransmitter
  7804. 4035 .syntax unified
  7805. 4036 .thumb
  7806. 4037 .thumb_func
  7807. 4038 .fpu fpv4-sp-d16
  7808. 4040 HAL_HalfDuplex_EnableTransmitter:
  7809. 4041 .LFB164:
  7810. 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U;
  7811. 4042 .loc 1 2369 0
  7812. 4043 .cfi_startproc
  7813. 4044 @ args = 0, pretend = 0, frame = 0
  7814. 4045 @ frame_needed = 0, uses_anonymous_args = 0
  7815. 4046 @ link register save eliminated.
  7816. 4047 .LVL368:
  7817. 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7818. 4048 .loc 1 2373 0
  7819. 4049 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  7820. 4050 0004 012B cmp r3, #1
  7821. 4051 0006 14D0 beq .L313
  7822. 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7823. 4052 .loc 1 2373 0 is_stmt 0 discriminator 2
  7824. 4053 0008 0123 movs r3, #1
  7825. 4054 000a 80F83830 strb r3, [r0, #56]
  7826. 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7827. 4055 .loc 1 2375 0 is_stmt 1 discriminator 2
  7828. 4056 000e 2423 movs r3, #36
  7829. 4057 0010 80F83930 strb r3, [r0, #57]
  7830. 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7831. ARM GAS /tmp/ccD7nRW1.s page 136
  7832. 4058 .loc 1 2378 0 discriminator 2
  7833. 4059 0014 0268 ldr r2, [r0]
  7834. 4060 0016 D368 ldr r3, [r2, #12]
  7835. 4061 .LVL369:
  7836. 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7837. 4062 .loc 1 2381 0 discriminator 2
  7838. 4063 0018 23F00C03 bic r3, r3, #12
  7839. 4064 .LVL370:
  7840. 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7841. 4065 .loc 1 2384 0 discriminator 2
  7842. 4066 001c 43F00803 orr r3, r3, #8
  7843. 4067 .LVL371:
  7844. 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7845. 4068 .loc 1 2387 0 discriminator 2
  7846. 4069 0020 D360 str r3, [r2, #12]
  7847. 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7848. 4070 .loc 1 2389 0 discriminator 2
  7849. 4071 0022 2023 movs r3, #32
  7850. 4072 .LVL372:
  7851. 4073 0024 80F83930 strb r3, [r0, #57]
  7852. 4074 .LVL373:
  7853. 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7854. 4075 .loc 1 2392 0 discriminator 2
  7855. 4076 0028 0023 movs r3, #0
  7856. 4077 002a 80F83830 strb r3, [r0, #56]
  7857. 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7858. 4078 .loc 1 2394 0 discriminator 2
  7859. 4079 002e 1846 mov r0, r3
  7860. 4080 .LVL374:
  7861. 4081 0030 7047 bx lr
  7862. 4082 .LVL375:
  7863. 4083 .L313:
  7864. 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7865. 4084 .loc 1 2373 0
  7866. 4085 0032 0220 movs r0, #2
  7867. 4086 .LVL376:
  7868. 2395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7869. 4087 .loc 1 2395 0
  7870. 4088 0034 7047 bx lr
  7871. 4089 .cfi_endproc
  7872. 4090 .LFE164:
  7873. 4092 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits
  7874. 4093 .align 1
  7875. 4094 .global HAL_HalfDuplex_EnableReceiver
  7876. 4095 .syntax unified
  7877. 4096 .thumb
  7878. 4097 .thumb_func
  7879. 4098 .fpu fpv4-sp-d16
  7880. 4100 HAL_HalfDuplex_EnableReceiver:
  7881. 4101 .LFB165:
  7882. 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U;
  7883. 4102 .loc 1 2404 0
  7884. 4103 .cfi_startproc
  7885. 4104 @ args = 0, pretend = 0, frame = 0
  7886. 4105 @ frame_needed = 0, uses_anonymous_args = 0
  7887. 4106 @ link register save eliminated.
  7888. 4107 .LVL377:
  7889. ARM GAS /tmp/ccD7nRW1.s page 137
  7890. 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7891. 4108 .loc 1 2408 0
  7892. 4109 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2
  7893. 4110 0004 012B cmp r3, #1
  7894. 4111 0006 14D0 beq .L316
  7895. 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7896. 4112 .loc 1 2408 0 is_stmt 0 discriminator 2
  7897. 4113 0008 0123 movs r3, #1
  7898. 4114 000a 80F83830 strb r3, [r0, #56]
  7899. 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7900. 4115 .loc 1 2410 0 is_stmt 1 discriminator 2
  7901. 4116 000e 2423 movs r3, #36
  7902. 4117 0010 80F83930 strb r3, [r0, #57]
  7903. 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7904. 4118 .loc 1 2413 0 discriminator 2
  7905. 4119 0014 0268 ldr r2, [r0]
  7906. 4120 0016 D368 ldr r3, [r2, #12]
  7907. 4121 .LVL378:
  7908. 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7909. 4122 .loc 1 2416 0 discriminator 2
  7910. 4123 0018 23F00C03 bic r3, r3, #12
  7911. 4124 .LVL379:
  7912. 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7913. 4125 .loc 1 2419 0 discriminator 2
  7914. 4126 001c 43F00403 orr r3, r3, #4
  7915. 4127 .LVL380:
  7916. 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7917. 4128 .loc 1 2422 0 discriminator 2
  7918. 4129 0020 D360 str r3, [r2, #12]
  7919. 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7920. 4130 .loc 1 2424 0 discriminator 2
  7921. 4131 0022 2023 movs r3, #32
  7922. 4132 .LVL381:
  7923. 4133 0024 80F83930 strb r3, [r0, #57]
  7924. 4134 .LVL382:
  7925. 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7926. 4135 .loc 1 2427 0 discriminator 2
  7927. 4136 0028 0023 movs r3, #0
  7928. 4137 002a 80F83830 strb r3, [r0, #56]
  7929. 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7930. 4138 .loc 1 2429 0 discriminator 2
  7931. 4139 002e 1846 mov r0, r3
  7932. 4140 .LVL383:
  7933. 4141 0030 7047 bx lr
  7934. 4142 .LVL384:
  7935. 4143 .L316:
  7936. 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7937. 4144 .loc 1 2408 0
  7938. 4145 0032 0220 movs r0, #2
  7939. 4146 .LVL385:
  7940. 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7941. 4147 .loc 1 2430 0
  7942. 4148 0034 7047 bx lr
  7943. 4149 .cfi_endproc
  7944. 4150 .LFE165:
  7945. 4152 .section .text.HAL_UART_GetState,"ax",%progbits
  7946. 4153 .align 1
  7947. ARM GAS /tmp/ccD7nRW1.s page 138
  7948. 4154 .global HAL_UART_GetState
  7949. 4155 .syntax unified
  7950. 4156 .thumb
  7951. 4157 .thumb_func
  7952. 4158 .fpu fpv4-sp-d16
  7953. 4160 HAL_UART_GetState:
  7954. 4161 .LFB166:
  7955. 2461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U;
  7956. 4162 .loc 1 2461 0
  7957. 4163 .cfi_startproc
  7958. 4164 @ args = 0, pretend = 0, frame = 0
  7959. 4165 @ frame_needed = 0, uses_anonymous_args = 0
  7960. 4166 @ link register save eliminated.
  7961. 4167 .LVL386:
  7962. 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState;
  7963. 4168 .loc 1 2463 0
  7964. 4169 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2
  7965. 4170 .LVL387:
  7966. 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7967. 4171 .loc 1 2464 0
  7968. 4172 0004 90F83A00 ldrb r0, [r0, #58] @ zero_extendqisi2
  7969. 4173 .LVL388:
  7970. 2467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7971. 4174 .loc 1 2467 0
  7972. 4175 0008 1843 orrs r0, r0, r3
  7973. 4176 .LVL389:
  7974. 4177 000a 7047 bx lr
  7975. 4178 .cfi_endproc
  7976. 4179 .LFE166:
  7977. 4181 .section .text.HAL_UART_GetError,"ax",%progbits
  7978. 4182 .align 1
  7979. 4183 .global HAL_UART_GetError
  7980. 4184 .syntax unified
  7981. 4185 .thumb
  7982. 4186 .thumb_func
  7983. 4187 .fpu fpv4-sp-d16
  7984. 4189 HAL_UART_GetError:
  7985. 4190 .LFB167:
  7986. 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode;
  7987. 4191 .loc 1 2476 0
  7988. 4192 .cfi_startproc
  7989. 4193 @ args = 0, pretend = 0, frame = 0
  7990. 4194 @ frame_needed = 0, uses_anonymous_args = 0
  7991. 4195 @ link register save eliminated.
  7992. 4196 .LVL390:
  7993. 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** }
  7994. 4197 .loc 1 2477 0
  7995. 4198 0000 C06B ldr r0, [r0, #60]
  7996. 4199 .LVL391:
  7997. 2478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ****
  7998. 4200 .loc 1 2478 0
  7999. 4201 0002 7047 bx lr
  8000. 4202 .cfi_endproc
  8001. 4203 .LFE167:
  8002. 4205 .text
  8003. 4206 .Letext0:
  8004. 4207 .file 2 "/usr/include/newlib/machine/_default_types.h"
  8005. ARM GAS /tmp/ccD7nRW1.s page 139
  8006. 4208 .file 3 "/usr/include/newlib/sys/_stdint.h"
  8007. 4209 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
  8008. 4210 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
  8009. 4211 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
  8010. 4212 .file 7 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
  8011. 4213 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
  8012. 4214 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h"
  8013. 4215 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h"
  8014. 4216 .file 11 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h"
  8015. 4217 .file 12 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h"
  8016. ARM GAS /tmp/ccD7nRW1.s page 140
  8017. DEFINED SYMBOLS
  8018. *ABS*:0000000000000000 stm32f4xx_hal_uart.c
  8019. /tmp/ccD7nRW1.s:18 .text.UART_EndTxTransfer:0000000000000000 $t
  8020. /tmp/ccD7nRW1.s:24 .text.UART_EndTxTransfer:0000000000000000 UART_EndTxTransfer
  8021. /tmp/ccD7nRW1.s:46 .text.UART_EndRxTransfer:0000000000000000 $t
  8022. /tmp/ccD7nRW1.s:52 .text.UART_EndRxTransfer:0000000000000000 UART_EndRxTransfer
  8023. /tmp/ccD7nRW1.s:78 .text.UART_Transmit_IT:0000000000000000 $t
  8024. /tmp/ccD7nRW1.s:84 .text.UART_Transmit_IT:0000000000000000 UART_Transmit_IT
  8025. /tmp/ccD7nRW1.s:172 .text.UART_SetConfig:0000000000000000 $t
  8026. /tmp/ccD7nRW1.s:178 .text.UART_SetConfig:0000000000000000 UART_SetConfig
  8027. /tmp/ccD7nRW1.s:504 .text.UART_SetConfig:000000000000033c $d
  8028. /tmp/ccD7nRW1.s:510 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 $t
  8029. /tmp/ccD7nRW1.s:516 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 UART_WaitOnFlagUntilTimeout
  8030. /tmp/ccD7nRW1.s:591 .text.HAL_UART_MspInit:0000000000000000 $t
  8031. /tmp/ccD7nRW1.s:598 .text.HAL_UART_MspInit:0000000000000000 HAL_UART_MspInit
  8032. /tmp/ccD7nRW1.s:611 .text.HAL_UART_Init:0000000000000000 $t
  8033. /tmp/ccD7nRW1.s:618 .text.HAL_UART_Init:0000000000000000 HAL_UART_Init
  8034. /tmp/ccD7nRW1.s:698 .text.HAL_HalfDuplex_Init:0000000000000000 $t
  8035. /tmp/ccD7nRW1.s:705 .text.HAL_HalfDuplex_Init:0000000000000000 HAL_HalfDuplex_Init
  8036. /tmp/ccD7nRW1.s:791 .text.HAL_LIN_Init:0000000000000000 $t
  8037. /tmp/ccD7nRW1.s:798 .text.HAL_LIN_Init:0000000000000000 HAL_LIN_Init
  8038. /tmp/ccD7nRW1.s:901 .text.HAL_MultiProcessor_Init:0000000000000000 $t
  8039. /tmp/ccD7nRW1.s:908 .text.HAL_MultiProcessor_Init:0000000000000000 HAL_MultiProcessor_Init
  8040. /tmp/ccD7nRW1.s:1016 .text.HAL_UART_MspDeInit:0000000000000000 $t
  8041. /tmp/ccD7nRW1.s:1023 .text.HAL_UART_MspDeInit:0000000000000000 HAL_UART_MspDeInit
  8042. /tmp/ccD7nRW1.s:1036 .text.HAL_UART_DeInit:0000000000000000 $t
  8043. /tmp/ccD7nRW1.s:1043 .text.HAL_UART_DeInit:0000000000000000 HAL_UART_DeInit
  8044. /tmp/ccD7nRW1.s:1095 .text.HAL_UART_Transmit:0000000000000000 $t
  8045. /tmp/ccD7nRW1.s:1102 .text.HAL_UART_Transmit:0000000000000000 HAL_UART_Transmit
  8046. /tmp/ccD7nRW1.s:1288 .text.HAL_UART_Receive:0000000000000000 $t
  8047. /tmp/ccD7nRW1.s:1295 .text.HAL_UART_Receive:0000000000000000 HAL_UART_Receive
  8048. /tmp/ccD7nRW1.s:1485 .text.HAL_UART_Transmit_IT:0000000000000000 $t
  8049. /tmp/ccD7nRW1.s:1492 .text.HAL_UART_Transmit_IT:0000000000000000 HAL_UART_Transmit_IT
  8050. /tmp/ccD7nRW1.s:1567 .text.HAL_UART_Receive_IT:0000000000000000 $t
  8051. /tmp/ccD7nRW1.s:1574 .text.HAL_UART_Receive_IT:0000000000000000 HAL_UART_Receive_IT
  8052. /tmp/ccD7nRW1.s:1659 .text.HAL_UART_Transmit_DMA:0000000000000000 $t
  8053. /tmp/ccD7nRW1.s:1666 .text.HAL_UART_Transmit_DMA:0000000000000000 HAL_UART_Transmit_DMA
  8054. /tmp/ccD7nRW1.s:1776 .text.HAL_UART_Transmit_DMA:0000000000000080 $d
  8055. /tmp/ccD7nRW1.s:2519 .text.UART_DMATransmitCplt:0000000000000000 UART_DMATransmitCplt
  8056. /tmp/ccD7nRW1.s:2629 .text.UART_DMATxHalfCplt:0000000000000000 UART_DMATxHalfCplt
  8057. /tmp/ccD7nRW1.s:2933 .text.UART_DMAError:0000000000000000 UART_DMAError
  8058. /tmp/ccD7nRW1.s:1783 .text.HAL_UART_Receive_DMA:0000000000000000 $t
  8059. /tmp/ccD7nRW1.s:1790 .text.HAL_UART_Receive_DMA:0000000000000000 HAL_UART_Receive_DMA
  8060. /tmp/ccD7nRW1.s:1925 .text.HAL_UART_Receive_DMA:000000000000009c $d
  8061. /tmp/ccD7nRW1.s:2679 .text.UART_DMAReceiveCplt:0000000000000000 UART_DMAReceiveCplt
  8062. /tmp/ccD7nRW1.s:2883 .text.UART_DMARxHalfCplt:0000000000000000 UART_DMARxHalfCplt
  8063. /tmp/ccD7nRW1.s:1932 .text.HAL_UART_DMAPause:0000000000000000 $t
  8064. /tmp/ccD7nRW1.s:1939 .text.HAL_UART_DMAPause:0000000000000000 HAL_UART_DMAPause
  8065. /tmp/ccD7nRW1.s:2026 .text.HAL_UART_DMAResume:0000000000000000 $t
  8066. /tmp/ccD7nRW1.s:2033 .text.HAL_UART_DMAResume:0000000000000000 HAL_UART_DMAResume
  8067. /tmp/ccD7nRW1.s:2127 .text.HAL_UART_DMAStop:0000000000000000 $t
  8068. /tmp/ccD7nRW1.s:2134 .text.HAL_UART_DMAStop:0000000000000000 HAL_UART_DMAStop
  8069. /tmp/ccD7nRW1.s:2223 .text.HAL_UART_Abort:0000000000000000 $t
  8070. /tmp/ccD7nRW1.s:2230 .text.HAL_UART_Abort:0000000000000000 HAL_UART_Abort
  8071. /tmp/ccD7nRW1.s:2342 .text.HAL_UART_AbortTransmit:0000000000000000 $t
  8072. /tmp/ccD7nRW1.s:2349 .text.HAL_UART_AbortTransmit:0000000000000000 HAL_UART_AbortTransmit
  8073. /tmp/ccD7nRW1.s:2415 .text.HAL_UART_AbortReceive:0000000000000000 $t
  8074. ARM GAS /tmp/ccD7nRW1.s page 141
  8075. /tmp/ccD7nRW1.s:2422 .text.HAL_UART_AbortReceive:0000000000000000 HAL_UART_AbortReceive
  8076. /tmp/ccD7nRW1.s:2493 .text.HAL_UART_TxCpltCallback:0000000000000000 $t
  8077. /tmp/ccD7nRW1.s:2500 .text.HAL_UART_TxCpltCallback:0000000000000000 HAL_UART_TxCpltCallback
  8078. /tmp/ccD7nRW1.s:2513 .text.UART_DMATransmitCplt:0000000000000000 $t
  8079. /tmp/ccD7nRW1.s:2567 .text.UART_EndTransmit_IT:0000000000000000 $t
  8080. /tmp/ccD7nRW1.s:2573 .text.UART_EndTransmit_IT:0000000000000000 UART_EndTransmit_IT
  8081. /tmp/ccD7nRW1.s:2603 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 $t
  8082. /tmp/ccD7nRW1.s:2610 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 HAL_UART_TxHalfCpltCallback
  8083. /tmp/ccD7nRW1.s:2623 .text.UART_DMATxHalfCplt:0000000000000000 $t
  8084. /tmp/ccD7nRW1.s:2653 .text.HAL_UART_RxCpltCallback:0000000000000000 $t
  8085. /tmp/ccD7nRW1.s:2660 .text.HAL_UART_RxCpltCallback:0000000000000000 HAL_UART_RxCpltCallback
  8086. /tmp/ccD7nRW1.s:2673 .text.UART_DMAReceiveCplt:0000000000000000 $t
  8087. /tmp/ccD7nRW1.s:2732 .text.UART_Receive_IT:0000000000000000 $t
  8088. /tmp/ccD7nRW1.s:2738 .text.UART_Receive_IT:0000000000000000 UART_Receive_IT
  8089. /tmp/ccD7nRW1.s:2857 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 $t
  8090. /tmp/ccD7nRW1.s:2864 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 HAL_UART_RxHalfCpltCallback
  8091. /tmp/ccD7nRW1.s:2877 .text.UART_DMARxHalfCplt:0000000000000000 $t
  8092. /tmp/ccD7nRW1.s:2907 .text.HAL_UART_ErrorCallback:0000000000000000 $t
  8093. /tmp/ccD7nRW1.s:2914 .text.HAL_UART_ErrorCallback:0000000000000000 HAL_UART_ErrorCallback
  8094. /tmp/ccD7nRW1.s:2927 .text.UART_DMAError:0000000000000000 $t
  8095. /tmp/ccD7nRW1.s:3015 .text.HAL_UART_IRQHandler:0000000000000000 $t
  8096. /tmp/ccD7nRW1.s:3022 .text.HAL_UART_IRQHandler:0000000000000000 HAL_UART_IRQHandler
  8097. /tmp/ccD7nRW1.s:3242 .text.HAL_UART_IRQHandler:000000000000011c $d
  8098. /tmp/ccD7nRW1.s:3253 .text.UART_DMAAbortOnError:0000000000000000 UART_DMAAbortOnError
  8099. /tmp/ccD7nRW1.s:3247 .text.UART_DMAAbortOnError:0000000000000000 $t
  8100. /tmp/ccD7nRW1.s:3281 .text.HAL_UART_AbortCpltCallback:0000000000000000 $t
  8101. /tmp/ccD7nRW1.s:3288 .text.HAL_UART_AbortCpltCallback:0000000000000000 HAL_UART_AbortCpltCallback
  8102. /tmp/ccD7nRW1.s:3301 .text.HAL_UART_Abort_IT:0000000000000000 $t
  8103. /tmp/ccD7nRW1.s:3308 .text.HAL_UART_Abort_IT:0000000000000000 HAL_UART_Abort_IT
  8104. /tmp/ccD7nRW1.s:3465 .text.HAL_UART_Abort_IT:00000000000000c0 $d
  8105. /tmp/ccD7nRW1.s:3533 .text.UART_DMATxAbortCallback:0000000000000000 UART_DMATxAbortCallback
  8106. /tmp/ccD7nRW1.s:3477 .text.UART_DMARxAbortCallback:0000000000000000 UART_DMARxAbortCallback
  8107. /tmp/ccD7nRW1.s:3471 .text.UART_DMARxAbortCallback:0000000000000000 $t
  8108. /tmp/ccD7nRW1.s:3527 .text.UART_DMATxAbortCallback:0000000000000000 $t
  8109. /tmp/ccD7nRW1.s:3583 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 $t
  8110. /tmp/ccD7nRW1.s:3590 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 HAL_UART_AbortTransmitCpltCallback
  8111. /tmp/ccD7nRW1.s:3603 .text.HAL_UART_AbortTransmit_IT:0000000000000000 $t
  8112. /tmp/ccD7nRW1.s:3610 .text.HAL_UART_AbortTransmit_IT:0000000000000000 HAL_UART_AbortTransmit_IT
  8113. /tmp/ccD7nRW1.s:3689 .text.HAL_UART_AbortTransmit_IT:000000000000005c $d
  8114. /tmp/ccD7nRW1.s:3700 .text.UART_DMATxOnlyAbortCallback:0000000000000000 UART_DMATxOnlyAbortCallback
  8115. /tmp/ccD7nRW1.s:3694 .text.UART_DMATxOnlyAbortCallback:0000000000000000 $t
  8116. /tmp/ccD7nRW1.s:3729 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 $t
  8117. /tmp/ccD7nRW1.s:3736 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 HAL_UART_AbortReceiveCpltCallback
  8118. /tmp/ccD7nRW1.s:3749 .text.HAL_UART_AbortReceive_IT:0000000000000000 $t
  8119. /tmp/ccD7nRW1.s:3756 .text.HAL_UART_AbortReceive_IT:0000000000000000 HAL_UART_AbortReceive_IT
  8120. /tmp/ccD7nRW1.s:3840 .text.HAL_UART_AbortReceive_IT:0000000000000068 $d
  8121. /tmp/ccD7nRW1.s:3851 .text.UART_DMARxOnlyAbortCallback:0000000000000000 UART_DMARxOnlyAbortCallback
  8122. /tmp/ccD7nRW1.s:3845 .text.UART_DMARxOnlyAbortCallback:0000000000000000 $t
  8123. /tmp/ccD7nRW1.s:3880 .text.HAL_LIN_SendBreak:0000000000000000 $t
  8124. /tmp/ccD7nRW1.s:3887 .text.HAL_LIN_SendBreak:0000000000000000 HAL_LIN_SendBreak
  8125. /tmp/ccD7nRW1.s:3931 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 $t
  8126. /tmp/ccD7nRW1.s:3938 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 HAL_MultiProcessor_EnterMuteMode
  8127. /tmp/ccD7nRW1.s:3982 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 $t
  8128. /tmp/ccD7nRW1.s:3989 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 HAL_MultiProcessor_ExitMuteMode
  8129. /tmp/ccD7nRW1.s:4033 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 $t
  8130. /tmp/ccD7nRW1.s:4040 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 HAL_HalfDuplex_EnableTransmitter
  8131. /tmp/ccD7nRW1.s:4093 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 $t
  8132. ARM GAS /tmp/ccD7nRW1.s page 142
  8133. /tmp/ccD7nRW1.s:4100 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 HAL_HalfDuplex_EnableReceiver
  8134. /tmp/ccD7nRW1.s:4153 .text.HAL_UART_GetState:0000000000000000 $t
  8135. /tmp/ccD7nRW1.s:4160 .text.HAL_UART_GetState:0000000000000000 HAL_UART_GetState
  8136. /tmp/ccD7nRW1.s:4182 .text.HAL_UART_GetError:0000000000000000 $t
  8137. /tmp/ccD7nRW1.s:4189 .text.HAL_UART_GetError:0000000000000000 HAL_UART_GetError
  8138. .debug_frame:0000000000000010 $d
  8139. UNDEFINED SYMBOLS
  8140. HAL_RCC_GetPCLK1Freq
  8141. HAL_RCC_GetPCLK2Freq
  8142. HAL_GetTick
  8143. HAL_DMA_Start_IT
  8144. HAL_DMA_Abort
  8145. HAL_DMA_GetError
  8146. HAL_DMA_Abort_IT