stm32f3xx_hal_i2c.lst 1.4 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .arch armv7e-m
  4. 3 .fpu fpv4-sp-d16
  5. 4 .eabi_attribute 27, 1
  6. 5 .eabi_attribute 28, 1
  7. 6 .eabi_attribute 20, 1
  8. 7 .eabi_attribute 21, 1
  9. 8 .eabi_attribute 23, 3
  10. 9 .eabi_attribute 24, 1
  11. 10 .eabi_attribute 25, 1
  12. 11 .eabi_attribute 26, 1
  13. 12 .eabi_attribute 30, 6
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "stm32f3xx_hal_i2c.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .section .rodata
  21. 20 .align 2
  22. 21 .LC0:
  23. 22 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c."
  24. 22 6572732F
  25. 22 53544D33
  26. 22 32463378
  27. 22 785F4841
  28. 23 0033 6300 .ascii "c\000"
  29. 24 .section .text.HAL_I2C_Init,"ax",%progbits
  30. 25 .align 1
  31. 26 .global HAL_I2C_Init
  32. 27 .syntax unified
  33. 28 .thumb
  34. 29 .thumb_func
  35. 31 HAL_I2C_Init:
  36. 32 .LFB130:
  37. 33 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c"
  38. 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  39. 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
  40. 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @file stm32f3xx_hal_i2c.c
  41. 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @author MCD Application Team
  42. 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver.
  43. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This file provides firmware functions to manage the following
  44. 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
  45. 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Initialization and de-initialization functions
  46. 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + IO operation functions
  47. 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Peripheral State and Errors functions
  48. 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
  49. 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
  50. 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @attention
  51. 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
  52. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Copyright (c) 2016 STMicroelectronics.
  53. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * All rights reserved.
  54. 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
  55. 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file
  56. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the root directory of this software component.
  57. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
  58. 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 2
  60. 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
  61. 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
  62. 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
  63. 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### How to use this driver #####
  64. 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
  65. 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  66. 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
  67. 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  68. 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
  69. 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
  70. 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  71. 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API:
  72. 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
  73. 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) I2C pins configuration
  74. 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
  75. 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
  76. 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
  77. 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
  78. 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
  79. 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
  80. 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for
  81. 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the transmit or receive channel
  82. 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
  83. 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
  84. 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel
  85. 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
  86. 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
  87. 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the DMA Tx or Rx channel
  88. 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  89. 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
  90. 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
  91. 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  92. 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H
  93. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API.
  94. 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  95. 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead
  96. 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  97. 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
  98. 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  99. 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO operation ***
  100. 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
  101. 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  102. 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit(
  103. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive()
  104. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit()
  105. 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive()
  106. 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  107. 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
  108. 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =====================================
  109. 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  110. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W
  111. 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_
  112. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  113. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  114. 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO operation ***
  115. 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===================================
  116. 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 3
  118. 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans
  119. 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
  120. 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
  121. 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv
  122. 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
  123. 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
  124. 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi
  125. 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
  126. 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
  127. 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_
  128. 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
  129. 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
  130. 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
  131. 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
  132. 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab
  133. 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
  134. 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
  135. 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
  136. 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
  137. 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  138. 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  139. 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
  140. 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==========================================================
  141. 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  142. 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
  143. 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** when a direction change during transfer
  144. 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  145. 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
  146. 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below:
  147. 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac
  148. 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** no sequential mode
  149. 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
  150. 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and data to transfer without a final stop condition
  151. 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
  152. 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond
  153. 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** an then permit a call the same master sequential interface several time
  154. 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit
  155. 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D
  156. 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
  157. 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
  158. 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
  159. 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
  160. 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
  161. 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
  162. 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
  163. 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
  164. 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re
  165. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after several call of the same master sequential interface several time
  166. 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME).
  167. 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one using
  168. 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
  169. 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
  170. 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
  171. 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
  172. 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME.
  173. 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit
  174. 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 4
  176. 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
  177. 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c
  178. 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each call of the same master sequential
  179. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** interface.
  180. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
  181. 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each bytes using
  182. 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
  183. 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
  184. 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
  185. 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
  186. 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME.
  187. 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to
  188. 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** generation of STOP condition.
  189. 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  190. 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below:
  191. 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using
  192. 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA()
  193. 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut
  194. 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC
  195. 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using
  196. 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA()
  197. 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed
  198. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
  199. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Abort a master or memory IT or DMA I2C process communication with Interrupt using HAL_I2
  200. 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
  201. 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
  202. 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT()
  203. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_DisableListen_IT()
  204. 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can
  205. 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques
  206. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (Write/Read).
  207. 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can
  208. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback()
  209. 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using
  210. 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA()
  211. 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute
  212. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa
  213. 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using
  214. 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA()
  215. 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a
  216. 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
  217. 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
  218. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
  219. 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
  220. 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
  221. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  222. 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
  223. 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =======================================
  224. 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  225. 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address
  226. 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT()
  227. 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
  228. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
  229. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address
  230. 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT()
  231. 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
  232. 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 5
  234. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
  235. 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
  236. 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  237. 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO operation ***
  238. 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================
  239. 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  240. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
  241. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA()
  242. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
  243. 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
  244. 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
  245. 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA()
  246. 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
  247. 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
  248. 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
  249. 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA()
  250. 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
  251. 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
  252. 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
  253. 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA()
  254. 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
  255. 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
  256. 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
  257. 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
  258. 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab
  259. 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
  260. 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
  261. 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
  262. 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
  263. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  264. 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
  265. 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
  266. 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  267. 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
  268. 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA()
  269. 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
  270. 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
  271. 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
  272. 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA()
  273. 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
  274. 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
  275. 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
  276. 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
  277. 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  278. 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  279. 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** I2C HAL driver macros list ***
  280. 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==================================
  281. 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  282. 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
  283. 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  284. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral
  285. 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral
  286. 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
  287. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
  288. 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
  289. 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
  290. 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 6
  292. 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  293. 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Callback registration ***
  294. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================
  295. 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  296. 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
  297. 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
  298. 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback()
  299. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to register an interrupt callback.
  300. 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  301. 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks:
  302. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
  303. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
  304. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
  305. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
  306. 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
  307. 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
  308. 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
  309. 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
  310. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
  311. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
  312. 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
  313. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
  314. 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and a pointer to the user callback function.
  315. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  316. 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall
  317. 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  318. 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default
  319. 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** weak function.
  320. 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
  321. 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the Callback ID.
  322. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function allows to reset following callbacks:
  323. 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
  324. 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
  325. 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
  326. 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
  327. 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
  328. 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
  329. 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
  330. 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
  331. 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
  332. 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
  333. 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
  334. 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  335. 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback().
  336. 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  337. 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET
  338. 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
  339. 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback().
  340. 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
  341. 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when
  342. 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
  343. 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit()
  344. 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
  345. 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  346. 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only.
  347. 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
  348. 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state,
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 7
  350. 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
  351. 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
  352. 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit()
  353. 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Init() function.
  354. 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  355. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
  356. 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
  357. 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** are set to the corresponding weak functions.
  358. 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  359. 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  360. 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
  361. 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  362. 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
  363. 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  364. 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  365. 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
  366. 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #include "stm32f3xx_hal.h"
  367. 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  368. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup STM32F3xx_HAL_Driver
  369. 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  370. 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  371. 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  372. 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C I2C
  373. 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver
  374. 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  375. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  376. 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  377. 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
  378. 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  379. 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
  380. 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
  381. 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  382. 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
  383. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  384. 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  385. 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
  386. 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
  387. 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
  388. 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
  389. 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
  390. 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
  391. 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
  392. 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
  393. 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
  394. 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
  395. 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  396. 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
  397. 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U
  398. 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U
  399. 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  400. 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
  401. 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \
  402. 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \
  403. 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY))))
  404. 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */
  405. 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
  406. 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Default Value */
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 8
  408. 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
  409. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
  410. 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */
  411. 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
  412. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
  413. 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */
  414. 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
  415. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
  416. 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */
  417. 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
  418. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
  419. 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */
  420. 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
  421. 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
  422. 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */
  423. 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
  424. 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
  425. 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */
  426. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  427. 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  428. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
  429. 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with
  430. 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
  431. 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with
  432. 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
  433. 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2
  434. 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */
  435. 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  436. 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo
  437. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and NACK treatment */
  438. 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene
  439. 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of
  440. 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  441. 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
  442. 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
  443. 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  444. 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  445. 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  446. 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  447. 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/
  448. 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro
  449. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  450. 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  451. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */
  452. 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__)
  453. 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  454. 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  455. 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  456. 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  457. 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
  458. 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
  459. 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  460. 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
  461. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  462. 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  463. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
  464. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 9
  466. 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
  467. 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
  468. 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
  469. 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
  470. 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
  471. 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  472. 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  473. 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
  474. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
  475. 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
  476. 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
  477. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
  478. 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
  479. 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
  480. 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
  481. 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  482. 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
  483. 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
  484. 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
  485. 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
  486. 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
  487. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
  488. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
  489. 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  490. 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
  491. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  492. 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
  493. 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  494. 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
  495. 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  496. 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
  497. 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  498. 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
  499. 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  500. 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
  501. 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  502. 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
  503. 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  504. 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
  505. 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
  506. 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart);
  507. 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
  508. 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
  509. 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
  510. 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
  511. 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
  512. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
  513. 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
  514. 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
  515. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  516. 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
  517. 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
  518. 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
  519. 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  520. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to treat different error callback */
  521. 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c);
  522. 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 10
  524. 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to flush TXDR register */
  525. 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
  526. 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  527. 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
  528. 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
  529. 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request);
  530. 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  531. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to Convert Specific options */
  532. 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
  533. 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  534. 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  535. 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  536. 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  537. 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
  538. 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  539. 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
  540. 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  541. 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  542. 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  543. 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
  544. 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialization and Configuration functions
  545. 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
  546. 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
  547. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
  548. 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
  549. 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
  550. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
  551. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
  552. 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  553. 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
  554. 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
  555. 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  556. 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
  557. 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the selected configuration:
  558. 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Clock Timing
  559. 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 1
  560. 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
  561. 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Dual Addressing mode
  562. 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2
  563. 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 Mask
  564. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) General call mode
  565. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Nostretch mode
  566. 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  567. 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
  568. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** of the selected I2Cx peripheral.
  569. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  570. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
  571. 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  572. 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  573. 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  574. 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  575. 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
  576. 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
  577. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  578. 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  579. 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  580. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 11
  582. 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
  583. 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  584. 34 .loc 1 536 1
  585. 35 .cfi_startproc
  586. 36 @ args = 0, pretend = 0, frame = 8
  587. 37 @ frame_needed = 1, uses_anonymous_args = 0
  588. 38 0000 80B5 push {r7, lr}
  589. 39 .LCFI0:
  590. 40 .cfi_def_cfa_offset 8
  591. 41 .cfi_offset 7, -8
  592. 42 .cfi_offset 14, -4
  593. 43 0002 82B0 sub sp, sp, #8
  594. 44 .LCFI1:
  595. 45 .cfi_def_cfa_offset 16
  596. 46 0004 00AF add r7, sp, #0
  597. 47 .LCFI2:
  598. 48 .cfi_def_cfa_register 7
  599. 49 0006 7860 str r0, [r7, #4]
  600. 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
  601. 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
  602. 50 .loc 1 538 6
  603. 51 0008 7B68 ldr r3, [r7, #4]
  604. 52 000a 002B cmp r3, #0
  605. 53 000c 01D1 bne .L2
  606. 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  607. 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  608. 54 .loc 1 540 12
  609. 55 000e 0123 movs r3, #1
  610. 56 0010 0BE1 b .L3
  611. 57 .L2:
  612. 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  613. 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  614. 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  615. 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
  616. 58 .loc 1 544 3
  617. 59 0012 7B68 ldr r3, [r7, #4]
  618. 60 0014 1B68 ldr r3, [r3]
  619. 61 0016 874A ldr r2, .L17
  620. 62 0018 9342 cmp r3, r2
  621. 63 001a 09D0 beq .L4
  622. 64 .loc 1 544 3 is_stmt 0 discriminator 1
  623. 65 001c 7B68 ldr r3, [r7, #4]
  624. 66 001e 1B68 ldr r3, [r3]
  625. 67 0020 854A ldr r2, .L17+4
  626. 68 0022 9342 cmp r3, r2
  627. 69 0024 04D0 beq .L4
  628. 70 .loc 1 544 3 discriminator 2
  629. 71 0026 4FF40871 mov r1, #544
  630. 72 002a 8448 ldr r0, .L17+8
  631. 73 002c FFF7FEFF bl assert_failed
  632. 74 .L4:
  633. 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
  634. 75 .loc 1 545 3 is_stmt 1
  635. 76 0030 7B68 ldr r3, [r7, #4]
  636. 77 0032 9B68 ldr r3, [r3, #8]
  637. 78 0034 B3F5806F cmp r3, #1024
  638. 79 0038 04D3 bcc .L5
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 12
  640. 80 .loc 1 545 3 is_stmt 0 discriminator 1
  641. 81 003a 40F22121 movw r1, #545
  642. 82 003e 7F48 ldr r0, .L17+8
  643. 83 0040 FFF7FEFF bl assert_failed
  644. 84 .L5:
  645. 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
  646. 85 .loc 1 546 3 is_stmt 1
  647. 86 0044 7B68 ldr r3, [r7, #4]
  648. 87 0046 DB68 ldr r3, [r3, #12]
  649. 88 0048 012B cmp r3, #1
  650. 89 004a 08D0 beq .L6
  651. 90 .loc 1 546 3 is_stmt 0 discriminator 1
  652. 91 004c 7B68 ldr r3, [r7, #4]
  653. 92 004e DB68 ldr r3, [r3, #12]
  654. 93 0050 022B cmp r3, #2
  655. 94 0052 04D0 beq .L6
  656. 95 .loc 1 546 3 discriminator 2
  657. 96 0054 40F22221 movw r1, #546
  658. 97 0058 7848 ldr r0, .L17+8
  659. 98 005a FFF7FEFF bl assert_failed
  660. 99 .L6:
  661. 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
  662. 100 .loc 1 547 3 is_stmt 1
  663. 101 005e 7B68 ldr r3, [r7, #4]
  664. 102 0060 1B69 ldr r3, [r3, #16]
  665. 103 0062 002B cmp r3, #0
  666. 104 0064 09D0 beq .L7
  667. 105 .loc 1 547 3 is_stmt 0 discriminator 1
  668. 106 0066 7B68 ldr r3, [r7, #4]
  669. 107 0068 1B69 ldr r3, [r3, #16]
  670. 108 006a B3F5004F cmp r3, #32768
  671. 109 006e 04D0 beq .L7
  672. 110 .loc 1 547 3 discriminator 2
  673. 111 0070 40F22321 movw r1, #547
  674. 112 0074 7148 ldr r0, .L17+8
  675. 113 0076 FFF7FEFF bl assert_failed
  676. 114 .L7:
  677. 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
  678. 115 .loc 1 548 3 is_stmt 1
  679. 116 007a 7B68 ldr r3, [r7, #4]
  680. 117 007c 5B69 ldr r3, [r3, #20]
  681. 118 007e FF2B cmp r3, #255
  682. 119 0080 04D9 bls .L8
  683. 120 .loc 1 548 3 is_stmt 0 discriminator 1
  684. 121 0082 4FF40971 mov r1, #548
  685. 122 0086 6D48 ldr r0, .L17+8
  686. 123 0088 FFF7FEFF bl assert_failed
  687. 124 .L8:
  688. 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
  689. 125 .loc 1 549 3 is_stmt 1
  690. 126 008c 7B68 ldr r3, [r7, #4]
  691. 127 008e 9B69 ldr r3, [r3, #24]
  692. 128 0090 002B cmp r3, #0
  693. 129 0092 20D0 beq .L9
  694. 130 .loc 1 549 3 is_stmt 0 discriminator 1
  695. 131 0094 7B68 ldr r3, [r7, #4]
  696. 132 0096 9B69 ldr r3, [r3, #24]
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 13
  698. 133 0098 012B cmp r3, #1
  699. 134 009a 1CD0 beq .L9
  700. 135 .loc 1 549 3 discriminator 2
  701. 136 009c 7B68 ldr r3, [r7, #4]
  702. 137 009e 9B69 ldr r3, [r3, #24]
  703. 138 00a0 022B cmp r3, #2
  704. 139 00a2 18D0 beq .L9
  705. 140 .loc 1 549 3 discriminator 3
  706. 141 00a4 7B68 ldr r3, [r7, #4]
  707. 142 00a6 9B69 ldr r3, [r3, #24]
  708. 143 00a8 032B cmp r3, #3
  709. 144 00aa 14D0 beq .L9
  710. 145 .loc 1 549 3 discriminator 4
  711. 146 00ac 7B68 ldr r3, [r7, #4]
  712. 147 00ae 9B69 ldr r3, [r3, #24]
  713. 148 00b0 042B cmp r3, #4
  714. 149 00b2 10D0 beq .L9
  715. 150 .loc 1 549 3 discriminator 5
  716. 151 00b4 7B68 ldr r3, [r7, #4]
  717. 152 00b6 9B69 ldr r3, [r3, #24]
  718. 153 00b8 052B cmp r3, #5
  719. 154 00ba 0CD0 beq .L9
  720. 155 .loc 1 549 3 discriminator 6
  721. 156 00bc 7B68 ldr r3, [r7, #4]
  722. 157 00be 9B69 ldr r3, [r3, #24]
  723. 158 00c0 062B cmp r3, #6
  724. 159 00c2 08D0 beq .L9
  725. 160 .loc 1 549 3 discriminator 7
  726. 161 00c4 7B68 ldr r3, [r7, #4]
  727. 162 00c6 9B69 ldr r3, [r3, #24]
  728. 163 00c8 072B cmp r3, #7
  729. 164 00ca 04D0 beq .L9
  730. 165 .loc 1 549 3 discriminator 8
  731. 166 00cc 40F22521 movw r1, #549
  732. 167 00d0 5A48 ldr r0, .L17+8
  733. 168 00d2 FFF7FEFF bl assert_failed
  734. 169 .L9:
  735. 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
  736. 170 .loc 1 550 3 is_stmt 1
  737. 171 00d6 7B68 ldr r3, [r7, #4]
  738. 172 00d8 DB69 ldr r3, [r3, #28]
  739. 173 00da 002B cmp r3, #0
  740. 174 00dc 09D0 beq .L10
  741. 175 .loc 1 550 3 is_stmt 0 discriminator 1
  742. 176 00de 7B68 ldr r3, [r7, #4]
  743. 177 00e0 DB69 ldr r3, [r3, #28]
  744. 178 00e2 B3F5002F cmp r3, #524288
  745. 179 00e6 04D0 beq .L10
  746. 180 .loc 1 550 3 discriminator 2
  747. 181 00e8 40F22621 movw r1, #550
  748. 182 00ec 5348 ldr r0, .L17+8
  749. 183 00ee FFF7FEFF bl assert_failed
  750. 184 .L10:
  751. 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
  752. 185 .loc 1 551 3 is_stmt 1
  753. 186 00f2 7B68 ldr r3, [r7, #4]
  754. 187 00f4 1B6A ldr r3, [r3, #32]
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 14
  756. 188 00f6 002B cmp r3, #0
  757. 189 00f8 09D0 beq .L11
  758. 190 .loc 1 551 3 is_stmt 0 discriminator 1
  759. 191 00fa 7B68 ldr r3, [r7, #4]
  760. 192 00fc 1B6A ldr r3, [r3, #32]
  761. 193 00fe B3F5003F cmp r3, #131072
  762. 194 0102 04D0 beq .L11
  763. 195 .loc 1 551 3 discriminator 2
  764. 196 0104 40F22721 movw r1, #551
  765. 197 0108 4C48 ldr r0, .L17+8
  766. 198 010a FFF7FEFF bl assert_failed
  767. 199 .L11:
  768. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  769. 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
  770. 200 .loc 1 553 11 is_stmt 1
  771. 201 010e 7B68 ldr r3, [r7, #4]
  772. 202 0110 93F84130 ldrb r3, [r3, #65]
  773. 203 0114 DBB2 uxtb r3, r3
  774. 204 .loc 1 553 6
  775. 205 0116 002B cmp r3, #0
  776. 206 0118 06D1 bne .L12
  777. 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  778. 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
  779. 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
  780. 207 .loc 1 556 16
  781. 208 011a 7B68 ldr r3, [r7, #4]
  782. 209 011c 0022 movs r2, #0
  783. 210 011e 83F84020 strb r2, [r3, #64]
  784. 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  785. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  786. 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the I2C Callback settings */
  787. 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
  788. 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
  789. 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
  790. 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
  791. 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
  792. 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
  793. 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
  794. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
  795. 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
  796. 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
  797. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  798. 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
  799. 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  800. 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
  801. 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  802. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  803. 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
  804. 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
  805. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  806. 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
  807. 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
  808. 211 .loc 1 580 5
  809. 212 0122 7868 ldr r0, [r7, #4]
  810. 213 0124 FFF7FEFF bl HAL_I2C_MspInit
  811. 214 .L12:
  812. 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 15
  814. 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  815. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  816. 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
  817. 215 .loc 1 584 15
  818. 216 0128 7B68 ldr r3, [r7, #4]
  819. 217 012a 2422 movs r2, #36
  820. 218 012c 83F84120 strb r2, [r3, #65]
  821. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  822. 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
  823. 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
  824. 219 .loc 1 587 3
  825. 220 0130 7B68 ldr r3, [r7, #4]
  826. 221 0132 1B68 ldr r3, [r3]
  827. 222 0134 1A68 ldr r2, [r3]
  828. 223 0136 7B68 ldr r3, [r7, #4]
  829. 224 0138 1B68 ldr r3, [r3]
  830. 225 013a 22F00102 bic r2, r2, #1
  831. 226 013e 1A60 str r2, [r3]
  832. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  833. 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
  834. 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
  835. 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
  836. 227 .loc 1 591 39
  837. 228 0140 7B68 ldr r3, [r7, #4]
  838. 229 0142 5A68 ldr r2, [r3, #4]
  839. 230 .loc 1 591 7
  840. 231 0144 7B68 ldr r3, [r7, #4]
  841. 232 0146 1B68 ldr r3, [r3]
  842. 233 .loc 1 591 47
  843. 234 0148 22F07062 bic r2, r2, #251658240
  844. 235 .loc 1 591 27
  845. 236 014c 1A61 str r2, [r3, #16]
  846. 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  847. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
  848. 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
  849. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
  850. 237 .loc 1 595 7
  851. 238 014e 7B68 ldr r3, [r7, #4]
  852. 239 0150 1B68 ldr r3, [r3]
  853. 240 .loc 1 595 24
  854. 241 0152 9A68 ldr r2, [r3, #8]
  855. 242 .loc 1 595 7
  856. 243 0154 7B68 ldr r3, [r7, #4]
  857. 244 0156 1B68 ldr r3, [r3]
  858. 245 .loc 1 595 24
  859. 246 0158 22F40042 bic r2, r2, #32768
  860. 247 015c 9A60 str r2, [r3, #8]
  861. 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  862. 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
  863. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
  864. 248 .loc 1 598 17
  865. 249 015e 7B68 ldr r3, [r7, #4]
  866. 250 0160 DB68 ldr r3, [r3, #12]
  867. 251 .loc 1 598 6
  868. 252 0162 012B cmp r3, #1
  869. 253 0164 07D1 bne .L13
  870. 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 16
  872. 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
  873. 254 .loc 1 600 56
  874. 255 0166 7B68 ldr r3, [r7, #4]
  875. 256 0168 9A68 ldr r2, [r3, #8]
  876. 257 .loc 1 600 9
  877. 258 016a 7B68 ldr r3, [r7, #4]
  878. 259 016c 1B68 ldr r3, [r3]
  879. 260 .loc 1 600 44
  880. 261 016e 42F40042 orr r2, r2, #32768
  881. 262 .loc 1 600 26
  882. 263 0172 9A60 str r2, [r3, #8]
  883. 264 0174 06E0 b .L14
  884. 265 .L13:
  885. 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  886. 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
  887. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  888. 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
  889. 266 .loc 1 604 75
  890. 267 0176 7B68 ldr r3, [r7, #4]
  891. 268 0178 9A68 ldr r2, [r3, #8]
  892. 269 .loc 1 604 9
  893. 270 017a 7B68 ldr r3, [r7, #4]
  894. 271 017c 1B68 ldr r3, [r3]
  895. 272 .loc 1 604 63
  896. 273 017e 42F40442 orr r2, r2, #33792
  897. 274 .loc 1 604 26
  898. 275 0182 9A60 str r2, [r3, #8]
  899. 276 .L14:
  900. 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  901. 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  902. 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
  903. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
  904. 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
  905. 277 .loc 1 609 17
  906. 278 0184 7B68 ldr r3, [r7, #4]
  907. 279 0186 DB68 ldr r3, [r3, #12]
  908. 280 .loc 1 609 6
  909. 281 0188 022B cmp r3, #2
  910. 282 018a 08D1 bne .L15
  911. 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  912. 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
  913. 283 .loc 1 611 5
  914. 284 018c 7B68 ldr r3, [r7, #4]
  915. 285 018e 1B68 ldr r3, [r3]
  916. 286 0190 5A68 ldr r2, [r3, #4]
  917. 287 0192 7B68 ldr r3, [r7, #4]
  918. 288 0194 1B68 ldr r3, [r3]
  919. 289 0196 42F40062 orr r2, r2, #2048
  920. 290 019a 5A60 str r2, [r3, #4]
  921. 291 019c 07E0 b .L16
  922. 292 .L15:
  923. 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  924. 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  925. 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  926. 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */
  927. 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
  928. 293 .loc 1 616 5
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 17
  930. 294 019e 7B68 ldr r3, [r7, #4]
  931. 295 01a0 1B68 ldr r3, [r3]
  932. 296 01a2 5A68 ldr r2, [r3, #4]
  933. 297 01a4 7B68 ldr r3, [r7, #4]
  934. 298 01a6 1B68 ldr r3, [r3]
  935. 299 01a8 22F40062 bic r2, r2, #2048
  936. 300 01ac 5A60 str r2, [r3, #4]
  937. 301 .L16:
  938. 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  939. 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
  940. 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
  941. 302 .loc 1 619 7
  942. 303 01ae 7B68 ldr r3, [r7, #4]
  943. 304 01b0 1B68 ldr r3, [r3]
  944. 305 .loc 1 619 23
  945. 306 01b2 5B68 ldr r3, [r3, #4]
  946. 307 .loc 1 619 7
  947. 308 01b4 7A68 ldr r2, [r7, #4]
  948. 309 01b6 1268 ldr r2, [r2]
  949. 310 .loc 1 619 23
  950. 311 01b8 43F00073 orr r3, r3, #33554432
  951. 312 01bc 43F40043 orr r3, r3, #32768
  952. 313 01c0 5360 str r3, [r2, #4]
  953. 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  954. 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
  955. 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
  956. 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
  957. 314 .loc 1 623 7
  958. 315 01c2 7B68 ldr r3, [r7, #4]
  959. 316 01c4 1B68 ldr r3, [r3]
  960. 317 .loc 1 623 24
  961. 318 01c6 DA68 ldr r2, [r3, #12]
  962. 319 .loc 1 623 7
  963. 320 01c8 7B68 ldr r3, [r7, #4]
  964. 321 01ca 1B68 ldr r3, [r3]
  965. 322 .loc 1 623 24
  966. 323 01cc 22F40042 bic r2, r2, #32768
  967. 324 01d0 DA60 str r2, [r3, #12]
  968. 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  969. 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
  970. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
  971. 325 .loc 1 626 37
  972. 326 01d2 7B68 ldr r3, [r7, #4]
  973. 327 01d4 1A69 ldr r2, [r3, #16]
  974. 328 .loc 1 626 66
  975. 329 01d6 7B68 ldr r3, [r7, #4]
  976. 330 01d8 5B69 ldr r3, [r3, #20]
  977. 331 .loc 1 626 54
  978. 332 01da 42EA0301 orr r1, r2, r3
  979. 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
  980. 333 .loc 1 627 38
  981. 334 01de 7B68 ldr r3, [r7, #4]
  982. 335 01e0 9B69 ldr r3, [r3, #24]
  983. 336 .loc 1 627 56
  984. 337 01e2 1A02 lsls r2, r3, #8
  985. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
  986. 338 .loc 1 626 7
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 18
  988. 339 01e4 7B68 ldr r3, [r7, #4]
  989. 340 01e6 1B68 ldr r3, [r3]
  990. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
  991. 341 .loc 1 626 79
  992. 342 01e8 0A43 orrs r2, r2, r1
  993. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
  994. 343 .loc 1 626 24
  995. 344 01ea DA60 str r2, [r3, #12]
  996. 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  997. 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
  998. 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
  999. 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
  1000. 345 .loc 1 631 36
  1001. 346 01ec 7B68 ldr r3, [r7, #4]
  1002. 347 01ee D969 ldr r1, [r3, #28]
  1003. 348 .loc 1 631 65
  1004. 349 01f0 7B68 ldr r3, [r7, #4]
  1005. 350 01f2 1A6A ldr r2, [r3, #32]
  1006. 351 .loc 1 631 7
  1007. 352 01f4 7B68 ldr r3, [r7, #4]
  1008. 353 01f6 1B68 ldr r3, [r3]
  1009. 354 .loc 1 631 53
  1010. 355 01f8 0A43 orrs r2, r2, r1
  1011. 356 .loc 1 631 23
  1012. 357 01fa 1A60 str r2, [r3]
  1013. 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1014. 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
  1015. 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
  1016. 358 .loc 1 634 3
  1017. 359 01fc 7B68 ldr r3, [r7, #4]
  1018. 360 01fe 1B68 ldr r3, [r3]
  1019. 361 0200 1A68 ldr r2, [r3]
  1020. 362 0202 7B68 ldr r3, [r7, #4]
  1021. 363 0204 1B68 ldr r3, [r3]
  1022. 364 0206 42F00102 orr r2, r2, #1
  1023. 365 020a 1A60 str r2, [r3]
  1024. 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1025. 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  1026. 366 .loc 1 636 19
  1027. 367 020c 7B68 ldr r3, [r7, #4]
  1028. 368 020e 0022 movs r2, #0
  1029. 369 0210 5A64 str r2, [r3, #68]
  1030. 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  1031. 370 .loc 1 637 15
  1032. 371 0212 7B68 ldr r3, [r7, #4]
  1033. 372 0214 2022 movs r2, #32
  1034. 373 0216 83F84120 strb r2, [r3, #65]
  1035. 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  1036. 374 .loc 1 638 23
  1037. 375 021a 7B68 ldr r3, [r7, #4]
  1038. 376 021c 0022 movs r2, #0
  1039. 377 021e 1A63 str r2, [r3, #48]
  1040. 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  1041. 378 .loc 1 639 14
  1042. 379 0220 7B68 ldr r3, [r7, #4]
  1043. 380 0222 0022 movs r2, #0
  1044. 381 0224 83F84220 strb r2, [r3, #66]
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 19
  1046. 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1047. 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  1048. 382 .loc 1 641 10
  1049. 383 0228 0023 movs r3, #0
  1050. 384 .L3:
  1051. 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1052. 385 .loc 1 642 1
  1053. 386 022a 1846 mov r0, r3
  1054. 387 022c 0837 adds r7, r7, #8
  1055. 388 .LCFI3:
  1056. 389 .cfi_def_cfa_offset 8
  1057. 390 022e BD46 mov sp, r7
  1058. 391 .LCFI4:
  1059. 392 .cfi_def_cfa_register 13
  1060. 393 @ sp needed
  1061. 394 0230 80BD pop {r7, pc}
  1062. 395 .L18:
  1063. 396 0232 00BF .align 2
  1064. 397 .L17:
  1065. 398 0234 00540040 .word 1073763328
  1066. 399 0238 00580040 .word 1073764352
  1067. 400 023c 00000000 .word .LC0
  1068. 401 .cfi_endproc
  1069. 402 .LFE130:
  1070. 404 .section .text.HAL_I2C_DeInit,"ax",%progbits
  1071. 405 .align 1
  1072. 406 .global HAL_I2C_DeInit
  1073. 407 .syntax unified
  1074. 408 .thumb
  1075. 409 .thumb_func
  1076. 411 HAL_I2C_DeInit:
  1077. 412 .LFB131:
  1078. 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1079. 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1080. 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
  1081. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1082. 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1083. 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  1084. 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1085. 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
  1086. 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1087. 413 .loc 1 651 1
  1088. 414 .cfi_startproc
  1089. 415 @ args = 0, pretend = 0, frame = 8
  1090. 416 @ frame_needed = 1, uses_anonymous_args = 0
  1091. 417 0000 80B5 push {r7, lr}
  1092. 418 .LCFI5:
  1093. 419 .cfi_def_cfa_offset 8
  1094. 420 .cfi_offset 7, -8
  1095. 421 .cfi_offset 14, -4
  1096. 422 0002 82B0 sub sp, sp, #8
  1097. 423 .LCFI6:
  1098. 424 .cfi_def_cfa_offset 16
  1099. 425 0004 00AF add r7, sp, #0
  1100. 426 .LCFI7:
  1101. 427 .cfi_def_cfa_register 7
  1102. 428 0006 7860 str r0, [r7, #4]
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 20
  1104. 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
  1105. 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
  1106. 429 .loc 1 653 6
  1107. 430 0008 7B68 ldr r3, [r7, #4]
  1108. 431 000a 002B cmp r3, #0
  1109. 432 000c 01D1 bne .L20
  1110. 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1111. 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  1112. 433 .loc 1 655 12
  1113. 434 000e 0123 movs r3, #1
  1114. 435 0010 30E0 b .L21
  1115. 436 .L20:
  1116. 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1117. 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1118. 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  1119. 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
  1120. 437 .loc 1 659 3
  1121. 438 0012 7B68 ldr r3, [r7, #4]
  1122. 439 0014 1B68 ldr r3, [r3]
  1123. 440 0016 194A ldr r2, .L23
  1124. 441 0018 9342 cmp r3, r2
  1125. 442 001a 09D0 beq .L22
  1126. 443 .loc 1 659 3 is_stmt 0 discriminator 1
  1127. 444 001c 7B68 ldr r3, [r7, #4]
  1128. 445 001e 1B68 ldr r3, [r3]
  1129. 446 0020 174A ldr r2, .L23+4
  1130. 447 0022 9342 cmp r3, r2
  1131. 448 0024 04D0 beq .L22
  1132. 449 .loc 1 659 3 discriminator 2
  1133. 450 0026 40F29321 movw r1, #659
  1134. 451 002a 1648 ldr r0, .L23+8
  1135. 452 002c FFF7FEFF bl assert_failed
  1136. 453 .L22:
  1137. 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1138. 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
  1139. 454 .loc 1 661 15 is_stmt 1
  1140. 455 0030 7B68 ldr r3, [r7, #4]
  1141. 456 0032 2422 movs r2, #36
  1142. 457 0034 83F84120 strb r2, [r3, #65]
  1143. 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1144. 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
  1145. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
  1146. 458 .loc 1 664 3
  1147. 459 0038 7B68 ldr r3, [r7, #4]
  1148. 460 003a 1B68 ldr r3, [r3]
  1149. 461 003c 1A68 ldr r2, [r3]
  1150. 462 003e 7B68 ldr r3, [r7, #4]
  1151. 463 0040 1B68 ldr r3, [r3]
  1152. 464 0042 22F00102 bic r2, r2, #1
  1153. 465 0046 1A60 str r2, [r3]
  1154. 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1155. 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  1156. 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
  1157. 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1158. 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
  1159. 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1160. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 21
  1162. 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
  1163. 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
  1164. 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  1165. 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
  1166. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
  1167. 466 .loc 1 676 3
  1168. 467 0048 7868 ldr r0, [r7, #4]
  1169. 468 004a FFF7FEFF bl HAL_I2C_MspDeInit
  1170. 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  1171. 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1172. 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  1173. 469 .loc 1 679 19
  1174. 470 004e 7B68 ldr r3, [r7, #4]
  1175. 471 0050 0022 movs r2, #0
  1176. 472 0052 5A64 str r2, [r3, #68]
  1177. 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
  1178. 473 .loc 1 680 15
  1179. 474 0054 7B68 ldr r3, [r7, #4]
  1180. 475 0056 0022 movs r2, #0
  1181. 476 0058 83F84120 strb r2, [r3, #65]
  1182. 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  1183. 477 .loc 1 681 23
  1184. 478 005c 7B68 ldr r3, [r7, #4]
  1185. 479 005e 0022 movs r2, #0
  1186. 480 0060 1A63 str r2, [r3, #48]
  1187. 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  1188. 481 .loc 1 682 14
  1189. 482 0062 7B68 ldr r3, [r7, #4]
  1190. 483 0064 0022 movs r2, #0
  1191. 484 0066 83F84220 strb r2, [r3, #66]
  1192. 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1193. 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
  1194. 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  1195. 485 .loc 1 685 3
  1196. 486 006a 7B68 ldr r3, [r7, #4]
  1197. 487 006c 0022 movs r2, #0
  1198. 488 006e 83F84020 strb r2, [r3, #64]
  1199. 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1200. 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  1201. 489 .loc 1 687 10
  1202. 490 0072 0023 movs r3, #0
  1203. 491 .L21:
  1204. 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1205. 492 .loc 1 688 1
  1206. 493 0074 1846 mov r0, r3
  1207. 494 0076 0837 adds r7, r7, #8
  1208. 495 .LCFI8:
  1209. 496 .cfi_def_cfa_offset 8
  1210. 497 0078 BD46 mov sp, r7
  1211. 498 .LCFI9:
  1212. 499 .cfi_def_cfa_register 13
  1213. 500 @ sp needed
  1214. 501 007a 80BD pop {r7, pc}
  1215. 502 .L24:
  1216. 503 .align 2
  1217. 504 .L23:
  1218. 505 007c 00540040 .word 1073763328
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 22
  1220. 506 0080 00580040 .word 1073764352
  1221. 507 0084 00000000 .word .LC0
  1222. 508 .cfi_endproc
  1223. 509 .LFE131:
  1224. 511 .section .text.HAL_I2C_MspInit,"ax",%progbits
  1225. 512 .align 1
  1226. 513 .weak HAL_I2C_MspInit
  1227. 514 .syntax unified
  1228. 515 .thumb
  1229. 516 .thumb_func
  1230. 518 HAL_I2C_MspInit:
  1231. 519 .LFB132:
  1232. 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1233. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1234. 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
  1235. 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1236. 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1237. 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  1238. 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1239. 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
  1240. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1241. 520 .loc 1 697 1
  1242. 521 .cfi_startproc
  1243. 522 @ args = 0, pretend = 0, frame = 8
  1244. 523 @ frame_needed = 1, uses_anonymous_args = 0
  1245. 524 @ link register save eliminated.
  1246. 525 0000 80B4 push {r7}
  1247. 526 .LCFI10:
  1248. 527 .cfi_def_cfa_offset 4
  1249. 528 .cfi_offset 7, -4
  1250. 529 0002 83B0 sub sp, sp, #12
  1251. 530 .LCFI11:
  1252. 531 .cfi_def_cfa_offset 16
  1253. 532 0004 00AF add r7, sp, #0
  1254. 533 .LCFI12:
  1255. 534 .cfi_def_cfa_register 7
  1256. 535 0006 7860 str r0, [r7, #4]
  1257. 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  1258. 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  1259. 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1260. 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  1261. 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
  1262. 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1263. 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1264. 536 .loc 1 704 1
  1265. 537 0008 00BF nop
  1266. 538 000a 0C37 adds r7, r7, #12
  1267. 539 .LCFI13:
  1268. 540 .cfi_def_cfa_offset 4
  1269. 541 000c BD46 mov sp, r7
  1270. 542 .LCFI14:
  1271. 543 .cfi_def_cfa_register 13
  1272. 544 @ sp needed
  1273. 545 000e 5DF8047B ldr r7, [sp], #4
  1274. 546 .LCFI15:
  1275. 547 .cfi_restore 7
  1276. 548 .cfi_def_cfa_offset 0
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 23
  1278. 549 0012 7047 bx lr
  1279. 550 .cfi_endproc
  1280. 551 .LFE132:
  1281. 553 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
  1282. 554 .align 1
  1283. 555 .weak HAL_I2C_MspDeInit
  1284. 556 .syntax unified
  1285. 557 .thumb
  1286. 558 .thumb_func
  1287. 560 HAL_I2C_MspDeInit:
  1288. 561 .LFB133:
  1289. 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1290. 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1291. 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
  1292. 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1293. 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1294. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  1295. 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1296. 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
  1297. 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1298. 562 .loc 1 713 1
  1299. 563 .cfi_startproc
  1300. 564 @ args = 0, pretend = 0, frame = 8
  1301. 565 @ frame_needed = 1, uses_anonymous_args = 0
  1302. 566 @ link register save eliminated.
  1303. 567 0000 80B4 push {r7}
  1304. 568 .LCFI16:
  1305. 569 .cfi_def_cfa_offset 4
  1306. 570 .cfi_offset 7, -4
  1307. 571 0002 83B0 sub sp, sp, #12
  1308. 572 .LCFI17:
  1309. 573 .cfi_def_cfa_offset 16
  1310. 574 0004 00AF add r7, sp, #0
  1311. 575 .LCFI18:
  1312. 576 .cfi_def_cfa_register 7
  1313. 577 0006 7860 str r0, [r7, #4]
  1314. 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  1315. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  1316. 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1317. 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  1318. 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
  1319. 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1320. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1321. 578 .loc 1 720 1
  1322. 579 0008 00BF nop
  1323. 580 000a 0C37 adds r7, r7, #12
  1324. 581 .LCFI19:
  1325. 582 .cfi_def_cfa_offset 4
  1326. 583 000c BD46 mov sp, r7
  1327. 584 .LCFI20:
  1328. 585 .cfi_def_cfa_register 13
  1329. 586 @ sp needed
  1330. 587 000e 5DF8047B ldr r7, [sp], #4
  1331. 588 .LCFI21:
  1332. 589 .cfi_restore 7
  1333. 590 .cfi_def_cfa_offset 0
  1334. 591 0012 7047 bx lr
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 24
  1336. 592 .cfi_endproc
  1337. 593 .LFE133:
  1338. 595 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
  1339. 596 .align 1
  1340. 597 .global HAL_I2C_Master_Transmit
  1341. 598 .syntax unified
  1342. 599 .thumb
  1343. 600 .thumb_func
  1344. 602 HAL_I2C_Master_Transmit:
  1345. 603 .LFB134:
  1346. 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1347. 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  1348. 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1349. 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register a User I2C Callback
  1350. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak predefined callback
  1351. 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES
  1352. 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
  1353. 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1354. 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1355. 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
  1356. 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
  1357. 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
  1358. 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
  1359. 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
  1360. 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
  1361. 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
  1362. 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
  1363. 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
  1364. 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
  1365. 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
  1366. 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
  1367. 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
  1368. 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
  1369. 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  1370. 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1371. 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
  1372. 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback)
  1373. 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1374. 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
  1375. 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1376. 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
  1377. 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1378. 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1379. 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1380. 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1381. 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  1382. 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1383. 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1384. 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
  1385. 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1386. 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
  1387. 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1388. 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
  1389. 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
  1390. 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1391. 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1392. 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 25
  1394. 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
  1395. 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1396. 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1397. 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
  1398. 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
  1399. 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1400. 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1401. 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
  1402. 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
  1403. 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1404. 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1405. 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
  1406. 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
  1407. 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1408. 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1409. 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
  1410. 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
  1411. 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1412. 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1413. 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
  1414. 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
  1415. 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1416. 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1417. 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
  1418. 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
  1419. 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1420. 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1421. 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
  1422. 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
  1423. 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1424. 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1425. 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
  1426. 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
  1427. 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1428. 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1429. 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
  1430. 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
  1431. 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1432. 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1433. 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
  1434. 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1435. 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1436. 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1437. 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1438. 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1439. 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1440. 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1441. 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1442. 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
  1443. 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1444. 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
  1445. 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1446. 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
  1447. 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
  1448. 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1449. 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1450. 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 26
  1452. 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
  1453. 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1454. 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1455. 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
  1456. 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1457. 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1458. 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1459. 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1460. 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1461. 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1462. 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1463. 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1464. 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  1465. 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1466. 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1467. 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1468. 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1469. 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1470. 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1471. 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1472. 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1473. 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
  1474. 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1475. 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1476. 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1477. 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Unregister an I2C Callback
  1478. 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
  1479. 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R
  1480. 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
  1481. 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1482. 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1483. 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
  1484. 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
  1485. 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
  1486. 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
  1487. 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
  1488. 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
  1489. 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
  1490. 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
  1491. 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
  1492. 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
  1493. 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
  1494. 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
  1495. 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
  1496. 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
  1497. 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  1498. 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1499. 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
  1500. 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1501. 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
  1502. 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1503. 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
  1504. 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1505. 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
  1506. 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1507. 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
  1508. 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 27
  1510. 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1511. 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1512. 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
  1513. 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
  1514. 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1515. 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1516. 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
  1517. 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
  1518. 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1519. 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1520. 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
  1521. 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
  1522. 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1523. 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1524. 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
  1525. 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
  1526. 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1527. 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1528. 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
  1529. 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
  1530. 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1531. 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1532. 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
  1533. 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
  1534. 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1535. 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1536. 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
  1537. 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
  1538. 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1539. 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1540. 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
  1541. 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
  1542. 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1543. 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1544. 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
  1545. 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
  1546. 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1547. 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1548. 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
  1549. 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
  1550. 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1551. 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1552. 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
  1553. 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1554. 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1555. 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1556. 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1557. 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1558. 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1559. 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1560. 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1561. 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
  1562. 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1563. 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
  1564. 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1565. 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
  1566. 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 28
  1568. 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1569. 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1570. 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
  1571. 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
  1572. 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1573. 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1574. 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
  1575. 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1576. 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1577. 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1578. 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1579. 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1580. 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  1581. 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1582. 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1583. 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  1584. 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1585. 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1586. 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1587. 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1588. 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1589. 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1590. 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1591. 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1592. 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
  1593. 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1594. 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1595. 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1596. 967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
  1597. 968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
  1598. 969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1599. 970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1600. 971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
  1601. 972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  1602. 973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1603. 974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
  1604. 975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1605. 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
  1606. 977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1607. 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
  1608. 979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1609. 980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1610. 981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1611. 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1612. 983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  1613. 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1614. 985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1615. 986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
  1616. 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1617. 988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
  1618. 989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1619. 990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  1620. 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1621. 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1622. 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1623. 994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1624. 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1625. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 29
  1626. 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1627. 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1628. 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1629. 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
  1630. 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1631. 1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1632. 1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1633. 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
  1634. 1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
  1635. 1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1636. 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1637. 1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  1638. 1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1639. 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
  1640. 1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1641. 1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
  1642. 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1643. 1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
  1644. 1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1645. 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
  1646. 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1647. 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  1648. 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1649. 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
  1650. 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
  1651. 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1652. 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
  1653. 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  1654. 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1655. 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1656. 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
  1657. 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1658. 1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1659. 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  1660. 1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1661. 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1662. 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  1663. 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1664. 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1665. 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
  1666. 1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Data transfers functions
  1667. 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
  1668. 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
  1669. 1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
  1670. 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### IO operation functions #####
  1671. 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
  1672. 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  1673. 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
  1674. 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfers.
  1675. 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1676. 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) There are two modes of transfer:
  1677. 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
  1678. 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The status of all data processing is returned by the same function
  1679. 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after finishing transfer.
  1680. 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
  1681. 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
  1682. 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The end of the data processing will be indicated through the
  1683. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 30
  1684. 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
  1685. 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using DMA mode.
  1686. 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1687. 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Blocking mode functions are :
  1688. 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
  1689. 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
  1690. 1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
  1691. 1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
  1692. 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
  1693. 1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
  1694. 1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
  1695. 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1696. 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
  1697. 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
  1698. 1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
  1699. 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
  1700. 1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
  1701. 1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
  1702. 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
  1703. 1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
  1704. 1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
  1705. 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
  1706. 1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
  1707. 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
  1708. 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
  1709. 1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
  1710. 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1711. 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
  1712. 1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
  1713. 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
  1714. 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
  1715. 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
  1716. 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
  1717. 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
  1718. 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
  1719. 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
  1720. 1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
  1721. 1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
  1722. 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1723. 1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
  1724. 1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
  1725. 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
  1726. 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
  1727. 1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
  1728. 1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
  1729. 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
  1730. 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
  1731. 1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
  1732. 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
  1733. 1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
  1734. 1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1735. 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
  1736. 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  1737. 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1738. 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1739. 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  1740. 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
  1741. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 31
  1742. 1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  1743. 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  1744. 1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  1745. 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  1746. 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  1747. 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  1748. 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  1749. 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  1750. 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  1751. 1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
  1752. 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
  1753. 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1754. 604 .loc 1 1121 1
  1755. 605 .cfi_startproc
  1756. 606 @ args = 4, pretend = 0, frame = 24
  1757. 607 @ frame_needed = 1, uses_anonymous_args = 0
  1758. 608 0000 80B5 push {r7, lr}
  1759. 609 .LCFI22:
  1760. 610 .cfi_def_cfa_offset 8
  1761. 611 .cfi_offset 7, -8
  1762. 612 .cfi_offset 14, -4
  1763. 613 0002 88B0 sub sp, sp, #32
  1764. 614 .LCFI23:
  1765. 615 .cfi_def_cfa_offset 40
  1766. 616 0004 02AF add r7, sp, #8
  1767. 617 .LCFI24:
  1768. 618 .cfi_def_cfa 7, 32
  1769. 619 0006 F860 str r0, [r7, #12]
  1770. 620 0008 7A60 str r2, [r7, #4]
  1771. 621 000a 1A46 mov r2, r3
  1772. 622 000c 0B46 mov r3, r1 @ movhi
  1773. 623 000e 7B81 strh r3, [r7, #10] @ movhi
  1774. 624 0010 1346 mov r3, r2 @ movhi
  1775. 625 0012 3B81 strh r3, [r7, #8] @ movhi
  1776. 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
  1777. 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  1778. 1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1779. 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  1780. 626 .loc 1 1125 11
  1781. 627 0014 FB68 ldr r3, [r7, #12]
  1782. 628 0016 93F84130 ldrb r3, [r3, #65]
  1783. 629 001a DBB2 uxtb r3, r3
  1784. 630 .loc 1 1125 6
  1785. 631 001c 202B cmp r3, #32
  1786. 632 001e 40F0FD80 bne .L28
  1787. 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1788. 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  1789. 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  1790. 633 .loc 1 1128 5
  1791. 634 0022 FB68 ldr r3, [r7, #12]
  1792. 635 0024 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  1793. 636 0028 012B cmp r3, #1
  1794. 637 002a 01D1 bne .L29
  1795. 638 .loc 1 1128 5 is_stmt 0 discriminator 1
  1796. 639 002c 0223 movs r3, #2
  1797. 640 002e F6E0 b .L30
  1798. 641 .L29:
  1799. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 32
  1800. 642 .loc 1 1128 5 discriminator 2
  1801. 643 0030 FB68 ldr r3, [r7, #12]
  1802. 644 0032 0122 movs r2, #1
  1803. 645 0034 83F84020 strb r2, [r3, #64]
  1804. 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1805. 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
  1806. 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  1807. 646 .loc 1 1131 17 is_stmt 1 discriminator 2
  1808. 647 0038 FFF7FEFF bl HAL_GetTick
  1809. 648 003c 3861 str r0, [r7, #16]
  1810. 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1811. 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
  1812. 649 .loc 1 1133 9 discriminator 2
  1813. 650 003e 3B69 ldr r3, [r7, #16]
  1814. 651 0040 0093 str r3, [sp]
  1815. 652 0042 1923 movs r3, #25
  1816. 653 0044 0122 movs r2, #1
  1817. 654 0046 4FF40041 mov r1, #32768
  1818. 655 004a F868 ldr r0, [r7, #12]
  1819. 656 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  1820. 657 0050 0346 mov r3, r0
  1821. 658 .loc 1 1133 8 discriminator 2
  1822. 659 0052 002B cmp r3, #0
  1823. 660 0054 01D0 beq .L31
  1824. 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1825. 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  1826. 661 .loc 1 1135 14
  1827. 662 0056 0123 movs r3, #1
  1828. 663 0058 E1E0 b .L30
  1829. 664 .L31:
  1830. 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1831. 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1832. 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  1833. 665 .loc 1 1138 21
  1834. 666 005a FB68 ldr r3, [r7, #12]
  1835. 667 005c 2122 movs r2, #33
  1836. 668 005e 83F84120 strb r2, [r3, #65]
  1837. 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  1838. 669 .loc 1 1139 21
  1839. 670 0062 FB68 ldr r3, [r7, #12]
  1840. 671 0064 1022 movs r2, #16
  1841. 672 0066 83F84220 strb r2, [r3, #66]
  1842. 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  1843. 673 .loc 1 1140 21
  1844. 674 006a FB68 ldr r3, [r7, #12]
  1845. 675 006c 0022 movs r2, #0
  1846. 676 006e 5A64 str r2, [r3, #68]
  1847. 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1848. 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  1849. 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  1850. 677 .loc 1 1143 21
  1851. 678 0070 FB68 ldr r3, [r7, #12]
  1852. 679 0072 7A68 ldr r2, [r7, #4]
  1853. 680 0074 5A62 str r2, [r3, #36]
  1854. 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  1855. 681 .loc 1 1144 21
  1856. 682 0076 FB68 ldr r3, [r7, #12]
  1857. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 33
  1858. 683 0078 3A89 ldrh r2, [r7, #8] @ movhi
  1859. 684 007a 5A85 strh r2, [r3, #42] @ movhi
  1860. 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  1861. 685 .loc 1 1145 21
  1862. 686 007c FB68 ldr r3, [r7, #12]
  1863. 687 007e 0022 movs r2, #0
  1864. 688 0080 5A63 str r2, [r3, #52]
  1865. 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1866. 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  1867. 689 .loc 1 1147 13
  1868. 690 0082 FB68 ldr r3, [r7, #12]
  1869. 691 0084 5B8D ldrh r3, [r3, #42] @ movhi
  1870. 692 0086 9BB2 uxth r3, r3
  1871. 693 .loc 1 1147 8
  1872. 694 0088 FF2B cmp r3, #255
  1873. 695 008a 06D9 bls .L32
  1874. 1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1875. 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  1876. 696 .loc 1 1149 22
  1877. 697 008c FB68 ldr r3, [r7, #12]
  1878. 698 008e FF22 movs r2, #255
  1879. 699 0090 1A85 strh r2, [r3, #40] @ movhi
  1880. 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  1881. 700 .loc 1 1150 16
  1882. 701 0092 4FF08073 mov r3, #16777216
  1883. 702 0096 7B61 str r3, [r7, #20]
  1884. 703 0098 07E0 b .L33
  1885. 704 .L32:
  1886. 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1887. 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  1888. 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1889. 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  1890. 705 .loc 1 1154 28
  1891. 706 009a FB68 ldr r3, [r7, #12]
  1892. 707 009c 5B8D ldrh r3, [r3, #42] @ movhi
  1893. 708 009e 9AB2 uxth r2, r3
  1894. 709 .loc 1 1154 22
  1895. 710 00a0 FB68 ldr r3, [r7, #12]
  1896. 711 00a2 1A85 strh r2, [r3, #40] @ movhi
  1897. 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
  1898. 712 .loc 1 1155 16
  1899. 713 00a4 4FF00073 mov r3, #33554432
  1900. 714 00a8 7B61 str r3, [r7, #20]
  1901. 715 .L33:
  1902. 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1903. 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1904. 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
  1905. 716 .loc 1 1158 13
  1906. 717 00aa FB68 ldr r3, [r7, #12]
  1907. 718 00ac 1B8D ldrh r3, [r3, #40]
  1908. 719 .loc 1 1158 8
  1909. 720 00ae 002B cmp r3, #0
  1910. 721 00b0 24D0 beq .L34
  1911. 1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1912. 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  1913. 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  1914. 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  1915. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 34
  1916. 722 .loc 1 1162 35
  1917. 723 00b2 FB68 ldr r3, [r7, #12]
  1918. 724 00b4 5B6A ldr r3, [r3, #36]
  1919. 725 .loc 1 1162 30
  1920. 726 00b6 1A78 ldrb r2, [r3] @ zero_extendqisi2
  1921. 727 .loc 1 1162 11
  1922. 728 00b8 FB68 ldr r3, [r7, #12]
  1923. 729 00ba 1B68 ldr r3, [r3]
  1924. 730 .loc 1 1162 28
  1925. 731 00bc 9A62 str r2, [r3, #40]
  1926. 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1927. 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  1928. 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  1929. 732 .loc 1 1165 11
  1930. 733 00be FB68 ldr r3, [r7, #12]
  1931. 734 00c0 5B6A ldr r3, [r3, #36]
  1932. 735 .loc 1 1165 21
  1933. 736 00c2 5A1C adds r2, r3, #1
  1934. 737 00c4 FB68 ldr r3, [r7, #12]
  1935. 738 00c6 5A62 str r2, [r3, #36]
  1936. 1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1937. 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  1938. 739 .loc 1 1167 11
  1939. 740 00c8 FB68 ldr r3, [r7, #12]
  1940. 741 00ca 5B8D ldrh r3, [r3, #42] @ movhi
  1941. 742 00cc 9BB2 uxth r3, r3
  1942. 743 .loc 1 1167 22
  1943. 744 00ce 013B subs r3, r3, #1
  1944. 745 00d0 9AB2 uxth r2, r3
  1945. 746 00d2 FB68 ldr r3, [r7, #12]
  1946. 747 00d4 5A85 strh r2, [r3, #42] @ movhi
  1947. 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  1948. 748 .loc 1 1168 11
  1949. 749 00d6 FB68 ldr r3, [r7, #12]
  1950. 750 00d8 1B8D ldrh r3, [r3, #40]
  1951. 751 .loc 1 1168 21
  1952. 752 00da 013B subs r3, r3, #1
  1953. 753 00dc 9AB2 uxth r2, r3
  1954. 754 00de FB68 ldr r3, [r7, #12]
  1955. 755 00e0 1A85 strh r2, [r3, #40] @ movhi
  1956. 1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1957. 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  1958. 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
  1959. 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
  1960. 756 .loc 1 1172 58
  1961. 757 00e2 FB68 ldr r3, [r7, #12]
  1962. 758 00e4 1B8D ldrh r3, [r3, #40]
  1963. 759 .loc 1 1172 7
  1964. 760 00e6 DBB2 uxtb r3, r3
  1965. 761 00e8 0133 adds r3, r3, #1
  1966. 762 00ea DAB2 uxtb r2, r3
  1967. 763 00ec 7989 ldrh r1, [r7, #10]
  1968. 764 00ee 4E4B ldr r3, .L42
  1969. 765 00f0 0093 str r3, [sp]
  1970. 766 00f2 7B69 ldr r3, [r7, #20]
  1971. 767 00f4 F868 ldr r0, [r7, #12]
  1972. 768 00f6 FFF7FEFF bl I2C_TransferConfig
  1973. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 35
  1974. 769 00fa 66E0 b .L36
  1975. 770 .L34:
  1976. 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
  1977. 1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1978. 1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  1979. 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  1980. 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  1981. 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
  1982. 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
  1983. 771 .loc 1 1179 57
  1984. 772 00fc FB68 ldr r3, [r7, #12]
  1985. 773 00fe 1B8D ldrh r3, [r3, #40]
  1986. 774 .loc 1 1179 7
  1987. 775 0100 DAB2 uxtb r2, r3
  1988. 776 0102 7989 ldrh r1, [r7, #10]
  1989. 777 0104 484B ldr r3, .L42
  1990. 778 0106 0093 str r3, [sp]
  1991. 779 0108 7B69 ldr r3, [r7, #20]
  1992. 780 010a F868 ldr r0, [r7, #12]
  1993. 781 010c FFF7FEFF bl I2C_TransferConfig
  1994. 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
  1995. 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  1996. 1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  1997. 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
  1998. 782 .loc 1 1183 11
  1999. 783 0110 5BE0 b .L36
  2000. 784 .L40:
  2001. 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2002. 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
  2003. 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  2004. 785 .loc 1 1186 11
  2005. 786 0112 3A69 ldr r2, [r7, #16]
  2006. 787 0114 396A ldr r1, [r7, #32]
  2007. 788 0116 F868 ldr r0, [r7, #12]
  2008. 789 0118 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
  2009. 790 011c 0346 mov r3, r0
  2010. 791 .loc 1 1186 10
  2011. 792 011e 002B cmp r3, #0
  2012. 793 0120 01D0 beq .L37
  2013. 1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2014. 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2015. 794 .loc 1 1188 16
  2016. 795 0122 0123 movs r3, #1
  2017. 796 0124 7BE0 b .L30
  2018. 797 .L37:
  2019. 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2020. 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  2021. 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  2022. 798 .loc 1 1191 35
  2023. 799 0126 FB68 ldr r3, [r7, #12]
  2024. 800 0128 5B6A ldr r3, [r3, #36]
  2025. 801 .loc 1 1191 30
  2026. 802 012a 1A78 ldrb r2, [r3] @ zero_extendqisi2
  2027. 803 .loc 1 1191 11
  2028. 804 012c FB68 ldr r3, [r7, #12]
  2029. 805 012e 1B68 ldr r3, [r3]
  2030. 806 .loc 1 1191 28
  2031. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 36
  2032. 807 0130 9A62 str r2, [r3, #40]
  2033. 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2034. 1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  2035. 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  2036. 808 .loc 1 1194 11
  2037. 809 0132 FB68 ldr r3, [r7, #12]
  2038. 810 0134 5B6A ldr r3, [r3, #36]
  2039. 811 .loc 1 1194 21
  2040. 812 0136 5A1C adds r2, r3, #1
  2041. 813 0138 FB68 ldr r3, [r7, #12]
  2042. 814 013a 5A62 str r2, [r3, #36]
  2043. 1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2044. 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  2045. 815 .loc 1 1196 11
  2046. 816 013c FB68 ldr r3, [r7, #12]
  2047. 817 013e 5B8D ldrh r3, [r3, #42] @ movhi
  2048. 818 0140 9BB2 uxth r3, r3
  2049. 819 .loc 1 1196 22
  2050. 820 0142 013B subs r3, r3, #1
  2051. 821 0144 9AB2 uxth r2, r3
  2052. 822 0146 FB68 ldr r3, [r7, #12]
  2053. 823 0148 5A85 strh r2, [r3, #42] @ movhi
  2054. 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  2055. 824 .loc 1 1197 11
  2056. 825 014a FB68 ldr r3, [r7, #12]
  2057. 826 014c 1B8D ldrh r3, [r3, #40]
  2058. 827 .loc 1 1197 21
  2059. 828 014e 013B subs r3, r3, #1
  2060. 829 0150 9AB2 uxth r2, r3
  2061. 830 0152 FB68 ldr r3, [r7, #12]
  2062. 831 0154 1A85 strh r2, [r3, #40] @ movhi
  2063. 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2064. 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
  2065. 832 .loc 1 1199 16
  2066. 833 0156 FB68 ldr r3, [r7, #12]
  2067. 834 0158 5B8D ldrh r3, [r3, #42] @ movhi
  2068. 835 015a 9BB2 uxth r3, r3
  2069. 836 .loc 1 1199 10
  2070. 837 015c 002B cmp r3, #0
  2071. 838 015e 34D0 beq .L36
  2072. 839 .loc 1 1199 43 discriminator 1
  2073. 840 0160 FB68 ldr r3, [r7, #12]
  2074. 841 0162 1B8D ldrh r3, [r3, #40]
  2075. 842 .loc 1 1199 35 discriminator 1
  2076. 843 0164 002B cmp r3, #0
  2077. 844 0166 30D1 bne .L36
  2078. 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2079. 1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
  2080. 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
  2081. 845 .loc 1 1202 13
  2082. 846 0168 3B69 ldr r3, [r7, #16]
  2083. 847 016a 0093 str r3, [sp]
  2084. 848 016c 3B6A ldr r3, [r7, #32]
  2085. 849 016e 0022 movs r2, #0
  2086. 850 0170 8021 movs r1, #128
  2087. 851 0172 F868 ldr r0, [r7, #12]
  2088. 852 0174 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  2089. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 37
  2090. 853 0178 0346 mov r3, r0
  2091. 854 .loc 1 1202 12
  2092. 855 017a 002B cmp r3, #0
  2093. 856 017c 01D0 beq .L38
  2094. 1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2095. 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2096. 857 .loc 1 1204 18
  2097. 858 017e 0123 movs r3, #1
  2098. 859 0180 4DE0 b .L30
  2099. 860 .L38:
  2100. 1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2101. 1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2102. 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  2103. 861 .loc 1 1207 17
  2104. 862 0182 FB68 ldr r3, [r7, #12]
  2105. 863 0184 5B8D ldrh r3, [r3, #42] @ movhi
  2106. 864 0186 9BB2 uxth r3, r3
  2107. 865 .loc 1 1207 12
  2108. 866 0188 FF2B cmp r3, #255
  2109. 867 018a 0ED9 bls .L39
  2110. 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2111. 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  2112. 868 .loc 1 1209 26
  2113. 869 018c FB68 ldr r3, [r7, #12]
  2114. 870 018e FF22 movs r2, #255
  2115. 871 0190 1A85 strh r2, [r3, #40] @ movhi
  2116. 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
  2117. 872 .loc 1 1210 61
  2118. 873 0192 FB68 ldr r3, [r7, #12]
  2119. 874 0194 1B8D ldrh r3, [r3, #40]
  2120. 875 .loc 1 1210 11
  2121. 876 0196 DAB2 uxtb r2, r3
  2122. 877 0198 7989 ldrh r1, [r7, #10]
  2123. 878 019a 0023 movs r3, #0
  2124. 879 019c 0093 str r3, [sp]
  2125. 880 019e 4FF08073 mov r3, #16777216
  2126. 881 01a2 F868 ldr r0, [r7, #12]
  2127. 882 01a4 FFF7FEFF bl I2C_TransferConfig
  2128. 883 01a8 0FE0 b .L36
  2129. 884 .L39:
  2130. 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  2131. 1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2132. 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  2133. 1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2134. 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  2135. 885 .loc 1 1215 32
  2136. 886 01aa FB68 ldr r3, [r7, #12]
  2137. 887 01ac 5B8D ldrh r3, [r3, #42] @ movhi
  2138. 888 01ae 9AB2 uxth r2, r3
  2139. 889 .loc 1 1215 26
  2140. 890 01b0 FB68 ldr r3, [r7, #12]
  2141. 891 01b2 1A85 strh r2, [r3, #40] @ movhi
  2142. 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  2143. 892 .loc 1 1216 61
  2144. 893 01b4 FB68 ldr r3, [r7, #12]
  2145. 894 01b6 1B8D ldrh r3, [r3, #40]
  2146. 895 .loc 1 1216 11
  2147. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 38
  2148. 896 01b8 DAB2 uxtb r2, r3
  2149. 897 01ba 7989 ldrh r1, [r7, #10]
  2150. 898 01bc 0023 movs r3, #0
  2151. 899 01be 0093 str r3, [sp]
  2152. 900 01c0 4FF00073 mov r3, #33554432
  2153. 901 01c4 F868 ldr r0, [r7, #12]
  2154. 902 01c6 FFF7FEFF bl I2C_TransferConfig
  2155. 903 .L36:
  2156. 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2157. 904 .loc 1 1183 16
  2158. 905 01ca FB68 ldr r3, [r7, #12]
  2159. 906 01cc 5B8D ldrh r3, [r3, #42] @ movhi
  2160. 907 01ce 9BB2 uxth r3, r3
  2161. 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2162. 908 .loc 1 1183 11
  2163. 909 01d0 002B cmp r3, #0
  2164. 910 01d2 9ED1 bne .L40
  2165. 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  2166. 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2167. 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2168. 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2169. 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2170. 1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
  2171. 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
  2172. 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  2173. 911 .loc 1 1224 9
  2174. 912 01d4 3A69 ldr r2, [r7, #16]
  2175. 913 01d6 396A ldr r1, [r7, #32]
  2176. 914 01d8 F868 ldr r0, [r7, #12]
  2177. 915 01da FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
  2178. 916 01de 0346 mov r3, r0
  2179. 917 .loc 1 1224 8
  2180. 918 01e0 002B cmp r3, #0
  2181. 919 01e2 01D0 beq .L41
  2182. 1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2183. 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2184. 920 .loc 1 1226 14
  2185. 921 01e4 0123 movs r3, #1
  2186. 922 01e6 1AE0 b .L30
  2187. 923 .L41:
  2188. 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2189. 1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2190. 1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  2191. 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  2192. 924 .loc 1 1230 5
  2193. 925 01e8 FB68 ldr r3, [r7, #12]
  2194. 926 01ea 1B68 ldr r3, [r3]
  2195. 927 01ec 2022 movs r2, #32
  2196. 928 01ee DA61 str r2, [r3, #28]
  2197. 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2198. 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  2199. 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  2200. 929 .loc 1 1233 5
  2201. 930 01f0 FB68 ldr r3, [r7, #12]
  2202. 931 01f2 1B68 ldr r3, [r3]
  2203. 932 01f4 5968 ldr r1, [r3, #4]
  2204. 933 01f6 FB68 ldr r3, [r7, #12]
  2205. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 39
  2206. 934 01f8 1A68 ldr r2, [r3]
  2207. 935 01fa 0C4B ldr r3, .L42+4
  2208. 936 01fc 0B40 ands r3, r3, r1
  2209. 937 01fe 5360 str r3, [r2, #4]
  2210. 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2211. 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  2212. 938 .loc 1 1235 17
  2213. 939 0200 FB68 ldr r3, [r7, #12]
  2214. 940 0202 2022 movs r2, #32
  2215. 941 0204 83F84120 strb r2, [r3, #65]
  2216. 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  2217. 942 .loc 1 1236 17
  2218. 943 0208 FB68 ldr r3, [r7, #12]
  2219. 944 020a 0022 movs r2, #0
  2220. 945 020c 83F84220 strb r2, [r3, #66]
  2221. 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2222. 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  2223. 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  2224. 946 .loc 1 1239 5
  2225. 947 0210 FB68 ldr r3, [r7, #12]
  2226. 948 0212 0022 movs r2, #0
  2227. 949 0214 83F84020 strb r2, [r3, #64]
  2228. 1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2229. 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  2230. 950 .loc 1 1241 12
  2231. 951 0218 0023 movs r3, #0
  2232. 952 021a 00E0 b .L30
  2233. 953 .L28:
  2234. 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2235. 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  2236. 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2237. 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  2238. 954 .loc 1 1245 12
  2239. 955 021c 0223 movs r3, #2
  2240. 956 .L30:
  2241. 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2242. 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2243. 957 .loc 1 1247 1
  2244. 958 021e 1846 mov r0, r3
  2245. 959 0220 1837 adds r7, r7, #24
  2246. 960 .LCFI25:
  2247. 961 .cfi_def_cfa_offset 8
  2248. 962 0222 BD46 mov sp, r7
  2249. 963 .LCFI26:
  2250. 964 .cfi_def_cfa_register 13
  2251. 965 @ sp needed
  2252. 966 0224 80BD pop {r7, pc}
  2253. 967 .L43:
  2254. 968 0226 00BF .align 2
  2255. 969 .L42:
  2256. 970 0228 00200080 .word -2147475456
  2257. 971 022c 00E800FE .word -33495040
  2258. 972 .cfi_endproc
  2259. 973 .LFE134:
  2260. 975 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
  2261. 976 .align 1
  2262. 977 .global HAL_I2C_Master_Receive
  2263. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 40
  2264. 978 .syntax unified
  2265. 979 .thumb
  2266. 980 .thumb_func
  2267. 982 HAL_I2C_Master_Receive:
  2268. 983 .LFB135:
  2269. 1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2270. 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  2271. 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
  2272. 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  2273. 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  2274. 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  2275. 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  2276. 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  2277. 1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  2278. 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  2279. 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  2280. 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  2281. 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
  2282. 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
  2283. 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2284. 984 .loc 1 1262 1
  2285. 985 .cfi_startproc
  2286. 986 @ args = 4, pretend = 0, frame = 24
  2287. 987 @ frame_needed = 1, uses_anonymous_args = 0
  2288. 988 0000 80B5 push {r7, lr}
  2289. 989 .LCFI27:
  2290. 990 .cfi_def_cfa_offset 8
  2291. 991 .cfi_offset 7, -8
  2292. 992 .cfi_offset 14, -4
  2293. 993 0002 88B0 sub sp, sp, #32
  2294. 994 .LCFI28:
  2295. 995 .cfi_def_cfa_offset 40
  2296. 996 0004 02AF add r7, sp, #8
  2297. 997 .LCFI29:
  2298. 998 .cfi_def_cfa 7, 32
  2299. 999 0006 F860 str r0, [r7, #12]
  2300. 1000 0008 7A60 str r2, [r7, #4]
  2301. 1001 000a 1A46 mov r2, r3
  2302. 1002 000c 0B46 mov r3, r1 @ movhi
  2303. 1003 000e 7B81 strh r3, [r7, #10] @ movhi
  2304. 1004 0010 1346 mov r3, r2 @ movhi
  2305. 1005 0012 3B81 strh r3, [r7, #8] @ movhi
  2306. 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
  2307. 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2308. 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  2309. 1006 .loc 1 1265 11
  2310. 1007 0014 FB68 ldr r3, [r7, #12]
  2311. 1008 0016 93F84130 ldrb r3, [r3, #65]
  2312. 1009 001a DBB2 uxtb r3, r3
  2313. 1010 .loc 1 1265 6
  2314. 1011 001c 202B cmp r3, #32
  2315. 1012 001e 40F0DB80 bne .L45
  2316. 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2317. 1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  2318. 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  2319. 1013 .loc 1 1268 5
  2320. 1014 0022 FB68 ldr r3, [r7, #12]
  2321. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 41
  2322. 1015 0024 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  2323. 1016 0028 012B cmp r3, #1
  2324. 1017 002a 01D1 bne .L46
  2325. 1018 .loc 1 1268 5 is_stmt 0 discriminator 1
  2326. 1019 002c 0223 movs r3, #2
  2327. 1020 002e D4E0 b .L47
  2328. 1021 .L46:
  2329. 1022 .loc 1 1268 5 discriminator 2
  2330. 1023 0030 FB68 ldr r3, [r7, #12]
  2331. 1024 0032 0122 movs r2, #1
  2332. 1025 0034 83F84020 strb r2, [r3, #64]
  2333. 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2334. 1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
  2335. 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  2336. 1026 .loc 1 1271 17 is_stmt 1 discriminator 2
  2337. 1027 0038 FFF7FEFF bl HAL_GetTick
  2338. 1028 003c 7861 str r0, [r7, #20]
  2339. 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2340. 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
  2341. 1029 .loc 1 1273 9 discriminator 2
  2342. 1030 003e 7B69 ldr r3, [r7, #20]
  2343. 1031 0040 0093 str r3, [sp]
  2344. 1032 0042 1923 movs r3, #25
  2345. 1033 0044 0122 movs r2, #1
  2346. 1034 0046 4FF40041 mov r1, #32768
  2347. 1035 004a F868 ldr r0, [r7, #12]
  2348. 1036 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  2349. 1037 0050 0346 mov r3, r0
  2350. 1038 .loc 1 1273 8 discriminator 2
  2351. 1039 0052 002B cmp r3, #0
  2352. 1040 0054 01D0 beq .L48
  2353. 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2354. 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2355. 1041 .loc 1 1275 14
  2356. 1042 0056 0123 movs r3, #1
  2357. 1043 0058 BFE0 b .L47
  2358. 1044 .L48:
  2359. 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2360. 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2361. 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  2362. 1045 .loc 1 1278 21
  2363. 1046 005a FB68 ldr r3, [r7, #12]
  2364. 1047 005c 2222 movs r2, #34
  2365. 1048 005e 83F84120 strb r2, [r3, #65]
  2366. 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  2367. 1049 .loc 1 1279 21
  2368. 1050 0062 FB68 ldr r3, [r7, #12]
  2369. 1051 0064 1022 movs r2, #16
  2370. 1052 0066 83F84220 strb r2, [r3, #66]
  2371. 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  2372. 1053 .loc 1 1280 21
  2373. 1054 006a FB68 ldr r3, [r7, #12]
  2374. 1055 006c 0022 movs r2, #0
  2375. 1056 006e 5A64 str r2, [r3, #68]
  2376. 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2377. 1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  2378. 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  2379. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 42
  2380. 1057 .loc 1 1283 21
  2381. 1058 0070 FB68 ldr r3, [r7, #12]
  2382. 1059 0072 7A68 ldr r2, [r7, #4]
  2383. 1060 0074 5A62 str r2, [r3, #36]
  2384. 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  2385. 1061 .loc 1 1284 21
  2386. 1062 0076 FB68 ldr r3, [r7, #12]
  2387. 1063 0078 3A89 ldrh r2, [r7, #8] @ movhi
  2388. 1064 007a 5A85 strh r2, [r3, #42] @ movhi
  2389. 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  2390. 1065 .loc 1 1285 21
  2391. 1066 007c FB68 ldr r3, [r7, #12]
  2392. 1067 007e 0022 movs r2, #0
  2393. 1068 0080 5A63 str r2, [r3, #52]
  2394. 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2395. 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  2396. 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
  2397. 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  2398. 1069 .loc 1 1289 13
  2399. 1070 0082 FB68 ldr r3, [r7, #12]
  2400. 1071 0084 5B8D ldrh r3, [r3, #42] @ movhi
  2401. 1072 0086 9BB2 uxth r3, r3
  2402. 1073 .loc 1 1289 8
  2403. 1074 0088 FF2B cmp r3, #255
  2404. 1075 008a 0ED9 bls .L49
  2405. 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2406. 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  2407. 1076 .loc 1 1291 22
  2408. 1077 008c FB68 ldr r3, [r7, #12]
  2409. 1078 008e 0122 movs r2, #1
  2410. 1079 0090 1A85 strh r2, [r3, #40] @ movhi
  2411. 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
  2412. 1080 .loc 1 1292 57
  2413. 1081 0092 FB68 ldr r3, [r7, #12]
  2414. 1082 0094 1B8D ldrh r3, [r3, #40]
  2415. 1083 .loc 1 1292 7
  2416. 1084 0096 DAB2 uxtb r2, r3
  2417. 1085 0098 7989 ldrh r1, [r7, #10]
  2418. 1086 009a 524B ldr r3, .L57
  2419. 1087 009c 0093 str r3, [sp]
  2420. 1088 009e 4FF08073 mov r3, #16777216
  2421. 1089 00a2 F868 ldr r0, [r7, #12]
  2422. 1090 00a4 FFF7FEFF bl I2C_TransferConfig
  2423. 1091 00a8 6DE0 b .L51
  2424. 1092 .L49:
  2425. 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
  2426. 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2427. 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  2428. 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2429. 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  2430. 1093 .loc 1 1297 28
  2431. 1094 00aa FB68 ldr r3, [r7, #12]
  2432. 1095 00ac 5B8D ldrh r3, [r3, #42] @ movhi
  2433. 1096 00ae 9AB2 uxth r2, r3
  2434. 1097 .loc 1 1297 22
  2435. 1098 00b0 FB68 ldr r3, [r7, #12]
  2436. 1099 00b2 1A85 strh r2, [r3, #40] @ movhi
  2437. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 43
  2438. 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  2439. 1100 .loc 1 1298 57
  2440. 1101 00b4 FB68 ldr r3, [r7, #12]
  2441. 1102 00b6 1B8D ldrh r3, [r3, #40]
  2442. 1103 .loc 1 1298 7
  2443. 1104 00b8 DAB2 uxtb r2, r3
  2444. 1105 00ba 7989 ldrh r1, [r7, #10]
  2445. 1106 00bc 494B ldr r3, .L57
  2446. 1107 00be 0093 str r3, [sp]
  2447. 1108 00c0 4FF00073 mov r3, #33554432
  2448. 1109 00c4 F868 ldr r0, [r7, #12]
  2449. 1110 00c6 FFF7FEFF bl I2C_TransferConfig
  2450. 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
  2451. 1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2452. 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2453. 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
  2454. 1111 .loc 1 1302 11
  2455. 1112 00ca 5CE0 b .L51
  2456. 1113 .L55:
  2457. 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2458. 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
  2459. 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  2460. 1114 .loc 1 1305 11
  2461. 1115 00cc 7A69 ldr r2, [r7, #20]
  2462. 1116 00ce 396A ldr r1, [r7, #32]
  2463. 1117 00d0 F868 ldr r0, [r7, #12]
  2464. 1118 00d2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
  2465. 1119 00d6 0346 mov r3, r0
  2466. 1120 .loc 1 1305 10
  2467. 1121 00d8 002B cmp r3, #0
  2468. 1122 00da 01D0 beq .L52
  2469. 1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2470. 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2471. 1123 .loc 1 1307 16
  2472. 1124 00dc 0123 movs r3, #1
  2473. 1125 00de 7CE0 b .L47
  2474. 1126 .L52:
  2475. 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2476. 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2477. 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  2478. 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  2479. 1127 .loc 1 1311 38
  2480. 1128 00e0 FB68 ldr r3, [r7, #12]
  2481. 1129 00e2 1B68 ldr r3, [r3]
  2482. 1130 .loc 1 1311 48
  2483. 1131 00e4 5A6A ldr r2, [r3, #36]
  2484. 1132 .loc 1 1311 12
  2485. 1133 00e6 FB68 ldr r3, [r7, #12]
  2486. 1134 00e8 5B6A ldr r3, [r3, #36]
  2487. 1135 .loc 1 1311 25
  2488. 1136 00ea D2B2 uxtb r2, r2
  2489. 1137 .loc 1 1311 23
  2490. 1138 00ec 1A70 strb r2, [r3]
  2491. 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2492. 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  2493. 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  2494. 1139 .loc 1 1314 11
  2495. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 44
  2496. 1140 00ee FB68 ldr r3, [r7, #12]
  2497. 1141 00f0 5B6A ldr r3, [r3, #36]
  2498. 1142 .loc 1 1314 21
  2499. 1143 00f2 5A1C adds r2, r3, #1
  2500. 1144 00f4 FB68 ldr r3, [r7, #12]
  2501. 1145 00f6 5A62 str r2, [r3, #36]
  2502. 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2503. 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  2504. 1146 .loc 1 1316 11
  2505. 1147 00f8 FB68 ldr r3, [r7, #12]
  2506. 1148 00fa 1B8D ldrh r3, [r3, #40]
  2507. 1149 .loc 1 1316 21
  2508. 1150 00fc 013B subs r3, r3, #1
  2509. 1151 00fe 9AB2 uxth r2, r3
  2510. 1152 0100 FB68 ldr r3, [r7, #12]
  2511. 1153 0102 1A85 strh r2, [r3, #40] @ movhi
  2512. 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  2513. 1154 .loc 1 1317 11
  2514. 1155 0104 FB68 ldr r3, [r7, #12]
  2515. 1156 0106 5B8D ldrh r3, [r3, #42] @ movhi
  2516. 1157 0108 9BB2 uxth r3, r3
  2517. 1158 .loc 1 1317 22
  2518. 1159 010a 013B subs r3, r3, #1
  2519. 1160 010c 9AB2 uxth r2, r3
  2520. 1161 010e FB68 ldr r3, [r7, #12]
  2521. 1162 0110 5A85 strh r2, [r3, #42] @ movhi
  2522. 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2523. 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
  2524. 1163 .loc 1 1319 16
  2525. 1164 0112 FB68 ldr r3, [r7, #12]
  2526. 1165 0114 5B8D ldrh r3, [r3, #42] @ movhi
  2527. 1166 0116 9BB2 uxth r3, r3
  2528. 1167 .loc 1 1319 10
  2529. 1168 0118 002B cmp r3, #0
  2530. 1169 011a 34D0 beq .L51
  2531. 1170 .loc 1 1319 43 discriminator 1
  2532. 1171 011c FB68 ldr r3, [r7, #12]
  2533. 1172 011e 1B8D ldrh r3, [r3, #40]
  2534. 1173 .loc 1 1319 35 discriminator 1
  2535. 1174 0120 002B cmp r3, #0
  2536. 1175 0122 30D1 bne .L51
  2537. 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2538. 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
  2539. 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
  2540. 1176 .loc 1 1322 13
  2541. 1177 0124 7B69 ldr r3, [r7, #20]
  2542. 1178 0126 0093 str r3, [sp]
  2543. 1179 0128 3B6A ldr r3, [r7, #32]
  2544. 1180 012a 0022 movs r2, #0
  2545. 1181 012c 8021 movs r1, #128
  2546. 1182 012e F868 ldr r0, [r7, #12]
  2547. 1183 0130 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  2548. 1184 0134 0346 mov r3, r0
  2549. 1185 .loc 1 1322 12
  2550. 1186 0136 002B cmp r3, #0
  2551. 1187 0138 01D0 beq .L53
  2552. 1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2553. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 45
  2554. 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2555. 1188 .loc 1 1324 18
  2556. 1189 013a 0123 movs r3, #1
  2557. 1190 013c 4DE0 b .L47
  2558. 1191 .L53:
  2559. 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2560. 1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2561. 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  2562. 1192 .loc 1 1327 17
  2563. 1193 013e FB68 ldr r3, [r7, #12]
  2564. 1194 0140 5B8D ldrh r3, [r3, #42] @ movhi
  2565. 1195 0142 9BB2 uxth r3, r3
  2566. 1196 .loc 1 1327 12
  2567. 1197 0144 FF2B cmp r3, #255
  2568. 1198 0146 0ED9 bls .L54
  2569. 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2570. 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  2571. 1199 .loc 1 1329 26
  2572. 1200 0148 FB68 ldr r3, [r7, #12]
  2573. 1201 014a FF22 movs r2, #255
  2574. 1202 014c 1A85 strh r2, [r3, #40] @ movhi
  2575. 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
  2576. 1203 .loc 1 1330 61
  2577. 1204 014e FB68 ldr r3, [r7, #12]
  2578. 1205 0150 1B8D ldrh r3, [r3, #40]
  2579. 1206 .loc 1 1330 11
  2580. 1207 0152 DAB2 uxtb r2, r3
  2581. 1208 0154 7989 ldrh r1, [r7, #10]
  2582. 1209 0156 0023 movs r3, #0
  2583. 1210 0158 0093 str r3, [sp]
  2584. 1211 015a 4FF08073 mov r3, #16777216
  2585. 1212 015e F868 ldr r0, [r7, #12]
  2586. 1213 0160 FFF7FEFF bl I2C_TransferConfig
  2587. 1214 0164 0FE0 b .L51
  2588. 1215 .L54:
  2589. 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  2590. 1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2591. 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  2592. 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2593. 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  2594. 1216 .loc 1 1335 32
  2595. 1217 0166 FB68 ldr r3, [r7, #12]
  2596. 1218 0168 5B8D ldrh r3, [r3, #42] @ movhi
  2597. 1219 016a 9AB2 uxth r2, r3
  2598. 1220 .loc 1 1335 26
  2599. 1221 016c FB68 ldr r3, [r7, #12]
  2600. 1222 016e 1A85 strh r2, [r3, #40] @ movhi
  2601. 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  2602. 1223 .loc 1 1336 61
  2603. 1224 0170 FB68 ldr r3, [r7, #12]
  2604. 1225 0172 1B8D ldrh r3, [r3, #40]
  2605. 1226 .loc 1 1336 11
  2606. 1227 0174 DAB2 uxtb r2, r3
  2607. 1228 0176 7989 ldrh r1, [r7, #10]
  2608. 1229 0178 0023 movs r3, #0
  2609. 1230 017a 0093 str r3, [sp]
  2610. 1231 017c 4FF00073 mov r3, #33554432
  2611. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 46
  2612. 1232 0180 F868 ldr r0, [r7, #12]
  2613. 1233 0182 FFF7FEFF bl I2C_TransferConfig
  2614. 1234 .L51:
  2615. 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2616. 1235 .loc 1 1302 16
  2617. 1236 0186 FB68 ldr r3, [r7, #12]
  2618. 1237 0188 5B8D ldrh r3, [r3, #42] @ movhi
  2619. 1238 018a 9BB2 uxth r3, r3
  2620. 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2621. 1239 .loc 1 1302 11
  2622. 1240 018c 002B cmp r3, #0
  2623. 1241 018e 9DD1 bne .L55
  2624. 1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  2625. 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2626. 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2627. 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2628. 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2629. 1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
  2630. 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
  2631. 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  2632. 1242 .loc 1 1344 9
  2633. 1243 0190 7A69 ldr r2, [r7, #20]
  2634. 1244 0192 396A ldr r1, [r7, #32]
  2635. 1245 0194 F868 ldr r0, [r7, #12]
  2636. 1246 0196 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
  2637. 1247 019a 0346 mov r3, r0
  2638. 1248 .loc 1 1344 8
  2639. 1249 019c 002B cmp r3, #0
  2640. 1250 019e 01D0 beq .L56
  2641. 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2642. 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2643. 1251 .loc 1 1346 14
  2644. 1252 01a0 0123 movs r3, #1
  2645. 1253 01a2 1AE0 b .L47
  2646. 1254 .L56:
  2647. 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2648. 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2649. 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  2650. 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  2651. 1255 .loc 1 1350 5
  2652. 1256 01a4 FB68 ldr r3, [r7, #12]
  2653. 1257 01a6 1B68 ldr r3, [r3]
  2654. 1258 01a8 2022 movs r2, #32
  2655. 1259 01aa DA61 str r2, [r3, #28]
  2656. 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2657. 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  2658. 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  2659. 1260 .loc 1 1353 5
  2660. 1261 01ac FB68 ldr r3, [r7, #12]
  2661. 1262 01ae 1B68 ldr r3, [r3]
  2662. 1263 01b0 5968 ldr r1, [r3, #4]
  2663. 1264 01b2 FB68 ldr r3, [r7, #12]
  2664. 1265 01b4 1A68 ldr r2, [r3]
  2665. 1266 01b6 0C4B ldr r3, .L57+4
  2666. 1267 01b8 0B40 ands r3, r3, r1
  2667. 1268 01ba 5360 str r3, [r2, #4]
  2668. 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2669. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 47
  2670. 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  2671. 1269 .loc 1 1355 17
  2672. 1270 01bc FB68 ldr r3, [r7, #12]
  2673. 1271 01be 2022 movs r2, #32
  2674. 1272 01c0 83F84120 strb r2, [r3, #65]
  2675. 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  2676. 1273 .loc 1 1356 17
  2677. 1274 01c4 FB68 ldr r3, [r7, #12]
  2678. 1275 01c6 0022 movs r2, #0
  2679. 1276 01c8 83F84220 strb r2, [r3, #66]
  2680. 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2681. 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  2682. 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  2683. 1277 .loc 1 1359 5
  2684. 1278 01cc FB68 ldr r3, [r7, #12]
  2685. 1279 01ce 0022 movs r2, #0
  2686. 1280 01d0 83F84020 strb r2, [r3, #64]
  2687. 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2688. 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  2689. 1281 .loc 1 1361 12
  2690. 1282 01d4 0023 movs r3, #0
  2691. 1283 01d6 00E0 b .L47
  2692. 1284 .L45:
  2693. 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2694. 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  2695. 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2696. 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  2697. 1285 .loc 1 1365 12
  2698. 1286 01d8 0223 movs r3, #2
  2699. 1287 .L47:
  2700. 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2701. 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2702. 1288 .loc 1 1367 1
  2703. 1289 01da 1846 mov r0, r3
  2704. 1290 01dc 1837 adds r7, r7, #24
  2705. 1291 .LCFI30:
  2706. 1292 .cfi_def_cfa_offset 8
  2707. 1293 01de BD46 mov sp, r7
  2708. 1294 .LCFI31:
  2709. 1295 .cfi_def_cfa_register 13
  2710. 1296 @ sp needed
  2711. 1297 01e0 80BD pop {r7, pc}
  2712. 1298 .L58:
  2713. 1299 01e2 00BF .align 2
  2714. 1300 .L57:
  2715. 1301 01e4 00240080 .word -2147474432
  2716. 1302 01e8 00E800FE .word -33495040
  2717. 1303 .cfi_endproc
  2718. 1304 .LFE135:
  2719. 1306 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
  2720. 1307 .align 1
  2721. 1308 .global HAL_I2C_Slave_Transmit
  2722. 1309 .syntax unified
  2723. 1310 .thumb
  2724. 1311 .thumb_func
  2725. 1313 HAL_I2C_Slave_Transmit:
  2726. 1314 .LFB136:
  2727. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 48
  2728. 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2729. 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  2730. 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
  2731. 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  2732. 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  2733. 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  2734. 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  2735. 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  2736. 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  2737. 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  2738. 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
  2739. 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
  2740. 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2741. 1315 .loc 1 1380 1
  2742. 1316 .cfi_startproc
  2743. 1317 @ args = 0, pretend = 0, frame = 24
  2744. 1318 @ frame_needed = 1, uses_anonymous_args = 0
  2745. 1319 0000 80B5 push {r7, lr}
  2746. 1320 .LCFI32:
  2747. 1321 .cfi_def_cfa_offset 8
  2748. 1322 .cfi_offset 7, -8
  2749. 1323 .cfi_offset 14, -4
  2750. 1324 0002 88B0 sub sp, sp, #32
  2751. 1325 .LCFI33:
  2752. 1326 .cfi_def_cfa_offset 40
  2753. 1327 0004 02AF add r7, sp, #8
  2754. 1328 .LCFI34:
  2755. 1329 .cfi_def_cfa 7, 32
  2756. 1330 0006 F860 str r0, [r7, #12]
  2757. 1331 0008 B960 str r1, [r7, #8]
  2758. 1332 000a 3B60 str r3, [r7]
  2759. 1333 000c 1346 mov r3, r2 @ movhi
  2760. 1334 000e FB80 strh r3, [r7, #6] @ movhi
  2761. 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
  2762. 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t tmpXferCount;
  2763. 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef error;
  2764. 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2765. 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  2766. 1335 .loc 1 1385 11
  2767. 1336 0010 FB68 ldr r3, [r7, #12]
  2768. 1337 0012 93F84130 ldrb r3, [r3, #65]
  2769. 1338 0016 DBB2 uxtb r3, r3
  2770. 1339 .loc 1 1385 6
  2771. 1340 0018 202B cmp r3, #32
  2772. 1341 001a 40F03981 bne .L60
  2773. 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2774. 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  2775. 1342 .loc 1 1387 8
  2776. 1343 001e BB68 ldr r3, [r7, #8]
  2777. 1344 0020 002B cmp r3, #0
  2778. 1345 0022 02D0 beq .L61
  2779. 1346 .loc 1 1387 25 discriminator 1
  2780. 1347 0024 FB88 ldrh r3, [r7, #6]
  2781. 1348 0026 002B cmp r3, #0
  2782. 1349 0028 05D1 bne .L62
  2783. 1350 .L61:
  2784. 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2785. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 49
  2786. 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  2787. 1351 .loc 1 1389 23
  2788. 1352 002a FB68 ldr r3, [r7, #12]
  2789. 1353 002c 4FF40072 mov r2, #512
  2790. 1354 0030 5A64 str r2, [r3, #68]
  2791. 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2792. 1355 .loc 1 1390 15
  2793. 1356 0032 0123 movs r3, #1
  2794. 1357 0034 2DE1 b .L63
  2795. 1358 .L62:
  2796. 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2797. 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  2798. 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  2799. 1359 .loc 1 1393 5
  2800. 1360 0036 FB68 ldr r3, [r7, #12]
  2801. 1361 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  2802. 1362 003c 012B cmp r3, #1
  2803. 1363 003e 01D1 bne .L64
  2804. 1364 .loc 1 1393 5 is_stmt 0 discriminator 1
  2805. 1365 0040 0223 movs r3, #2
  2806. 1366 0042 26E1 b .L63
  2807. 1367 .L64:
  2808. 1368 .loc 1 1393 5 discriminator 2
  2809. 1369 0044 FB68 ldr r3, [r7, #12]
  2810. 1370 0046 0122 movs r2, #1
  2811. 1371 0048 83F84020 strb r2, [r3, #64]
  2812. 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2813. 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
  2814. 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  2815. 1372 .loc 1 1396 17 is_stmt 1 discriminator 2
  2816. 1373 004c FFF7FEFF bl HAL_GetTick
  2817. 1374 0050 7861 str r0, [r7, #20]
  2818. 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2819. 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  2820. 1375 .loc 1 1398 21 discriminator 2
  2821. 1376 0052 FB68 ldr r3, [r7, #12]
  2822. 1377 0054 2122 movs r2, #33
  2823. 1378 0056 83F84120 strb r2, [r3, #65]
  2824. 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  2825. 1379 .loc 1 1399 21 discriminator 2
  2826. 1380 005a FB68 ldr r3, [r7, #12]
  2827. 1381 005c 2022 movs r2, #32
  2828. 1382 005e 83F84220 strb r2, [r3, #66]
  2829. 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  2830. 1383 .loc 1 1400 21 discriminator 2
  2831. 1384 0062 FB68 ldr r3, [r7, #12]
  2832. 1385 0064 0022 movs r2, #0
  2833. 1386 0066 5A64 str r2, [r3, #68]
  2834. 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2835. 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  2836. 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  2837. 1387 .loc 1 1403 21 discriminator 2
  2838. 1388 0068 FB68 ldr r3, [r7, #12]
  2839. 1389 006a BA68 ldr r2, [r7, #8]
  2840. 1390 006c 5A62 str r2, [r3, #36]
  2841. 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  2842. 1391 .loc 1 1404 21 discriminator 2
  2843. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 50
  2844. 1392 006e FB68 ldr r3, [r7, #12]
  2845. 1393 0070 FA88 ldrh r2, [r7, #6] @ movhi
  2846. 1394 0072 5A85 strh r2, [r3, #42] @ movhi
  2847. 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  2848. 1395 .loc 1 1405 21 discriminator 2
  2849. 1396 0074 FB68 ldr r3, [r7, #12]
  2850. 1397 0076 0022 movs r2, #0
  2851. 1398 0078 5A63 str r2, [r3, #52]
  2852. 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2853. 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  2854. 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  2855. 1399 .loc 1 1408 9 discriminator 2
  2856. 1400 007a FB68 ldr r3, [r7, #12]
  2857. 1401 007c 1B68 ldr r3, [r3]
  2858. 1402 .loc 1 1408 25 discriminator 2
  2859. 1403 007e 5A68 ldr r2, [r3, #4]
  2860. 1404 .loc 1 1408 9 discriminator 2
  2861. 1405 0080 FB68 ldr r3, [r7, #12]
  2862. 1406 0082 1B68 ldr r3, [r3]
  2863. 1407 .loc 1 1408 25 discriminator 2
  2864. 1408 0084 22F40042 bic r2, r2, #32768
  2865. 1409 0088 5A60 str r2, [r3, #4]
  2866. 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2867. 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
  2868. 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
  2869. 1410 .loc 1 1411 19 discriminator 2
  2870. 1411 008a FB68 ldr r3, [r7, #12]
  2871. 1412 008c 1B6A ldr r3, [r3, #32]
  2872. 1413 .loc 1 1411 8 discriminator 2
  2873. 1414 008e B3F5003F cmp r3, #131072
  2874. 1415 0092 11D1 bne .L65
  2875. 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2876. 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  2877. 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  2878. 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  2879. 1416 .loc 1 1415 35
  2880. 1417 0094 FB68 ldr r3, [r7, #12]
  2881. 1418 0096 5B6A ldr r3, [r3, #36]
  2882. 1419 .loc 1 1415 30
  2883. 1420 0098 1A78 ldrb r2, [r3] @ zero_extendqisi2
  2884. 1421 .loc 1 1415 11
  2885. 1422 009a FB68 ldr r3, [r7, #12]
  2886. 1423 009c 1B68 ldr r3, [r3]
  2887. 1424 .loc 1 1415 28
  2888. 1425 009e 9A62 str r2, [r3, #40]
  2889. 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2890. 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  2891. 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  2892. 1426 .loc 1 1418 11
  2893. 1427 00a0 FB68 ldr r3, [r7, #12]
  2894. 1428 00a2 5B6A ldr r3, [r3, #36]
  2895. 1429 .loc 1 1418 21
  2896. 1430 00a4 5A1C adds r2, r3, #1
  2897. 1431 00a6 FB68 ldr r3, [r7, #12]
  2898. 1432 00a8 5A62 str r2, [r3, #36]
  2899. 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2900. 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  2901. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 51
  2902. 1433 .loc 1 1420 11
  2903. 1434 00aa FB68 ldr r3, [r7, #12]
  2904. 1435 00ac 5B8D ldrh r3, [r3, #42] @ movhi
  2905. 1436 00ae 9BB2 uxth r3, r3
  2906. 1437 .loc 1 1420 22
  2907. 1438 00b0 013B subs r3, r3, #1
  2908. 1439 00b2 9AB2 uxth r2, r3
  2909. 1440 00b4 FB68 ldr r3, [r7, #12]
  2910. 1441 00b6 5A85 strh r2, [r3, #42] @ movhi
  2911. 1442 .L65:
  2912. 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2913. 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2914. 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
  2915. 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
  2916. 1443 .loc 1 1424 9
  2917. 1444 00b8 7B69 ldr r3, [r7, #20]
  2918. 1445 00ba 0093 str r3, [sp]
  2919. 1446 00bc 3B68 ldr r3, [r7]
  2920. 1447 00be 0022 movs r2, #0
  2921. 1448 00c0 0821 movs r1, #8
  2922. 1449 00c2 F868 ldr r0, [r7, #12]
  2923. 1450 00c4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  2924. 1451 00c8 0346 mov r3, r0
  2925. 1452 .loc 1 1424 8
  2926. 1453 00ca 002B cmp r3, #0
  2927. 1454 00cc 0CD0 beq .L66
  2928. 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2929. 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  2930. 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  2931. 1455 .loc 1 1427 11
  2932. 1456 00ce FB68 ldr r3, [r7, #12]
  2933. 1457 00d0 1B68 ldr r3, [r3]
  2934. 1458 .loc 1 1427 27
  2935. 1459 00d2 5A68 ldr r2, [r3, #4]
  2936. 1460 .loc 1 1427 11
  2937. 1461 00d4 FB68 ldr r3, [r7, #12]
  2938. 1462 00d6 1B68 ldr r3, [r3]
  2939. 1463 .loc 1 1427 27
  2940. 1464 00d8 42F40042 orr r2, r2, #32768
  2941. 1465 00dc 5A60 str r2, [r3, #4]
  2942. 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2943. 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  2944. 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  2945. 1466 .loc 1 1430 7
  2946. 1467 00de F868 ldr r0, [r7, #12]
  2947. 1468 00e0 FFF7FEFF bl I2C_Flush_TXDR
  2948. 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2949. 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  2950. 1469 .loc 1 1432 14
  2951. 1470 00e4 0123 movs r3, #1
  2952. 1471 00e6 D4E0 b .L63
  2953. 1472 .L66:
  2954. 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  2955. 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2956. 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
  2957. 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  2958. 1473 .loc 1 1436 5
  2959. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 52
  2960. 1474 00e8 FB68 ldr r3, [r7, #12]
  2961. 1475 00ea 1B68 ldr r3, [r3]
  2962. 1476 00ec 0822 movs r2, #8
  2963. 1477 00ee DA61 str r2, [r3, #28]
  2964. 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  2965. 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
  2966. 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
  2967. 1478 .loc 1 1439 19
  2968. 1479 00f0 FB68 ldr r3, [r7, #12]
  2969. 1480 00f2 DB68 ldr r3, [r3, #12]
  2970. 1481 .loc 1 1439 8
  2971. 1482 00f4 022B cmp r3, #2
  2972. 1483 00f6 1BD1 bne .L67
  2973. 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2974. 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
  2975. 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
  2976. 1484 .loc 1 1442 11
  2977. 1485 00f8 7B69 ldr r3, [r7, #20]
  2978. 1486 00fa 0093 str r3, [sp]
  2979. 1487 00fc 3B68 ldr r3, [r7]
  2980. 1488 00fe 0022 movs r2, #0
  2981. 1489 0100 0821 movs r1, #8
  2982. 1490 0102 F868 ldr r0, [r7, #12]
  2983. 1491 0104 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  2984. 1492 0108 0346 mov r3, r0
  2985. 1493 .loc 1 1442 10
  2986. 1494 010a 002B cmp r3, #0
  2987. 1495 010c 0CD0 beq .L68
  2988. 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  2989. 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  2990. 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  2991. 1496 .loc 1 1445 13
  2992. 1497 010e FB68 ldr r3, [r7, #12]
  2993. 1498 0110 1B68 ldr r3, [r3]
  2994. 1499 .loc 1 1445 29
  2995. 1500 0112 5A68 ldr r2, [r3, #4]
  2996. 1501 .loc 1 1445 13
  2997. 1502 0114 FB68 ldr r3, [r7, #12]
  2998. 1503 0116 1B68 ldr r3, [r3]
  2999. 1504 .loc 1 1445 29
  3000. 1505 0118 42F40042 orr r2, r2, #32768
  3001. 1506 011c 5A60 str r2, [r3, #4]
  3002. 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3003. 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  3004. 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  3005. 1507 .loc 1 1448 9
  3006. 1508 011e F868 ldr r0, [r7, #12]
  3007. 1509 0120 FFF7FEFF bl I2C_Flush_TXDR
  3008. 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3009. 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3010. 1510 .loc 1 1450 16
  3011. 1511 0124 0123 movs r3, #1
  3012. 1512 0126 B4E0 b .L63
  3013. 1513 .L68:
  3014. 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3015. 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3016. 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
  3017. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 53
  3018. 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  3019. 1514 .loc 1 1454 7
  3020. 1515 0128 FB68 ldr r3, [r7, #12]
  3021. 1516 012a 1B68 ldr r3, [r3]
  3022. 1517 012c 0822 movs r2, #8
  3023. 1518 012e DA61 str r2, [r3, #28]
  3024. 1519 .L67:
  3025. 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3026. 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3027. 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
  3028. 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
  3029. 1520 .loc 1 1458 9
  3030. 1521 0130 7B69 ldr r3, [r7, #20]
  3031. 1522 0132 0093 str r3, [sp]
  3032. 1523 0134 3B68 ldr r3, [r7]
  3033. 1524 0136 0022 movs r2, #0
  3034. 1525 0138 4FF48031 mov r1, #65536
  3035. 1526 013c F868 ldr r0, [r7, #12]
  3036. 1527 013e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  3037. 1528 0142 0346 mov r3, r0
  3038. 1529 .loc 1 1458 8
  3039. 1530 0144 002B cmp r3, #0
  3040. 1531 0146 30D0 beq .L70
  3041. 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3042. 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3043. 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3044. 1532 .loc 1 1461 11
  3045. 1533 0148 FB68 ldr r3, [r7, #12]
  3046. 1534 014a 1B68 ldr r3, [r3]
  3047. 1535 .loc 1 1461 27
  3048. 1536 014c 5A68 ldr r2, [r3, #4]
  3049. 1537 .loc 1 1461 11
  3050. 1538 014e FB68 ldr r3, [r7, #12]
  3051. 1539 0150 1B68 ldr r3, [r3]
  3052. 1540 .loc 1 1461 27
  3053. 1541 0152 42F40042 orr r2, r2, #32768
  3054. 1542 0156 5A60 str r2, [r3, #4]
  3055. 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3056. 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  3057. 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  3058. 1543 .loc 1 1464 7
  3059. 1544 0158 F868 ldr r0, [r7, #12]
  3060. 1545 015a FFF7FEFF bl I2C_Flush_TXDR
  3061. 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3062. 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3063. 1546 .loc 1 1466 14
  3064. 1547 015e 0123 movs r3, #1
  3065. 1548 0160 97E0 b .L63
  3066. 1549 .L72:
  3067. 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3068. 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3069. 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
  3070. 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3071. 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
  3072. 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  3073. 1550 .loc 1 1472 11
  3074. 1551 0162 7A69 ldr r2, [r7, #20]
  3075. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 54
  3076. 1552 0164 3968 ldr r1, [r7]
  3077. 1553 0166 F868 ldr r0, [r7, #12]
  3078. 1554 0168 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
  3079. 1555 016c 0346 mov r3, r0
  3080. 1556 .loc 1 1472 10
  3081. 1557 016e 002B cmp r3, #0
  3082. 1558 0170 09D0 beq .L71
  3083. 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3084. 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3085. 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3086. 1559 .loc 1 1475 13
  3087. 1560 0172 FB68 ldr r3, [r7, #12]
  3088. 1561 0174 1B68 ldr r3, [r3]
  3089. 1562 .loc 1 1475 29
  3090. 1563 0176 5A68 ldr r2, [r3, #4]
  3091. 1564 .loc 1 1475 13
  3092. 1565 0178 FB68 ldr r3, [r7, #12]
  3093. 1566 017a 1B68 ldr r3, [r3]
  3094. 1567 .loc 1 1475 29
  3095. 1568 017c 42F40042 orr r2, r2, #32768
  3096. 1569 0180 5A60 str r2, [r3, #4]
  3097. 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3098. 1570 .loc 1 1476 16
  3099. 1571 0182 0123 movs r3, #1
  3100. 1572 0184 85E0 b .L63
  3101. 1573 .L71:
  3102. 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3103. 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3104. 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  3105. 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  3106. 1574 .loc 1 1480 35
  3107. 1575 0186 FB68 ldr r3, [r7, #12]
  3108. 1576 0188 5B6A ldr r3, [r3, #36]
  3109. 1577 .loc 1 1480 30
  3110. 1578 018a 1A78 ldrb r2, [r3] @ zero_extendqisi2
  3111. 1579 .loc 1 1480 11
  3112. 1580 018c FB68 ldr r3, [r7, #12]
  3113. 1581 018e 1B68 ldr r3, [r3]
  3114. 1582 .loc 1 1480 28
  3115. 1583 0190 9A62 str r2, [r3, #40]
  3116. 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3117. 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  3118. 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  3119. 1584 .loc 1 1483 11
  3120. 1585 0192 FB68 ldr r3, [r7, #12]
  3121. 1586 0194 5B6A ldr r3, [r3, #36]
  3122. 1587 .loc 1 1483 21
  3123. 1588 0196 5A1C adds r2, r3, #1
  3124. 1589 0198 FB68 ldr r3, [r7, #12]
  3125. 1590 019a 5A62 str r2, [r3, #36]
  3126. 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3127. 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  3128. 1591 .loc 1 1485 11
  3129. 1592 019c FB68 ldr r3, [r7, #12]
  3130. 1593 019e 5B8D ldrh r3, [r3, #42] @ movhi
  3131. 1594 01a0 9BB2 uxth r3, r3
  3132. 1595 .loc 1 1485 22
  3133. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 55
  3134. 1596 01a2 013B subs r3, r3, #1
  3135. 1597 01a4 9AB2 uxth r2, r3
  3136. 1598 01a6 FB68 ldr r3, [r7, #12]
  3137. 1599 01a8 5A85 strh r2, [r3, #42] @ movhi
  3138. 1600 .L70:
  3139. 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3140. 1601 .loc 1 1469 16
  3141. 1602 01aa FB68 ldr r3, [r7, #12]
  3142. 1603 01ac 5B8D ldrh r3, [r3, #42] @ movhi
  3143. 1604 01ae 9BB2 uxth r3, r3
  3144. 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3145. 1605 .loc 1 1469 11
  3146. 1606 01b0 002B cmp r3, #0
  3147. 1607 01b2 D6D1 bne .L72
  3148. 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3149. 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3150. 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until AF flag is set */
  3151. 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart);
  3152. 1608 .loc 1 1489 13
  3153. 1609 01b4 7B69 ldr r3, [r7, #20]
  3154. 1610 01b6 0093 str r3, [sp]
  3155. 1611 01b8 3B68 ldr r3, [r7]
  3156. 1612 01ba 0022 movs r2, #0
  3157. 1613 01bc 1021 movs r1, #16
  3158. 1614 01be F868 ldr r0, [r7, #12]
  3159. 1615 01c0 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  3160. 1616 01c4 0346 mov r3, r0
  3161. 1617 01c6 FB74 strb r3, [r7, #19]
  3162. 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3163. 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (error != HAL_OK)
  3164. 1618 .loc 1 1491 8
  3165. 1619 01c8 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
  3166. 1620 01ca 002B cmp r3, #0
  3167. 1621 01cc 17D0 beq .L73
  3168. 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3169. 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
  3170. 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
  3171. 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
  3172. 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3173. 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount;
  3174. 1622 .loc 1 1497 20
  3175. 1623 01ce FB68 ldr r3, [r7, #12]
  3176. 1624 01d0 5B8D ldrh r3, [r3, #42] @ movhi
  3177. 1625 01d2 3B82 strh r3, [r7, #16] @ movhi
  3178. 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
  3179. 1626 .loc 1 1498 16
  3180. 1627 01d4 FB68 ldr r3, [r7, #12]
  3181. 1628 01d6 5B6C ldr r3, [r3, #68]
  3182. 1629 .loc 1 1498 10
  3183. 1630 01d8 042B cmp r3, #4
  3184. 1631 01da 06D1 bne .L74
  3185. 1632 .loc 1 1498 49 discriminator 1
  3186. 1633 01dc 3B8A ldrh r3, [r7, #16]
  3187. 1634 01de 002B cmp r3, #0
  3188. 1635 01e0 03D1 bne .L74
  3189. 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3190. 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset ErrorCode to NONE */
  3191. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 56
  3192. 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  3193. 1636 .loc 1 1501 25
  3194. 1637 01e2 FB68 ldr r3, [r7, #12]
  3195. 1638 01e4 0022 movs r2, #0
  3196. 1639 01e6 5A64 str r2, [r3, #68]
  3197. 1640 01e8 26E0 b .L75
  3198. 1641 .L74:
  3199. 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3200. 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  3201. 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3202. 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3203. 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3204. 1642 .loc 1 1506 13
  3205. 1643 01ea FB68 ldr r3, [r7, #12]
  3206. 1644 01ec 1B68 ldr r3, [r3]
  3207. 1645 .loc 1 1506 29
  3208. 1646 01ee 5A68 ldr r2, [r3, #4]
  3209. 1647 .loc 1 1506 13
  3210. 1648 01f0 FB68 ldr r3, [r7, #12]
  3211. 1649 01f2 1B68 ldr r3, [r3]
  3212. 1650 .loc 1 1506 29
  3213. 1651 01f4 42F40042 orr r2, r2, #32768
  3214. 1652 01f8 5A60 str r2, [r3, #4]
  3215. 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3216. 1653 .loc 1 1507 16
  3217. 1654 01fa 0123 movs r3, #1
  3218. 1655 01fc 49E0 b .L63
  3219. 1656 .L73:
  3220. 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3221. 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3222. 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  3223. 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3224. 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  3225. 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  3226. 1657 .loc 1 1513 7
  3227. 1658 01fe F868 ldr r0, [r7, #12]
  3228. 1659 0200 FFF7FEFF bl I2C_Flush_TXDR
  3229. 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3230. 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear AF flag */
  3231. 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  3232. 1660 .loc 1 1516 7
  3233. 1661 0204 FB68 ldr r3, [r7, #12]
  3234. 1662 0206 1B68 ldr r3, [r3]
  3235. 1663 0208 1022 movs r2, #16
  3236. 1664 020a DA61 str r2, [r3, #28]
  3237. 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3238. 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
  3239. 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  3240. 1665 .loc 1 1519 11
  3241. 1666 020c 7A69 ldr r2, [r7, #20]
  3242. 1667 020e 3968 ldr r1, [r7]
  3243. 1668 0210 F868 ldr r0, [r7, #12]
  3244. 1669 0212 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
  3245. 1670 0216 0346 mov r3, r0
  3246. 1671 .loc 1 1519 10
  3247. 1672 0218 002B cmp r3, #0
  3248. 1673 021a 09D0 beq .L76
  3249. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 57
  3250. 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3251. 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3252. 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3253. 1674 .loc 1 1522 13
  3254. 1675 021c FB68 ldr r3, [r7, #12]
  3255. 1676 021e 1B68 ldr r3, [r3]
  3256. 1677 .loc 1 1522 29
  3257. 1678 0220 5A68 ldr r2, [r3, #4]
  3258. 1679 .loc 1 1522 13
  3259. 1680 0222 FB68 ldr r3, [r7, #12]
  3260. 1681 0224 1B68 ldr r3, [r3]
  3261. 1682 .loc 1 1522 29
  3262. 1683 0226 42F40042 orr r2, r2, #32768
  3263. 1684 022a 5A60 str r2, [r3, #4]
  3264. 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3265. 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3266. 1685 .loc 1 1524 16
  3267. 1686 022c 0123 movs r3, #1
  3268. 1687 022e 30E0 b .L63
  3269. 1688 .L76:
  3270. 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3271. 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3272. 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
  3273. 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  3274. 1689 .loc 1 1528 7
  3275. 1690 0230 FB68 ldr r3, [r7, #12]
  3276. 1691 0232 1B68 ldr r3, [r3]
  3277. 1692 0234 2022 movs r2, #32
  3278. 1693 0236 DA61 str r2, [r3, #28]
  3279. 1694 .L75:
  3280. 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3281. 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3282. 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
  3283. 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
  3284. 1695 .loc 1 1532 9
  3285. 1696 0238 7B69 ldr r3, [r7, #20]
  3286. 1697 023a 0093 str r3, [sp]
  3287. 1698 023c 3B68 ldr r3, [r7]
  3288. 1699 023e 0122 movs r2, #1
  3289. 1700 0240 4FF40041 mov r1, #32768
  3290. 1701 0244 F868 ldr r0, [r7, #12]
  3291. 1702 0246 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  3292. 1703 024a 0346 mov r3, r0
  3293. 1704 .loc 1 1532 8
  3294. 1705 024c 002B cmp r3, #0
  3295. 1706 024e 09D0 beq .L77
  3296. 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3297. 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3298. 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3299. 1707 .loc 1 1535 11
  3300. 1708 0250 FB68 ldr r3, [r7, #12]
  3301. 1709 0252 1B68 ldr r3, [r3]
  3302. 1710 .loc 1 1535 27
  3303. 1711 0254 5A68 ldr r2, [r3, #4]
  3304. 1712 .loc 1 1535 11
  3305. 1713 0256 FB68 ldr r3, [r7, #12]
  3306. 1714 0258 1B68 ldr r3, [r3]
  3307. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 58
  3308. 1715 .loc 1 1535 27
  3309. 1716 025a 42F40042 orr r2, r2, #32768
  3310. 1717 025e 5A60 str r2, [r3, #4]
  3311. 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3312. 1718 .loc 1 1536 14
  3313. 1719 0260 0123 movs r3, #1
  3314. 1720 0262 16E0 b .L63
  3315. 1721 .L77:
  3316. 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3317. 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3318. 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3319. 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3320. 1722 .loc 1 1540 9
  3321. 1723 0264 FB68 ldr r3, [r7, #12]
  3322. 1724 0266 1B68 ldr r3, [r3]
  3323. 1725 .loc 1 1540 25
  3324. 1726 0268 5A68 ldr r2, [r3, #4]
  3325. 1727 .loc 1 1540 9
  3326. 1728 026a FB68 ldr r3, [r7, #12]
  3327. 1729 026c 1B68 ldr r3, [r3]
  3328. 1730 .loc 1 1540 25
  3329. 1731 026e 42F40042 orr r2, r2, #32768
  3330. 1732 0272 5A60 str r2, [r3, #4]
  3331. 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3332. 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  3333. 1733 .loc 1 1542 17
  3334. 1734 0274 FB68 ldr r3, [r7, #12]
  3335. 1735 0276 2022 movs r2, #32
  3336. 1736 0278 83F84120 strb r2, [r3, #65]
  3337. 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  3338. 1737 .loc 1 1543 17
  3339. 1738 027c FB68 ldr r3, [r7, #12]
  3340. 1739 027e 0022 movs r2, #0
  3341. 1740 0280 83F84220 strb r2, [r3, #66]
  3342. 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3343. 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  3344. 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  3345. 1741 .loc 1 1546 5
  3346. 1742 0284 FB68 ldr r3, [r7, #12]
  3347. 1743 0286 0022 movs r2, #0
  3348. 1744 0288 83F84020 strb r2, [r3, #64]
  3349. 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3350. 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  3351. 1745 .loc 1 1548 12
  3352. 1746 028c 0023 movs r3, #0
  3353. 1747 028e 00E0 b .L63
  3354. 1748 .L60:
  3355. 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3356. 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  3357. 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3358. 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  3359. 1749 .loc 1 1552 12
  3360. 1750 0290 0223 movs r3, #2
  3361. 1751 .L63:
  3362. 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3363. 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3364. 1752 .loc 1 1554 1
  3365. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 59
  3366. 1753 0292 1846 mov r0, r3
  3367. 1754 0294 1837 adds r7, r7, #24
  3368. 1755 .LCFI35:
  3369. 1756 .cfi_def_cfa_offset 8
  3370. 1757 0296 BD46 mov sp, r7
  3371. 1758 .LCFI36:
  3372. 1759 .cfi_def_cfa_register 13
  3373. 1760 @ sp needed
  3374. 1761 0298 80BD pop {r7, pc}
  3375. 1762 .cfi_endproc
  3376. 1763 .LFE136:
  3377. 1765 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
  3378. 1766 .align 1
  3379. 1767 .global HAL_I2C_Slave_Receive
  3380. 1768 .syntax unified
  3381. 1769 .thumb
  3382. 1770 .thumb_func
  3383. 1772 HAL_I2C_Slave_Receive:
  3384. 1773 .LFB137:
  3385. 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3386. 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  3387. 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
  3388. 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  3389. 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  3390. 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  3391. 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  3392. 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  3393. 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  3394. 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  3395. 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
  3396. 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
  3397. 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3398. 1774 .loc 1 1567 1
  3399. 1775 .cfi_startproc
  3400. 1776 @ args = 0, pretend = 0, frame = 24
  3401. 1777 @ frame_needed = 1, uses_anonymous_args = 0
  3402. 1778 0000 80B5 push {r7, lr}
  3403. 1779 .LCFI37:
  3404. 1780 .cfi_def_cfa_offset 8
  3405. 1781 .cfi_offset 7, -8
  3406. 1782 .cfi_offset 14, -4
  3407. 1783 0002 88B0 sub sp, sp, #32
  3408. 1784 .LCFI38:
  3409. 1785 .cfi_def_cfa_offset 40
  3410. 1786 0004 02AF add r7, sp, #8
  3411. 1787 .LCFI39:
  3412. 1788 .cfi_def_cfa 7, 32
  3413. 1789 0006 F860 str r0, [r7, #12]
  3414. 1790 0008 B960 str r1, [r7, #8]
  3415. 1791 000a 3B60 str r3, [r7]
  3416. 1792 000c 1346 mov r3, r2 @ movhi
  3417. 1793 000e FB80 strh r3, [r7, #6] @ movhi
  3418. 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
  3419. 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3420. 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  3421. 1794 .loc 1 1570 11
  3422. 1795 0010 FB68 ldr r3, [r7, #12]
  3423. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 60
  3424. 1796 0012 93F84130 ldrb r3, [r3, #65]
  3425. 1797 0016 DBB2 uxtb r3, r3
  3426. 1798 .loc 1 1570 6
  3427. 1799 0018 202B cmp r3, #32
  3428. 1800 001a 40F0FC80 bne .L79
  3429. 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3430. 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  3431. 1801 .loc 1 1572 8
  3432. 1802 001e BB68 ldr r3, [r7, #8]
  3433. 1803 0020 002B cmp r3, #0
  3434. 1804 0022 02D0 beq .L80
  3435. 1805 .loc 1 1572 25 discriminator 1
  3436. 1806 0024 FB88 ldrh r3, [r7, #6]
  3437. 1807 0026 002B cmp r3, #0
  3438. 1808 0028 05D1 bne .L81
  3439. 1809 .L80:
  3440. 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3441. 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  3442. 1810 .loc 1 1574 23
  3443. 1811 002a FB68 ldr r3, [r7, #12]
  3444. 1812 002c 4FF40072 mov r2, #512
  3445. 1813 0030 5A64 str r2, [r3, #68]
  3446. 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3447. 1814 .loc 1 1575 15
  3448. 1815 0032 0123 movs r3, #1
  3449. 1816 0034 F0E0 b .L82
  3450. 1817 .L81:
  3451. 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3452. 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  3453. 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  3454. 1818 .loc 1 1578 5
  3455. 1819 0036 FB68 ldr r3, [r7, #12]
  3456. 1820 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  3457. 1821 003c 012B cmp r3, #1
  3458. 1822 003e 01D1 bne .L83
  3459. 1823 .loc 1 1578 5 is_stmt 0 discriminator 1
  3460. 1824 0040 0223 movs r3, #2
  3461. 1825 0042 E9E0 b .L82
  3462. 1826 .L83:
  3463. 1827 .loc 1 1578 5 discriminator 2
  3464. 1828 0044 FB68 ldr r3, [r7, #12]
  3465. 1829 0046 0122 movs r2, #1
  3466. 1830 0048 83F84020 strb r2, [r3, #64]
  3467. 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3468. 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
  3469. 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  3470. 1831 .loc 1 1581 17 is_stmt 1 discriminator 2
  3471. 1832 004c FFF7FEFF bl HAL_GetTick
  3472. 1833 0050 7861 str r0, [r7, #20]
  3473. 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3474. 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  3475. 1834 .loc 1 1583 21 discriminator 2
  3476. 1835 0052 FB68 ldr r3, [r7, #12]
  3477. 1836 0054 2222 movs r2, #34
  3478. 1837 0056 83F84120 strb r2, [r3, #65]
  3479. 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  3480. 1838 .loc 1 1584 21 discriminator 2
  3481. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 61
  3482. 1839 005a FB68 ldr r3, [r7, #12]
  3483. 1840 005c 2022 movs r2, #32
  3484. 1841 005e 83F84220 strb r2, [r3, #66]
  3485. 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  3486. 1842 .loc 1 1585 21 discriminator 2
  3487. 1843 0062 FB68 ldr r3, [r7, #12]
  3488. 1844 0064 0022 movs r2, #0
  3489. 1845 0066 5A64 str r2, [r3, #68]
  3490. 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3491. 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  3492. 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  3493. 1846 .loc 1 1588 21 discriminator 2
  3494. 1847 0068 FB68 ldr r3, [r7, #12]
  3495. 1848 006a BA68 ldr r2, [r7, #8]
  3496. 1849 006c 5A62 str r2, [r3, #36]
  3497. 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  3498. 1850 .loc 1 1589 21 discriminator 2
  3499. 1851 006e FB68 ldr r3, [r7, #12]
  3500. 1852 0070 FA88 ldrh r2, [r7, #6] @ movhi
  3501. 1853 0072 5A85 strh r2, [r3, #42] @ movhi
  3502. 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  3503. 1854 .loc 1 1590 26 discriminator 2
  3504. 1855 0074 FB68 ldr r3, [r7, #12]
  3505. 1856 0076 5B8D ldrh r3, [r3, #42] @ movhi
  3506. 1857 0078 9AB2 uxth r2, r3
  3507. 1858 .loc 1 1590 20 discriminator 2
  3508. 1859 007a FB68 ldr r3, [r7, #12]
  3509. 1860 007c 1A85 strh r2, [r3, #40] @ movhi
  3510. 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  3511. 1861 .loc 1 1591 21 discriminator 2
  3512. 1862 007e FB68 ldr r3, [r7, #12]
  3513. 1863 0080 0022 movs r2, #0
  3514. 1864 0082 5A63 str r2, [r3, #52]
  3515. 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3516. 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  3517. 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  3518. 1865 .loc 1 1594 9 discriminator 2
  3519. 1866 0084 FB68 ldr r3, [r7, #12]
  3520. 1867 0086 1B68 ldr r3, [r3]
  3521. 1868 .loc 1 1594 25 discriminator 2
  3522. 1869 0088 5A68 ldr r2, [r3, #4]
  3523. 1870 .loc 1 1594 9 discriminator 2
  3524. 1871 008a FB68 ldr r3, [r7, #12]
  3525. 1872 008c 1B68 ldr r3, [r3]
  3526. 1873 .loc 1 1594 25 discriminator 2
  3527. 1874 008e 22F40042 bic r2, r2, #32768
  3528. 1875 0092 5A60 str r2, [r3, #4]
  3529. 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3530. 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
  3531. 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
  3532. 1876 .loc 1 1597 9 discriminator 2
  3533. 1877 0094 7B69 ldr r3, [r7, #20]
  3534. 1878 0096 0093 str r3, [sp]
  3535. 1879 0098 3B68 ldr r3, [r7]
  3536. 1880 009a 0022 movs r2, #0
  3537. 1881 009c 0821 movs r1, #8
  3538. 1882 009e F868 ldr r0, [r7, #12]
  3539. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 62
  3540. 1883 00a0 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  3541. 1884 00a4 0346 mov r3, r0
  3542. 1885 .loc 1 1597 8 discriminator 2
  3543. 1886 00a6 002B cmp r3, #0
  3544. 1887 00a8 09D0 beq .L84
  3545. 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3546. 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3547. 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3548. 1888 .loc 1 1600 11
  3549. 1889 00aa FB68 ldr r3, [r7, #12]
  3550. 1890 00ac 1B68 ldr r3, [r3]
  3551. 1891 .loc 1 1600 27
  3552. 1892 00ae 5A68 ldr r2, [r3, #4]
  3553. 1893 .loc 1 1600 11
  3554. 1894 00b0 FB68 ldr r3, [r7, #12]
  3555. 1895 00b2 1B68 ldr r3, [r3]
  3556. 1896 .loc 1 1600 27
  3557. 1897 00b4 42F40042 orr r2, r2, #32768
  3558. 1898 00b8 5A60 str r2, [r3, #4]
  3559. 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3560. 1899 .loc 1 1601 14
  3561. 1900 00ba 0123 movs r3, #1
  3562. 1901 00bc ACE0 b .L82
  3563. 1902 .L84:
  3564. 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3565. 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3566. 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
  3567. 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  3568. 1903 .loc 1 1605 5
  3569. 1904 00be FB68 ldr r3, [r7, #12]
  3570. 1905 00c0 1B68 ldr r3, [r3]
  3571. 1906 00c2 0822 movs r2, #8
  3572. 1907 00c4 DA61 str r2, [r3, #28]
  3573. 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3574. 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
  3575. 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
  3576. 1908 .loc 1 1608 9
  3577. 1909 00c6 7B69 ldr r3, [r7, #20]
  3578. 1910 00c8 0093 str r3, [sp]
  3579. 1911 00ca 3B68 ldr r3, [r7]
  3580. 1912 00cc 0122 movs r2, #1
  3581. 1913 00ce 4FF48031 mov r1, #65536
  3582. 1914 00d2 F868 ldr r0, [r7, #12]
  3583. 1915 00d4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  3584. 1916 00d8 0346 mov r3, r0
  3585. 1917 .loc 1 1608 8
  3586. 1918 00da 002B cmp r3, #0
  3587. 1919 00dc 54D0 beq .L86
  3588. 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3589. 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3590. 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3591. 1920 .loc 1 1611 11
  3592. 1921 00de FB68 ldr r3, [r7, #12]
  3593. 1922 00e0 1B68 ldr r3, [r3]
  3594. 1923 .loc 1 1611 27
  3595. 1924 00e2 5A68 ldr r2, [r3, #4]
  3596. 1925 .loc 1 1611 11
  3597. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 63
  3598. 1926 00e4 FB68 ldr r3, [r7, #12]
  3599. 1927 00e6 1B68 ldr r3, [r3]
  3600. 1928 .loc 1 1611 27
  3601. 1929 00e8 42F40042 orr r2, r2, #32768
  3602. 1930 00ec 5A60 str r2, [r3, #4]
  3603. 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3604. 1931 .loc 1 1612 14
  3605. 1932 00ee 0123 movs r3, #1
  3606. 1933 00f0 92E0 b .L82
  3607. 1934 .L89:
  3608. 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3609. 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3610. 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
  3611. 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3612. 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
  3613. 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  3614. 1935 .loc 1 1618 11
  3615. 1936 00f2 7A69 ldr r2, [r7, #20]
  3616. 1937 00f4 3968 ldr r1, [r7]
  3617. 1938 00f6 F868 ldr r0, [r7, #12]
  3618. 1939 00f8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
  3619. 1940 00fc 0346 mov r3, r0
  3620. 1941 .loc 1 1618 10
  3621. 1942 00fe 002B cmp r3, #0
  3622. 1943 0100 29D0 beq .L87
  3623. 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3624. 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3625. 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3626. 1944 .loc 1 1621 13
  3627. 1945 0102 FB68 ldr r3, [r7, #12]
  3628. 1946 0104 1B68 ldr r3, [r3]
  3629. 1947 .loc 1 1621 29
  3630. 1948 0106 5A68 ldr r2, [r3, #4]
  3631. 1949 .loc 1 1621 13
  3632. 1950 0108 FB68 ldr r3, [r7, #12]
  3633. 1951 010a 1B68 ldr r3, [r3]
  3634. 1952 .loc 1 1621 29
  3635. 1953 010c 42F40042 orr r2, r2, #32768
  3636. 1954 0110 5A60 str r2, [r3, #4]
  3637. 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3638. 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
  3639. 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
  3640. 1955 .loc 1 1624 13
  3641. 1956 0112 FB68 ldr r3, [r7, #12]
  3642. 1957 0114 1B68 ldr r3, [r3]
  3643. 1958 0116 9B69 ldr r3, [r3, #24]
  3644. 1959 0118 03F00403 and r3, r3, #4
  3645. 1960 .loc 1 1624 12
  3646. 1961 011c 042B cmp r3, #4
  3647. 1962 011e 18D1 bne .L88
  3648. 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3649. 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  3650. 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  3651. 1963 .loc 1 1627 42
  3652. 1964 0120 FB68 ldr r3, [r7, #12]
  3653. 1965 0122 1B68 ldr r3, [r3]
  3654. 1966 .loc 1 1627 52
  3655. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 64
  3656. 1967 0124 5A6A ldr r2, [r3, #36]
  3657. 1968 .loc 1 1627 16
  3658. 1969 0126 FB68 ldr r3, [r7, #12]
  3659. 1970 0128 5B6A ldr r3, [r3, #36]
  3660. 1971 .loc 1 1627 29
  3661. 1972 012a D2B2 uxtb r2, r2
  3662. 1973 .loc 1 1627 27
  3663. 1974 012c 1A70 strb r2, [r3]
  3664. 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3665. 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  3666. 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  3667. 1975 .loc 1 1630 15
  3668. 1976 012e FB68 ldr r3, [r7, #12]
  3669. 1977 0130 5B6A ldr r3, [r3, #36]
  3670. 1978 .loc 1 1630 25
  3671. 1979 0132 5A1C adds r2, r3, #1
  3672. 1980 0134 FB68 ldr r3, [r7, #12]
  3673. 1981 0136 5A62 str r2, [r3, #36]
  3674. 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3675. 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  3676. 1982 .loc 1 1632 15
  3677. 1983 0138 FB68 ldr r3, [r7, #12]
  3678. 1984 013a 5B8D ldrh r3, [r3, #42] @ movhi
  3679. 1985 013c 9BB2 uxth r3, r3
  3680. 1986 .loc 1 1632 26
  3681. 1987 013e 013B subs r3, r3, #1
  3682. 1988 0140 9AB2 uxth r2, r3
  3683. 1989 0142 FB68 ldr r3, [r7, #12]
  3684. 1990 0144 5A85 strh r2, [r3, #42] @ movhi
  3685. 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  3686. 1991 .loc 1 1633 15
  3687. 1992 0146 FB68 ldr r3, [r7, #12]
  3688. 1993 0148 1B8D ldrh r3, [r3, #40]
  3689. 1994 .loc 1 1633 25
  3690. 1995 014a 013B subs r3, r3, #1
  3691. 1996 014c 9AB2 uxth r2, r3
  3692. 1997 014e FB68 ldr r3, [r7, #12]
  3693. 1998 0150 1A85 strh r2, [r3, #40] @ movhi
  3694. 1999 .L88:
  3695. 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3696. 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3697. 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3698. 2000 .loc 1 1636 16
  3699. 2001 0152 0123 movs r3, #1
  3700. 2002 0154 60E0 b .L82
  3701. 2003 .L87:
  3702. 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3703. 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3704. 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  3705. 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  3706. 2004 .loc 1 1640 38
  3707. 2005 0156 FB68 ldr r3, [r7, #12]
  3708. 2006 0158 1B68 ldr r3, [r3]
  3709. 2007 .loc 1 1640 48
  3710. 2008 015a 5A6A ldr r2, [r3, #36]
  3711. 2009 .loc 1 1640 12
  3712. 2010 015c FB68 ldr r3, [r7, #12]
  3713. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 65
  3714. 2011 015e 5B6A ldr r3, [r3, #36]
  3715. 2012 .loc 1 1640 25
  3716. 2013 0160 D2B2 uxtb r2, r2
  3717. 2014 .loc 1 1640 23
  3718. 2015 0162 1A70 strb r2, [r3]
  3719. 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3720. 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  3721. 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  3722. 2016 .loc 1 1643 11
  3723. 2017 0164 FB68 ldr r3, [r7, #12]
  3724. 2018 0166 5B6A ldr r3, [r3, #36]
  3725. 2019 .loc 1 1643 21
  3726. 2020 0168 5A1C adds r2, r3, #1
  3727. 2021 016a FB68 ldr r3, [r7, #12]
  3728. 2022 016c 5A62 str r2, [r3, #36]
  3729. 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3730. 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  3731. 2023 .loc 1 1645 11
  3732. 2024 016e FB68 ldr r3, [r7, #12]
  3733. 2025 0170 5B8D ldrh r3, [r3, #42] @ movhi
  3734. 2026 0172 9BB2 uxth r3, r3
  3735. 2027 .loc 1 1645 22
  3736. 2028 0174 013B subs r3, r3, #1
  3737. 2029 0176 9AB2 uxth r2, r3
  3738. 2030 0178 FB68 ldr r3, [r7, #12]
  3739. 2031 017a 5A85 strh r2, [r3, #42] @ movhi
  3740. 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  3741. 2032 .loc 1 1646 11
  3742. 2033 017c FB68 ldr r3, [r7, #12]
  3743. 2034 017e 1B8D ldrh r3, [r3, #40]
  3744. 2035 .loc 1 1646 21
  3745. 2036 0180 013B subs r3, r3, #1
  3746. 2037 0182 9AB2 uxth r2, r3
  3747. 2038 0184 FB68 ldr r3, [r7, #12]
  3748. 2039 0186 1A85 strh r2, [r3, #40] @ movhi
  3749. 2040 .L86:
  3750. 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3751. 2041 .loc 1 1615 16
  3752. 2042 0188 FB68 ldr r3, [r7, #12]
  3753. 2043 018a 5B8D ldrh r3, [r3, #42] @ movhi
  3754. 2044 018c 9BB2 uxth r3, r3
  3755. 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3756. 2045 .loc 1 1615 11
  3757. 2046 018e 002B cmp r3, #0
  3758. 2047 0190 AFD1 bne .L89
  3759. 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3760. 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3761. 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
  3762. 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  3763. 2048 .loc 1 1650 9
  3764. 2049 0192 7A69 ldr r2, [r7, #20]
  3765. 2050 0194 3968 ldr r1, [r7]
  3766. 2051 0196 F868 ldr r0, [r7, #12]
  3767. 2052 0198 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
  3768. 2053 019c 0346 mov r3, r0
  3769. 2054 .loc 1 1650 8
  3770. 2055 019e 002B cmp r3, #0
  3771. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 66
  3772. 2056 01a0 09D0 beq .L90
  3773. 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3774. 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3775. 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3776. 2057 .loc 1 1653 11
  3777. 2058 01a2 FB68 ldr r3, [r7, #12]
  3778. 2059 01a4 1B68 ldr r3, [r3]
  3779. 2060 .loc 1 1653 27
  3780. 2061 01a6 5A68 ldr r2, [r3, #4]
  3781. 2062 .loc 1 1653 11
  3782. 2063 01a8 FB68 ldr r3, [r7, #12]
  3783. 2064 01aa 1B68 ldr r3, [r3]
  3784. 2065 .loc 1 1653 27
  3785. 2066 01ac 42F40042 orr r2, r2, #32768
  3786. 2067 01b0 5A60 str r2, [r3, #4]
  3787. 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3788. 2068 .loc 1 1654 14
  3789. 2069 01b2 0123 movs r3, #1
  3790. 2070 01b4 30E0 b .L82
  3791. 2071 .L90:
  3792. 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3793. 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3794. 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
  3795. 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  3796. 2072 .loc 1 1658 5
  3797. 2073 01b6 FB68 ldr r3, [r7, #12]
  3798. 2074 01b8 1B68 ldr r3, [r3]
  3799. 2075 01ba 2022 movs r2, #32
  3800. 2076 01bc DA61 str r2, [r3, #28]
  3801. 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3802. 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
  3803. 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
  3804. 2077 .loc 1 1661 9
  3805. 2078 01be 7B69 ldr r3, [r7, #20]
  3806. 2079 01c0 0093 str r3, [sp]
  3807. 2080 01c2 3B68 ldr r3, [r7]
  3808. 2081 01c4 0122 movs r2, #1
  3809. 2082 01c6 4FF40041 mov r1, #32768
  3810. 2083 01ca F868 ldr r0, [r7, #12]
  3811. 2084 01cc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  3812. 2085 01d0 0346 mov r3, r0
  3813. 2086 .loc 1 1661 8
  3814. 2087 01d2 002B cmp r3, #0
  3815. 2088 01d4 09D0 beq .L91
  3816. 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3817. 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3818. 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3819. 2089 .loc 1 1664 11
  3820. 2090 01d6 FB68 ldr r3, [r7, #12]
  3821. 2091 01d8 1B68 ldr r3, [r3]
  3822. 2092 .loc 1 1664 27
  3823. 2093 01da 5A68 ldr r2, [r3, #4]
  3824. 2094 .loc 1 1664 11
  3825. 2095 01dc FB68 ldr r3, [r7, #12]
  3826. 2096 01de 1B68 ldr r3, [r3]
  3827. 2097 .loc 1 1664 27
  3828. 2098 01e0 42F40042 orr r2, r2, #32768
  3829. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 67
  3830. 2099 01e4 5A60 str r2, [r3, #4]
  3831. 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  3832. 2100 .loc 1 1665 14
  3833. 2101 01e6 0123 movs r3, #1
  3834. 2102 01e8 16E0 b .L82
  3835. 2103 .L91:
  3836. 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3837. 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3838. 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  3839. 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  3840. 2104 .loc 1 1669 9
  3841. 2105 01ea FB68 ldr r3, [r7, #12]
  3842. 2106 01ec 1B68 ldr r3, [r3]
  3843. 2107 .loc 1 1669 25
  3844. 2108 01ee 5A68 ldr r2, [r3, #4]
  3845. 2109 .loc 1 1669 9
  3846. 2110 01f0 FB68 ldr r3, [r7, #12]
  3847. 2111 01f2 1B68 ldr r3, [r3]
  3848. 2112 .loc 1 1669 25
  3849. 2113 01f4 42F40042 orr r2, r2, #32768
  3850. 2114 01f8 5A60 str r2, [r3, #4]
  3851. 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3852. 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  3853. 2115 .loc 1 1671 17
  3854. 2116 01fa FB68 ldr r3, [r7, #12]
  3855. 2117 01fc 2022 movs r2, #32
  3856. 2118 01fe 83F84120 strb r2, [r3, #65]
  3857. 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  3858. 2119 .loc 1 1672 17
  3859. 2120 0202 FB68 ldr r3, [r7, #12]
  3860. 2121 0204 0022 movs r2, #0
  3861. 2122 0206 83F84220 strb r2, [r3, #66]
  3862. 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3863. 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  3864. 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  3865. 2123 .loc 1 1675 5
  3866. 2124 020a FB68 ldr r3, [r7, #12]
  3867. 2125 020c 0022 movs r2, #0
  3868. 2126 020e 83F84020 strb r2, [r3, #64]
  3869. 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3870. 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  3871. 2127 .loc 1 1677 12
  3872. 2128 0212 0023 movs r3, #0
  3873. 2129 0214 00E0 b .L82
  3874. 2130 .L79:
  3875. 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3876. 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  3877. 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3878. 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  3879. 2131 .loc 1 1681 12
  3880. 2132 0216 0223 movs r3, #2
  3881. 2133 .L82:
  3882. 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3883. 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3884. 2134 .loc 1 1683 1
  3885. 2135 0218 1846 mov r0, r3
  3886. 2136 021a 1837 adds r7, r7, #24
  3887. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 68
  3888. 2137 .LCFI40:
  3889. 2138 .cfi_def_cfa_offset 8
  3890. 2139 021c BD46 mov sp, r7
  3891. 2140 .LCFI41:
  3892. 2141 .cfi_def_cfa_register 13
  3893. 2142 @ sp needed
  3894. 2143 021e 80BD pop {r7, pc}
  3895. 2144 .cfi_endproc
  3896. 2145 .LFE137:
  3897. 2147 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
  3898. 2148 .align 1
  3899. 2149 .global HAL_I2C_Master_Transmit_IT
  3900. 2150 .syntax unified
  3901. 2151 .thumb
  3902. 2152 .thumb_func
  3903. 2154 HAL_I2C_Master_Transmit_IT:
  3904. 2155 .LFB138:
  3905. 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3906. 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  3907. 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
  3908. 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  3909. 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  3910. 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  3911. 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  3912. 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  3913. 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  3914. 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  3915. 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  3916. 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
  3917. 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
  3918. 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3919. 2156 .loc 1 1697 1
  3920. 2157 .cfi_startproc
  3921. 2158 @ args = 0, pretend = 0, frame = 24
  3922. 2159 @ frame_needed = 1, uses_anonymous_args = 0
  3923. 2160 0000 80B5 push {r7, lr}
  3924. 2161 .LCFI42:
  3925. 2162 .cfi_def_cfa_offset 8
  3926. 2163 .cfi_offset 7, -8
  3927. 2164 .cfi_offset 14, -4
  3928. 2165 0002 88B0 sub sp, sp, #32
  3929. 2166 .LCFI43:
  3930. 2167 .cfi_def_cfa_offset 40
  3931. 2168 0004 02AF add r7, sp, #8
  3932. 2169 .LCFI44:
  3933. 2170 .cfi_def_cfa 7, 32
  3934. 2171 0006 F860 str r0, [r7, #12]
  3935. 2172 0008 7A60 str r2, [r7, #4]
  3936. 2173 000a 1A46 mov r2, r3
  3937. 2174 000c 0B46 mov r3, r1 @ movhi
  3938. 2175 000e 7B81 strh r3, [r7, #10] @ movhi
  3939. 2176 0010 1346 mov r3, r2 @ movhi
  3940. 2177 0012 3B81 strh r3, [r7, #8] @ movhi
  3941. 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  3942. 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3943. 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  3944. 2178 .loc 1 1700 11
  3945. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 69
  3946. 2179 0014 FB68 ldr r3, [r7, #12]
  3947. 2180 0016 93F84130 ldrb r3, [r3, #65]
  3948. 2181 001a DBB2 uxtb r3, r3
  3949. 2182 .loc 1 1700 6
  3950. 2183 001c 202B cmp r3, #32
  3951. 2184 001e 7CD1 bne .L93
  3952. 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3953. 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  3954. 2185 .loc 1 1702 9
  3955. 2186 0020 FB68 ldr r3, [r7, #12]
  3956. 2187 0022 1B68 ldr r3, [r3]
  3957. 2188 0024 9B69 ldr r3, [r3, #24]
  3958. 2189 0026 03F40043 and r3, r3, #32768
  3959. 2190 .loc 1 1702 8
  3960. 2191 002a B3F5004F cmp r3, #32768
  3961. 2192 002e 01D1 bne .L94
  3962. 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  3963. 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  3964. 2193 .loc 1 1704 14
  3965. 2194 0030 0223 movs r3, #2
  3966. 2195 0032 73E0 b .L95
  3967. 2196 .L94:
  3968. 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  3969. 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3970. 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  3971. 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  3972. 2197 .loc 1 1708 5
  3973. 2198 0034 FB68 ldr r3, [r7, #12]
  3974. 2199 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  3975. 2200 003a 012B cmp r3, #1
  3976. 2201 003c 01D1 bne .L96
  3977. 2202 .loc 1 1708 5 is_stmt 0 discriminator 1
  3978. 2203 003e 0223 movs r3, #2
  3979. 2204 0040 6CE0 b .L95
  3980. 2205 .L96:
  3981. 2206 .loc 1 1708 5 discriminator 2
  3982. 2207 0042 FB68 ldr r3, [r7, #12]
  3983. 2208 0044 0122 movs r2, #1
  3984. 2209 0046 83F84020 strb r2, [r3, #64]
  3985. 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  3986. 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  3987. 2210 .loc 1 1710 23 is_stmt 1 discriminator 2
  3988. 2211 004a FB68 ldr r3, [r7, #12]
  3989. 2212 004c 2122 movs r2, #33
  3990. 2213 004e 83F84120 strb r2, [r3, #65]
  3991. 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  3992. 2214 .loc 1 1711 23 discriminator 2
  3993. 2215 0052 FB68 ldr r3, [r7, #12]
  3994. 2216 0054 1022 movs r2, #16
  3995. 2217 0056 83F84220 strb r2, [r3, #66]
  3996. 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  3997. 2218 .loc 1 1712 23 discriminator 2
  3998. 2219 005a FB68 ldr r3, [r7, #12]
  3999. 2220 005c 0022 movs r2, #0
  4000. 2221 005e 5A64 str r2, [r3, #68]
  4001. 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4002. 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  4003. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 70
  4004. 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  4005. 2222 .loc 1 1715 23 discriminator 2
  4006. 2223 0060 FB68 ldr r3, [r7, #12]
  4007. 2224 0062 7A68 ldr r2, [r7, #4]
  4008. 2225 0064 5A62 str r2, [r3, #36]
  4009. 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  4010. 2226 .loc 1 1716 23 discriminator 2
  4011. 2227 0066 FB68 ldr r3, [r7, #12]
  4012. 2228 0068 3A89 ldrh r2, [r7, #8] @ movhi
  4013. 2229 006a 5A85 strh r2, [r3, #42] @ movhi
  4014. 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  4015. 2230 .loc 1 1717 23 discriminator 2
  4016. 2231 006c FB68 ldr r3, [r7, #12]
  4017. 2232 006e 2D4A ldr r2, .L101
  4018. 2233 0070 DA62 str r2, [r3, #44]
  4019. 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  4020. 2234 .loc 1 1718 23 discriminator 2
  4021. 2235 0072 FB68 ldr r3, [r7, #12]
  4022. 2236 0074 2C4A ldr r2, .L101+4
  4023. 2237 0076 5A63 str r2, [r3, #52]
  4024. 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4025. 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  4026. 2238 .loc 1 1720 13 discriminator 2
  4027. 2239 0078 FB68 ldr r3, [r7, #12]
  4028. 2240 007a 5B8D ldrh r3, [r3, #42] @ movhi
  4029. 2241 007c 9BB2 uxth r3, r3
  4030. 2242 .loc 1 1720 8 discriminator 2
  4031. 2243 007e FF2B cmp r3, #255
  4032. 2244 0080 06D9 bls .L97
  4033. 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4034. 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  4035. 2245 .loc 1 1722 22
  4036. 2246 0082 FB68 ldr r3, [r7, #12]
  4037. 2247 0084 FF22 movs r2, #255
  4038. 2248 0086 1A85 strh r2, [r3, #40] @ movhi
  4039. 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  4040. 2249 .loc 1 1723 16
  4041. 2250 0088 4FF08073 mov r3, #16777216
  4042. 2251 008c 7B61 str r3, [r7, #20]
  4043. 2252 008e 07E0 b .L98
  4044. 2253 .L97:
  4045. 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4046. 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  4047. 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4048. 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  4049. 2254 .loc 1 1727 28
  4050. 2255 0090 FB68 ldr r3, [r7, #12]
  4051. 2256 0092 5B8D ldrh r3, [r3, #42] @ movhi
  4052. 2257 0094 9AB2 uxth r2, r3
  4053. 2258 .loc 1 1727 22
  4054. 2259 0096 FB68 ldr r3, [r7, #12]
  4055. 2260 0098 1A85 strh r2, [r3, #40] @ movhi
  4056. 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
  4057. 2261 .loc 1 1728 16
  4058. 2262 009a 4FF00073 mov r3, #33554432
  4059. 2263 009e 7B61 str r3, [r7, #20]
  4060. 2264 .L98:
  4061. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 71
  4062. 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4063. 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4064. 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  4065. 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
  4066. 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
  4067. 2265 .loc 1 1733 13
  4068. 2266 00a0 FB68 ldr r3, [r7, #12]
  4069. 2267 00a2 1B8D ldrh r3, [r3, #40]
  4070. 2268 .loc 1 1733 8
  4071. 2269 00a4 002B cmp r3, #0
  4072. 2270 00a6 24D0 beq .L99
  4073. 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4074. 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  4075. 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  4076. 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  4077. 2271 .loc 1 1737 35
  4078. 2272 00a8 FB68 ldr r3, [r7, #12]
  4079. 2273 00aa 5B6A ldr r3, [r3, #36]
  4080. 2274 .loc 1 1737 30
  4081. 2275 00ac 1A78 ldrb r2, [r3] @ zero_extendqisi2
  4082. 2276 .loc 1 1737 11
  4083. 2277 00ae FB68 ldr r3, [r7, #12]
  4084. 2278 00b0 1B68 ldr r3, [r3]
  4085. 2279 .loc 1 1737 28
  4086. 2280 00b2 9A62 str r2, [r3, #40]
  4087. 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4088. 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  4089. 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  4090. 2281 .loc 1 1740 11
  4091. 2282 00b4 FB68 ldr r3, [r7, #12]
  4092. 2283 00b6 5B6A ldr r3, [r3, #36]
  4093. 2284 .loc 1 1740 21
  4094. 2285 00b8 5A1C adds r2, r3, #1
  4095. 2286 00ba FB68 ldr r3, [r7, #12]
  4096. 2287 00bc 5A62 str r2, [r3, #36]
  4097. 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4098. 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  4099. 2288 .loc 1 1742 11
  4100. 2289 00be FB68 ldr r3, [r7, #12]
  4101. 2290 00c0 5B8D ldrh r3, [r3, #42] @ movhi
  4102. 2291 00c2 9BB2 uxth r3, r3
  4103. 2292 .loc 1 1742 22
  4104. 2293 00c4 013B subs r3, r3, #1
  4105. 2294 00c6 9AB2 uxth r2, r3
  4106. 2295 00c8 FB68 ldr r3, [r7, #12]
  4107. 2296 00ca 5A85 strh r2, [r3, #42] @ movhi
  4108. 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  4109. 2297 .loc 1 1743 11
  4110. 2298 00cc FB68 ldr r3, [r7, #12]
  4111. 2299 00ce 1B8D ldrh r3, [r3, #40]
  4112. 2300 .loc 1 1743 21
  4113. 2301 00d0 013B subs r3, r3, #1
  4114. 2302 00d2 9AB2 uxth r2, r3
  4115. 2303 00d4 FB68 ldr r3, [r7, #12]
  4116. 2304 00d6 1A85 strh r2, [r3, #40] @ movhi
  4117. 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4118. 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
  4119. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 72
  4120. 2305 .loc 1 1745 58
  4121. 2306 00d8 FB68 ldr r3, [r7, #12]
  4122. 2307 00da 1B8D ldrh r3, [r3, #40]
  4123. 2308 .loc 1 1745 7
  4124. 2309 00dc DBB2 uxtb r3, r3
  4125. 2310 00de 0133 adds r3, r3, #1
  4126. 2311 00e0 DAB2 uxtb r2, r3
  4127. 2312 00e2 7989 ldrh r1, [r7, #10]
  4128. 2313 00e4 114B ldr r3, .L101+8
  4129. 2314 00e6 0093 str r3, [sp]
  4130. 2315 00e8 7B69 ldr r3, [r7, #20]
  4131. 2316 00ea F868 ldr r0, [r7, #12]
  4132. 2317 00ec FFF7FEFF bl I2C_TransferConfig
  4133. 2318 00f0 09E0 b .L100
  4134. 2319 .L99:
  4135. 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
  4136. 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4137. 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  4138. 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4139. 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
  4140. 2320 .loc 1 1750 57
  4141. 2321 00f2 FB68 ldr r3, [r7, #12]
  4142. 2322 00f4 1B8D ldrh r3, [r3, #40]
  4143. 2323 .loc 1 1750 7
  4144. 2324 00f6 DAB2 uxtb r2, r3
  4145. 2325 00f8 7989 ldrh r1, [r7, #10]
  4146. 2326 00fa 0C4B ldr r3, .L101+8
  4147. 2327 00fc 0093 str r3, [sp]
  4148. 2328 00fe 7B69 ldr r3, [r7, #20]
  4149. 2329 0100 F868 ldr r0, [r7, #12]
  4150. 2330 0102 FFF7FEFF bl I2C_TransferConfig
  4151. 2331 .L100:
  4152. 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
  4153. 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4154. 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4155. 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  4156. 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  4157. 2332 .loc 1 1755 5
  4158. 2333 0106 FB68 ldr r3, [r7, #12]
  4159. 2334 0108 0022 movs r2, #0
  4160. 2335 010a 83F84020 strb r2, [r3, #64]
  4161. 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4162. 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  4163. 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  4164. 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  4165. 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4166. 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  4167. 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  4168. 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  4169. 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  4170. 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  4171. 2336 .loc 1 1765 5
  4172. 2337 010e 0121 movs r1, #1
  4173. 2338 0110 F868 ldr r0, [r7, #12]
  4174. 2339 0112 FFF7FEFF bl I2C_Enable_IRQ
  4175. 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4176. 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  4177. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 73
  4178. 2340 .loc 1 1767 12
  4179. 2341 0116 0023 movs r3, #0
  4180. 2342 0118 00E0 b .L95
  4181. 2343 .L93:
  4182. 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4183. 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  4184. 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4185. 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  4186. 2344 .loc 1 1771 12
  4187. 2345 011a 0223 movs r3, #2
  4188. 2346 .L95:
  4189. 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4190. 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4191. 2347 .loc 1 1773 1
  4192. 2348 011c 1846 mov r0, r3
  4193. 2349 011e 1837 adds r7, r7, #24
  4194. 2350 .LCFI45:
  4195. 2351 .cfi_def_cfa_offset 8
  4196. 2352 0120 BD46 mov sp, r7
  4197. 2353 .LCFI46:
  4198. 2354 .cfi_def_cfa_register 13
  4199. 2355 @ sp needed
  4200. 2356 0122 80BD pop {r7, pc}
  4201. 2357 .L102:
  4202. 2358 .align 2
  4203. 2359 .L101:
  4204. 2360 0124 0000FFFF .word -65536
  4205. 2361 0128 00000000 .word I2C_Master_ISR_IT
  4206. 2362 012c 00200080 .word -2147475456
  4207. 2363 .cfi_endproc
  4208. 2364 .LFE138:
  4209. 2366 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
  4210. 2367 .align 1
  4211. 2368 .global HAL_I2C_Master_Receive_IT
  4212. 2369 .syntax unified
  4213. 2370 .thumb
  4214. 2371 .thumb_func
  4215. 2373 HAL_I2C_Master_Receive_IT:
  4216. 2374 .LFB139:
  4217. 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4218. 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  4219. 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
  4220. 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  4221. 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  4222. 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  4223. 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  4224. 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  4225. 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  4226. 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  4227. 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  4228. 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
  4229. 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
  4230. 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4231. 2375 .loc 1 1787 1
  4232. 2376 .cfi_startproc
  4233. 2377 @ args = 0, pretend = 0, frame = 24
  4234. 2378 @ frame_needed = 1, uses_anonymous_args = 0
  4235. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 74
  4236. 2379 0000 80B5 push {r7, lr}
  4237. 2380 .LCFI47:
  4238. 2381 .cfi_def_cfa_offset 8
  4239. 2382 .cfi_offset 7, -8
  4240. 2383 .cfi_offset 14, -4
  4241. 2384 0002 88B0 sub sp, sp, #32
  4242. 2385 .LCFI48:
  4243. 2386 .cfi_def_cfa_offset 40
  4244. 2387 0004 02AF add r7, sp, #8
  4245. 2388 .LCFI49:
  4246. 2389 .cfi_def_cfa 7, 32
  4247. 2390 0006 F860 str r0, [r7, #12]
  4248. 2391 0008 7A60 str r2, [r7, #4]
  4249. 2392 000a 1A46 mov r2, r3
  4250. 2393 000c 0B46 mov r3, r1 @ movhi
  4251. 2394 000e 7B81 strh r3, [r7, #10] @ movhi
  4252. 2395 0010 1346 mov r3, r2 @ movhi
  4253. 2396 0012 3B81 strh r3, [r7, #8] @ movhi
  4254. 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  4255. 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4256. 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  4257. 2397 .loc 1 1790 11
  4258. 2398 0014 FB68 ldr r3, [r7, #12]
  4259. 2399 0016 93F84130 ldrb r3, [r3, #65]
  4260. 2400 001a DBB2 uxtb r3, r3
  4261. 2401 .loc 1 1790 6
  4262. 2402 001c 202B cmp r3, #32
  4263. 2403 001e 53D1 bne .L104
  4264. 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4265. 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  4266. 2404 .loc 1 1792 9
  4267. 2405 0020 FB68 ldr r3, [r7, #12]
  4268. 2406 0022 1B68 ldr r3, [r3]
  4269. 2407 0024 9B69 ldr r3, [r3, #24]
  4270. 2408 0026 03F40043 and r3, r3, #32768
  4271. 2409 .loc 1 1792 8
  4272. 2410 002a B3F5004F cmp r3, #32768
  4273. 2411 002e 01D1 bne .L105
  4274. 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4275. 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  4276. 2412 .loc 1 1794 14
  4277. 2413 0030 0223 movs r3, #2
  4278. 2414 0032 4AE0 b .L106
  4279. 2415 .L105:
  4280. 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4281. 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4282. 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  4283. 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  4284. 2416 .loc 1 1798 5
  4285. 2417 0034 FB68 ldr r3, [r7, #12]
  4286. 2418 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  4287. 2419 003a 012B cmp r3, #1
  4288. 2420 003c 01D1 bne .L107
  4289. 2421 .loc 1 1798 5 is_stmt 0 discriminator 1
  4290. 2422 003e 0223 movs r3, #2
  4291. 2423 0040 43E0 b .L106
  4292. 2424 .L107:
  4293. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 75
  4294. 2425 .loc 1 1798 5 discriminator 2
  4295. 2426 0042 FB68 ldr r3, [r7, #12]
  4296. 2427 0044 0122 movs r2, #1
  4297. 2428 0046 83F84020 strb r2, [r3, #64]
  4298. 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4299. 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  4300. 2429 .loc 1 1800 23 is_stmt 1 discriminator 2
  4301. 2430 004a FB68 ldr r3, [r7, #12]
  4302. 2431 004c 2222 movs r2, #34
  4303. 2432 004e 83F84120 strb r2, [r3, #65]
  4304. 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  4305. 2433 .loc 1 1801 23 discriminator 2
  4306. 2434 0052 FB68 ldr r3, [r7, #12]
  4307. 2435 0054 1022 movs r2, #16
  4308. 2436 0056 83F84220 strb r2, [r3, #66]
  4309. 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  4310. 2437 .loc 1 1802 23 discriminator 2
  4311. 2438 005a FB68 ldr r3, [r7, #12]
  4312. 2439 005c 0022 movs r2, #0
  4313. 2440 005e 5A64 str r2, [r3, #68]
  4314. 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4315. 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  4316. 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  4317. 2441 .loc 1 1805 23 discriminator 2
  4318. 2442 0060 FB68 ldr r3, [r7, #12]
  4319. 2443 0062 7A68 ldr r2, [r7, #4]
  4320. 2444 0064 5A62 str r2, [r3, #36]
  4321. 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  4322. 2445 .loc 1 1806 23 discriminator 2
  4323. 2446 0066 FB68 ldr r3, [r7, #12]
  4324. 2447 0068 3A89 ldrh r2, [r7, #8] @ movhi
  4325. 2448 006a 5A85 strh r2, [r3, #42] @ movhi
  4326. 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  4327. 2449 .loc 1 1807 23 discriminator 2
  4328. 2450 006c FB68 ldr r3, [r7, #12]
  4329. 2451 006e 194A ldr r2, .L110
  4330. 2452 0070 DA62 str r2, [r3, #44]
  4331. 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  4332. 2453 .loc 1 1808 23 discriminator 2
  4333. 2454 0072 FB68 ldr r3, [r7, #12]
  4334. 2455 0074 184A ldr r2, .L110+4
  4335. 2456 0076 5A63 str r2, [r3, #52]
  4336. 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4337. 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  4338. 2457 .loc 1 1810 13 discriminator 2
  4339. 2458 0078 FB68 ldr r3, [r7, #12]
  4340. 2459 007a 5B8D ldrh r3, [r3, #42] @ movhi
  4341. 2460 007c 9BB2 uxth r3, r3
  4342. 2461 .loc 1 1810 8 discriminator 2
  4343. 2462 007e FF2B cmp r3, #255
  4344. 2463 0080 06D9 bls .L108
  4345. 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4346. 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  4347. 2464 .loc 1 1812 22
  4348. 2465 0082 FB68 ldr r3, [r7, #12]
  4349. 2466 0084 0122 movs r2, #1
  4350. 2467 0086 1A85 strh r2, [r3, #40] @ movhi
  4351. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 76
  4352. 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  4353. 2468 .loc 1 1813 16
  4354. 2469 0088 4FF08073 mov r3, #16777216
  4355. 2470 008c 7B61 str r3, [r7, #20]
  4356. 2471 008e 07E0 b .L109
  4357. 2472 .L108:
  4358. 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4359. 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  4360. 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4361. 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  4362. 2473 .loc 1 1817 28
  4363. 2474 0090 FB68 ldr r3, [r7, #12]
  4364. 2475 0092 5B8D ldrh r3, [r3, #42] @ movhi
  4365. 2476 0094 9AB2 uxth r2, r3
  4366. 2477 .loc 1 1817 22
  4367. 2478 0096 FB68 ldr r3, [r7, #12]
  4368. 2479 0098 1A85 strh r2, [r3, #40] @ movhi
  4369. 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
  4370. 2480 .loc 1 1818 16
  4371. 2481 009a 4FF00073 mov r3, #33554432
  4372. 2482 009e 7B61 str r3, [r7, #20]
  4373. 2483 .L109:
  4374. 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4375. 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4376. 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  4377. 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
  4378. 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
  4379. 2484 .loc 1 1823 55
  4380. 2485 00a0 FB68 ldr r3, [r7, #12]
  4381. 2486 00a2 1B8D ldrh r3, [r3, #40]
  4382. 2487 .loc 1 1823 5
  4383. 2488 00a4 DAB2 uxtb r2, r3
  4384. 2489 00a6 7989 ldrh r1, [r7, #10]
  4385. 2490 00a8 0C4B ldr r3, .L110+8
  4386. 2491 00aa 0093 str r3, [sp]
  4387. 2492 00ac 7B69 ldr r3, [r7, #20]
  4388. 2493 00ae F868 ldr r0, [r7, #12]
  4389. 2494 00b0 FFF7FEFF bl I2C_TransferConfig
  4390. 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4391. 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  4392. 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  4393. 2495 .loc 1 1826 5
  4394. 2496 00b4 FB68 ldr r3, [r7, #12]
  4395. 2497 00b6 0022 movs r2, #0
  4396. 2498 00b8 83F84020 strb r2, [r3, #64]
  4397. 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4398. 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  4399. 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  4400. 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  4401. 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4402. 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
  4403. 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  4404. 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  4405. 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  4406. 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
  4407. 2499 .loc 1 1836 5
  4408. 2500 00bc 0221 movs r1, #2
  4409. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 77
  4410. 2501 00be F868 ldr r0, [r7, #12]
  4411. 2502 00c0 FFF7FEFF bl I2C_Enable_IRQ
  4412. 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4413. 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  4414. 2503 .loc 1 1838 12
  4415. 2504 00c4 0023 movs r3, #0
  4416. 2505 00c6 00E0 b .L106
  4417. 2506 .L104:
  4418. 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4419. 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  4420. 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4421. 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  4422. 2507 .loc 1 1842 12
  4423. 2508 00c8 0223 movs r3, #2
  4424. 2509 .L106:
  4425. 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4426. 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4427. 2510 .loc 1 1844 1
  4428. 2511 00ca 1846 mov r0, r3
  4429. 2512 00cc 1837 adds r7, r7, #24
  4430. 2513 .LCFI50:
  4431. 2514 .cfi_def_cfa_offset 8
  4432. 2515 00ce BD46 mov sp, r7
  4433. 2516 .LCFI51:
  4434. 2517 .cfi_def_cfa_register 13
  4435. 2518 @ sp needed
  4436. 2519 00d0 80BD pop {r7, pc}
  4437. 2520 .L111:
  4438. 2521 00d2 00BF .align 2
  4439. 2522 .L110:
  4440. 2523 00d4 0000FFFF .word -65536
  4441. 2524 00d8 00000000 .word I2C_Master_ISR_IT
  4442. 2525 00dc 00240080 .word -2147474432
  4443. 2526 .cfi_endproc
  4444. 2527 .LFE139:
  4445. 2529 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
  4446. 2530 .align 1
  4447. 2531 .global HAL_I2C_Slave_Transmit_IT
  4448. 2532 .syntax unified
  4449. 2533 .thumb
  4450. 2534 .thumb_func
  4451. 2536 HAL_I2C_Slave_Transmit_IT:
  4452. 2537 .LFB140:
  4453. 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4454. 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  4455. 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
  4456. 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  4457. 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  4458. 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  4459. 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  4460. 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  4461. 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  4462. 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
  4463. 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4464. 2538 .loc 1 1855 1
  4465. 2539 .cfi_startproc
  4466. 2540 @ args = 0, pretend = 0, frame = 16
  4467. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 78
  4468. 2541 @ frame_needed = 1, uses_anonymous_args = 0
  4469. 2542 0000 80B5 push {r7, lr}
  4470. 2543 .LCFI52:
  4471. 2544 .cfi_def_cfa_offset 8
  4472. 2545 .cfi_offset 7, -8
  4473. 2546 .cfi_offset 14, -4
  4474. 2547 0002 84B0 sub sp, sp, #16
  4475. 2548 .LCFI53:
  4476. 2549 .cfi_def_cfa_offset 24
  4477. 2550 0004 00AF add r7, sp, #0
  4478. 2551 .LCFI54:
  4479. 2552 .cfi_def_cfa_register 7
  4480. 2553 0006 F860 str r0, [r7, #12]
  4481. 2554 0008 B960 str r1, [r7, #8]
  4482. 2555 000a 1346 mov r3, r2
  4483. 2556 000c FB80 strh r3, [r7, #6] @ movhi
  4484. 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  4485. 2557 .loc 1 1856 11
  4486. 2558 000e FB68 ldr r3, [r7, #12]
  4487. 2559 0010 93F84130 ldrb r3, [r3, #65]
  4488. 2560 0014 DBB2 uxtb r3, r3
  4489. 2561 .loc 1 1856 6
  4490. 2562 0016 202B cmp r3, #32
  4491. 2563 0018 56D1 bne .L113
  4492. 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4493. 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  4494. 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  4495. 2564 .loc 1 1859 5
  4496. 2565 001a FB68 ldr r3, [r7, #12]
  4497. 2566 001c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  4498. 2567 0020 012B cmp r3, #1
  4499. 2568 0022 01D1 bne .L114
  4500. 2569 .loc 1 1859 5 is_stmt 0 discriminator 1
  4501. 2570 0024 0223 movs r3, #2
  4502. 2571 0026 50E0 b .L115
  4503. 2572 .L114:
  4504. 2573 .loc 1 1859 5 discriminator 2
  4505. 2574 0028 FB68 ldr r3, [r7, #12]
  4506. 2575 002a 0122 movs r2, #1
  4507. 2576 002c 83F84020 strb r2, [r3, #64]
  4508. 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4509. 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  4510. 2577 .loc 1 1861 23 is_stmt 1 discriminator 2
  4511. 2578 0030 FB68 ldr r3, [r7, #12]
  4512. 2579 0032 2122 movs r2, #33
  4513. 2580 0034 83F84120 strb r2, [r3, #65]
  4514. 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  4515. 2581 .loc 1 1862 23 discriminator 2
  4516. 2582 0038 FB68 ldr r3, [r7, #12]
  4517. 2583 003a 2022 movs r2, #32
  4518. 2584 003c 83F84220 strb r2, [r3, #66]
  4519. 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  4520. 2585 .loc 1 1863 23 discriminator 2
  4521. 2586 0040 FB68 ldr r3, [r7, #12]
  4522. 2587 0042 0022 movs r2, #0
  4523. 2588 0044 5A64 str r2, [r3, #68]
  4524. 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4525. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 79
  4526. 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  4527. 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  4528. 2589 .loc 1 1866 9 discriminator 2
  4529. 2590 0046 FB68 ldr r3, [r7, #12]
  4530. 2591 0048 1B68 ldr r3, [r3]
  4531. 2592 .loc 1 1866 25 discriminator 2
  4532. 2593 004a 5A68 ldr r2, [r3, #4]
  4533. 2594 .loc 1 1866 9 discriminator 2
  4534. 2595 004c FB68 ldr r3, [r7, #12]
  4535. 2596 004e 1B68 ldr r3, [r3]
  4536. 2597 .loc 1 1866 25 discriminator 2
  4537. 2598 0050 22F40042 bic r2, r2, #32768
  4538. 2599 0054 5A60 str r2, [r3, #4]
  4539. 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4540. 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  4541. 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  4542. 2600 .loc 1 1869 23 discriminator 2
  4543. 2601 0056 FB68 ldr r3, [r7, #12]
  4544. 2602 0058 BA68 ldr r2, [r7, #8]
  4545. 2603 005a 5A62 str r2, [r3, #36]
  4546. 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  4547. 2604 .loc 1 1870 23 discriminator 2
  4548. 2605 005c FB68 ldr r3, [r7, #12]
  4549. 2606 005e FA88 ldrh r2, [r7, #6] @ movhi
  4550. 2607 0060 5A85 strh r2, [r3, #42] @ movhi
  4551. 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  4552. 2608 .loc 1 1871 29 discriminator 2
  4553. 2609 0062 FB68 ldr r3, [r7, #12]
  4554. 2610 0064 5B8D ldrh r3, [r3, #42] @ movhi
  4555. 2611 0066 9AB2 uxth r2, r3
  4556. 2612 .loc 1 1871 23 discriminator 2
  4557. 2613 0068 FB68 ldr r3, [r7, #12]
  4558. 2614 006a 1A85 strh r2, [r3, #40] @ movhi
  4559. 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  4560. 2615 .loc 1 1872 23 discriminator 2
  4561. 2616 006c FB68 ldr r3, [r7, #12]
  4562. 2617 006e 194A ldr r2, .L117
  4563. 2618 0070 DA62 str r2, [r3, #44]
  4564. 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
  4565. 2619 .loc 1 1873 23 discriminator 2
  4566. 2620 0072 FB68 ldr r3, [r7, #12]
  4567. 2621 0074 184A ldr r2, .L117+4
  4568. 2622 0076 5A63 str r2, [r3, #52]
  4569. 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4570. 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
  4571. 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
  4572. 2623 .loc 1 1876 19 discriminator 2
  4573. 2624 0078 FB68 ldr r3, [r7, #12]
  4574. 2625 007a 1B6A ldr r3, [r3, #32]
  4575. 2626 .loc 1 1876 8 discriminator 2
  4576. 2627 007c B3F5003F cmp r3, #131072
  4577. 2628 0080 17D1 bne .L116
  4578. 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4579. 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  4580. 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  4581. 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  4582. 2629 .loc 1 1880 35
  4583. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 80
  4584. 2630 0082 FB68 ldr r3, [r7, #12]
  4585. 2631 0084 5B6A ldr r3, [r3, #36]
  4586. 2632 .loc 1 1880 30
  4587. 2633 0086 1A78 ldrb r2, [r3] @ zero_extendqisi2
  4588. 2634 .loc 1 1880 11
  4589. 2635 0088 FB68 ldr r3, [r7, #12]
  4590. 2636 008a 1B68 ldr r3, [r3]
  4591. 2637 .loc 1 1880 28
  4592. 2638 008c 9A62 str r2, [r3, #40]
  4593. 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4594. 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  4595. 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  4596. 2639 .loc 1 1883 11
  4597. 2640 008e FB68 ldr r3, [r7, #12]
  4598. 2641 0090 5B6A ldr r3, [r3, #36]
  4599. 2642 .loc 1 1883 21
  4600. 2643 0092 5A1C adds r2, r3, #1
  4601. 2644 0094 FB68 ldr r3, [r7, #12]
  4602. 2645 0096 5A62 str r2, [r3, #36]
  4603. 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4604. 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  4605. 2646 .loc 1 1885 11
  4606. 2647 0098 FB68 ldr r3, [r7, #12]
  4607. 2648 009a 5B8D ldrh r3, [r3, #42] @ movhi
  4608. 2649 009c 9BB2 uxth r3, r3
  4609. 2650 .loc 1 1885 22
  4610. 2651 009e 013B subs r3, r3, #1
  4611. 2652 00a0 9AB2 uxth r2, r3
  4612. 2653 00a2 FB68 ldr r3, [r7, #12]
  4613. 2654 00a4 5A85 strh r2, [r3, #42] @ movhi
  4614. 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  4615. 2655 .loc 1 1886 11
  4616. 2656 00a6 FB68 ldr r3, [r7, #12]
  4617. 2657 00a8 1B8D ldrh r3, [r3, #40]
  4618. 2658 .loc 1 1886 21
  4619. 2659 00aa 013B subs r3, r3, #1
  4620. 2660 00ac 9AB2 uxth r2, r3
  4621. 2661 00ae FB68 ldr r3, [r7, #12]
  4622. 2662 00b0 1A85 strh r2, [r3, #40] @ movhi
  4623. 2663 .L116:
  4624. 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4625. 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4626. 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  4627. 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  4628. 2664 .loc 1 1890 5
  4629. 2665 00b2 FB68 ldr r3, [r7, #12]
  4630. 2666 00b4 0022 movs r2, #0
  4631. 2667 00b6 83F84020 strb r2, [r3, #64]
  4632. 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4633. 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  4634. 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  4635. 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  4636. 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4637. 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  4638. 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  4639. 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  4640. 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  4641. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 81
  4642. 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
  4643. 2668 .loc 1 1900 5
  4644. 2669 00ba 48F20101 movw r1, #32769
  4645. 2670 00be F868 ldr r0, [r7, #12]
  4646. 2671 00c0 FFF7FEFF bl I2C_Enable_IRQ
  4647. 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4648. 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  4649. 2672 .loc 1 1902 12
  4650. 2673 00c4 0023 movs r3, #0
  4651. 2674 00c6 00E0 b .L115
  4652. 2675 .L113:
  4653. 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4654. 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  4655. 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4656. 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  4657. 2676 .loc 1 1906 12
  4658. 2677 00c8 0223 movs r3, #2
  4659. 2678 .L115:
  4660. 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4661. 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4662. 2679 .loc 1 1908 1
  4663. 2680 00ca 1846 mov r0, r3
  4664. 2681 00cc 1037 adds r7, r7, #16
  4665. 2682 .LCFI55:
  4666. 2683 .cfi_def_cfa_offset 8
  4667. 2684 00ce BD46 mov sp, r7
  4668. 2685 .LCFI56:
  4669. 2686 .cfi_def_cfa_register 13
  4670. 2687 @ sp needed
  4671. 2688 00d0 80BD pop {r7, pc}
  4672. 2689 .L118:
  4673. 2690 00d2 00BF .align 2
  4674. 2691 .L117:
  4675. 2692 00d4 0000FFFF .word -65536
  4676. 2693 00d8 00000000 .word I2C_Slave_ISR_IT
  4677. 2694 .cfi_endproc
  4678. 2695 .LFE140:
  4679. 2697 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
  4680. 2698 .align 1
  4681. 2699 .global HAL_I2C_Slave_Receive_IT
  4682. 2700 .syntax unified
  4683. 2701 .thumb
  4684. 2702 .thumb_func
  4685. 2704 HAL_I2C_Slave_Receive_IT:
  4686. 2705 .LFB141:
  4687. 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4688. 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  4689. 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
  4690. 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  4691. 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  4692. 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  4693. 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  4694. 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  4695. 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  4696. 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
  4697. 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4698. 2706 .loc 1 1919 1
  4699. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 82
  4700. 2707 .cfi_startproc
  4701. 2708 @ args = 0, pretend = 0, frame = 16
  4702. 2709 @ frame_needed = 1, uses_anonymous_args = 0
  4703. 2710 0000 80B5 push {r7, lr}
  4704. 2711 .LCFI57:
  4705. 2712 .cfi_def_cfa_offset 8
  4706. 2713 .cfi_offset 7, -8
  4707. 2714 .cfi_offset 14, -4
  4708. 2715 0002 84B0 sub sp, sp, #16
  4709. 2716 .LCFI58:
  4710. 2717 .cfi_def_cfa_offset 24
  4711. 2718 0004 00AF add r7, sp, #0
  4712. 2719 .LCFI59:
  4713. 2720 .cfi_def_cfa_register 7
  4714. 2721 0006 F860 str r0, [r7, #12]
  4715. 2722 0008 B960 str r1, [r7, #8]
  4716. 2723 000a 1346 mov r3, r2
  4717. 2724 000c FB80 strh r3, [r7, #6] @ movhi
  4718. 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  4719. 2725 .loc 1 1920 11
  4720. 2726 000e FB68 ldr r3, [r7, #12]
  4721. 2727 0010 93F84130 ldrb r3, [r3, #65]
  4722. 2728 0014 DBB2 uxtb r3, r3
  4723. 2729 .loc 1 1920 6
  4724. 2730 0016 202B cmp r3, #32
  4725. 2731 0018 39D1 bne .L120
  4726. 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4727. 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  4728. 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  4729. 2732 .loc 1 1923 5
  4730. 2733 001a FB68 ldr r3, [r7, #12]
  4731. 2734 001c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  4732. 2735 0020 012B cmp r3, #1
  4733. 2736 0022 01D1 bne .L121
  4734. 2737 .loc 1 1923 5 is_stmt 0 discriminator 1
  4735. 2738 0024 0223 movs r3, #2
  4736. 2739 0026 33E0 b .L122
  4737. 2740 .L121:
  4738. 2741 .loc 1 1923 5 discriminator 2
  4739. 2742 0028 FB68 ldr r3, [r7, #12]
  4740. 2743 002a 0122 movs r2, #1
  4741. 2744 002c 83F84020 strb r2, [r3, #64]
  4742. 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4743. 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  4744. 2745 .loc 1 1925 23 is_stmt 1 discriminator 2
  4745. 2746 0030 FB68 ldr r3, [r7, #12]
  4746. 2747 0032 2222 movs r2, #34
  4747. 2748 0034 83F84120 strb r2, [r3, #65]
  4748. 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  4749. 2749 .loc 1 1926 23 discriminator 2
  4750. 2750 0038 FB68 ldr r3, [r7, #12]
  4751. 2751 003a 2022 movs r2, #32
  4752. 2752 003c 83F84220 strb r2, [r3, #66]
  4753. 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  4754. 2753 .loc 1 1927 23 discriminator 2
  4755. 2754 0040 FB68 ldr r3, [r7, #12]
  4756. 2755 0042 0022 movs r2, #0
  4757. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 83
  4758. 2756 0044 5A64 str r2, [r3, #68]
  4759. 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4760. 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  4761. 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  4762. 2757 .loc 1 1930 9 discriminator 2
  4763. 2758 0046 FB68 ldr r3, [r7, #12]
  4764. 2759 0048 1B68 ldr r3, [r3]
  4765. 2760 .loc 1 1930 25 discriminator 2
  4766. 2761 004a 5A68 ldr r2, [r3, #4]
  4767. 2762 .loc 1 1930 9 discriminator 2
  4768. 2763 004c FB68 ldr r3, [r7, #12]
  4769. 2764 004e 1B68 ldr r3, [r3]
  4770. 2765 .loc 1 1930 25 discriminator 2
  4771. 2766 0050 22F40042 bic r2, r2, #32768
  4772. 2767 0054 5A60 str r2, [r3, #4]
  4773. 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4774. 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  4775. 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  4776. 2768 .loc 1 1933 23 discriminator 2
  4777. 2769 0056 FB68 ldr r3, [r7, #12]
  4778. 2770 0058 BA68 ldr r2, [r7, #8]
  4779. 2771 005a 5A62 str r2, [r3, #36]
  4780. 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  4781. 2772 .loc 1 1934 23 discriminator 2
  4782. 2773 005c FB68 ldr r3, [r7, #12]
  4783. 2774 005e FA88 ldrh r2, [r7, #6] @ movhi
  4784. 2775 0060 5A85 strh r2, [r3, #42] @ movhi
  4785. 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  4786. 2776 .loc 1 1935 29 discriminator 2
  4787. 2777 0062 FB68 ldr r3, [r7, #12]
  4788. 2778 0064 5B8D ldrh r3, [r3, #42] @ movhi
  4789. 2779 0066 9AB2 uxth r2, r3
  4790. 2780 .loc 1 1935 23 discriminator 2
  4791. 2781 0068 FB68 ldr r3, [r7, #12]
  4792. 2782 006a 1A85 strh r2, [r3, #40] @ movhi
  4793. 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  4794. 2783 .loc 1 1936 23 discriminator 2
  4795. 2784 006c FB68 ldr r3, [r7, #12]
  4796. 2785 006e 0A4A ldr r2, .L123
  4797. 2786 0070 DA62 str r2, [r3, #44]
  4798. 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
  4799. 2787 .loc 1 1937 23 discriminator 2
  4800. 2788 0072 FB68 ldr r3, [r7, #12]
  4801. 2789 0074 094A ldr r2, .L123+4
  4802. 2790 0076 5A63 str r2, [r3, #52]
  4803. 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4804. 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  4805. 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  4806. 2791 .loc 1 1940 5 discriminator 2
  4807. 2792 0078 FB68 ldr r3, [r7, #12]
  4808. 2793 007a 0022 movs r2, #0
  4809. 2794 007c 83F84020 strb r2, [r3, #64]
  4810. 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4811. 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  4812. 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  4813. 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  4814. 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4815. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 84
  4816. 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
  4817. 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  4818. 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  4819. 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  4820. 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
  4821. 2795 .loc 1 1950 5 discriminator 2
  4822. 2796 0080 48F20201 movw r1, #32770
  4823. 2797 0084 F868 ldr r0, [r7, #12]
  4824. 2798 0086 FFF7FEFF bl I2C_Enable_IRQ
  4825. 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4826. 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  4827. 2799 .loc 1 1952 12 discriminator 2
  4828. 2800 008a 0023 movs r3, #0
  4829. 2801 008c 00E0 b .L122
  4830. 2802 .L120:
  4831. 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4832. 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  4833. 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4834. 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  4835. 2803 .loc 1 1956 12
  4836. 2804 008e 0223 movs r3, #2
  4837. 2805 .L122:
  4838. 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4839. 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4840. 2806 .loc 1 1958 1
  4841. 2807 0090 1846 mov r0, r3
  4842. 2808 0092 1037 adds r7, r7, #16
  4843. 2809 .LCFI60:
  4844. 2810 .cfi_def_cfa_offset 8
  4845. 2811 0094 BD46 mov sp, r7
  4846. 2812 .LCFI61:
  4847. 2813 .cfi_def_cfa_register 13
  4848. 2814 @ sp needed
  4849. 2815 0096 80BD pop {r7, pc}
  4850. 2816 .L124:
  4851. 2817 .align 2
  4852. 2818 .L123:
  4853. 2819 0098 0000FFFF .word -65536
  4854. 2820 009c 00000000 .word I2C_Slave_ISR_IT
  4855. 2821 .cfi_endproc
  4856. 2822 .LFE141:
  4857. 2824 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
  4858. 2825 .align 1
  4859. 2826 .global HAL_I2C_Master_Transmit_DMA
  4860. 2827 .syntax unified
  4861. 2828 .thumb
  4862. 2829 .thumb_func
  4863. 2831 HAL_I2C_Master_Transmit_DMA:
  4864. 2832 .LFB142:
  4865. 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4866. 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  4867. 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
  4868. 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  4869. 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  4870. 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  4871. 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  4872. 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  4873. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 85
  4874. 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  4875. 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  4876. 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  4877. 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
  4878. 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
  4879. 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4880. 2833 .loc 1 1972 1
  4881. 2834 .cfi_startproc
  4882. 2835 @ args = 0, pretend = 0, frame = 32
  4883. 2836 @ frame_needed = 1, uses_anonymous_args = 0
  4884. 2837 0000 80B5 push {r7, lr}
  4885. 2838 .LCFI62:
  4886. 2839 .cfi_def_cfa_offset 8
  4887. 2840 .cfi_offset 7, -8
  4888. 2841 .cfi_offset 14, -4
  4889. 2842 0002 8AB0 sub sp, sp, #40
  4890. 2843 .LCFI63:
  4891. 2844 .cfi_def_cfa_offset 48
  4892. 2845 0004 02AF add r7, sp, #8
  4893. 2846 .LCFI64:
  4894. 2847 .cfi_def_cfa 7, 40
  4895. 2848 0006 F860 str r0, [r7, #12]
  4896. 2849 0008 7A60 str r2, [r7, #4]
  4897. 2850 000a 1A46 mov r2, r3
  4898. 2851 000c 0B46 mov r3, r1 @ movhi
  4899. 2852 000e 7B81 strh r3, [r7, #10] @ movhi
  4900. 2853 0010 1346 mov r3, r2 @ movhi
  4901. 2854 0012 3B81 strh r3, [r7, #8] @ movhi
  4902. 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  4903. 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  4904. 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
  4905. 2855 .loc 1 1975 12
  4906. 2856 0014 0023 movs r3, #0
  4907. 2857 0016 BB61 str r3, [r7, #24]
  4908. 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4909. 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  4910. 2858 .loc 1 1977 11
  4911. 2859 0018 FB68 ldr r3, [r7, #12]
  4912. 2860 001a 93F84130 ldrb r3, [r3, #65]
  4913. 2861 001e DBB2 uxtb r3, r3
  4914. 2862 .loc 1 1977 6
  4915. 2863 0020 202B cmp r3, #32
  4916. 2864 0022 40F0EF80 bne .L126
  4917. 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4918. 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  4919. 2865 .loc 1 1979 9
  4920. 2866 0026 FB68 ldr r3, [r7, #12]
  4921. 2867 0028 1B68 ldr r3, [r3]
  4922. 2868 002a 9B69 ldr r3, [r3, #24]
  4923. 2869 002c 03F40043 and r3, r3, #32768
  4924. 2870 .loc 1 1979 8
  4925. 2871 0030 B3F5004F cmp r3, #32768
  4926. 2872 0034 01D1 bne .L127
  4927. 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  4928. 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  4929. 2873 .loc 1 1981 14
  4930. 2874 0036 0223 movs r3, #2
  4931. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 86
  4932. 2875 0038 E5E0 b .L128
  4933. 2876 .L127:
  4934. 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  4935. 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4936. 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  4937. 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  4938. 2877 .loc 1 1985 5
  4939. 2878 003a FB68 ldr r3, [r7, #12]
  4940. 2879 003c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  4941. 2880 0040 012B cmp r3, #1
  4942. 2881 0042 01D1 bne .L129
  4943. 2882 .loc 1 1985 5 is_stmt 0 discriminator 1
  4944. 2883 0044 0223 movs r3, #2
  4945. 2884 0046 DEE0 b .L128
  4946. 2885 .L129:
  4947. 2886 .loc 1 1985 5 discriminator 2
  4948. 2887 0048 FB68 ldr r3, [r7, #12]
  4949. 2888 004a 0122 movs r2, #1
  4950. 2889 004c 83F84020 strb r2, [r3, #64]
  4951. 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4952. 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  4953. 2890 .loc 1 1987 23 is_stmt 1 discriminator 2
  4954. 2891 0050 FB68 ldr r3, [r7, #12]
  4955. 2892 0052 2122 movs r2, #33
  4956. 2893 0054 83F84120 strb r2, [r3, #65]
  4957. 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  4958. 2894 .loc 1 1988 23 discriminator 2
  4959. 2895 0058 FB68 ldr r3, [r7, #12]
  4960. 2896 005a 1022 movs r2, #16
  4961. 2897 005c 83F84220 strb r2, [r3, #66]
  4962. 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  4963. 2898 .loc 1 1989 23 discriminator 2
  4964. 2899 0060 FB68 ldr r3, [r7, #12]
  4965. 2900 0062 0022 movs r2, #0
  4966. 2901 0064 5A64 str r2, [r3, #68]
  4967. 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4968. 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  4969. 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  4970. 2902 .loc 1 1992 23 discriminator 2
  4971. 2903 0066 FB68 ldr r3, [r7, #12]
  4972. 2904 0068 7A68 ldr r2, [r7, #4]
  4973. 2905 006a 5A62 str r2, [r3, #36]
  4974. 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  4975. 2906 .loc 1 1993 23 discriminator 2
  4976. 2907 006c FB68 ldr r3, [r7, #12]
  4977. 2908 006e 3A89 ldrh r2, [r7, #8] @ movhi
  4978. 2909 0070 5A85 strh r2, [r3, #42] @ movhi
  4979. 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  4980. 2910 .loc 1 1994 23 discriminator 2
  4981. 2911 0072 FB68 ldr r3, [r7, #12]
  4982. 2912 0074 664A ldr r2, .L139
  4983. 2913 0076 DA62 str r2, [r3, #44]
  4984. 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
  4985. 2914 .loc 1 1995 23 discriminator 2
  4986. 2915 0078 FB68 ldr r3, [r7, #12]
  4987. 2916 007a 664A ldr r2, .L139+4
  4988. 2917 007c 5A63 str r2, [r3, #52]
  4989. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 87
  4990. 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  4991. 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  4992. 2918 .loc 1 1997 13 discriminator 2
  4993. 2919 007e FB68 ldr r3, [r7, #12]
  4994. 2920 0080 5B8D ldrh r3, [r3, #42] @ movhi
  4995. 2921 0082 9BB2 uxth r3, r3
  4996. 2922 .loc 1 1997 8 discriminator 2
  4997. 2923 0084 FF2B cmp r3, #255
  4998. 2924 0086 06D9 bls .L130
  4999. 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5000. 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  5001. 2925 .loc 1 1999 22
  5002. 2926 0088 FB68 ldr r3, [r7, #12]
  5003. 2927 008a FF22 movs r2, #255
  5004. 2928 008c 1A85 strh r2, [r3, #40] @ movhi
  5005. 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  5006. 2929 .loc 1 2000 16
  5007. 2930 008e 4FF08073 mov r3, #16777216
  5008. 2931 0092 FB61 str r3, [r7, #28]
  5009. 2932 0094 07E0 b .L131
  5010. 2933 .L130:
  5011. 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5012. 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5013. 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5014. 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  5015. 2934 .loc 1 2004 28
  5016. 2935 0096 FB68 ldr r3, [r7, #12]
  5017. 2936 0098 5B8D ldrh r3, [r3, #42] @ movhi
  5018. 2937 009a 9AB2 uxth r2, r3
  5019. 2938 .loc 1 2004 22
  5020. 2939 009c FB68 ldr r3, [r7, #12]
  5021. 2940 009e 1A85 strh r2, [r3, #40] @ movhi
  5022. 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
  5023. 2941 .loc 1 2005 16
  5024. 2942 00a0 4FF00073 mov r3, #33554432
  5025. 2943 00a4 FB61 str r3, [r7, #28]
  5026. 2944 .L131:
  5027. 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5028. 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5029. 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
  5030. 2945 .loc 1 2008 13
  5031. 2946 00a6 FB68 ldr r3, [r7, #12]
  5032. 2947 00a8 1B8D ldrh r3, [r3, #40]
  5033. 2948 .loc 1 2008 8
  5034. 2949 00aa 002B cmp r3, #0
  5035. 2950 00ac 1AD0 beq .L132
  5036. 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5037. 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  5038. 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  5039. 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  5040. 2951 .loc 1 2012 35
  5041. 2952 00ae FB68 ldr r3, [r7, #12]
  5042. 2953 00b0 5B6A ldr r3, [r3, #36]
  5043. 2954 .loc 1 2012 30
  5044. 2955 00b2 1A78 ldrb r2, [r3] @ zero_extendqisi2
  5045. 2956 .loc 1 2012 11
  5046. 2957 00b4 FB68 ldr r3, [r7, #12]
  5047. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 88
  5048. 2958 00b6 1B68 ldr r3, [r3]
  5049. 2959 .loc 1 2012 28
  5050. 2960 00b8 9A62 str r2, [r3, #40]
  5051. 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5052. 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  5053. 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  5054. 2961 .loc 1 2015 11
  5055. 2962 00ba FB68 ldr r3, [r7, #12]
  5056. 2963 00bc 5B6A ldr r3, [r3, #36]
  5057. 2964 .loc 1 2015 21
  5058. 2965 00be 5A1C adds r2, r3, #1
  5059. 2966 00c0 FB68 ldr r3, [r7, #12]
  5060. 2967 00c2 5A62 str r2, [r3, #36]
  5061. 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5062. 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
  5063. 2968 .loc 1 2017 24
  5064. 2969 00c4 FB68 ldr r3, [r7, #12]
  5065. 2970 00c6 1B8D ldrh r3, [r3, #40]
  5066. 2971 .loc 1 2017 18
  5067. 2972 00c8 BB61 str r3, [r7, #24]
  5068. 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  5069. 2973 .loc 1 2018 11
  5070. 2974 00ca FB68 ldr r3, [r7, #12]
  5071. 2975 00cc 5B8D ldrh r3, [r3, #42] @ movhi
  5072. 2976 00ce 9BB2 uxth r3, r3
  5073. 2977 .loc 1 2018 22
  5074. 2978 00d0 013B subs r3, r3, #1
  5075. 2979 00d2 9AB2 uxth r2, r3
  5076. 2980 00d4 FB68 ldr r3, [r7, #12]
  5077. 2981 00d6 5A85 strh r2, [r3, #42] @ movhi
  5078. 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  5079. 2982 .loc 1 2019 11
  5080. 2983 00d8 FB68 ldr r3, [r7, #12]
  5081. 2984 00da 1B8D ldrh r3, [r3, #40]
  5082. 2985 .loc 1 2019 21
  5083. 2986 00dc 013B subs r3, r3, #1
  5084. 2987 00de 9AB2 uxth r2, r3
  5085. 2988 00e0 FB68 ldr r3, [r7, #12]
  5086. 2989 00e2 1A85 strh r2, [r3, #40] @ movhi
  5087. 2990 .L132:
  5088. 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5089. 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5090. 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
  5091. 2991 .loc 1 2022 13
  5092. 2992 00e4 FB68 ldr r3, [r7, #12]
  5093. 2993 00e6 1B8D ldrh r3, [r3, #40]
  5094. 2994 .loc 1 2022 8
  5095. 2995 00e8 002B cmp r3, #0
  5096. 2996 00ea 74D0 beq .L133
  5097. 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5098. 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  5099. 2997 .loc 1 2024 15
  5100. 2998 00ec FB68 ldr r3, [r7, #12]
  5101. 2999 00ee 9B6B ldr r3, [r3, #56]
  5102. 3000 .loc 1 2024 10
  5103. 3001 00f0 002B cmp r3, #0
  5104. 3002 00f2 22D0 beq .L134
  5105. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 89
  5106. 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5107. 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  5108. 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
  5109. 3003 .loc 1 2027 13
  5110. 3004 00f4 FB68 ldr r3, [r7, #12]
  5111. 3005 00f6 9B6B ldr r3, [r3, #56]
  5112. 3006 .loc 1 2027 40
  5113. 3007 00f8 474A ldr r2, .L139+8
  5114. 3008 00fa 9A62 str r2, [r3, #40]
  5115. 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5116. 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  5117. 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
  5118. 3009 .loc 1 2030 13
  5119. 3010 00fc FB68 ldr r3, [r7, #12]
  5120. 3011 00fe 9B6B ldr r3, [r3, #56]
  5121. 3012 .loc 1 2030 41
  5122. 3013 0100 464A ldr r2, .L139+12
  5123. 3014 0102 1A63 str r2, [r3, #48]
  5124. 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5125. 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  5126. 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
  5127. 3015 .loc 1 2033 13
  5128. 3016 0104 FB68 ldr r3, [r7, #12]
  5129. 3017 0106 9B6B ldr r3, [r3, #56]
  5130. 3018 .loc 1 2033 44
  5131. 3019 0108 0022 movs r2, #0
  5132. 3020 010a DA62 str r2, [r3, #44]
  5133. 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
  5134. 3021 .loc 1 2034 13
  5135. 3022 010c FB68 ldr r3, [r7, #12]
  5136. 3023 010e 9B6B ldr r3, [r3, #56]
  5137. 3024 .loc 1 2034 41
  5138. 3025 0110 0022 movs r2, #0
  5139. 3026 0112 5A63 str r2, [r3, #52]
  5140. 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5141. 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  5142. 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
  5143. 3027 .loc 1 2037 25
  5144. 3028 0114 FB68 ldr r3, [r7, #12]
  5145. 3029 0116 986B ldr r0, [r3, #56]
  5146. 3030 .loc 1 2037 70
  5147. 3031 0118 FB68 ldr r3, [r7, #12]
  5148. 3032 011a 5B6A ldr r3, [r3, #36]
  5149. 3033 .loc 1 2037 25
  5150. 3034 011c 1946 mov r1, r3
  5151. 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
  5152. 3035 .loc 1 2038 57
  5153. 3036 011e FB68 ldr r3, [r7, #12]
  5154. 3037 0120 1B68 ldr r3, [r3]
  5155. 3038 .loc 1 2038 52
  5156. 3039 0122 2833 adds r3, r3, #40
  5157. 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
  5158. 3040 .loc 1 2037 25
  5159. 3041 0124 1A46 mov r2, r3
  5160. 3042 .loc 1 2038 79
  5161. 3043 0126 FB68 ldr r3, [r7, #12]
  5162. 3044 0128 1B8D ldrh r3, [r3, #40]
  5163. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 90
  5164. 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
  5165. 3045 .loc 1 2037 25
  5166. 3046 012a FFF7FEFF bl HAL_DMA_Start_IT
  5167. 3047 012e 0346 mov r3, r0
  5168. 3048 0130 FB75 strb r3, [r7, #23]
  5169. 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5170. 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5171. 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5172. 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  5173. 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  5174. 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  5175. 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5176. 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  5177. 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  5178. 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5179. 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5180. 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5181. 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5182. 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  5183. 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5184. 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5185. 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  5186. 3049 .loc 1 2055 10
  5187. 3050 0132 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  5188. 3051 0134 002B cmp r3, #0
  5189. 3052 0136 3AD1 bne .L136
  5190. 3053 0138 13E0 b .L138
  5191. 3054 .L134:
  5192. 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  5193. 3055 .loc 1 2043 25
  5194. 3056 013a FB68 ldr r3, [r7, #12]
  5195. 3057 013c 2022 movs r2, #32
  5196. 3058 013e 83F84120 strb r2, [r3, #65]
  5197. 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5198. 3059 .loc 1 2044 25
  5199. 3060 0142 FB68 ldr r3, [r7, #12]
  5200. 3061 0144 0022 movs r2, #0
  5201. 3062 0146 83F84220 strb r2, [r3, #66]
  5202. 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5203. 3063 .loc 1 2047 25
  5204. 3064 014a FB68 ldr r3, [r7, #12]
  5205. 3065 014c 5B6C ldr r3, [r3, #68]
  5206. 3066 014e 43F08002 orr r2, r3, #128
  5207. 3067 0152 FB68 ldr r3, [r7, #12]
  5208. 3068 0154 5A64 str r2, [r3, #68]
  5209. 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5210. 3069 .loc 1 2050 9
  5211. 3070 0156 FB68 ldr r3, [r7, #12]
  5212. 3071 0158 0022 movs r2, #0
  5213. 3072 015a 83F84020 strb r2, [r3, #64]
  5214. 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5215. 3073 .loc 1 2052 16
  5216. 3074 015e 0123 movs r3, #1
  5217. 3075 0160 51E0 b .L128
  5218. 3076 .L138:
  5219. 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5220. 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  5221. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 91
  5222. 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
  5223. 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U),
  5224. 3077 .loc 1 2059 60
  5225. 3078 0162 FB68 ldr r3, [r7, #12]
  5226. 3079 0164 1B8D ldrh r3, [r3, #40]
  5227. 3080 .loc 1 2059 9
  5228. 3081 0166 DBB2 uxtb r3, r3
  5229. 3082 0168 0133 adds r3, r3, #1
  5230. 3083 016a DAB2 uxtb r2, r3
  5231. 3084 016c 7989 ldrh r1, [r7, #10]
  5232. 3085 016e 2C4B ldr r3, .L139+16
  5233. 3086 0170 0093 str r3, [sp]
  5234. 3087 0172 FB69 ldr r3, [r7, #28]
  5235. 3088 0174 F868 ldr r0, [r7, #12]
  5236. 3089 0176 FFF7FEFF bl I2C_TransferConfig
  5237. 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
  5238. 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5239. 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  5240. 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  5241. 3090 .loc 1 2063 25
  5242. 3091 017a FB68 ldr r3, [r7, #12]
  5243. 3092 017c 5B8D ldrh r3, [r3, #42] @ movhi
  5244. 3093 017e 9AB2 uxth r2, r3
  5245. 3094 .loc 1 2063 32
  5246. 3095 0180 FB68 ldr r3, [r7, #12]
  5247. 3096 0182 1B8D ldrh r3, [r3, #40]
  5248. 3097 .loc 1 2063 25
  5249. 3098 0184 D31A subs r3, r2, r3
  5250. 3099 0186 9AB2 uxth r2, r3
  5251. 3100 0188 FB68 ldr r3, [r7, #12]
  5252. 3101 018a 5A85 strh r2, [r3, #42] @ movhi
  5253. 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5254. 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5255. 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5256. 3102 .loc 1 2066 9
  5257. 3103 018c FB68 ldr r3, [r7, #12]
  5258. 3104 018e 0022 movs r2, #0
  5259. 3105 0190 83F84020 strb r2, [r3, #64]
  5260. 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5261. 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  5262. 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  5263. 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  5264. 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
  5265. 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
  5266. 3106 .loc 1 2072 9
  5267. 3107 0194 1021 movs r1, #16
  5268. 3108 0196 F868 ldr r0, [r7, #12]
  5269. 3109 0198 FFF7FEFF bl I2C_Enable_IRQ
  5270. 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5271. 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  5272. 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
  5273. 3110 .loc 1 2075 13
  5274. 3111 019c FB68 ldr r3, [r7, #12]
  5275. 3112 019e 1B68 ldr r3, [r3]
  5276. 3113 .loc 1 2075 29
  5277. 3114 01a0 1A68 ldr r2, [r3]
  5278. 3115 .loc 1 2075 13
  5279. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 92
  5280. 3116 01a2 FB68 ldr r3, [r7, #12]
  5281. 3117 01a4 1B68 ldr r3, [r3]
  5282. 3118 .loc 1 2075 29
  5283. 3119 01a6 42F48042 orr r2, r2, #16384
  5284. 3120 01aa 1A60 str r2, [r3]
  5285. 3121 01ac 28E0 b .L137
  5286. 3122 .L136:
  5287. 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5288. 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5289. 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5290. 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  5291. 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  5292. 3123 .loc 1 2080 25
  5293. 3124 01ae FB68 ldr r3, [r7, #12]
  5294. 3125 01b0 2022 movs r2, #32
  5295. 3126 01b2 83F84120 strb r2, [r3, #65]
  5296. 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  5297. 3127 .loc 1 2081 25
  5298. 3128 01b6 FB68 ldr r3, [r7, #12]
  5299. 3129 01b8 0022 movs r2, #0
  5300. 3130 01ba 83F84220 strb r2, [r3, #66]
  5301. 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5302. 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  5303. 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  5304. 3131 .loc 1 2084 25
  5305. 3132 01be FB68 ldr r3, [r7, #12]
  5306. 3133 01c0 5B6C ldr r3, [r3, #68]
  5307. 3134 01c2 43F01002 orr r2, r3, #16
  5308. 3135 01c6 FB68 ldr r3, [r7, #12]
  5309. 3136 01c8 5A64 str r2, [r3, #68]
  5310. 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5311. 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5312. 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5313. 3137 .loc 1 2087 9
  5314. 3138 01ca FB68 ldr r3, [r7, #12]
  5315. 3139 01cc 0022 movs r2, #0
  5316. 3140 01ce 83F84020 strb r2, [r3, #64]
  5317. 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5318. 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  5319. 3141 .loc 1 2089 16
  5320. 3142 01d2 0123 movs r3, #1
  5321. 3143 01d4 17E0 b .L128
  5322. 3144 .L133:
  5323. 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5324. 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5325. 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5326. 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5327. 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
  5328. 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  5329. 3145 .loc 1 2095 21
  5330. 3146 01d6 FB68 ldr r3, [r7, #12]
  5331. 3147 01d8 124A ldr r2, .L139+20
  5332. 3148 01da 5A63 str r2, [r3, #52]
  5333. 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5334. 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  5335. 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
  5336. 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE,
  5337. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 93
  5338. 3149 .loc 1 2099 7
  5339. 3150 01dc BB69 ldr r3, [r7, #24]
  5340. 3151 01de DAB2 uxtb r2, r3
  5341. 3152 01e0 7989 ldrh r1, [r7, #10]
  5342. 3153 01e2 0F4B ldr r3, .L139+16
  5343. 3154 01e4 0093 str r3, [sp]
  5344. 3155 01e6 4FF00073 mov r3, #33554432
  5345. 3156 01ea F868 ldr r0, [r7, #12]
  5346. 3157 01ec FFF7FEFF bl I2C_TransferConfig
  5347. 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
  5348. 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5349. 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5350. 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5351. 3158 .loc 1 2103 7
  5352. 3159 01f0 FB68 ldr r3, [r7, #12]
  5353. 3160 01f2 0022 movs r2, #0
  5354. 3161 01f4 83F84020 strb r2, [r3, #64]
  5355. 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5356. 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  5357. 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  5358. 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  5359. 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  5360. 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  5361. 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  5362. 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  5363. 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  5364. 3162 .loc 1 2112 7
  5365. 3163 01f8 0121 movs r1, #1
  5366. 3164 01fa F868 ldr r0, [r7, #12]
  5367. 3165 01fc FFF7FEFF bl I2C_Enable_IRQ
  5368. 3166 .L137:
  5369. 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5370. 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5371. 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  5372. 3167 .loc 1 2115 12
  5373. 3168 0200 0023 movs r3, #0
  5374. 3169 0202 00E0 b .L128
  5375. 3170 .L126:
  5376. 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5377. 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5378. 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5379. 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  5380. 3171 .loc 1 2119 12
  5381. 3172 0204 0223 movs r3, #2
  5382. 3173 .L128:
  5383. 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5384. 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5385. 3174 .loc 1 2121 1
  5386. 3175 0206 1846 mov r0, r3
  5387. 3176 0208 2037 adds r7, r7, #32
  5388. 3177 .LCFI65:
  5389. 3178 .cfi_def_cfa_offset 8
  5390. 3179 020a BD46 mov sp, r7
  5391. 3180 .LCFI66:
  5392. 3181 .cfi_def_cfa_register 13
  5393. 3182 @ sp needed
  5394. 3183 020c 80BD pop {r7, pc}
  5395. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 94
  5396. 3184 .L140:
  5397. 3185 020e 00BF .align 2
  5398. 3186 .L139:
  5399. 3187 0210 0000FFFF .word -65536
  5400. 3188 0214 00000000 .word I2C_Master_ISR_DMA
  5401. 3189 0218 00000000 .word I2C_DMAMasterTransmitCplt
  5402. 3190 021c 00000000 .word I2C_DMAError
  5403. 3191 0220 00200080 .word -2147475456
  5404. 3192 0224 00000000 .word I2C_Master_ISR_IT
  5405. 3193 .cfi_endproc
  5406. 3194 .LFE142:
  5407. 3196 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
  5408. 3197 .align 1
  5409. 3198 .global HAL_I2C_Master_Receive_DMA
  5410. 3199 .syntax unified
  5411. 3200 .thumb
  5412. 3201 .thumb_func
  5413. 3203 HAL_I2C_Master_Receive_DMA:
  5414. 3204 .LFB143:
  5415. 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5416. 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  5417. 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
  5418. 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  5419. 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  5420. 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  5421. 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  5422. 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  5423. 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  5424. 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  5425. 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  5426. 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
  5427. 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
  5428. 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5429. 3205 .loc 1 2135 1
  5430. 3206 .cfi_startproc
  5431. 3207 @ args = 0, pretend = 0, frame = 24
  5432. 3208 @ frame_needed = 1, uses_anonymous_args = 0
  5433. 3209 0000 80B5 push {r7, lr}
  5434. 3210 .LCFI67:
  5435. 3211 .cfi_def_cfa_offset 8
  5436. 3212 .cfi_offset 7, -8
  5437. 3213 .cfi_offset 14, -4
  5438. 3214 0002 88B0 sub sp, sp, #32
  5439. 3215 .LCFI68:
  5440. 3216 .cfi_def_cfa_offset 40
  5441. 3217 0004 02AF add r7, sp, #8
  5442. 3218 .LCFI69:
  5443. 3219 .cfi_def_cfa 7, 32
  5444. 3220 0006 F860 str r0, [r7, #12]
  5445. 3221 0008 7A60 str r2, [r7, #4]
  5446. 3222 000a 1A46 mov r2, r3
  5447. 3223 000c 0B46 mov r3, r1 @ movhi
  5448. 3224 000e 7B81 strh r3, [r7, #10] @ movhi
  5449. 3225 0010 1346 mov r3, r2 @ movhi
  5450. 3226 0012 3B81 strh r3, [r7, #8] @ movhi
  5451. 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  5452. 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  5453. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 95
  5454. 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5455. 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  5456. 3227 .loc 1 2139 11
  5457. 3228 0014 FB68 ldr r3, [r7, #12]
  5458. 3229 0016 93F84130 ldrb r3, [r3, #65]
  5459. 3230 001a DBB2 uxtb r3, r3
  5460. 3231 .loc 1 2139 6
  5461. 3232 001c 202B cmp r3, #32
  5462. 3233 001e 40F0CD80 bne .L142
  5463. 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5464. 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  5465. 3234 .loc 1 2141 9
  5466. 3235 0022 FB68 ldr r3, [r7, #12]
  5467. 3236 0024 1B68 ldr r3, [r3]
  5468. 3237 0026 9B69 ldr r3, [r3, #24]
  5469. 3238 0028 03F40043 and r3, r3, #32768
  5470. 3239 .loc 1 2141 8
  5471. 3240 002c B3F5004F cmp r3, #32768
  5472. 3241 0030 01D1 bne .L143
  5473. 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5474. 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  5475. 3242 .loc 1 2143 14
  5476. 3243 0032 0223 movs r3, #2
  5477. 3244 0034 C3E0 b .L144
  5478. 3245 .L143:
  5479. 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5480. 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5481. 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  5482. 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  5483. 3246 .loc 1 2147 5
  5484. 3247 0036 FB68 ldr r3, [r7, #12]
  5485. 3248 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  5486. 3249 003c 012B cmp r3, #1
  5487. 3250 003e 01D1 bne .L145
  5488. 3251 .loc 1 2147 5 is_stmt 0 discriminator 1
  5489. 3252 0040 0223 movs r3, #2
  5490. 3253 0042 BCE0 b .L144
  5491. 3254 .L145:
  5492. 3255 .loc 1 2147 5 discriminator 2
  5493. 3256 0044 FB68 ldr r3, [r7, #12]
  5494. 3257 0046 0122 movs r2, #1
  5495. 3258 0048 83F84020 strb r2, [r3, #64]
  5496. 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5497. 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  5498. 3259 .loc 1 2149 23 is_stmt 1 discriminator 2
  5499. 3260 004c FB68 ldr r3, [r7, #12]
  5500. 3261 004e 2222 movs r2, #34
  5501. 3262 0050 83F84120 strb r2, [r3, #65]
  5502. 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  5503. 3263 .loc 1 2150 23 discriminator 2
  5504. 3264 0054 FB68 ldr r3, [r7, #12]
  5505. 3265 0056 1022 movs r2, #16
  5506. 3266 0058 83F84220 strb r2, [r3, #66]
  5507. 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  5508. 3267 .loc 1 2151 23 discriminator 2
  5509. 3268 005c FB68 ldr r3, [r7, #12]
  5510. 3269 005e 0022 movs r2, #0
  5511. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 96
  5512. 3270 0060 5A64 str r2, [r3, #68]
  5513. 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5514. 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  5515. 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  5516. 3271 .loc 1 2154 23 discriminator 2
  5517. 3272 0062 FB68 ldr r3, [r7, #12]
  5518. 3273 0064 7A68 ldr r2, [r7, #4]
  5519. 3274 0066 5A62 str r2, [r3, #36]
  5520. 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  5521. 3275 .loc 1 2155 23 discriminator 2
  5522. 3276 0068 FB68 ldr r3, [r7, #12]
  5523. 3277 006a 3A89 ldrh r2, [r7, #8] @ movhi
  5524. 3278 006c 5A85 strh r2, [r3, #42] @ movhi
  5525. 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  5526. 3279 .loc 1 2156 23 discriminator 2
  5527. 3280 006e FB68 ldr r3, [r7, #12]
  5528. 3281 0070 554A ldr r2, .L154
  5529. 3282 0072 DA62 str r2, [r3, #44]
  5530. 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
  5531. 3283 .loc 1 2157 23 discriminator 2
  5532. 3284 0074 FB68 ldr r3, [r7, #12]
  5533. 3285 0076 554A ldr r2, .L154+4
  5534. 3286 0078 5A63 str r2, [r3, #52]
  5535. 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5536. 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  5537. 3287 .loc 1 2159 13 discriminator 2
  5538. 3288 007a FB68 ldr r3, [r7, #12]
  5539. 3289 007c 5B8D ldrh r3, [r3, #42] @ movhi
  5540. 3290 007e 9BB2 uxth r3, r3
  5541. 3291 .loc 1 2159 8 discriminator 2
  5542. 3292 0080 FF2B cmp r3, #255
  5543. 3293 0082 06D9 bls .L146
  5544. 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5545. 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  5546. 3294 .loc 1 2161 22
  5547. 3295 0084 FB68 ldr r3, [r7, #12]
  5548. 3296 0086 0122 movs r2, #1
  5549. 3297 0088 1A85 strh r2, [r3, #40] @ movhi
  5550. 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  5551. 3298 .loc 1 2162 16
  5552. 3299 008a 4FF08073 mov r3, #16777216
  5553. 3300 008e 7B61 str r3, [r7, #20]
  5554. 3301 0090 07E0 b .L147
  5555. 3302 .L146:
  5556. 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5557. 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5558. 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5559. 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  5560. 3303 .loc 1 2166 28
  5561. 3304 0092 FB68 ldr r3, [r7, #12]
  5562. 3305 0094 5B8D ldrh r3, [r3, #42] @ movhi
  5563. 3306 0096 9AB2 uxth r2, r3
  5564. 3307 .loc 1 2166 22
  5565. 3308 0098 FB68 ldr r3, [r7, #12]
  5566. 3309 009a 1A85 strh r2, [r3, #40] @ movhi
  5567. 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
  5568. 3310 .loc 1 2167 16
  5569. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 97
  5570. 3311 009c 4FF00073 mov r3, #33554432
  5571. 3312 00a0 7B61 str r3, [r7, #20]
  5572. 3313 .L147:
  5573. 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5574. 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5575. 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
  5576. 3314 .loc 1 2170 13
  5577. 3315 00a2 FB68 ldr r3, [r7, #12]
  5578. 3316 00a4 1B8D ldrh r3, [r3, #40]
  5579. 3317 .loc 1 2170 8
  5580. 3318 00a6 002B cmp r3, #0
  5581. 3319 00a8 70D0 beq .L148
  5582. 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5583. 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  5584. 3320 .loc 1 2172 15
  5585. 3321 00aa FB68 ldr r3, [r7, #12]
  5586. 3322 00ac DB6B ldr r3, [r3, #60]
  5587. 3323 .loc 1 2172 10
  5588. 3324 00ae 002B cmp r3, #0
  5589. 3325 00b0 20D0 beq .L149
  5590. 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5591. 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  5592. 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
  5593. 3326 .loc 1 2175 13
  5594. 3327 00b2 FB68 ldr r3, [r7, #12]
  5595. 3328 00b4 DB6B ldr r3, [r3, #60]
  5596. 3329 .loc 1 2175 40
  5597. 3330 00b6 464A ldr r2, .L154+8
  5598. 3331 00b8 9A62 str r2, [r3, #40]
  5599. 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5600. 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  5601. 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
  5602. 3332 .loc 1 2178 13
  5603. 3333 00ba FB68 ldr r3, [r7, #12]
  5604. 3334 00bc DB6B ldr r3, [r3, #60]
  5605. 3335 .loc 1 2178 41
  5606. 3336 00be 454A ldr r2, .L154+12
  5607. 3337 00c0 1A63 str r2, [r3, #48]
  5608. 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5609. 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  5610. 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
  5611. 3338 .loc 1 2181 13
  5612. 3339 00c2 FB68 ldr r3, [r7, #12]
  5613. 3340 00c4 DB6B ldr r3, [r3, #60]
  5614. 3341 .loc 1 2181 44
  5615. 3342 00c6 0022 movs r2, #0
  5616. 3343 00c8 DA62 str r2, [r3, #44]
  5617. 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
  5618. 3344 .loc 1 2182 13
  5619. 3345 00ca FB68 ldr r3, [r7, #12]
  5620. 3346 00cc DB6B ldr r3, [r3, #60]
  5621. 3347 .loc 1 2182 41
  5622. 3348 00ce 0022 movs r2, #0
  5623. 3349 00d0 5A63 str r2, [r3, #52]
  5624. 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5625. 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  5626. 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
  5627. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 98
  5628. 3350 .loc 1 2185 25
  5629. 3351 00d2 FB68 ldr r3, [r7, #12]
  5630. 3352 00d4 D86B ldr r0, [r3, #60]
  5631. 3353 .loc 1 2185 71
  5632. 3354 00d6 FB68 ldr r3, [r7, #12]
  5633. 3355 00d8 1B68 ldr r3, [r3]
  5634. 3356 .loc 1 2185 66
  5635. 3357 00da 2433 adds r3, r3, #36
  5636. 3358 .loc 1 2185 25
  5637. 3359 00dc 1946 mov r1, r3
  5638. 3360 00de 7A68 ldr r2, [r7, #4]
  5639. 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  5640. 3361 .loc 1 2186 46
  5641. 3362 00e0 FB68 ldr r3, [r7, #12]
  5642. 3363 00e2 1B8D ldrh r3, [r3, #40]
  5643. 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  5644. 3364 .loc 1 2185 25
  5645. 3365 00e4 FFF7FEFF bl HAL_DMA_Start_IT
  5646. 3366 00e8 0346 mov r3, r0
  5647. 3367 00ea FB74 strb r3, [r7, #19]
  5648. 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5649. 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5650. 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5651. 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  5652. 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  5653. 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  5654. 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5655. 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  5656. 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  5657. 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5658. 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5659. 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5660. 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5661. 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  5662. 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5663. 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5664. 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  5665. 3368 .loc 1 2203 10
  5666. 3369 00ec FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
  5667. 3370 00ee 002B cmp r3, #0
  5668. 3371 00f0 38D1 bne .L151
  5669. 3372 00f2 13E0 b .L153
  5670. 3373 .L149:
  5671. 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  5672. 3374 .loc 1 2191 25
  5673. 3375 00f4 FB68 ldr r3, [r7, #12]
  5674. 3376 00f6 2022 movs r2, #32
  5675. 3377 00f8 83F84120 strb r2, [r3, #65]
  5676. 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5677. 3378 .loc 1 2192 25
  5678. 3379 00fc FB68 ldr r3, [r7, #12]
  5679. 3380 00fe 0022 movs r2, #0
  5680. 3381 0100 83F84220 strb r2, [r3, #66]
  5681. 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5682. 3382 .loc 1 2195 25
  5683. 3383 0104 FB68 ldr r3, [r7, #12]
  5684. 3384 0106 5B6C ldr r3, [r3, #68]
  5685. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 99
  5686. 3385 0108 43F08002 orr r2, r3, #128
  5687. 3386 010c FB68 ldr r3, [r7, #12]
  5688. 3387 010e 5A64 str r2, [r3, #68]
  5689. 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5690. 3388 .loc 1 2198 9
  5691. 3389 0110 FB68 ldr r3, [r7, #12]
  5692. 3390 0112 0022 movs r2, #0
  5693. 3391 0114 83F84020 strb r2, [r3, #64]
  5694. 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5695. 3392 .loc 1 2200 16
  5696. 3393 0118 0123 movs r3, #1
  5697. 3394 011a 50E0 b .L144
  5698. 3395 .L153:
  5699. 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5700. 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  5701. 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
  5702. 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
  5703. 3396 .loc 1 2207 59
  5704. 3397 011c FB68 ldr r3, [r7, #12]
  5705. 3398 011e 1B8D ldrh r3, [r3, #40]
  5706. 3399 .loc 1 2207 9
  5707. 3400 0120 DAB2 uxtb r2, r3
  5708. 3401 0122 7989 ldrh r1, [r7, #10]
  5709. 3402 0124 2C4B ldr r3, .L154+16
  5710. 3403 0126 0093 str r3, [sp]
  5711. 3404 0128 7B69 ldr r3, [r7, #20]
  5712. 3405 012a F868 ldr r0, [r7, #12]
  5713. 3406 012c FFF7FEFF bl I2C_TransferConfig
  5714. 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5715. 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  5716. 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  5717. 3407 .loc 1 2210 25
  5718. 3408 0130 FB68 ldr r3, [r7, #12]
  5719. 3409 0132 5B8D ldrh r3, [r3, #42] @ movhi
  5720. 3410 0134 9AB2 uxth r2, r3
  5721. 3411 .loc 1 2210 32
  5722. 3412 0136 FB68 ldr r3, [r7, #12]
  5723. 3413 0138 1B8D ldrh r3, [r3, #40]
  5724. 3414 .loc 1 2210 25
  5725. 3415 013a D31A subs r3, r2, r3
  5726. 3416 013c 9AB2 uxth r2, r3
  5727. 3417 013e FB68 ldr r3, [r7, #12]
  5728. 3418 0140 5A85 strh r2, [r3, #42] @ movhi
  5729. 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5730. 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5731. 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5732. 3419 .loc 1 2213 9
  5733. 3420 0142 FB68 ldr r3, [r7, #12]
  5734. 3421 0144 0022 movs r2, #0
  5735. 3422 0146 83F84020 strb r2, [r3, #64]
  5736. 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5737. 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  5738. 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  5739. 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  5740. 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
  5741. 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
  5742. 3423 .loc 1 2219 9
  5743. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 100
  5744. 3424 014a 1021 movs r1, #16
  5745. 3425 014c F868 ldr r0, [r7, #12]
  5746. 3426 014e FFF7FEFF bl I2C_Enable_IRQ
  5747. 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5748. 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  5749. 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
  5750. 3427 .loc 1 2222 13
  5751. 3428 0152 FB68 ldr r3, [r7, #12]
  5752. 3429 0154 1B68 ldr r3, [r3]
  5753. 3430 .loc 1 2222 29
  5754. 3431 0156 1A68 ldr r2, [r3]
  5755. 3432 .loc 1 2222 13
  5756. 3433 0158 FB68 ldr r3, [r7, #12]
  5757. 3434 015a 1B68 ldr r3, [r3]
  5758. 3435 .loc 1 2222 29
  5759. 3436 015c 42F40042 orr r2, r2, #32768
  5760. 3437 0160 1A60 str r2, [r3]
  5761. 3438 0162 29E0 b .L152
  5762. 3439 .L151:
  5763. 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5764. 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5765. 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5766. 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  5767. 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  5768. 3440 .loc 1 2227 25
  5769. 3441 0164 FB68 ldr r3, [r7, #12]
  5770. 3442 0166 2022 movs r2, #32
  5771. 3443 0168 83F84120 strb r2, [r3, #65]
  5772. 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  5773. 3444 .loc 1 2228 25
  5774. 3445 016c FB68 ldr r3, [r7, #12]
  5775. 3446 016e 0022 movs r2, #0
  5776. 3447 0170 83F84220 strb r2, [r3, #66]
  5777. 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5778. 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  5779. 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  5780. 3448 .loc 1 2231 25
  5781. 3449 0174 FB68 ldr r3, [r7, #12]
  5782. 3450 0176 5B6C ldr r3, [r3, #68]
  5783. 3451 0178 43F01002 orr r2, r3, #16
  5784. 3452 017c FB68 ldr r3, [r7, #12]
  5785. 3453 017e 5A64 str r2, [r3, #68]
  5786. 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5787. 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5788. 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5789. 3454 .loc 1 2234 9
  5790. 3455 0180 FB68 ldr r3, [r7, #12]
  5791. 3456 0182 0022 movs r2, #0
  5792. 3457 0184 83F84020 strb r2, [r3, #64]
  5793. 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5794. 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  5795. 3458 .loc 1 2236 16
  5796. 3459 0188 0123 movs r3, #1
  5797. 3460 018a 18E0 b .L144
  5798. 3461 .L148:
  5799. 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5800. 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5801. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 101
  5802. 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5803. 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5804. 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
  5805. 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  5806. 3462 .loc 1 2242 21
  5807. 3463 018c FB68 ldr r3, [r7, #12]
  5808. 3464 018e 134A ldr r2, .L154+20
  5809. 3465 0190 5A63 str r2, [r3, #52]
  5810. 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5811. 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  5812. 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
  5813. 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  5814. 3466 .loc 1 2246 57
  5815. 3467 0192 FB68 ldr r3, [r7, #12]
  5816. 3468 0194 1B8D ldrh r3, [r3, #40]
  5817. 3469 .loc 1 2246 7
  5818. 3470 0196 DAB2 uxtb r2, r3
  5819. 3471 0198 7989 ldrh r1, [r7, #10]
  5820. 3472 019a 0F4B ldr r3, .L154+16
  5821. 3473 019c 0093 str r3, [sp]
  5822. 3474 019e 4FF00073 mov r3, #33554432
  5823. 3475 01a2 F868 ldr r0, [r7, #12]
  5824. 3476 01a4 FFF7FEFF bl I2C_TransferConfig
  5825. 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
  5826. 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5827. 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  5828. 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  5829. 3477 .loc 1 2250 7
  5830. 3478 01a8 FB68 ldr r3, [r7, #12]
  5831. 3479 01aa 0022 movs r2, #0
  5832. 3480 01ac 83F84020 strb r2, [r3, #64]
  5833. 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5834. 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  5835. 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  5836. 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  5837. 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
  5838. 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  5839. 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  5840. 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  5841. 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
  5842. 3481 .loc 1 2259 7
  5843. 3482 01b0 0221 movs r1, #2
  5844. 3483 01b2 F868 ldr r0, [r7, #12]
  5845. 3484 01b4 FFF7FEFF bl I2C_Enable_IRQ
  5846. 3485 .L152:
  5847. 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5848. 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5849. 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  5850. 3486 .loc 1 2262 12
  5851. 3487 01b8 0023 movs r3, #0
  5852. 3488 01ba 00E0 b .L144
  5853. 3489 .L142:
  5854. 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5855. 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  5856. 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5857. 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  5858. 3490 .loc 1 2266 12
  5859. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 102
  5860. 3491 01bc 0223 movs r3, #2
  5861. 3492 .L144:
  5862. 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5863. 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5864. 3493 .loc 1 2268 1
  5865. 3494 01be 1846 mov r0, r3
  5866. 3495 01c0 1837 adds r7, r7, #24
  5867. 3496 .LCFI70:
  5868. 3497 .cfi_def_cfa_offset 8
  5869. 3498 01c2 BD46 mov sp, r7
  5870. 3499 .LCFI71:
  5871. 3500 .cfi_def_cfa_register 13
  5872. 3501 @ sp needed
  5873. 3502 01c4 80BD pop {r7, pc}
  5874. 3503 .L155:
  5875. 3504 01c6 00BF .align 2
  5876. 3505 .L154:
  5877. 3506 01c8 0000FFFF .word -65536
  5878. 3507 01cc 00000000 .word I2C_Master_ISR_DMA
  5879. 3508 01d0 00000000 .word I2C_DMAMasterReceiveCplt
  5880. 3509 01d4 00000000 .word I2C_DMAError
  5881. 3510 01d8 00240080 .word -2147474432
  5882. 3511 01dc 00000000 .word I2C_Master_ISR_IT
  5883. 3512 .cfi_endproc
  5884. 3513 .LFE143:
  5885. 3515 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
  5886. 3516 .align 1
  5887. 3517 .global HAL_I2C_Slave_Transmit_DMA
  5888. 3518 .syntax unified
  5889. 3519 .thumb
  5890. 3520 .thumb_func
  5891. 3522 HAL_I2C_Slave_Transmit_DMA:
  5892. 3523 .LFB144:
  5893. 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5894. 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  5895. 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
  5896. 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  5897. 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  5898. 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  5899. 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  5900. 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  5901. 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  5902. 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size
  5903. 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5904. 3524 .loc 1 2279 1
  5905. 3525 .cfi_startproc
  5906. 3526 @ args = 0, pretend = 0, frame = 24
  5907. 3527 @ frame_needed = 1, uses_anonymous_args = 0
  5908. 3528 0000 80B5 push {r7, lr}
  5909. 3529 .LCFI72:
  5910. 3530 .cfi_def_cfa_offset 8
  5911. 3531 .cfi_offset 7, -8
  5912. 3532 .cfi_offset 14, -4
  5913. 3533 0002 86B0 sub sp, sp, #24
  5914. 3534 .LCFI73:
  5915. 3535 .cfi_def_cfa_offset 32
  5916. 3536 0004 00AF add r7, sp, #0
  5917. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 103
  5918. 3537 .LCFI74:
  5919. 3538 .cfi_def_cfa_register 7
  5920. 3539 0006 F860 str r0, [r7, #12]
  5921. 3540 0008 B960 str r1, [r7, #8]
  5922. 3541 000a 1346 mov r3, r2
  5923. 3542 000c FB80 strh r3, [r7, #6] @ movhi
  5924. 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  5925. 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5926. 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  5927. 3543 .loc 1 2282 11
  5928. 3544 000e FB68 ldr r3, [r7, #12]
  5929. 3545 0010 93F84130 ldrb r3, [r3, #65]
  5930. 3546 0014 DBB2 uxtb r3, r3
  5931. 3547 .loc 1 2282 6
  5932. 3548 0016 202B cmp r3, #32
  5933. 3549 0018 40F0D180 bne .L157
  5934. 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5935. 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  5936. 3550 .loc 1 2284 8
  5937. 3551 001c BB68 ldr r3, [r7, #8]
  5938. 3552 001e 002B cmp r3, #0
  5939. 3553 0020 02D0 beq .L158
  5940. 3554 .loc 1 2284 25 discriminator 1
  5941. 3555 0022 FB88 ldrh r3, [r7, #6]
  5942. 3556 0024 002B cmp r3, #0
  5943. 3557 0026 05D1 bne .L159
  5944. 3558 .L158:
  5945. 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  5946. 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  5947. 3559 .loc 1 2286 23
  5948. 3560 0028 FB68 ldr r3, [r7, #12]
  5949. 3561 002a 4FF40072 mov r2, #512
  5950. 3562 002e 5A64 str r2, [r3, #68]
  5951. 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  5952. 3563 .loc 1 2287 15
  5953. 3564 0030 0123 movs r3, #1
  5954. 3565 0032 C5E0 b .L160
  5955. 3566 .L159:
  5956. 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  5957. 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  5958. 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  5959. 3567 .loc 1 2290 5
  5960. 3568 0034 FB68 ldr r3, [r7, #12]
  5961. 3569 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  5962. 3570 003a 012B cmp r3, #1
  5963. 3571 003c 01D1 bne .L161
  5964. 3572 .loc 1 2290 5 is_stmt 0 discriminator 1
  5965. 3573 003e 0223 movs r3, #2
  5966. 3574 0040 BEE0 b .L160
  5967. 3575 .L161:
  5968. 3576 .loc 1 2290 5 discriminator 2
  5969. 3577 0042 FB68 ldr r3, [r7, #12]
  5970. 3578 0044 0122 movs r2, #1
  5971. 3579 0046 83F84020 strb r2, [r3, #64]
  5972. 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5973. 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  5974. 3580 .loc 1 2292 23 is_stmt 1 discriminator 2
  5975. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 104
  5976. 3581 004a FB68 ldr r3, [r7, #12]
  5977. 3582 004c 2122 movs r2, #33
  5978. 3583 004e 83F84120 strb r2, [r3, #65]
  5979. 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  5980. 3584 .loc 1 2293 23 discriminator 2
  5981. 3585 0052 FB68 ldr r3, [r7, #12]
  5982. 3586 0054 2022 movs r2, #32
  5983. 3587 0056 83F84220 strb r2, [r3, #66]
  5984. 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  5985. 3588 .loc 1 2294 23 discriminator 2
  5986. 3589 005a FB68 ldr r3, [r7, #12]
  5987. 3590 005c 0022 movs r2, #0
  5988. 3591 005e 5A64 str r2, [r3, #68]
  5989. 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  5990. 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  5991. 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  5992. 3592 .loc 1 2297 23 discriminator 2
  5993. 3593 0060 FB68 ldr r3, [r7, #12]
  5994. 3594 0062 BA68 ldr r2, [r7, #8]
  5995. 3595 0064 5A62 str r2, [r3, #36]
  5996. 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  5997. 3596 .loc 1 2298 23 discriminator 2
  5998. 3597 0066 FB68 ldr r3, [r7, #12]
  5999. 3598 0068 FA88 ldrh r2, [r7, #6] @ movhi
  6000. 3599 006a 5A85 strh r2, [r3, #42] @ movhi
  6001. 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  6002. 3600 .loc 1 2299 29 discriminator 2
  6003. 3601 006c FB68 ldr r3, [r7, #12]
  6004. 3602 006e 5B8D ldrh r3, [r3, #42] @ movhi
  6005. 3603 0070 9AB2 uxth r2, r3
  6006. 3604 .loc 1 2299 23 discriminator 2
  6007. 3605 0072 FB68 ldr r3, [r7, #12]
  6008. 3606 0074 1A85 strh r2, [r3, #40] @ movhi
  6009. 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  6010. 3607 .loc 1 2300 23 discriminator 2
  6011. 3608 0076 FB68 ldr r3, [r7, #12]
  6012. 3609 0078 534A ldr r2, .L169
  6013. 3610 007a DA62 str r2, [r3, #44]
  6014. 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
  6015. 3611 .loc 1 2301 23 discriminator 2
  6016. 3612 007c FB68 ldr r3, [r7, #12]
  6017. 3613 007e 534A ldr r2, .L169+4
  6018. 3614 0080 5A63 str r2, [r3, #52]
  6019. 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6020. 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
  6021. 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
  6022. 3615 .loc 1 2304 19 discriminator 2
  6023. 3616 0082 FB68 ldr r3, [r7, #12]
  6024. 3617 0084 1B6A ldr r3, [r3, #32]
  6025. 3618 .loc 1 2304 8 discriminator 2
  6026. 3619 0086 B3F5003F cmp r3, #131072
  6027. 3620 008a 17D1 bne .L162
  6028. 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6029. 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  6030. 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  6031. 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  6032. 3621 .loc 1 2308 35
  6033. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 105
  6034. 3622 008c FB68 ldr r3, [r7, #12]
  6035. 3623 008e 5B6A ldr r3, [r3, #36]
  6036. 3624 .loc 1 2308 30
  6037. 3625 0090 1A78 ldrb r2, [r3] @ zero_extendqisi2
  6038. 3626 .loc 1 2308 11
  6039. 3627 0092 FB68 ldr r3, [r7, #12]
  6040. 3628 0094 1B68 ldr r3, [r3]
  6041. 3629 .loc 1 2308 28
  6042. 3630 0096 9A62 str r2, [r3, #40]
  6043. 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6044. 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  6045. 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  6046. 3631 .loc 1 2311 11
  6047. 3632 0098 FB68 ldr r3, [r7, #12]
  6048. 3633 009a 5B6A ldr r3, [r3, #36]
  6049. 3634 .loc 1 2311 21
  6050. 3635 009c 5A1C adds r2, r3, #1
  6051. 3636 009e FB68 ldr r3, [r7, #12]
  6052. 3637 00a0 5A62 str r2, [r3, #36]
  6053. 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6054. 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  6055. 3638 .loc 1 2313 11
  6056. 3639 00a2 FB68 ldr r3, [r7, #12]
  6057. 3640 00a4 5B8D ldrh r3, [r3, #42] @ movhi
  6058. 3641 00a6 9BB2 uxth r3, r3
  6059. 3642 .loc 1 2313 22
  6060. 3643 00a8 013B subs r3, r3, #1
  6061. 3644 00aa 9AB2 uxth r2, r3
  6062. 3645 00ac FB68 ldr r3, [r7, #12]
  6063. 3646 00ae 5A85 strh r2, [r3, #42] @ movhi
  6064. 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  6065. 3647 .loc 1 2314 11
  6066. 3648 00b0 FB68 ldr r3, [r7, #12]
  6067. 3649 00b2 1B8D ldrh r3, [r3, #40]
  6068. 3650 .loc 1 2314 21
  6069. 3651 00b4 013B subs r3, r3, #1
  6070. 3652 00b6 9AB2 uxth r2, r3
  6071. 3653 00b8 FB68 ldr r3, [r7, #12]
  6072. 3654 00ba 1A85 strh r2, [r3, #40] @ movhi
  6073. 3655 .L162:
  6074. 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6075. 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6076. 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
  6077. 3656 .loc 1 2317 13
  6078. 3657 00bc FB68 ldr r3, [r7, #12]
  6079. 3658 00be 5B8D ldrh r3, [r3, #42] @ movhi
  6080. 3659 00c0 9BB2 uxth r3, r3
  6081. 3660 .loc 1 2317 8
  6082. 3661 00c2 002B cmp r3, #0
  6083. 3662 00c4 68D0 beq .L163
  6084. 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6085. 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  6086. 3663 .loc 1 2319 15
  6087. 3664 00c6 FB68 ldr r3, [r7, #12]
  6088. 3665 00c8 9B6B ldr r3, [r3, #56]
  6089. 3666 .loc 1 2319 10
  6090. 3667 00ca 002B cmp r3, #0
  6091. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 106
  6092. 3668 00cc 22D0 beq .L164
  6093. 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6094. 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  6095. 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
  6096. 3669 .loc 1 2322 13
  6097. 3670 00ce FB68 ldr r3, [r7, #12]
  6098. 3671 00d0 9B6B ldr r3, [r3, #56]
  6099. 3672 .loc 1 2322 40
  6100. 3673 00d2 3F4A ldr r2, .L169+8
  6101. 3674 00d4 9A62 str r2, [r3, #40]
  6102. 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6103. 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  6104. 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
  6105. 3675 .loc 1 2325 13
  6106. 3676 00d6 FB68 ldr r3, [r7, #12]
  6107. 3677 00d8 9B6B ldr r3, [r3, #56]
  6108. 3678 .loc 1 2325 41
  6109. 3679 00da 3E4A ldr r2, .L169+12
  6110. 3680 00dc 1A63 str r2, [r3, #48]
  6111. 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6112. 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  6113. 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
  6114. 3681 .loc 1 2328 13
  6115. 3682 00de FB68 ldr r3, [r7, #12]
  6116. 3683 00e0 9B6B ldr r3, [r3, #56]
  6117. 3684 .loc 1 2328 44
  6118. 3685 00e2 0022 movs r2, #0
  6119. 3686 00e4 DA62 str r2, [r3, #44]
  6120. 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
  6121. 3687 .loc 1 2329 13
  6122. 3688 00e6 FB68 ldr r3, [r7, #12]
  6123. 3689 00e8 9B6B ldr r3, [r3, #56]
  6124. 3690 .loc 1 2329 41
  6125. 3691 00ea 0022 movs r2, #0
  6126. 3692 00ec 5A63 str r2, [r3, #52]
  6127. 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6128. 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  6129. 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx,
  6130. 3693 .loc 1 2332 25
  6131. 3694 00ee FB68 ldr r3, [r7, #12]
  6132. 3695 00f0 986B ldr r0, [r3, #56]
  6133. 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
  6134. 3696 .loc 1 2333 56
  6135. 3697 00f2 FB68 ldr r3, [r7, #12]
  6136. 3698 00f4 5B6A ldr r3, [r3, #36]
  6137. 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
  6138. 3699 .loc 1 2332 25
  6139. 3700 00f6 1946 mov r1, r3
  6140. 3701 .loc 1 2333 83
  6141. 3702 00f8 FB68 ldr r3, [r7, #12]
  6142. 3703 00fa 1B68 ldr r3, [r3]
  6143. 3704 .loc 1 2333 78
  6144. 3705 00fc 2833 adds r3, r3, #40
  6145. 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
  6146. 3706 .loc 1 2332 25
  6147. 3707 00fe 1A46 mov r2, r3
  6148. 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  6149. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 107
  6150. 3708 .loc 1 2334 46
  6151. 3709 0100 FB68 ldr r3, [r7, #12]
  6152. 3710 0102 1B8D ldrh r3, [r3, #40]
  6153. 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
  6154. 3711 .loc 1 2332 25
  6155. 3712 0104 FFF7FEFF bl HAL_DMA_Start_IT
  6156. 3713 0108 0346 mov r3, r0
  6157. 3714 010a FB75 strb r3, [r7, #23]
  6158. 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6159. 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6160. 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6161. 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  6162. 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  6163. 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  6164. 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6165. 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  6166. 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  6167. 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6168. 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6169. 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6170. 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6171. 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6172. 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6173. 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6174. 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  6175. 3715 .loc 1 2351 10
  6176. 3716 010c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  6177. 3717 010e 002B cmp r3, #0
  6178. 3718 0110 2ED1 bne .L166
  6179. 3719 0112 13E0 b .L168
  6180. 3720 .L164:
  6181. 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  6182. 3721 .loc 1 2339 25
  6183. 3722 0114 FB68 ldr r3, [r7, #12]
  6184. 3723 0116 2822 movs r2, #40
  6185. 3724 0118 83F84120 strb r2, [r3, #65]
  6186. 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6187. 3725 .loc 1 2340 25
  6188. 3726 011c FB68 ldr r3, [r7, #12]
  6189. 3727 011e 0022 movs r2, #0
  6190. 3728 0120 83F84220 strb r2, [r3, #66]
  6191. 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6192. 3729 .loc 1 2343 25
  6193. 3730 0124 FB68 ldr r3, [r7, #12]
  6194. 3731 0126 5B6C ldr r3, [r3, #68]
  6195. 3732 0128 43F08002 orr r2, r3, #128
  6196. 3733 012c FB68 ldr r3, [r7, #12]
  6197. 3734 012e 5A64 str r2, [r3, #68]
  6198. 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6199. 3735 .loc 1 2346 9
  6200. 3736 0130 FB68 ldr r3, [r7, #12]
  6201. 3737 0132 0022 movs r2, #0
  6202. 3738 0134 83F84020 strb r2, [r3, #64]
  6203. 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6204. 3739 .loc 1 2348 16
  6205. 3740 0138 0123 movs r3, #1
  6206. 3741 013a 41E0 b .L160
  6207. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 108
  6208. 3742 .L168:
  6209. 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6210. 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  6211. 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  6212. 3743 .loc 1 2354 13
  6213. 3744 013c FB68 ldr r3, [r7, #12]
  6214. 3745 013e 1B68 ldr r3, [r3]
  6215. 3746 .loc 1 2354 29
  6216. 3747 0140 5A68 ldr r2, [r3, #4]
  6217. 3748 .loc 1 2354 13
  6218. 3749 0142 FB68 ldr r3, [r7, #12]
  6219. 3750 0144 1B68 ldr r3, [r3]
  6220. 3751 .loc 1 2354 29
  6221. 3752 0146 22F40042 bic r2, r2, #32768
  6222. 3753 014a 5A60 str r2, [r3, #4]
  6223. 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6224. 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6225. 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6226. 3754 .loc 1 2357 9
  6227. 3755 014c FB68 ldr r3, [r7, #12]
  6228. 3756 014e 0022 movs r2, #0
  6229. 3757 0150 83F84020 strb r2, [r3, #64]
  6230. 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6231. 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  6232. 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  6233. 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  6234. 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
  6235. 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  6236. 3758 .loc 1 2363 9
  6237. 3759 0154 4FF40041 mov r1, #32768
  6238. 3760 0158 F868 ldr r0, [r7, #12]
  6239. 3761 015a FFF7FEFF bl I2C_Enable_IRQ
  6240. 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6241. 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  6242. 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
  6243. 3762 .loc 1 2366 13
  6244. 3763 015e FB68 ldr r3, [r7, #12]
  6245. 3764 0160 1B68 ldr r3, [r3]
  6246. 3765 .loc 1 2366 29
  6247. 3766 0162 1A68 ldr r2, [r3]
  6248. 3767 .loc 1 2366 13
  6249. 3768 0164 FB68 ldr r3, [r7, #12]
  6250. 3769 0166 1B68 ldr r3, [r3]
  6251. 3770 .loc 1 2366 29
  6252. 3771 0168 42F48042 orr r2, r2, #16384
  6253. 3772 016c 1A60 str r2, [r3]
  6254. 3773 016e 24E0 b .L167
  6255. 3774 .L166:
  6256. 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6257. 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6258. 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6259. 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  6260. 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  6261. 3775 .loc 1 2371 25
  6262. 3776 0170 FB68 ldr r3, [r7, #12]
  6263. 3777 0172 2822 movs r2, #40
  6264. 3778 0174 83F84120 strb r2, [r3, #65]
  6265. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 109
  6266. 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  6267. 3779 .loc 1 2372 25
  6268. 3780 0178 FB68 ldr r3, [r7, #12]
  6269. 3781 017a 0022 movs r2, #0
  6270. 3782 017c 83F84220 strb r2, [r3, #66]
  6271. 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6272. 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  6273. 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  6274. 3783 .loc 1 2375 25
  6275. 3784 0180 FB68 ldr r3, [r7, #12]
  6276. 3785 0182 5B6C ldr r3, [r3, #68]
  6277. 3786 0184 43F01002 orr r2, r3, #16
  6278. 3787 0188 FB68 ldr r3, [r7, #12]
  6279. 3788 018a 5A64 str r2, [r3, #68]
  6280. 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6281. 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6282. 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6283. 3789 .loc 1 2378 9
  6284. 3790 018c FB68 ldr r3, [r7, #12]
  6285. 3791 018e 0022 movs r2, #0
  6286. 3792 0190 83F84020 strb r2, [r3, #64]
  6287. 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6288. 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6289. 3793 .loc 1 2380 16
  6290. 3794 0194 0123 movs r3, #1
  6291. 3795 0196 13E0 b .L160
  6292. 3796 .L163:
  6293. 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6294. 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6295. 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6296. 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6297. 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  6298. 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  6299. 3797 .loc 1 2386 11
  6300. 3798 0198 FB68 ldr r3, [r7, #12]
  6301. 3799 019a 1B68 ldr r3, [r3]
  6302. 3800 .loc 1 2386 27
  6303. 3801 019c 5A68 ldr r2, [r3, #4]
  6304. 3802 .loc 1 2386 11
  6305. 3803 019e FB68 ldr r3, [r7, #12]
  6306. 3804 01a0 1B68 ldr r3, [r3]
  6307. 3805 .loc 1 2386 27
  6308. 3806 01a2 22F40042 bic r2, r2, #32768
  6309. 3807 01a6 5A60 str r2, [r3, #4]
  6310. 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6311. 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6312. 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6313. 3808 .loc 1 2389 7
  6314. 3809 01a8 FB68 ldr r3, [r7, #12]
  6315. 3810 01aa 0022 movs r2, #0
  6316. 3811 01ac 83F84020 strb r2, [r3, #64]
  6317. 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6318. 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  6319. 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  6320. 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  6321. 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
  6322. 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  6323. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 110
  6324. 3812 .loc 1 2395 7
  6325. 3813 01b0 4FF40041 mov r1, #32768
  6326. 3814 01b4 F868 ldr r0, [r7, #12]
  6327. 3815 01b6 FFF7FEFF bl I2C_Enable_IRQ
  6328. 3816 .L167:
  6329. 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6330. 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6331. 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  6332. 3817 .loc 1 2398 12
  6333. 3818 01ba 0023 movs r3, #0
  6334. 3819 01bc 00E0 b .L160
  6335. 3820 .L157:
  6336. 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6337. 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6338. 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6339. 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  6340. 3821 .loc 1 2402 12
  6341. 3822 01be 0223 movs r3, #2
  6342. 3823 .L160:
  6343. 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6344. 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6345. 3824 .loc 1 2404 1
  6346. 3825 01c0 1846 mov r0, r3
  6347. 3826 01c2 1837 adds r7, r7, #24
  6348. 3827 .LCFI75:
  6349. 3828 .cfi_def_cfa_offset 8
  6350. 3829 01c4 BD46 mov sp, r7
  6351. 3830 .LCFI76:
  6352. 3831 .cfi_def_cfa_register 13
  6353. 3832 @ sp needed
  6354. 3833 01c6 80BD pop {r7, pc}
  6355. 3834 .L170:
  6356. 3835 .align 2
  6357. 3836 .L169:
  6358. 3837 01c8 0000FFFF .word -65536
  6359. 3838 01cc 00000000 .word I2C_Slave_ISR_DMA
  6360. 3839 01d0 00000000 .word I2C_DMASlaveTransmitCplt
  6361. 3840 01d4 00000000 .word I2C_DMAError
  6362. 3841 .cfi_endproc
  6363. 3842 .LFE144:
  6364. 3844 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
  6365. 3845 .align 1
  6366. 3846 .global HAL_I2C_Slave_Receive_DMA
  6367. 3847 .syntax unified
  6368. 3848 .thumb
  6369. 3849 .thumb_func
  6370. 3851 HAL_I2C_Slave_Receive_DMA:
  6371. 3852 .LFB145:
  6372. 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6373. 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  6374. 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
  6375. 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  6376. 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  6377. 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  6378. 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  6379. 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  6380. 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  6381. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 111
  6382. 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
  6383. 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6384. 3853 .loc 1 2415 1
  6385. 3854 .cfi_startproc
  6386. 3855 @ args = 0, pretend = 0, frame = 24
  6387. 3856 @ frame_needed = 1, uses_anonymous_args = 0
  6388. 3857 0000 80B5 push {r7, lr}
  6389. 3858 .LCFI77:
  6390. 3859 .cfi_def_cfa_offset 8
  6391. 3860 .cfi_offset 7, -8
  6392. 3861 .cfi_offset 14, -4
  6393. 3862 0002 86B0 sub sp, sp, #24
  6394. 3863 .LCFI78:
  6395. 3864 .cfi_def_cfa_offset 32
  6396. 3865 0004 00AF add r7, sp, #0
  6397. 3866 .LCFI79:
  6398. 3867 .cfi_def_cfa_register 7
  6399. 3868 0006 F860 str r0, [r7, #12]
  6400. 3869 0008 B960 str r1, [r7, #8]
  6401. 3870 000a 1346 mov r3, r2
  6402. 3871 000c FB80 strh r3, [r7, #6] @ movhi
  6403. 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  6404. 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6405. 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  6406. 3872 .loc 1 2418 11
  6407. 3873 000e FB68 ldr r3, [r7, #12]
  6408. 3874 0010 93F84130 ldrb r3, [r3, #65]
  6409. 3875 0014 DBB2 uxtb r3, r3
  6410. 3876 .loc 1 2418 6
  6411. 3877 0016 202B cmp r3, #32
  6412. 3878 0018 40F09B80 bne .L172
  6413. 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6414. 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  6415. 3879 .loc 1 2420 8
  6416. 3880 001c BB68 ldr r3, [r7, #8]
  6417. 3881 001e 002B cmp r3, #0
  6418. 3882 0020 02D0 beq .L173
  6419. 3883 .loc 1 2420 25 discriminator 1
  6420. 3884 0022 FB88 ldrh r3, [r7, #6]
  6421. 3885 0024 002B cmp r3, #0
  6422. 3886 0026 05D1 bne .L174
  6423. 3887 .L173:
  6424. 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6425. 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  6426. 3888 .loc 1 2422 23
  6427. 3889 0028 FB68 ldr r3, [r7, #12]
  6428. 3890 002a 4FF40072 mov r2, #512
  6429. 3891 002e 5A64 str r2, [r3, #68]
  6430. 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6431. 3892 .loc 1 2423 15
  6432. 3893 0030 0123 movs r3, #1
  6433. 3894 0032 8FE0 b .L175
  6434. 3895 .L174:
  6435. 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6436. 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  6437. 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  6438. 3896 .loc 1 2426 5
  6439. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 112
  6440. 3897 0034 FB68 ldr r3, [r7, #12]
  6441. 3898 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  6442. 3899 003a 012B cmp r3, #1
  6443. 3900 003c 01D1 bne .L176
  6444. 3901 .loc 1 2426 5 is_stmt 0 discriminator 1
  6445. 3902 003e 0223 movs r3, #2
  6446. 3903 0040 88E0 b .L175
  6447. 3904 .L176:
  6448. 3905 .loc 1 2426 5 discriminator 2
  6449. 3906 0042 FB68 ldr r3, [r7, #12]
  6450. 3907 0044 0122 movs r2, #1
  6451. 3908 0046 83F84020 strb r2, [r3, #64]
  6452. 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6453. 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  6454. 3909 .loc 1 2428 23 is_stmt 1 discriminator 2
  6455. 3910 004a FB68 ldr r3, [r7, #12]
  6456. 3911 004c 2222 movs r2, #34
  6457. 3912 004e 83F84120 strb r2, [r3, #65]
  6458. 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  6459. 3913 .loc 1 2429 23 discriminator 2
  6460. 3914 0052 FB68 ldr r3, [r7, #12]
  6461. 3915 0054 2022 movs r2, #32
  6462. 3916 0056 83F84220 strb r2, [r3, #66]
  6463. 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  6464. 3917 .loc 1 2430 23 discriminator 2
  6465. 3918 005a FB68 ldr r3, [r7, #12]
  6466. 3919 005c 0022 movs r2, #0
  6467. 3920 005e 5A64 str r2, [r3, #68]
  6468. 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6469. 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  6470. 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  6471. 3921 .loc 1 2433 23 discriminator 2
  6472. 3922 0060 FB68 ldr r3, [r7, #12]
  6473. 3923 0062 BA68 ldr r2, [r7, #8]
  6474. 3924 0064 5A62 str r2, [r3, #36]
  6475. 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  6476. 3925 .loc 1 2434 23 discriminator 2
  6477. 3926 0066 FB68 ldr r3, [r7, #12]
  6478. 3927 0068 FA88 ldrh r2, [r7, #6] @ movhi
  6479. 3928 006a 5A85 strh r2, [r3, #42] @ movhi
  6480. 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  6481. 3929 .loc 1 2435 29 discriminator 2
  6482. 3930 006c FB68 ldr r3, [r7, #12]
  6483. 3931 006e 5B8D ldrh r3, [r3, #42] @ movhi
  6484. 3932 0070 9AB2 uxth r2, r3
  6485. 3933 .loc 1 2435 23 discriminator 2
  6486. 3934 0072 FB68 ldr r3, [r7, #12]
  6487. 3935 0074 1A85 strh r2, [r3, #40] @ movhi
  6488. 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  6489. 3936 .loc 1 2436 23 discriminator 2
  6490. 3937 0076 FB68 ldr r3, [r7, #12]
  6491. 3938 0078 384A ldr r2, .L182
  6492. 3939 007a DA62 str r2, [r3, #44]
  6493. 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
  6494. 3940 .loc 1 2437 23 discriminator 2
  6495. 3941 007c FB68 ldr r3, [r7, #12]
  6496. 3942 007e 384A ldr r2, .L182+4
  6497. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 113
  6498. 3943 0080 5A63 str r2, [r3, #52]
  6499. 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6500. 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  6501. 3944 .loc 1 2439 13 discriminator 2
  6502. 3945 0082 FB68 ldr r3, [r7, #12]
  6503. 3946 0084 DB6B ldr r3, [r3, #60]
  6504. 3947 .loc 1 2439 8 discriminator 2
  6505. 3948 0086 002B cmp r3, #0
  6506. 3949 0088 20D0 beq .L177
  6507. 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6508. 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  6509. 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
  6510. 3950 .loc 1 2442 11
  6511. 3951 008a FB68 ldr r3, [r7, #12]
  6512. 3952 008c DB6B ldr r3, [r3, #60]
  6513. 3953 .loc 1 2442 38
  6514. 3954 008e 354A ldr r2, .L182+8
  6515. 3955 0090 9A62 str r2, [r3, #40]
  6516. 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6517. 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  6518. 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
  6519. 3956 .loc 1 2445 11
  6520. 3957 0092 FB68 ldr r3, [r7, #12]
  6521. 3958 0094 DB6B ldr r3, [r3, #60]
  6522. 3959 .loc 1 2445 39
  6523. 3960 0096 344A ldr r2, .L182+12
  6524. 3961 0098 1A63 str r2, [r3, #48]
  6525. 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6526. 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  6527. 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
  6528. 3962 .loc 1 2448 11
  6529. 3963 009a FB68 ldr r3, [r7, #12]
  6530. 3964 009c DB6B ldr r3, [r3, #60]
  6531. 3965 .loc 1 2448 42
  6532. 3966 009e 0022 movs r2, #0
  6533. 3967 00a0 DA62 str r2, [r3, #44]
  6534. 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
  6535. 3968 .loc 1 2449 11
  6536. 3969 00a2 FB68 ldr r3, [r7, #12]
  6537. 3970 00a4 DB6B ldr r3, [r3, #60]
  6538. 3971 .loc 1 2449 39
  6539. 3972 00a6 0022 movs r2, #0
  6540. 3973 00a8 5A63 str r2, [r3, #52]
  6541. 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6542. 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  6543. 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
  6544. 3974 .loc 1 2452 23
  6545. 3975 00aa FB68 ldr r3, [r7, #12]
  6546. 3976 00ac D86B ldr r0, [r3, #60]
  6547. 3977 .loc 1 2452 69
  6548. 3978 00ae FB68 ldr r3, [r7, #12]
  6549. 3979 00b0 1B68 ldr r3, [r3]
  6550. 3980 .loc 1 2452 64
  6551. 3981 00b2 2433 adds r3, r3, #36
  6552. 3982 .loc 1 2452 23
  6553. 3983 00b4 1946 mov r1, r3
  6554. 3984 00b6 BA68 ldr r2, [r7, #8]
  6555. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 114
  6556. 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  6557. 3985 .loc 1 2453 44
  6558. 3986 00b8 FB68 ldr r3, [r7, #12]
  6559. 3987 00ba 1B8D ldrh r3, [r3, #40]
  6560. 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  6561. 3988 .loc 1 2452 23
  6562. 3989 00bc FFF7FEFF bl HAL_DMA_Start_IT
  6563. 3990 00c0 0346 mov r3, r0
  6564. 3991 00c2 FB75 strb r3, [r7, #23]
  6565. 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6566. 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6567. 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6568. 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  6569. 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  6570. 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  6571. 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6572. 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  6573. 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  6574. 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6575. 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6576. 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6577. 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6578. 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6579. 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6580. 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6581. 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  6582. 3992 .loc 1 2470 8
  6583. 3993 00c4 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  6584. 3994 00c6 002B cmp r3, #0
  6585. 3995 00c8 2FD1 bne .L179
  6586. 3996 00ca 13E0 b .L181
  6587. 3997 .L177:
  6588. 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  6589. 3998 .loc 1 2458 23
  6590. 3999 00cc FB68 ldr r3, [r7, #12]
  6591. 4000 00ce 2822 movs r2, #40
  6592. 4001 00d0 83F84120 strb r2, [r3, #65]
  6593. 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6594. 4002 .loc 1 2459 23
  6595. 4003 00d4 FB68 ldr r3, [r7, #12]
  6596. 4004 00d6 0022 movs r2, #0
  6597. 4005 00d8 83F84220 strb r2, [r3, #66]
  6598. 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6599. 4006 .loc 1 2462 23
  6600. 4007 00dc FB68 ldr r3, [r7, #12]
  6601. 4008 00de 5B6C ldr r3, [r3, #68]
  6602. 4009 00e0 43F08002 orr r2, r3, #128
  6603. 4010 00e4 FB68 ldr r3, [r7, #12]
  6604. 4011 00e6 5A64 str r2, [r3, #68]
  6605. 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6606. 4012 .loc 1 2465 7
  6607. 4013 00e8 FB68 ldr r3, [r7, #12]
  6608. 4014 00ea 0022 movs r2, #0
  6609. 4015 00ec 83F84020 strb r2, [r3, #64]
  6610. 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6611. 4016 .loc 1 2467 14
  6612. 4017 00f0 0123 movs r3, #1
  6613. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 115
  6614. 4018 00f2 2FE0 b .L175
  6615. 4019 .L181:
  6616. 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6617. 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  6618. 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  6619. 4020 .loc 1 2473 11
  6620. 4021 00f4 FB68 ldr r3, [r7, #12]
  6621. 4022 00f6 1B68 ldr r3, [r3]
  6622. 4023 .loc 1 2473 27
  6623. 4024 00f8 5A68 ldr r2, [r3, #4]
  6624. 4025 .loc 1 2473 11
  6625. 4026 00fa FB68 ldr r3, [r7, #12]
  6626. 4027 00fc 1B68 ldr r3, [r3]
  6627. 4028 .loc 1 2473 27
  6628. 4029 00fe 22F40042 bic r2, r2, #32768
  6629. 4030 0102 5A60 str r2, [r3, #4]
  6630. 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6631. 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6632. 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6633. 4031 .loc 1 2476 7
  6634. 4032 0104 FB68 ldr r3, [r7, #12]
  6635. 4033 0106 0022 movs r2, #0
  6636. 4034 0108 83F84020 strb r2, [r3, #64]
  6637. 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6638. 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  6639. 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  6640. 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  6641. 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
  6642. 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  6643. 4035 .loc 1 2482 7
  6644. 4036 010c 4FF40041 mov r1, #32768
  6645. 4037 0110 F868 ldr r0, [r7, #12]
  6646. 4038 0112 FFF7FEFF bl I2C_Enable_IRQ
  6647. 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6648. 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  6649. 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
  6650. 4039 .loc 1 2485 11
  6651. 4040 0116 FB68 ldr r3, [r7, #12]
  6652. 4041 0118 1B68 ldr r3, [r3]
  6653. 4042 .loc 1 2485 27
  6654. 4043 011a 1A68 ldr r2, [r3]
  6655. 4044 .loc 1 2485 11
  6656. 4045 011c FB68 ldr r3, [r7, #12]
  6657. 4046 011e 1B68 ldr r3, [r3]
  6658. 4047 .loc 1 2485 27
  6659. 4048 0120 42F40042 orr r2, r2, #32768
  6660. 4049 0124 1A60 str r2, [r3]
  6661. 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6662. 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6663. 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6664. 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  6665. 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  6666. 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  6667. 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6668. 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  6669. 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  6670. 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6671. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 116
  6672. 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6673. 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6674. 2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6675. 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6676. 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6677. 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6678. 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  6679. 4050 .loc 1 2502 12
  6680. 4051 0126 0023 movs r3, #0
  6681. 4052 0128 14E0 b .L175
  6682. 4053 .L179:
  6683. 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  6684. 4054 .loc 1 2490 23
  6685. 4055 012a FB68 ldr r3, [r7, #12]
  6686. 4056 012c 2822 movs r2, #40
  6687. 4057 012e 83F84120 strb r2, [r3, #65]
  6688. 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6689. 4058 .loc 1 2491 23
  6690. 4059 0132 FB68 ldr r3, [r7, #12]
  6691. 4060 0134 0022 movs r2, #0
  6692. 4061 0136 83F84220 strb r2, [r3, #66]
  6693. 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6694. 4062 .loc 1 2494 23
  6695. 4063 013a FB68 ldr r3, [r7, #12]
  6696. 4064 013c 5B6C ldr r3, [r3, #68]
  6697. 4065 013e 43F01002 orr r2, r3, #16
  6698. 4066 0142 FB68 ldr r3, [r7, #12]
  6699. 4067 0144 5A64 str r2, [r3, #68]
  6700. 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6701. 4068 .loc 1 2497 7
  6702. 4069 0146 FB68 ldr r3, [r7, #12]
  6703. 4070 0148 0022 movs r2, #0
  6704. 4071 014a 83F84020 strb r2, [r3, #64]
  6705. 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6706. 4072 .loc 1 2499 14
  6707. 4073 014e 0123 movs r3, #1
  6708. 4074 0150 00E0 b .L175
  6709. 4075 .L172:
  6710. 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6711. 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6712. 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6713. 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  6714. 4076 .loc 1 2506 12
  6715. 4077 0152 0223 movs r3, #2
  6716. 4078 .L175:
  6717. 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6718. 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6719. 4079 .loc 1 2508 1
  6720. 4080 0154 1846 mov r0, r3
  6721. 4081 0156 1837 adds r7, r7, #24
  6722. 4082 .LCFI80:
  6723. 4083 .cfi_def_cfa_offset 8
  6724. 4084 0158 BD46 mov sp, r7
  6725. 4085 .LCFI81:
  6726. 4086 .cfi_def_cfa_register 13
  6727. 4087 @ sp needed
  6728. 4088 015a 80BD pop {r7, pc}
  6729. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 117
  6730. 4089 .L183:
  6731. 4090 .align 2
  6732. 4091 .L182:
  6733. 4092 015c 0000FFFF .word -65536
  6734. 4093 0160 00000000 .word I2C_Slave_ISR_DMA
  6735. 4094 0164 00000000 .word I2C_DMASlaveReceiveCplt
  6736. 4095 0168 00000000 .word I2C_DMAError
  6737. 4096 .cfi_endproc
  6738. 4097 .LFE145:
  6739. 4099 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
  6740. 4100 .align 1
  6741. 4101 .global HAL_I2C_Mem_Write
  6742. 4102 .syntax unified
  6743. 4103 .thumb
  6744. 4104 .thumb_func
  6745. 4106 HAL_I2C_Mem_Write:
  6746. 4107 .LFB146:
  6747. 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6748. 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  6749. 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
  6750. 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  6751. 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  6752. 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  6753. 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  6754. 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  6755. 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  6756. 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  6757. 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  6758. 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  6759. 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  6760. 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  6761. 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
  6762. 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti
  6763. 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6764. 4108 .loc 1 2525 1
  6765. 4109 .cfi_startproc
  6766. 4110 @ args = 12, pretend = 0, frame = 24
  6767. 4111 @ frame_needed = 1, uses_anonymous_args = 0
  6768. 4112 0000 80B5 push {r7, lr}
  6769. 4113 .LCFI82:
  6770. 4114 .cfi_def_cfa_offset 8
  6771. 4115 .cfi_offset 7, -8
  6772. 4116 .cfi_offset 14, -4
  6773. 4117 0002 88B0 sub sp, sp, #32
  6774. 4118 .LCFI83:
  6775. 4119 .cfi_def_cfa_offset 40
  6776. 4120 0004 02AF add r7, sp, #8
  6777. 4121 .LCFI84:
  6778. 4122 .cfi_def_cfa 7, 32
  6779. 4123 0006 F860 str r0, [r7, #12]
  6780. 4124 0008 0846 mov r0, r1
  6781. 4125 000a 1146 mov r1, r2
  6782. 4126 000c 1A46 mov r2, r3
  6783. 4127 000e 0346 mov r3, r0 @ movhi
  6784. 4128 0010 7B81 strh r3, [r7, #10] @ movhi
  6785. 4129 0012 0B46 mov r3, r1 @ movhi
  6786. 4130 0014 3B81 strh r3, [r7, #8] @ movhi
  6787. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 118
  6788. 4131 0016 1346 mov r3, r2 @ movhi
  6789. 4132 0018 FB80 strh r3, [r7, #6] @ movhi
  6790. 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
  6791. 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6792. 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  6793. 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
  6794. 4133 .loc 1 2529 3
  6795. 4134 001a FB88 ldrh r3, [r7, #6]
  6796. 4135 001c 012B cmp r3, #1
  6797. 4136 001e 07D0 beq .L185
  6798. 4137 .loc 1 2529 3 is_stmt 0 discriminator 1
  6799. 4138 0020 FB88 ldrh r3, [r7, #6]
  6800. 4139 0022 022B cmp r3, #2
  6801. 4140 0024 04D0 beq .L185
  6802. 4141 .loc 1 2529 3 discriminator 2
  6803. 4142 0026 40F6E111 movw r1, #2529
  6804. 4143 002a 8448 ldr r0, .L201
  6805. 4144 002c FFF7FEFF bl assert_failed
  6806. 4145 .L185:
  6807. 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6808. 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  6809. 4146 .loc 1 2531 11 is_stmt 1
  6810. 4147 0030 FB68 ldr r3, [r7, #12]
  6811. 4148 0032 93F84130 ldrb r3, [r3, #65]
  6812. 4149 0036 DBB2 uxtb r3, r3
  6813. 4150 .loc 1 2531 6
  6814. 4151 0038 202B cmp r3, #32
  6815. 4152 003a 40F0F980 bne .L186
  6816. 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6817. 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  6818. 4153 .loc 1 2533 8
  6819. 4154 003e 3B6A ldr r3, [r7, #32]
  6820. 4155 0040 002B cmp r3, #0
  6821. 4156 0042 02D0 beq .L187
  6822. 4157 .loc 1 2533 25 discriminator 1
  6823. 4158 0044 BB8C ldrh r3, [r7, #36]
  6824. 4159 0046 002B cmp r3, #0
  6825. 4160 0048 05D1 bne .L188
  6826. 4161 .L187:
  6827. 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6828. 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  6829. 4162 .loc 1 2535 23
  6830. 4163 004a FB68 ldr r3, [r7, #12]
  6831. 4164 004c 4FF40072 mov r2, #512
  6832. 4165 0050 5A64 str r2, [r3, #68]
  6833. 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6834. 4166 .loc 1 2536 15
  6835. 4167 0052 0123 movs r3, #1
  6836. 4168 0054 EDE0 b .L189
  6837. 4169 .L188:
  6838. 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6839. 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6840. 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  6841. 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  6842. 4170 .loc 1 2540 5
  6843. 4171 0056 FB68 ldr r3, [r7, #12]
  6844. 4172 0058 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  6845. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 119
  6846. 4173 005c 012B cmp r3, #1
  6847. 4174 005e 01D1 bne .L190
  6848. 4175 .loc 1 2540 5 is_stmt 0 discriminator 1
  6849. 4176 0060 0223 movs r3, #2
  6850. 4177 0062 E6E0 b .L189
  6851. 4178 .L190:
  6852. 4179 .loc 1 2540 5 discriminator 2
  6853. 4180 0064 FB68 ldr r3, [r7, #12]
  6854. 4181 0066 0122 movs r2, #1
  6855. 4182 0068 83F84020 strb r2, [r3, #64]
  6856. 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6857. 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
  6858. 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  6859. 4183 .loc 1 2543 17 is_stmt 1 discriminator 2
  6860. 4184 006c FFF7FEFF bl HAL_GetTick
  6861. 4185 0070 7861 str r0, [r7, #20]
  6862. 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6863. 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
  6864. 4186 .loc 1 2545 9 discriminator 2
  6865. 4187 0072 7B69 ldr r3, [r7, #20]
  6866. 4188 0074 0093 str r3, [sp]
  6867. 4189 0076 1923 movs r3, #25
  6868. 4190 0078 0122 movs r2, #1
  6869. 4191 007a 4FF40041 mov r1, #32768
  6870. 4192 007e F868 ldr r0, [r7, #12]
  6871. 4193 0080 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  6872. 4194 0084 0346 mov r3, r0
  6873. 4195 .loc 1 2545 8 discriminator 2
  6874. 4196 0086 002B cmp r3, #0
  6875. 4197 0088 01D0 beq .L191
  6876. 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6877. 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6878. 4198 .loc 1 2547 14
  6879. 4199 008a 0123 movs r3, #1
  6880. 4200 008c D1E0 b .L189
  6881. 4201 .L191:
  6882. 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6883. 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6884. 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  6885. 4202 .loc 1 2550 21
  6886. 4203 008e FB68 ldr r3, [r7, #12]
  6887. 4204 0090 2122 movs r2, #33
  6888. 4205 0092 83F84120 strb r2, [r3, #65]
  6889. 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
  6890. 4206 .loc 1 2551 21
  6891. 4207 0096 FB68 ldr r3, [r7, #12]
  6892. 4208 0098 4022 movs r2, #64
  6893. 4209 009a 83F84220 strb r2, [r3, #66]
  6894. 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  6895. 4210 .loc 1 2552 21
  6896. 4211 009e FB68 ldr r3, [r7, #12]
  6897. 4212 00a0 0022 movs r2, #0
  6898. 4213 00a2 5A64 str r2, [r3, #68]
  6899. 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6900. 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  6901. 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  6902. 4214 .loc 1 2555 21
  6903. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 120
  6904. 4215 00a4 FB68 ldr r3, [r7, #12]
  6905. 4216 00a6 3A6A ldr r2, [r7, #32]
  6906. 4217 00a8 5A62 str r2, [r3, #36]
  6907. 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  6908. 4218 .loc 1 2556 21
  6909. 4219 00aa FB68 ldr r3, [r7, #12]
  6910. 4220 00ac BA8C ldrh r2, [r7, #36] @ movhi
  6911. 4221 00ae 5A85 strh r2, [r3, #42] @ movhi
  6912. 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  6913. 4222 .loc 1 2557 21
  6914. 4223 00b0 FB68 ldr r3, [r7, #12]
  6915. 4224 00b2 0022 movs r2, #0
  6916. 4225 00b4 5A63 str r2, [r3, #52]
  6917. 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6918. 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
  6919. 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
  6920. 4226 .loc 1 2560 9
  6921. 4227 00b6 F888 ldrh r0, [r7, #6]
  6922. 4228 00b8 3A89 ldrh r2, [r7, #8]
  6923. 4229 00ba 7989 ldrh r1, [r7, #10]
  6924. 4230 00bc 7B69 ldr r3, [r7, #20]
  6925. 4231 00be 0193 str r3, [sp, #4]
  6926. 4232 00c0 BB6A ldr r3, [r7, #40]
  6927. 4233 00c2 0093 str r3, [sp]
  6928. 4234 00c4 0346 mov r3, r0
  6929. 4235 00c6 F868 ldr r0, [r7, #12]
  6930. 4236 00c8 FFF7FEFF bl I2C_RequestMemoryWrite
  6931. 4237 00cc 0346 mov r3, r0
  6932. 4238 .loc 1 2560 8
  6933. 4239 00ce 002B cmp r3, #0
  6934. 4240 00d0 05D0 beq .L192
  6935. 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6936. 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  6937. 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  6938. 4241 .loc 1 2563 7
  6939. 4242 00d2 FB68 ldr r3, [r7, #12]
  6940. 4243 00d4 0022 movs r2, #0
  6941. 4244 00d6 83F84020 strb r2, [r3, #64]
  6942. 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  6943. 4245 .loc 1 2564 14
  6944. 4246 00da 0123 movs r3, #1
  6945. 4247 00dc A9E0 b .L189
  6946. 4248 .L192:
  6947. 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6948. 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  6949. 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
  6950. 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  6951. 4249 .loc 1 2568 13
  6952. 4250 00de FB68 ldr r3, [r7, #12]
  6953. 4251 00e0 5B8D ldrh r3, [r3, #42] @ movhi
  6954. 4252 00e2 9BB2 uxth r3, r3
  6955. 4253 .loc 1 2568 8
  6956. 4254 00e4 FF2B cmp r3, #255
  6957. 4255 00e6 0ED9 bls .L193
  6958. 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6959. 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  6960. 4256 .loc 1 2570 22
  6961. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 121
  6962. 4257 00e8 FB68 ldr r3, [r7, #12]
  6963. 4258 00ea FF22 movs r2, #255
  6964. 4259 00ec 1A85 strh r2, [r3, #40] @ movhi
  6965. 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
  6966. 4260 .loc 1 2571 57
  6967. 4261 00ee FB68 ldr r3, [r7, #12]
  6968. 4262 00f0 1B8D ldrh r3, [r3, #40]
  6969. 4263 .loc 1 2571 7
  6970. 4264 00f2 DAB2 uxtb r2, r3
  6971. 4265 00f4 7989 ldrh r1, [r7, #10]
  6972. 4266 00f6 0023 movs r3, #0
  6973. 4267 00f8 0093 str r3, [sp]
  6974. 4268 00fa 4FF08073 mov r3, #16777216
  6975. 4269 00fe F868 ldr r0, [r7, #12]
  6976. 4270 0100 FFF7FEFF bl I2C_TransferConfig
  6977. 4271 0104 0FE0 b .L199
  6978. 4272 .L193:
  6979. 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  6980. 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  6981. 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  6982. 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  6983. 4273 .loc 1 2575 28
  6984. 4274 0106 FB68 ldr r3, [r7, #12]
  6985. 4275 0108 5B8D ldrh r3, [r3, #42] @ movhi
  6986. 4276 010a 9AB2 uxth r2, r3
  6987. 4277 .loc 1 2575 22
  6988. 4278 010c FB68 ldr r3, [r7, #12]
  6989. 4279 010e 1A85 strh r2, [r3, #40] @ movhi
  6990. 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
  6991. 4280 .loc 1 2576 57
  6992. 4281 0110 FB68 ldr r3, [r7, #12]
  6993. 4282 0112 1B8D ldrh r3, [r3, #40]
  6994. 4283 .loc 1 2576 7
  6995. 4284 0114 DAB2 uxtb r2, r3
  6996. 4285 0116 7989 ldrh r1, [r7, #10]
  6997. 4286 0118 0023 movs r3, #0
  6998. 4287 011a 0093 str r3, [sp]
  6999. 4288 011c 4FF00073 mov r3, #33554432
  7000. 4289 0120 F868 ldr r0, [r7, #12]
  7001. 4290 0122 FFF7FEFF bl I2C_TransferConfig
  7002. 4291 .L199:
  7003. 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7004. 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7005. 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
  7006. 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7007. 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
  7008. 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  7009. 4292 .loc 1 2582 11
  7010. 4293 0126 7A69 ldr r2, [r7, #20]
  7011. 4294 0128 B96A ldr r1, [r7, #40]
  7012. 4295 012a F868 ldr r0, [r7, #12]
  7013. 4296 012c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
  7014. 4297 0130 0346 mov r3, r0
  7015. 4298 .loc 1 2582 10
  7016. 4299 0132 002B cmp r3, #0
  7017. 4300 0134 01D0 beq .L195
  7018. 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7019. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 122
  7020. 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7021. 4301 .loc 1 2584 16
  7022. 4302 0136 0123 movs r3, #1
  7023. 4303 0138 7BE0 b .L189
  7024. 4304 .L195:
  7025. 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7026. 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7027. 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  7028. 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  7029. 4305 .loc 1 2588 35
  7030. 4306 013a FB68 ldr r3, [r7, #12]
  7031. 4307 013c 5B6A ldr r3, [r3, #36]
  7032. 4308 .loc 1 2588 30
  7033. 4309 013e 1A78 ldrb r2, [r3] @ zero_extendqisi2
  7034. 4310 .loc 1 2588 11
  7035. 4311 0140 FB68 ldr r3, [r7, #12]
  7036. 4312 0142 1B68 ldr r3, [r3]
  7037. 4313 .loc 1 2588 28
  7038. 4314 0144 9A62 str r2, [r3, #40]
  7039. 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7040. 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  7041. 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  7042. 4315 .loc 1 2591 11
  7043. 4316 0146 FB68 ldr r3, [r7, #12]
  7044. 4317 0148 5B6A ldr r3, [r3, #36]
  7045. 4318 .loc 1 2591 21
  7046. 4319 014a 5A1C adds r2, r3, #1
  7047. 4320 014c FB68 ldr r3, [r7, #12]
  7048. 4321 014e 5A62 str r2, [r3, #36]
  7049. 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7050. 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  7051. 4322 .loc 1 2593 11
  7052. 4323 0150 FB68 ldr r3, [r7, #12]
  7053. 4324 0152 5B8D ldrh r3, [r3, #42] @ movhi
  7054. 4325 0154 9BB2 uxth r3, r3
  7055. 4326 .loc 1 2593 22
  7056. 4327 0156 013B subs r3, r3, #1
  7057. 4328 0158 9AB2 uxth r2, r3
  7058. 4329 015a FB68 ldr r3, [r7, #12]
  7059. 4330 015c 5A85 strh r2, [r3, #42] @ movhi
  7060. 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  7061. 4331 .loc 1 2594 11
  7062. 4332 015e FB68 ldr r3, [r7, #12]
  7063. 4333 0160 1B8D ldrh r3, [r3, #40]
  7064. 4334 .loc 1 2594 21
  7065. 4335 0162 013B subs r3, r3, #1
  7066. 4336 0164 9AB2 uxth r2, r3
  7067. 4337 0166 FB68 ldr r3, [r7, #12]
  7068. 4338 0168 1A85 strh r2, [r3, #40] @ movhi
  7069. 2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7070. 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
  7071. 4339 .loc 1 2596 16
  7072. 4340 016a FB68 ldr r3, [r7, #12]
  7073. 4341 016c 5B8D ldrh r3, [r3, #42] @ movhi
  7074. 4342 016e 9BB2 uxth r3, r3
  7075. 4343 .loc 1 2596 10
  7076. 4344 0170 002B cmp r3, #0
  7077. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 123
  7078. 4345 0172 34D0 beq .L196
  7079. 4346 .loc 1 2596 43 discriminator 1
  7080. 4347 0174 FB68 ldr r3, [r7, #12]
  7081. 4348 0176 1B8D ldrh r3, [r3, #40]
  7082. 4349 .loc 1 2596 35 discriminator 1
  7083. 4350 0178 002B cmp r3, #0
  7084. 4351 017a 30D1 bne .L196
  7085. 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7086. 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
  7087. 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
  7088. 4352 .loc 1 2599 13
  7089. 4353 017c 7B69 ldr r3, [r7, #20]
  7090. 4354 017e 0093 str r3, [sp]
  7091. 4355 0180 BB6A ldr r3, [r7, #40]
  7092. 4356 0182 0022 movs r2, #0
  7093. 4357 0184 8021 movs r1, #128
  7094. 4358 0186 F868 ldr r0, [r7, #12]
  7095. 4359 0188 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  7096. 4360 018c 0346 mov r3, r0
  7097. 4361 .loc 1 2599 12
  7098. 4362 018e 002B cmp r3, #0
  7099. 4363 0190 01D0 beq .L197
  7100. 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7101. 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7102. 4364 .loc 1 2601 18
  7103. 4365 0192 0123 movs r3, #1
  7104. 4366 0194 4DE0 b .L189
  7105. 4367 .L197:
  7106. 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7107. 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7108. 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  7109. 4368 .loc 1 2604 17
  7110. 4369 0196 FB68 ldr r3, [r7, #12]
  7111. 4370 0198 5B8D ldrh r3, [r3, #42] @ movhi
  7112. 4371 019a 9BB2 uxth r3, r3
  7113. 4372 .loc 1 2604 12
  7114. 4373 019c FF2B cmp r3, #255
  7115. 4374 019e 0ED9 bls .L198
  7116. 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7117. 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  7118. 4375 .loc 1 2606 26
  7119. 4376 01a0 FB68 ldr r3, [r7, #12]
  7120. 4377 01a2 FF22 movs r2, #255
  7121. 4378 01a4 1A85 strh r2, [r3, #40] @ movhi
  7122. 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
  7123. 4379 .loc 1 2607 61
  7124. 4380 01a6 FB68 ldr r3, [r7, #12]
  7125. 4381 01a8 1B8D ldrh r3, [r3, #40]
  7126. 4382 .loc 1 2607 11
  7127. 4383 01aa DAB2 uxtb r2, r3
  7128. 4384 01ac 7989 ldrh r1, [r7, #10]
  7129. 4385 01ae 0023 movs r3, #0
  7130. 4386 01b0 0093 str r3, [sp]
  7131. 4387 01b2 4FF08073 mov r3, #16777216
  7132. 4388 01b6 F868 ldr r0, [r7, #12]
  7133. 4389 01b8 FFF7FEFF bl I2C_TransferConfig
  7134. 4390 01bc 0FE0 b .L196
  7135. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 124
  7136. 4391 .L198:
  7137. 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  7138. 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7139. 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  7140. 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7141. 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  7142. 4392 .loc 1 2612 32
  7143. 4393 01be FB68 ldr r3, [r7, #12]
  7144. 4394 01c0 5B8D ldrh r3, [r3, #42] @ movhi
  7145. 4395 01c2 9AB2 uxth r2, r3
  7146. 4396 .loc 1 2612 26
  7147. 4397 01c4 FB68 ldr r3, [r7, #12]
  7148. 4398 01c6 1A85 strh r2, [r3, #40] @ movhi
  7149. 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  7150. 4399 .loc 1 2613 61
  7151. 4400 01c8 FB68 ldr r3, [r7, #12]
  7152. 4401 01ca 1B8D ldrh r3, [r3, #40]
  7153. 4402 .loc 1 2613 11
  7154. 4403 01cc DAB2 uxtb r2, r3
  7155. 4404 01ce 7989 ldrh r1, [r7, #10]
  7156. 4405 01d0 0023 movs r3, #0
  7157. 4406 01d2 0093 str r3, [sp]
  7158. 4407 01d4 4FF00073 mov r3, #33554432
  7159. 4408 01d8 F868 ldr r0, [r7, #12]
  7160. 4409 01da FFF7FEFF bl I2C_TransferConfig
  7161. 4410 .L196:
  7162. 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  7163. 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7164. 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7165. 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7166. 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
  7167. 4411 .loc 1 2618 18
  7168. 4412 01de FB68 ldr r3, [r7, #12]
  7169. 4413 01e0 5B8D ldrh r3, [r3, #42] @ movhi
  7170. 4414 01e2 9BB2 uxth r3, r3
  7171. 4415 .loc 1 2618 5
  7172. 4416 01e4 002B cmp r3, #0
  7173. 4417 01e6 9ED1 bne .L199
  7174. 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7175. 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
  7176. 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
  7177. 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  7178. 4418 .loc 1 2622 9
  7179. 4419 01e8 7A69 ldr r2, [r7, #20]
  7180. 4420 01ea B96A ldr r1, [r7, #40]
  7181. 4421 01ec F868 ldr r0, [r7, #12]
  7182. 4422 01ee FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
  7183. 4423 01f2 0346 mov r3, r0
  7184. 4424 .loc 1 2622 8
  7185. 4425 01f4 002B cmp r3, #0
  7186. 4426 01f6 01D0 beq .L200
  7187. 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7188. 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7189. 4427 .loc 1 2624 14
  7190. 4428 01f8 0123 movs r3, #1
  7191. 4429 01fa 1AE0 b .L189
  7192. 4430 .L200:
  7193. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 125
  7194. 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7195. 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7196. 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  7197. 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  7198. 4431 .loc 1 2628 5
  7199. 4432 01fc FB68 ldr r3, [r7, #12]
  7200. 4433 01fe 1B68 ldr r3, [r3]
  7201. 4434 0200 2022 movs r2, #32
  7202. 4435 0202 DA61 str r2, [r3, #28]
  7203. 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7204. 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  7205. 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  7206. 4436 .loc 1 2631 5
  7207. 4437 0204 FB68 ldr r3, [r7, #12]
  7208. 4438 0206 1B68 ldr r3, [r3]
  7209. 4439 0208 5968 ldr r1, [r3, #4]
  7210. 4440 020a FB68 ldr r3, [r7, #12]
  7211. 4441 020c 1A68 ldr r2, [r3]
  7212. 4442 020e 0C4B ldr r3, .L201+4
  7213. 4443 0210 0B40 ands r3, r3, r1
  7214. 4444 0212 5360 str r3, [r2, #4]
  7215. 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7216. 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  7217. 4445 .loc 1 2633 17
  7218. 4446 0214 FB68 ldr r3, [r7, #12]
  7219. 4447 0216 2022 movs r2, #32
  7220. 4448 0218 83F84120 strb r2, [r3, #65]
  7221. 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  7222. 4449 .loc 1 2634 17
  7223. 4450 021c FB68 ldr r3, [r7, #12]
  7224. 4451 021e 0022 movs r2, #0
  7225. 4452 0220 83F84220 strb r2, [r3, #66]
  7226. 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7227. 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  7228. 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  7229. 4453 .loc 1 2637 5
  7230. 4454 0224 FB68 ldr r3, [r7, #12]
  7231. 4455 0226 0022 movs r2, #0
  7232. 4456 0228 83F84020 strb r2, [r3, #64]
  7233. 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7234. 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  7235. 4457 .loc 1 2639 12
  7236. 4458 022c 0023 movs r3, #0
  7237. 4459 022e 00E0 b .L189
  7238. 4460 .L186:
  7239. 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7240. 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  7241. 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7242. 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  7243. 4461 .loc 1 2643 12
  7244. 4462 0230 0223 movs r3, #2
  7245. 4463 .L189:
  7246. 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7247. 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7248. 4464 .loc 1 2645 1
  7249. 4465 0232 1846 mov r0, r3
  7250. 4466 0234 1837 adds r7, r7, #24
  7251. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 126
  7252. 4467 .LCFI85:
  7253. 4468 .cfi_def_cfa_offset 8
  7254. 4469 0236 BD46 mov sp, r7
  7255. 4470 .LCFI86:
  7256. 4471 .cfi_def_cfa_register 13
  7257. 4472 @ sp needed
  7258. 4473 0238 80BD pop {r7, pc}
  7259. 4474 .L202:
  7260. 4475 023a 00BF .align 2
  7261. 4476 .L201:
  7262. 4477 023c 00000000 .word .LC0
  7263. 4478 0240 00E800FE .word -33495040
  7264. 4479 .cfi_endproc
  7265. 4480 .LFE146:
  7266. 4482 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
  7267. 4483 .align 1
  7268. 4484 .global HAL_I2C_Mem_Read
  7269. 4485 .syntax unified
  7270. 4486 .thumb
  7271. 4487 .thumb_func
  7272. 4489 HAL_I2C_Mem_Read:
  7273. 4490 .LFB147:
  7274. 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7275. 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  7276. 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
  7277. 2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  7278. 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  7279. 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  7280. 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  7281. 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  7282. 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  7283. 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  7284. 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  7285. 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  7286. 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  7287. 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  7288. 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
  7289. 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim
  7290. 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7291. 4491 .loc 1 2662 1
  7292. 4492 .cfi_startproc
  7293. 4493 @ args = 12, pretend = 0, frame = 24
  7294. 4494 @ frame_needed = 1, uses_anonymous_args = 0
  7295. 4495 0000 80B5 push {r7, lr}
  7296. 4496 .LCFI87:
  7297. 4497 .cfi_def_cfa_offset 8
  7298. 4498 .cfi_offset 7, -8
  7299. 4499 .cfi_offset 14, -4
  7300. 4500 0002 88B0 sub sp, sp, #32
  7301. 4501 .LCFI88:
  7302. 4502 .cfi_def_cfa_offset 40
  7303. 4503 0004 02AF add r7, sp, #8
  7304. 4504 .LCFI89:
  7305. 4505 .cfi_def_cfa 7, 32
  7306. 4506 0006 F860 str r0, [r7, #12]
  7307. 4507 0008 0846 mov r0, r1
  7308. 4508 000a 1146 mov r1, r2
  7309. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 127
  7310. 4509 000c 1A46 mov r2, r3
  7311. 4510 000e 0346 mov r3, r0 @ movhi
  7312. 4511 0010 7B81 strh r3, [r7, #10] @ movhi
  7313. 4512 0012 0B46 mov r3, r1 @ movhi
  7314. 4513 0014 3B81 strh r3, [r7, #8] @ movhi
  7315. 4514 0016 1346 mov r3, r2 @ movhi
  7316. 4515 0018 FB80 strh r3, [r7, #6] @ movhi
  7317. 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
  7318. 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7319. 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  7320. 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
  7321. 4516 .loc 1 2666 3
  7322. 4517 001a FB88 ldrh r3, [r7, #6]
  7323. 4518 001c 012B cmp r3, #1
  7324. 4519 001e 07D0 beq .L204
  7325. 4520 .loc 1 2666 3 is_stmt 0 discriminator 1
  7326. 4521 0020 FB88 ldrh r3, [r7, #6]
  7327. 4522 0022 022B cmp r3, #2
  7328. 4523 0024 04D0 beq .L204
  7329. 4524 .loc 1 2666 3 discriminator 2
  7330. 4525 0026 40F66A21 movw r1, #2666
  7331. 4526 002a 8648 ldr r0, .L220
  7332. 4527 002c FFF7FEFF bl assert_failed
  7333. 4528 .L204:
  7334. 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7335. 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  7336. 4529 .loc 1 2668 11 is_stmt 1
  7337. 4530 0030 FB68 ldr r3, [r7, #12]
  7338. 4531 0032 93F84130 ldrb r3, [r3, #65]
  7339. 4532 0036 DBB2 uxtb r3, r3
  7340. 4533 .loc 1 2668 6
  7341. 4534 0038 202B cmp r3, #32
  7342. 4535 003a 40F0FD80 bne .L205
  7343. 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7344. 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  7345. 4536 .loc 1 2670 8
  7346. 4537 003e 3B6A ldr r3, [r7, #32]
  7347. 4538 0040 002B cmp r3, #0
  7348. 4539 0042 02D0 beq .L206
  7349. 4540 .loc 1 2670 25 discriminator 1
  7350. 4541 0044 BB8C ldrh r3, [r7, #36]
  7351. 4542 0046 002B cmp r3, #0
  7352. 4543 0048 05D1 bne .L207
  7353. 4544 .L206:
  7354. 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7355. 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  7356. 4545 .loc 1 2672 23
  7357. 4546 004a FB68 ldr r3, [r7, #12]
  7358. 4547 004c 4FF40072 mov r2, #512
  7359. 4548 0050 5A64 str r2, [r3, #68]
  7360. 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7361. 4549 .loc 1 2673 15
  7362. 4550 0052 0123 movs r3, #1
  7363. 4551 0054 F1E0 b .L208
  7364. 4552 .L207:
  7365. 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7366. 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7367. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 128
  7368. 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  7369. 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  7370. 4553 .loc 1 2677 5
  7371. 4554 0056 FB68 ldr r3, [r7, #12]
  7372. 4555 0058 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  7373. 4556 005c 012B cmp r3, #1
  7374. 4557 005e 01D1 bne .L209
  7375. 4558 .loc 1 2677 5 is_stmt 0 discriminator 1
  7376. 4559 0060 0223 movs r3, #2
  7377. 4560 0062 EAE0 b .L208
  7378. 4561 .L209:
  7379. 4562 .loc 1 2677 5 discriminator 2
  7380. 4563 0064 FB68 ldr r3, [r7, #12]
  7381. 4564 0066 0122 movs r2, #1
  7382. 4565 0068 83F84020 strb r2, [r3, #64]
  7383. 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7384. 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
  7385. 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  7386. 4566 .loc 1 2680 17 is_stmt 1 discriminator 2
  7387. 4567 006c FFF7FEFF bl HAL_GetTick
  7388. 4568 0070 7861 str r0, [r7, #20]
  7389. 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7390. 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
  7391. 4569 .loc 1 2682 9 discriminator 2
  7392. 4570 0072 7B69 ldr r3, [r7, #20]
  7393. 4571 0074 0093 str r3, [sp]
  7394. 4572 0076 1923 movs r3, #25
  7395. 4573 0078 0122 movs r2, #1
  7396. 4574 007a 4FF40041 mov r1, #32768
  7397. 4575 007e F868 ldr r0, [r7, #12]
  7398. 4576 0080 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  7399. 4577 0084 0346 mov r3, r0
  7400. 4578 .loc 1 2682 8 discriminator 2
  7401. 4579 0086 002B cmp r3, #0
  7402. 4580 0088 01D0 beq .L210
  7403. 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7404. 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7405. 4581 .loc 1 2684 14
  7406. 4582 008a 0123 movs r3, #1
  7407. 4583 008c D5E0 b .L208
  7408. 4584 .L210:
  7409. 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7410. 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7411. 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  7412. 4585 .loc 1 2687 21
  7413. 4586 008e FB68 ldr r3, [r7, #12]
  7414. 4587 0090 2222 movs r2, #34
  7415. 4588 0092 83F84120 strb r2, [r3, #65]
  7416. 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
  7417. 4589 .loc 1 2688 21
  7418. 4590 0096 FB68 ldr r3, [r7, #12]
  7419. 4591 0098 4022 movs r2, #64
  7420. 4592 009a 83F84220 strb r2, [r3, #66]
  7421. 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  7422. 4593 .loc 1 2689 21
  7423. 4594 009e FB68 ldr r3, [r7, #12]
  7424. 4595 00a0 0022 movs r2, #0
  7425. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 129
  7426. 4596 00a2 5A64 str r2, [r3, #68]
  7427. 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7428. 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  7429. 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  7430. 4597 .loc 1 2692 21
  7431. 4598 00a4 FB68 ldr r3, [r7, #12]
  7432. 4599 00a6 3A6A ldr r2, [r7, #32]
  7433. 4600 00a8 5A62 str r2, [r3, #36]
  7434. 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  7435. 4601 .loc 1 2693 21
  7436. 4602 00aa FB68 ldr r3, [r7, #12]
  7437. 4603 00ac BA8C ldrh r2, [r7, #36] @ movhi
  7438. 4604 00ae 5A85 strh r2, [r3, #42] @ movhi
  7439. 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  7440. 4605 .loc 1 2694 21
  7441. 4606 00b0 FB68 ldr r3, [r7, #12]
  7442. 4607 00b2 0022 movs r2, #0
  7443. 4608 00b4 5A63 str r2, [r3, #52]
  7444. 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7445. 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
  7446. 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
  7447. 4609 .loc 1 2697 9
  7448. 4610 00b6 F888 ldrh r0, [r7, #6]
  7449. 4611 00b8 3A89 ldrh r2, [r7, #8]
  7450. 4612 00ba 7989 ldrh r1, [r7, #10]
  7451. 4613 00bc 7B69 ldr r3, [r7, #20]
  7452. 4614 00be 0193 str r3, [sp, #4]
  7453. 4615 00c0 BB6A ldr r3, [r7, #40]
  7454. 4616 00c2 0093 str r3, [sp]
  7455. 4617 00c4 0346 mov r3, r0
  7456. 4618 00c6 F868 ldr r0, [r7, #12]
  7457. 4619 00c8 FFF7FEFF bl I2C_RequestMemoryRead
  7458. 4620 00cc 0346 mov r3, r0
  7459. 4621 .loc 1 2697 8
  7460. 4622 00ce 002B cmp r3, #0
  7461. 4623 00d0 05D0 beq .L211
  7462. 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7463. 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  7464. 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  7465. 4624 .loc 1 2700 7
  7466. 4625 00d2 FB68 ldr r3, [r7, #12]
  7467. 4626 00d4 0022 movs r2, #0
  7468. 4627 00d6 83F84020 strb r2, [r3, #64]
  7469. 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7470. 4628 .loc 1 2701 14
  7471. 4629 00da 0123 movs r3, #1
  7472. 4630 00dc ADE0 b .L208
  7473. 4631 .L211:
  7474. 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7475. 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7476. 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  7477. 2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
  7478. 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  7479. 4632 .loc 1 2706 13
  7480. 4633 00de FB68 ldr r3, [r7, #12]
  7481. 4634 00e0 5B8D ldrh r3, [r3, #42] @ movhi
  7482. 4635 00e2 9BB2 uxth r3, r3
  7483. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 130
  7484. 4636 .loc 1 2706 8
  7485. 4637 00e4 FF2B cmp r3, #255
  7486. 4638 00e6 0ED9 bls .L212
  7487. 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7488. 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  7489. 4639 .loc 1 2708 22
  7490. 4640 00e8 FB68 ldr r3, [r7, #12]
  7491. 4641 00ea 0122 movs r2, #1
  7492. 4642 00ec 1A85 strh r2, [r3, #40] @ movhi
  7493. 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
  7494. 4643 .loc 1 2709 57
  7495. 4644 00ee FB68 ldr r3, [r7, #12]
  7496. 4645 00f0 1B8D ldrh r3, [r3, #40]
  7497. 4646 .loc 1 2709 7
  7498. 4647 00f2 DAB2 uxtb r2, r3
  7499. 4648 00f4 7989 ldrh r1, [r7, #10]
  7500. 4649 00f6 544B ldr r3, .L220+4
  7501. 4650 00f8 0093 str r3, [sp]
  7502. 4651 00fa 4FF08073 mov r3, #16777216
  7503. 4652 00fe F868 ldr r0, [r7, #12]
  7504. 4653 0100 FFF7FEFF bl I2C_TransferConfig
  7505. 4654 0104 0FE0 b .L218
  7506. 4655 .L212:
  7507. 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
  7508. 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7509. 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  7510. 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7511. 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  7512. 4656 .loc 1 2714 28
  7513. 4657 0106 FB68 ldr r3, [r7, #12]
  7514. 4658 0108 5B8D ldrh r3, [r3, #42] @ movhi
  7515. 4659 010a 9AB2 uxth r2, r3
  7516. 4660 .loc 1 2714 22
  7517. 4661 010c FB68 ldr r3, [r7, #12]
  7518. 4662 010e 1A85 strh r2, [r3, #40] @ movhi
  7519. 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  7520. 4663 .loc 1 2715 57
  7521. 4664 0110 FB68 ldr r3, [r7, #12]
  7522. 4665 0112 1B8D ldrh r3, [r3, #40]
  7523. 4666 .loc 1 2715 7
  7524. 4667 0114 DAB2 uxtb r2, r3
  7525. 4668 0116 7989 ldrh r1, [r7, #10]
  7526. 4669 0118 4B4B ldr r3, .L220+4
  7527. 4670 011a 0093 str r3, [sp]
  7528. 4671 011c 4FF00073 mov r3, #33554432
  7529. 4672 0120 F868 ldr r0, [r7, #12]
  7530. 4673 0122 FFF7FEFF bl I2C_TransferConfig
  7531. 4674 .L218:
  7532. 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
  7533. 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7534. 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7535. 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
  7536. 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7537. 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
  7538. 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
  7539. 4675 .loc 1 2722 11
  7540. 4676 0126 7B69 ldr r3, [r7, #20]
  7541. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 131
  7542. 4677 0128 0093 str r3, [sp]
  7543. 4678 012a BB6A ldr r3, [r7, #40]
  7544. 4679 012c 0022 movs r2, #0
  7545. 4680 012e 0421 movs r1, #4
  7546. 4681 0130 F868 ldr r0, [r7, #12]
  7547. 4682 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  7548. 4683 0136 0346 mov r3, r0
  7549. 4684 .loc 1 2722 10
  7550. 4685 0138 002B cmp r3, #0
  7551. 4686 013a 01D0 beq .L214
  7552. 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7553. 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7554. 4687 .loc 1 2724 16
  7555. 4688 013c 0123 movs r3, #1
  7556. 4689 013e 7CE0 b .L208
  7557. 4690 .L214:
  7558. 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7559. 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7560. 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  7561. 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  7562. 4691 .loc 1 2728 38
  7563. 4692 0140 FB68 ldr r3, [r7, #12]
  7564. 4693 0142 1B68 ldr r3, [r3]
  7565. 4694 .loc 1 2728 48
  7566. 4695 0144 5A6A ldr r2, [r3, #36]
  7567. 4696 .loc 1 2728 12
  7568. 4697 0146 FB68 ldr r3, [r7, #12]
  7569. 4698 0148 5B6A ldr r3, [r3, #36]
  7570. 4699 .loc 1 2728 25
  7571. 4700 014a D2B2 uxtb r2, r2
  7572. 4701 .loc 1 2728 23
  7573. 4702 014c 1A70 strb r2, [r3]
  7574. 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7575. 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  7576. 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  7577. 4703 .loc 1 2731 11
  7578. 4704 014e FB68 ldr r3, [r7, #12]
  7579. 4705 0150 5B6A ldr r3, [r3, #36]
  7580. 4706 .loc 1 2731 21
  7581. 4707 0152 5A1C adds r2, r3, #1
  7582. 4708 0154 FB68 ldr r3, [r7, #12]
  7583. 4709 0156 5A62 str r2, [r3, #36]
  7584. 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7585. 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  7586. 4710 .loc 1 2733 11
  7587. 4711 0158 FB68 ldr r3, [r7, #12]
  7588. 4712 015a 1B8D ldrh r3, [r3, #40]
  7589. 4713 .loc 1 2733 21
  7590. 4714 015c 013B subs r3, r3, #1
  7591. 4715 015e 9AB2 uxth r2, r3
  7592. 4716 0160 FB68 ldr r3, [r7, #12]
  7593. 4717 0162 1A85 strh r2, [r3, #40] @ movhi
  7594. 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  7595. 4718 .loc 1 2734 11
  7596. 4719 0164 FB68 ldr r3, [r7, #12]
  7597. 4720 0166 5B8D ldrh r3, [r3, #42] @ movhi
  7598. 4721 0168 9BB2 uxth r3, r3
  7599. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 132
  7600. 4722 .loc 1 2734 22
  7601. 4723 016a 013B subs r3, r3, #1
  7602. 4724 016c 9AB2 uxth r2, r3
  7603. 4725 016e FB68 ldr r3, [r7, #12]
  7604. 4726 0170 5A85 strh r2, [r3, #42] @ movhi
  7605. 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7606. 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
  7607. 4727 .loc 1 2736 16
  7608. 4728 0172 FB68 ldr r3, [r7, #12]
  7609. 4729 0174 5B8D ldrh r3, [r3, #42] @ movhi
  7610. 4730 0176 9BB2 uxth r3, r3
  7611. 4731 .loc 1 2736 10
  7612. 4732 0178 002B cmp r3, #0
  7613. 4733 017a 34D0 beq .L215
  7614. 4734 .loc 1 2736 43 discriminator 1
  7615. 4735 017c FB68 ldr r3, [r7, #12]
  7616. 4736 017e 1B8D ldrh r3, [r3, #40]
  7617. 4737 .loc 1 2736 35 discriminator 1
  7618. 4738 0180 002B cmp r3, #0
  7619. 4739 0182 30D1 bne .L215
  7620. 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7621. 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
  7622. 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
  7623. 4740 .loc 1 2739 13
  7624. 4741 0184 7B69 ldr r3, [r7, #20]
  7625. 4742 0186 0093 str r3, [sp]
  7626. 4743 0188 BB6A ldr r3, [r7, #40]
  7627. 4744 018a 0022 movs r2, #0
  7628. 4745 018c 8021 movs r1, #128
  7629. 4746 018e F868 ldr r0, [r7, #12]
  7630. 4747 0190 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  7631. 4748 0194 0346 mov r3, r0
  7632. 4749 .loc 1 2739 12
  7633. 4750 0196 002B cmp r3, #0
  7634. 4751 0198 01D0 beq .L216
  7635. 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7636. 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7637. 4752 .loc 1 2741 18
  7638. 4753 019a 0123 movs r3, #1
  7639. 4754 019c 4DE0 b .L208
  7640. 4755 .L216:
  7641. 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7642. 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7643. 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  7644. 4756 .loc 1 2744 17
  7645. 4757 019e FB68 ldr r3, [r7, #12]
  7646. 4758 01a0 5B8D ldrh r3, [r3, #42] @ movhi
  7647. 4759 01a2 9BB2 uxth r3, r3
  7648. 4760 .loc 1 2744 12
  7649. 4761 01a4 FF2B cmp r3, #255
  7650. 4762 01a6 0ED9 bls .L217
  7651. 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7652. 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  7653. 4763 .loc 1 2746 26
  7654. 4764 01a8 FB68 ldr r3, [r7, #12]
  7655. 4765 01aa 0122 movs r2, #1
  7656. 4766 01ac 1A85 strh r2, [r3, #40] @ movhi
  7657. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 133
  7658. 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
  7659. 4767 .loc 1 2747 62
  7660. 4768 01ae FB68 ldr r3, [r7, #12]
  7661. 4769 01b0 1B8D ldrh r3, [r3, #40]
  7662. 4770 .loc 1 2747 11
  7663. 4771 01b2 DAB2 uxtb r2, r3
  7664. 4772 01b4 7989 ldrh r1, [r7, #10]
  7665. 4773 01b6 0023 movs r3, #0
  7666. 4774 01b8 0093 str r3, [sp]
  7667. 4775 01ba 4FF08073 mov r3, #16777216
  7668. 4776 01be F868 ldr r0, [r7, #12]
  7669. 4777 01c0 FFF7FEFF bl I2C_TransferConfig
  7670. 4778 01c4 0FE0 b .L215
  7671. 4779 .L217:
  7672. 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  7673. 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7674. 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  7675. 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7676. 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  7677. 4780 .loc 1 2752 32
  7678. 4781 01c6 FB68 ldr r3, [r7, #12]
  7679. 4782 01c8 5B8D ldrh r3, [r3, #42] @ movhi
  7680. 4783 01ca 9AB2 uxth r2, r3
  7681. 4784 .loc 1 2752 26
  7682. 4785 01cc FB68 ldr r3, [r7, #12]
  7683. 4786 01ce 1A85 strh r2, [r3, #40] @ movhi
  7684. 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  7685. 4787 .loc 1 2753 61
  7686. 4788 01d0 FB68 ldr r3, [r7, #12]
  7687. 4789 01d2 1B8D ldrh r3, [r3, #40]
  7688. 4790 .loc 1 2753 11
  7689. 4791 01d4 DAB2 uxtb r2, r3
  7690. 4792 01d6 7989 ldrh r1, [r7, #10]
  7691. 4793 01d8 0023 movs r3, #0
  7692. 4794 01da 0093 str r3, [sp]
  7693. 4795 01dc 4FF00073 mov r3, #33554432
  7694. 4796 01e0 F868 ldr r0, [r7, #12]
  7695. 4797 01e2 FFF7FEFF bl I2C_TransferConfig
  7696. 4798 .L215:
  7697. 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
  7698. 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7699. 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7700. 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
  7701. 4799 .loc 1 2757 18
  7702. 4800 01e6 FB68 ldr r3, [r7, #12]
  7703. 4801 01e8 5B8D ldrh r3, [r3, #42] @ movhi
  7704. 4802 01ea 9BB2 uxth r3, r3
  7705. 4803 .loc 1 2757 5
  7706. 4804 01ec 002B cmp r3, #0
  7707. 4805 01ee 9AD1 bne .L218
  7708. 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7709. 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
  7710. 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
  7711. 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
  7712. 4806 .loc 1 2761 9
  7713. 4807 01f0 7A69 ldr r2, [r7, #20]
  7714. 4808 01f2 B96A ldr r1, [r7, #40]
  7715. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 134
  7716. 4809 01f4 F868 ldr r0, [r7, #12]
  7717. 4810 01f6 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
  7718. 4811 01fa 0346 mov r3, r0
  7719. 4812 .loc 1 2761 8
  7720. 4813 01fc 002B cmp r3, #0
  7721. 4814 01fe 01D0 beq .L219
  7722. 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7723. 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7724. 4815 .loc 1 2763 14
  7725. 4816 0200 0123 movs r3, #1
  7726. 4817 0202 1AE0 b .L208
  7727. 4818 .L219:
  7728. 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7729. 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7730. 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  7731. 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  7732. 4819 .loc 1 2767 5
  7733. 4820 0204 FB68 ldr r3, [r7, #12]
  7734. 4821 0206 1B68 ldr r3, [r3]
  7735. 4822 0208 2022 movs r2, #32
  7736. 4823 020a DA61 str r2, [r3, #28]
  7737. 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7738. 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  7739. 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  7740. 4824 .loc 1 2770 5
  7741. 4825 020c FB68 ldr r3, [r7, #12]
  7742. 4826 020e 1B68 ldr r3, [r3]
  7743. 4827 0210 5968 ldr r1, [r3, #4]
  7744. 4828 0212 FB68 ldr r3, [r7, #12]
  7745. 4829 0214 1A68 ldr r2, [r3]
  7746. 4830 0216 0D4B ldr r3, .L220+8
  7747. 4831 0218 0B40 ands r3, r3, r1
  7748. 4832 021a 5360 str r3, [r2, #4]
  7749. 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7750. 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  7751. 4833 .loc 1 2772 17
  7752. 4834 021c FB68 ldr r3, [r7, #12]
  7753. 4835 021e 2022 movs r2, #32
  7754. 4836 0220 83F84120 strb r2, [r3, #65]
  7755. 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  7756. 4837 .loc 1 2773 17
  7757. 4838 0224 FB68 ldr r3, [r7, #12]
  7758. 4839 0226 0022 movs r2, #0
  7759. 4840 0228 83F84220 strb r2, [r3, #66]
  7760. 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7761. 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  7762. 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  7763. 4841 .loc 1 2776 5
  7764. 4842 022c FB68 ldr r3, [r7, #12]
  7765. 4843 022e 0022 movs r2, #0
  7766. 4844 0230 83F84020 strb r2, [r3, #64]
  7767. 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7768. 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  7769. 4845 .loc 1 2778 12
  7770. 4846 0234 0023 movs r3, #0
  7771. 4847 0236 00E0 b .L208
  7772. 4848 .L205:
  7773. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 135
  7774. 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7775. 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  7776. 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7777. 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  7778. 4849 .loc 1 2782 12
  7779. 4850 0238 0223 movs r3, #2
  7780. 4851 .L208:
  7781. 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7782. 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7783. 4852 .loc 1 2784 1
  7784. 4853 023a 1846 mov r0, r3
  7785. 4854 023c 1837 adds r7, r7, #24
  7786. 4855 .LCFI90:
  7787. 4856 .cfi_def_cfa_offset 8
  7788. 4857 023e BD46 mov sp, r7
  7789. 4858 .LCFI91:
  7790. 4859 .cfi_def_cfa_register 13
  7791. 4860 @ sp needed
  7792. 4861 0240 80BD pop {r7, pc}
  7793. 4862 .L221:
  7794. 4863 0242 00BF .align 2
  7795. 4864 .L220:
  7796. 4865 0244 00000000 .word .LC0
  7797. 4866 0248 00240080 .word -2147474432
  7798. 4867 024c 00E800FE .word -33495040
  7799. 4868 .cfi_endproc
  7800. 4869 .LFE147:
  7801. 4871 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
  7802. 4872 .align 1
  7803. 4873 .global HAL_I2C_Mem_Write_IT
  7804. 4874 .syntax unified
  7805. 4875 .thumb
  7806. 4876 .thumb_func
  7807. 4878 HAL_I2C_Mem_Write_IT:
  7808. 4879 .LFB148:
  7809. 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  7810. 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres
  7811. 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  7812. 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  7813. 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  7814. 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  7815. 2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  7816. 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  7817. 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  7818. 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  7819. 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  7820. 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  7821. 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
  7822. 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
  7823. 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7824. 4880 .loc 1 2799 1
  7825. 4881 .cfi_startproc
  7826. 4882 @ args = 8, pretend = 0, frame = 16
  7827. 4883 @ frame_needed = 1, uses_anonymous_args = 0
  7828. 4884 0000 80B5 push {r7, lr}
  7829. 4885 .LCFI92:
  7830. 4886 .cfi_def_cfa_offset 8
  7831. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 136
  7832. 4887 .cfi_offset 7, -8
  7833. 4888 .cfi_offset 14, -4
  7834. 4889 0002 86B0 sub sp, sp, #24
  7835. 4890 .LCFI93:
  7836. 4891 .cfi_def_cfa_offset 32
  7837. 4892 0004 02AF add r7, sp, #8
  7838. 4893 .LCFI94:
  7839. 4894 .cfi_def_cfa 7, 24
  7840. 4895 0006 F860 str r0, [r7, #12]
  7841. 4896 0008 0846 mov r0, r1
  7842. 4897 000a 1146 mov r1, r2
  7843. 4898 000c 1A46 mov r2, r3
  7844. 4899 000e 0346 mov r3, r0 @ movhi
  7845. 4900 0010 7B81 strh r3, [r7, #10] @ movhi
  7846. 4901 0012 0B46 mov r3, r1 @ movhi
  7847. 4902 0014 3B81 strh r3, [r7, #8] @ movhi
  7848. 4903 0016 1346 mov r3, r2 @ movhi
  7849. 4904 0018 FB80 strh r3, [r7, #6] @ movhi
  7850. 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  7851. 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
  7852. 4905 .loc 1 2801 3
  7853. 4906 001a FB88 ldrh r3, [r7, #6]
  7854. 4907 001c 012B cmp r3, #1
  7855. 4908 001e 07D0 beq .L223
  7856. 4909 .loc 1 2801 3 is_stmt 0 discriminator 1
  7857. 4910 0020 FB88 ldrh r3, [r7, #6]
  7858. 4911 0022 022B cmp r3, #2
  7859. 4912 0024 04D0 beq .L223
  7860. 4913 .loc 1 2801 3 discriminator 2
  7861. 4914 0026 40F6F121 movw r1, #2801
  7862. 4915 002a 3C48 ldr r0, .L232
  7863. 4916 002c FFF7FEFF bl assert_failed
  7864. 4917 .L223:
  7865. 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7866. 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  7867. 4918 .loc 1 2803 11 is_stmt 1
  7868. 4919 0030 FB68 ldr r3, [r7, #12]
  7869. 4920 0032 93F84130 ldrb r3, [r3, #65]
  7870. 4921 0036 DBB2 uxtb r3, r3
  7871. 4922 .loc 1 2803 6
  7872. 4923 0038 202B cmp r3, #32
  7873. 4924 003a 6AD1 bne .L224
  7874. 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7875. 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  7876. 4925 .loc 1 2805 8
  7877. 4926 003c BB69 ldr r3, [r7, #24]
  7878. 4927 003e 002B cmp r3, #0
  7879. 4928 0040 02D0 beq .L225
  7880. 4929 .loc 1 2805 25 discriminator 1
  7881. 4930 0042 BB8B ldrh r3, [r7, #28]
  7882. 4931 0044 002B cmp r3, #0
  7883. 4932 0046 05D1 bne .L226
  7884. 4933 .L225:
  7885. 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7886. 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  7887. 4934 .loc 1 2807 23
  7888. 4935 0048 FB68 ldr r3, [r7, #12]
  7889. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 137
  7890. 4936 004a 4FF40072 mov r2, #512
  7891. 4937 004e 5A64 str r2, [r3, #68]
  7892. 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  7893. 4938 .loc 1 2808 15
  7894. 4939 0050 0123 movs r3, #1
  7895. 4940 0052 5FE0 b .L227
  7896. 4941 .L226:
  7897. 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7898. 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7899. 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  7900. 4942 .loc 1 2811 9
  7901. 4943 0054 FB68 ldr r3, [r7, #12]
  7902. 4944 0056 1B68 ldr r3, [r3]
  7903. 4945 0058 9B69 ldr r3, [r3, #24]
  7904. 4946 005a 03F40043 and r3, r3, #32768
  7905. 4947 .loc 1 2811 8
  7906. 4948 005e B3F5004F cmp r3, #32768
  7907. 4949 0062 01D1 bne .L228
  7908. 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7909. 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  7910. 4950 .loc 1 2813 14
  7911. 4951 0064 0223 movs r3, #2
  7912. 4952 0066 55E0 b .L227
  7913. 4953 .L228:
  7914. 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  7915. 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7916. 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  7917. 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  7918. 4954 .loc 1 2817 5
  7919. 4955 0068 FB68 ldr r3, [r7, #12]
  7920. 4956 006a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  7921. 4957 006e 012B cmp r3, #1
  7922. 4958 0070 01D1 bne .L229
  7923. 4959 .loc 1 2817 5 is_stmt 0 discriminator 1
  7924. 4960 0072 0223 movs r3, #2
  7925. 4961 0074 4EE0 b .L227
  7926. 4962 .L229:
  7927. 4963 .loc 1 2817 5 discriminator 2
  7928. 4964 0076 FB68 ldr r3, [r7, #12]
  7929. 4965 0078 0122 movs r2, #1
  7930. 4966 007a 83F84020 strb r2, [r3, #64]
  7931. 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7932. 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  7933. 4967 .loc 1 2819 23 is_stmt 1 discriminator 2
  7934. 4968 007e FB68 ldr r3, [r7, #12]
  7935. 4969 0080 2122 movs r2, #33
  7936. 4970 0082 83F84120 strb r2, [r3, #65]
  7937. 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
  7938. 4971 .loc 1 2820 23 discriminator 2
  7939. 4972 0086 FB68 ldr r3, [r7, #12]
  7940. 4973 0088 4022 movs r2, #64
  7941. 4974 008a 83F84220 strb r2, [r3, #66]
  7942. 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  7943. 4975 .loc 1 2821 23 discriminator 2
  7944. 4976 008e FB68 ldr r3, [r7, #12]
  7945. 4977 0090 0022 movs r2, #0
  7946. 4978 0092 5A64 str r2, [r3, #68]
  7947. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 138
  7948. 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7949. 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  7950. 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0U;
  7951. 4979 .loc 1 2824 23 discriminator 2
  7952. 4980 0094 FB68 ldr r3, [r7, #12]
  7953. 4981 0096 0022 movs r2, #0
  7954. 4982 0098 1A85 strh r2, [r3, #40] @ movhi
  7955. 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  7956. 4983 .loc 1 2825 23 discriminator 2
  7957. 4984 009a FB68 ldr r3, [r7, #12]
  7958. 4985 009c BA69 ldr r2, [r7, #24]
  7959. 4986 009e 5A62 str r2, [r3, #36]
  7960. 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  7961. 4987 .loc 1 2826 23 discriminator 2
  7962. 4988 00a0 FB68 ldr r3, [r7, #12]
  7963. 4989 00a2 BA8B ldrh r2, [r7, #28] @ movhi
  7964. 4990 00a4 5A85 strh r2, [r3, #42] @ movhi
  7965. 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  7966. 4991 .loc 1 2827 23 discriminator 2
  7967. 4992 00a6 FB68 ldr r3, [r7, #12]
  7968. 4993 00a8 1D4A ldr r2, .L232+4
  7969. 4994 00aa DA62 str r2, [r3, #44]
  7970. 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
  7971. 4995 .loc 1 2828 23 discriminator 2
  7972. 4996 00ac FB68 ldr r3, [r7, #12]
  7973. 4997 00ae 1D4A ldr r2, .L232+8
  7974. 4998 00b0 5A63 str r2, [r3, #52]
  7975. 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
  7976. 4999 .loc 1 2829 23 discriminator 2
  7977. 5000 00b2 7A89 ldrh r2, [r7, #10]
  7978. 5001 00b4 FB68 ldr r3, [r7, #12]
  7979. 5002 00b6 DA64 str r2, [r3, #76]
  7980. 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7981. 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
  7982. 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
  7983. 5003 .loc 1 2832 8 discriminator 2
  7984. 5004 00b8 FB88 ldrh r3, [r7, #6]
  7985. 5005 00ba 012B cmp r3, #1
  7986. 5006 00bc 09D1 bne .L230
  7987. 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  7988. 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
  7989. 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  7990. 5007 .loc 1 2835 30
  7991. 5008 00be 3B89 ldrh r3, [r7, #8] @ movhi
  7992. 5009 00c0 DAB2 uxtb r2, r3
  7993. 5010 .loc 1 2835 11
  7994. 5011 00c2 FB68 ldr r3, [r7, #12]
  7995. 5012 00c4 1B68 ldr r3, [r3]
  7996. 5013 .loc 1 2835 28
  7997. 5014 00c6 9A62 str r2, [r3, #40]
  7998. 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  7999. 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
  8000. 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
  8001. 5015 .loc 1 2838 24
  8002. 5016 00c8 FB68 ldr r3, [r7, #12]
  8003. 5017 00ca 4FF0FF32 mov r2, #-1
  8004. 5018 00ce 1A65 str r2, [r3, #80]
  8005. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 139
  8006. 5019 00d0 0BE0 b .L231
  8007. 5020 .L230:
  8008. 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8009. 2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
  8010. 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8011. 2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8012. 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
  8013. 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
  8014. 5021 .loc 1 2844 30
  8015. 5022 00d2 3B89 ldrh r3, [r7, #8]
  8016. 5023 00d4 1B0A lsrs r3, r3, #8
  8017. 5024 00d6 9BB2 uxth r3, r3
  8018. 5025 00d8 DAB2 uxtb r2, r3
  8019. 5026 .loc 1 2844 11
  8020. 5027 00da FB68 ldr r3, [r7, #12]
  8021. 5028 00dc 1B68 ldr r3, [r3]
  8022. 5029 .loc 1 2844 28
  8023. 5030 00de 9A62 str r2, [r3, #40]
  8024. 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8025. 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
  8026. 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
  8027. 5031 .loc 1 2847 26
  8028. 5032 00e0 3B89 ldrh r3, [r7, #8] @ movhi
  8029. 5033 00e2 DBB2 uxtb r3, r3
  8030. 5034 00e4 1A46 mov r2, r3
  8031. 5035 .loc 1 2847 24
  8032. 5036 00e6 FB68 ldr r3, [r7, #12]
  8033. 5037 00e8 1A65 str r2, [r3, #80]
  8034. 5038 .L231:
  8035. 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8036. 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
  8037. 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W
  8038. 5039 .loc 1 2850 5
  8039. 5040 00ea FB88 ldrh r3, [r7, #6] @ movhi
  8040. 5041 00ec DAB2 uxtb r2, r3
  8041. 5042 00ee 7989 ldrh r1, [r7, #10]
  8042. 5043 00f0 0D4B ldr r3, .L232+12
  8043. 5044 00f2 0093 str r3, [sp]
  8044. 5045 00f4 4FF08073 mov r3, #16777216
  8045. 5046 00f8 F868 ldr r0, [r7, #12]
  8046. 5047 00fa FFF7FEFF bl I2C_TransferConfig
  8047. 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8048. 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  8049. 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  8050. 5048 .loc 1 2853 5
  8051. 5049 00fe FB68 ldr r3, [r7, #12]
  8052. 5050 0100 0022 movs r2, #0
  8053. 5051 0102 83F84020 strb r2, [r3, #64]
  8054. 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8055. 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  8056. 2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  8057. 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  8058. 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8059. 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  8060. 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  8061. 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  8062. 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  8063. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 140
  8064. 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  8065. 5052 .loc 1 2863 5
  8066. 5053 0106 0121 movs r1, #1
  8067. 5054 0108 F868 ldr r0, [r7, #12]
  8068. 5055 010a FFF7FEFF bl I2C_Enable_IRQ
  8069. 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8070. 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  8071. 5056 .loc 1 2865 12
  8072. 5057 010e 0023 movs r3, #0
  8073. 5058 0110 00E0 b .L227
  8074. 5059 .L224:
  8075. 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8076. 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8077. 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8078. 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  8079. 5060 .loc 1 2869 12
  8080. 5061 0112 0223 movs r3, #2
  8081. 5062 .L227:
  8082. 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8083. 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8084. 5063 .loc 1 2871 1
  8085. 5064 0114 1846 mov r0, r3
  8086. 5065 0116 1037 adds r7, r7, #16
  8087. 5066 .LCFI95:
  8088. 5067 .cfi_def_cfa_offset 8
  8089. 5068 0118 BD46 mov sp, r7
  8090. 5069 .LCFI96:
  8091. 5070 .cfi_def_cfa_register 13
  8092. 5071 @ sp needed
  8093. 5072 011a 80BD pop {r7, pc}
  8094. 5073 .L233:
  8095. 5074 .align 2
  8096. 5075 .L232:
  8097. 5076 011c 00000000 .word .LC0
  8098. 5077 0120 0000FFFF .word -65536
  8099. 5078 0124 00000000 .word I2C_Mem_ISR_IT
  8100. 5079 0128 00200080 .word -2147475456
  8101. 5080 .cfi_endproc
  8102. 5081 .LFE148:
  8103. 5083 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
  8104. 5084 .align 1
  8105. 5085 .global HAL_I2C_Mem_Read_IT
  8106. 5086 .syntax unified
  8107. 5087 .thumb
  8108. 5088 .thumb_func
  8109. 5090 HAL_I2C_Mem_Read_IT:
  8110. 5091 .LFB149:
  8111. 2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8112. 2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  8113. 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre
  8114. 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  8115. 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  8116. 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  8117. 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  8118. 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  8119. 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  8120. 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  8121. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 141
  8122. 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  8123. 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  8124. 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  8125. 2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd
  8126. 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
  8127. 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8128. 5092 .loc 1 2887 1
  8129. 5093 .cfi_startproc
  8130. 5094 @ args = 8, pretend = 0, frame = 16
  8131. 5095 @ frame_needed = 1, uses_anonymous_args = 0
  8132. 5096 0000 80B5 push {r7, lr}
  8133. 5097 .LCFI97:
  8134. 5098 .cfi_def_cfa_offset 8
  8135. 5099 .cfi_offset 7, -8
  8136. 5100 .cfi_offset 14, -4
  8137. 5101 0002 86B0 sub sp, sp, #24
  8138. 5102 .LCFI98:
  8139. 5103 .cfi_def_cfa_offset 32
  8140. 5104 0004 02AF add r7, sp, #8
  8141. 5105 .LCFI99:
  8142. 5106 .cfi_def_cfa 7, 24
  8143. 5107 0006 F860 str r0, [r7, #12]
  8144. 5108 0008 0846 mov r0, r1
  8145. 5109 000a 1146 mov r1, r2
  8146. 5110 000c 1A46 mov r2, r3
  8147. 5111 000e 0346 mov r3, r0 @ movhi
  8148. 5112 0010 7B81 strh r3, [r7, #10] @ movhi
  8149. 5113 0012 0B46 mov r3, r1 @ movhi
  8150. 5114 0014 3B81 strh r3, [r7, #8] @ movhi
  8151. 5115 0016 1346 mov r3, r2 @ movhi
  8152. 5116 0018 FB80 strh r3, [r7, #6] @ movhi
  8153. 2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  8154. 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
  8155. 5117 .loc 1 2889 3
  8156. 5118 001a FB88 ldrh r3, [r7, #6]
  8157. 5119 001c 012B cmp r3, #1
  8158. 5120 001e 07D0 beq .L235
  8159. 5121 .loc 1 2889 3 is_stmt 0 discriminator 1
  8160. 5122 0020 FB88 ldrh r3, [r7, #6]
  8161. 5123 0022 022B cmp r3, #2
  8162. 5124 0024 04D0 beq .L235
  8163. 5125 .loc 1 2889 3 discriminator 2
  8164. 5126 0026 40F64931 movw r1, #2889
  8165. 5127 002a 3A48 ldr r0, .L244
  8166. 5128 002c FFF7FEFF bl assert_failed
  8167. 5129 .L235:
  8168. 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8169. 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  8170. 5130 .loc 1 2891 11 is_stmt 1
  8171. 5131 0030 FB68 ldr r3, [r7, #12]
  8172. 5132 0032 93F84130 ldrb r3, [r3, #65]
  8173. 5133 0036 DBB2 uxtb r3, r3
  8174. 5134 .loc 1 2891 6
  8175. 5135 0038 202B cmp r3, #32
  8176. 5136 003a 66D1 bne .L236
  8177. 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8178. 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  8179. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 142
  8180. 5137 .loc 1 2893 8
  8181. 5138 003c BB69 ldr r3, [r7, #24]
  8182. 5139 003e 002B cmp r3, #0
  8183. 5140 0040 02D0 beq .L237
  8184. 5141 .loc 1 2893 25 discriminator 1
  8185. 5142 0042 BB8B ldrh r3, [r7, #28]
  8186. 5143 0044 002B cmp r3, #0
  8187. 5144 0046 05D1 bne .L238
  8188. 5145 .L237:
  8189. 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8190. 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  8191. 5146 .loc 1 2895 23
  8192. 5147 0048 FB68 ldr r3, [r7, #12]
  8193. 5148 004a 4FF40072 mov r2, #512
  8194. 5149 004e 5A64 str r2, [r3, #68]
  8195. 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  8196. 5150 .loc 1 2896 15
  8197. 5151 0050 0123 movs r3, #1
  8198. 5152 0052 5BE0 b .L239
  8199. 5153 .L238:
  8200. 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8201. 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8202. 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  8203. 5154 .loc 1 2899 9
  8204. 5155 0054 FB68 ldr r3, [r7, #12]
  8205. 5156 0056 1B68 ldr r3, [r3]
  8206. 5157 0058 9B69 ldr r3, [r3, #24]
  8207. 5158 005a 03F40043 and r3, r3, #32768
  8208. 5159 .loc 1 2899 8
  8209. 5160 005e B3F5004F cmp r3, #32768
  8210. 5161 0062 01D1 bne .L240
  8211. 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8212. 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  8213. 5162 .loc 1 2901 14
  8214. 5163 0064 0223 movs r3, #2
  8215. 5164 0066 51E0 b .L239
  8216. 5165 .L240:
  8217. 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8218. 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8219. 2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  8220. 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  8221. 5166 .loc 1 2905 5
  8222. 5167 0068 FB68 ldr r3, [r7, #12]
  8223. 5168 006a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  8224. 5169 006e 012B cmp r3, #1
  8225. 5170 0070 01D1 bne .L241
  8226. 5171 .loc 1 2905 5 is_stmt 0 discriminator 1
  8227. 5172 0072 0223 movs r3, #2
  8228. 5173 0074 4AE0 b .L239
  8229. 5174 .L241:
  8230. 5175 .loc 1 2905 5 discriminator 2
  8231. 5176 0076 FB68 ldr r3, [r7, #12]
  8232. 5177 0078 0122 movs r2, #1
  8233. 5178 007a 83F84020 strb r2, [r3, #64]
  8234. 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8235. 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  8236. 5179 .loc 1 2907 23 is_stmt 1 discriminator 2
  8237. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 143
  8238. 5180 007e FB68 ldr r3, [r7, #12]
  8239. 5181 0080 2222 movs r2, #34
  8240. 5182 0082 83F84120 strb r2, [r3, #65]
  8241. 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
  8242. 5183 .loc 1 2908 23 discriminator 2
  8243. 5184 0086 FB68 ldr r3, [r7, #12]
  8244. 5185 0088 4022 movs r2, #64
  8245. 5186 008a 83F84220 strb r2, [r3, #66]
  8246. 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  8247. 5187 .loc 1 2909 23 discriminator 2
  8248. 5188 008e FB68 ldr r3, [r7, #12]
  8249. 5189 0090 0022 movs r2, #0
  8250. 5190 0092 5A64 str r2, [r3, #68]
  8251. 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8252. 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  8253. 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  8254. 5191 .loc 1 2912 23 discriminator 2
  8255. 5192 0094 FB68 ldr r3, [r7, #12]
  8256. 5193 0096 BA69 ldr r2, [r7, #24]
  8257. 5194 0098 5A62 str r2, [r3, #36]
  8258. 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  8259. 5195 .loc 1 2913 23 discriminator 2
  8260. 5196 009a FB68 ldr r3, [r7, #12]
  8261. 5197 009c BA8B ldrh r2, [r7, #28] @ movhi
  8262. 5198 009e 5A85 strh r2, [r3, #42] @ movhi
  8263. 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  8264. 5199 .loc 1 2914 23 discriminator 2
  8265. 5200 00a0 FB68 ldr r3, [r7, #12]
  8266. 5201 00a2 1D4A ldr r2, .L244+4
  8267. 5202 00a4 DA62 str r2, [r3, #44]
  8268. 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
  8269. 5203 .loc 1 2915 23 discriminator 2
  8270. 5204 00a6 FB68 ldr r3, [r7, #12]
  8271. 5205 00a8 1C4A ldr r2, .L244+8
  8272. 5206 00aa 5A63 str r2, [r3, #52]
  8273. 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
  8274. 5207 .loc 1 2916 23 discriminator 2
  8275. 5208 00ac 7A89 ldrh r2, [r7, #10]
  8276. 5209 00ae FB68 ldr r3, [r7, #12]
  8277. 5210 00b0 DA64 str r2, [r3, #76]
  8278. 2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8279. 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
  8280. 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
  8281. 5211 .loc 1 2919 8 discriminator 2
  8282. 5212 00b2 FB88 ldrh r3, [r7, #6]
  8283. 5213 00b4 012B cmp r3, #1
  8284. 5214 00b6 09D1 bne .L242
  8285. 2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8286. 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
  8287. 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  8288. 5215 .loc 1 2922 30
  8289. 5216 00b8 3B89 ldrh r3, [r7, #8] @ movhi
  8290. 5217 00ba DAB2 uxtb r2, r3
  8291. 5218 .loc 1 2922 11
  8292. 5219 00bc FB68 ldr r3, [r7, #12]
  8293. 5220 00be 1B68 ldr r3, [r3]
  8294. 5221 .loc 1 2922 28
  8295. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 144
  8296. 5222 00c0 9A62 str r2, [r3, #40]
  8297. 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8298. 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
  8299. 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
  8300. 5223 .loc 1 2925 24
  8301. 5224 00c2 FB68 ldr r3, [r7, #12]
  8302. 5225 00c4 4FF0FF32 mov r2, #-1
  8303. 5226 00c8 1A65 str r2, [r3, #80]
  8304. 5227 00ca 0BE0 b .L243
  8305. 5228 .L242:
  8306. 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8307. 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
  8308. 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8309. 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8310. 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
  8311. 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
  8312. 5229 .loc 1 2931 30
  8313. 5230 00cc 3B89 ldrh r3, [r7, #8]
  8314. 5231 00ce 1B0A lsrs r3, r3, #8
  8315. 5232 00d0 9BB2 uxth r3, r3
  8316. 5233 00d2 DAB2 uxtb r2, r3
  8317. 5234 .loc 1 2931 11
  8318. 5235 00d4 FB68 ldr r3, [r7, #12]
  8319. 5236 00d6 1B68 ldr r3, [r3]
  8320. 5237 .loc 1 2931 28
  8321. 5238 00d8 9A62 str r2, [r3, #40]
  8322. 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8323. 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
  8324. 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
  8325. 5239 .loc 1 2934 26
  8326. 5240 00da 3B89 ldrh r3, [r7, #8] @ movhi
  8327. 5241 00dc DBB2 uxtb r3, r3
  8328. 5242 00de 1A46 mov r2, r3
  8329. 5243 .loc 1 2934 24
  8330. 5244 00e0 FB68 ldr r3, [r7, #12]
  8331. 5245 00e2 1A65 str r2, [r3, #80]
  8332. 5246 .L243:
  8333. 2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8334. 2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
  8335. 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_
  8336. 5247 .loc 1 2937 5
  8337. 5248 00e4 FB88 ldrh r3, [r7, #6] @ movhi
  8338. 5249 00e6 DAB2 uxtb r2, r3
  8339. 5250 00e8 7989 ldrh r1, [r7, #10]
  8340. 5251 00ea 0D4B ldr r3, .L244+12
  8341. 5252 00ec 0093 str r3, [sp]
  8342. 5253 00ee 0023 movs r3, #0
  8343. 5254 00f0 F868 ldr r0, [r7, #12]
  8344. 5255 00f2 FFF7FEFF bl I2C_TransferConfig
  8345. 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8346. 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  8347. 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  8348. 5256 .loc 1 2940 5
  8349. 5257 00f6 FB68 ldr r3, [r7, #12]
  8350. 5258 00f8 0022 movs r2, #0
  8351. 5259 00fa 83F84020 strb r2, [r3, #64]
  8352. 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8353. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 145
  8354. 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  8355. 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  8356. 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  8357. 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8358. 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  8359. 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  8360. 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  8361. 2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  8362. 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  8363. 5260 .loc 1 2950 5
  8364. 5261 00fe 0121 movs r1, #1
  8365. 5262 0100 F868 ldr r0, [r7, #12]
  8366. 5263 0102 FFF7FEFF bl I2C_Enable_IRQ
  8367. 2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8368. 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  8369. 5264 .loc 1 2952 12
  8370. 5265 0106 0023 movs r3, #0
  8371. 5266 0108 00E0 b .L239
  8372. 5267 .L236:
  8373. 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8374. 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8375. 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8376. 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  8377. 5268 .loc 1 2956 12
  8378. 5269 010a 0223 movs r3, #2
  8379. 5270 .L239:
  8380. 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8381. 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8382. 5271 .loc 1 2958 1
  8383. 5272 010c 1846 mov r0, r3
  8384. 5273 010e 1037 adds r7, r7, #16
  8385. 5274 .LCFI100:
  8386. 5275 .cfi_def_cfa_offset 8
  8387. 5276 0110 BD46 mov sp, r7
  8388. 5277 .LCFI101:
  8389. 5278 .cfi_def_cfa_register 13
  8390. 5279 @ sp needed
  8391. 5280 0112 80BD pop {r7, pc}
  8392. 5281 .L245:
  8393. 5282 .align 2
  8394. 5283 .L244:
  8395. 5284 0114 00000000 .word .LC0
  8396. 5285 0118 0000FFFF .word -65536
  8397. 5286 011c 00000000 .word I2C_Mem_ISR_IT
  8398. 5287 0120 00200080 .word -2147475456
  8399. 5288 .cfi_endproc
  8400. 5289 .LFE149:
  8401. 5291 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
  8402. 5292 .align 1
  8403. 5293 .global HAL_I2C_Mem_Write_DMA
  8404. 5294 .syntax unified
  8405. 5295 .thumb
  8406. 5296 .thumb_func
  8407. 5298 HAL_I2C_Mem_Write_DMA:
  8408. 5299 .LFB150:
  8409. 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8410. 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  8411. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 146
  8412. 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address
  8413. 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  8414. 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  8415. 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  8416. 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  8417. 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  8418. 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  8419. 2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  8420. 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  8421. 2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  8422. 2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  8423. 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA
  8424. 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
  8425. 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8426. 5300 .loc 1 2974 1
  8427. 5301 .cfi_startproc
  8428. 5302 @ args = 8, pretend = 0, frame = 24
  8429. 5303 @ frame_needed = 1, uses_anonymous_args = 0
  8430. 5304 0000 80B5 push {r7, lr}
  8431. 5305 .LCFI102:
  8432. 5306 .cfi_def_cfa_offset 8
  8433. 5307 .cfi_offset 7, -8
  8434. 5308 .cfi_offset 14, -4
  8435. 5309 0002 88B0 sub sp, sp, #32
  8436. 5310 .LCFI103:
  8437. 5311 .cfi_def_cfa_offset 40
  8438. 5312 0004 02AF add r7, sp, #8
  8439. 5313 .LCFI104:
  8440. 5314 .cfi_def_cfa 7, 32
  8441. 5315 0006 F860 str r0, [r7, #12]
  8442. 5316 0008 0846 mov r0, r1
  8443. 5317 000a 1146 mov r1, r2
  8444. 5318 000c 1A46 mov r2, r3
  8445. 5319 000e 0346 mov r3, r0 @ movhi
  8446. 5320 0010 7B81 strh r3, [r7, #10] @ movhi
  8447. 5321 0012 0B46 mov r3, r1 @ movhi
  8448. 5322 0014 3B81 strh r3, [r7, #8] @ movhi
  8449. 5323 0016 1346 mov r3, r2 @ movhi
  8450. 5324 0018 FB80 strh r3, [r7, #6] @ movhi
  8451. 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  8452. 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8453. 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  8454. 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
  8455. 5325 .loc 1 2978 3
  8456. 5326 001a FB88 ldrh r3, [r7, #6]
  8457. 5327 001c 012B cmp r3, #1
  8458. 5328 001e 07D0 beq .L247
  8459. 5329 .loc 1 2978 3 is_stmt 0 discriminator 1
  8460. 5330 0020 FB88 ldrh r3, [r7, #6]
  8461. 5331 0022 022B cmp r3, #2
  8462. 5332 0024 04D0 beq .L247
  8463. 5333 .loc 1 2978 3 discriminator 2
  8464. 5334 0026 40F6A231 movw r1, #2978
  8465. 5335 002a 6948 ldr r0, .L263
  8466. 5336 002c FFF7FEFF bl assert_failed
  8467. 5337 .L247:
  8468. 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8469. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 147
  8470. 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  8471. 5338 .loc 1 2980 11 is_stmt 1
  8472. 5339 0030 FB68 ldr r3, [r7, #12]
  8473. 5340 0032 93F84130 ldrb r3, [r3, #65]
  8474. 5341 0036 DBB2 uxtb r3, r3
  8475. 5342 .loc 1 2980 6
  8476. 5343 0038 202B cmp r3, #32
  8477. 5344 003a 40F0C380 bne .L248
  8478. 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8479. 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  8480. 5345 .loc 1 2982 8
  8481. 5346 003e 3B6A ldr r3, [r7, #32]
  8482. 5347 0040 002B cmp r3, #0
  8483. 5348 0042 02D0 beq .L249
  8484. 5349 .loc 1 2982 25 discriminator 1
  8485. 5350 0044 BB8C ldrh r3, [r7, #36]
  8486. 5351 0046 002B cmp r3, #0
  8487. 5352 0048 05D1 bne .L250
  8488. 5353 .L249:
  8489. 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8490. 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  8491. 5354 .loc 1 2984 23
  8492. 5355 004a FB68 ldr r3, [r7, #12]
  8493. 5356 004c 4FF40072 mov r2, #512
  8494. 5357 0050 5A64 str r2, [r3, #68]
  8495. 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  8496. 5358 .loc 1 2985 15
  8497. 5359 0052 0123 movs r3, #1
  8498. 5360 0054 B7E0 b .L251
  8499. 5361 .L250:
  8500. 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8501. 2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8502. 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  8503. 5362 .loc 1 2988 9
  8504. 5363 0056 FB68 ldr r3, [r7, #12]
  8505. 5364 0058 1B68 ldr r3, [r3]
  8506. 5365 005a 9B69 ldr r3, [r3, #24]
  8507. 5366 005c 03F40043 and r3, r3, #32768
  8508. 5367 .loc 1 2988 8
  8509. 5368 0060 B3F5004F cmp r3, #32768
  8510. 5369 0064 01D1 bne .L252
  8511. 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8512. 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  8513. 5370 .loc 1 2990 14
  8514. 5371 0066 0223 movs r3, #2
  8515. 5372 0068 ADE0 b .L251
  8516. 5373 .L252:
  8517. 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8518. 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8519. 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  8520. 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  8521. 5374 .loc 1 2994 5
  8522. 5375 006a FB68 ldr r3, [r7, #12]
  8523. 5376 006c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  8524. 5377 0070 012B cmp r3, #1
  8525. 5378 0072 01D1 bne .L253
  8526. 5379 .loc 1 2994 5 is_stmt 0 discriminator 1
  8527. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 148
  8528. 5380 0074 0223 movs r3, #2
  8529. 5381 0076 A6E0 b .L251
  8530. 5382 .L253:
  8531. 5383 .loc 1 2994 5 discriminator 2
  8532. 5384 0078 FB68 ldr r3, [r7, #12]
  8533. 5385 007a 0122 movs r2, #1
  8534. 5386 007c 83F84020 strb r2, [r3, #64]
  8535. 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8536. 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  8537. 5387 .loc 1 2996 23 is_stmt 1 discriminator 2
  8538. 5388 0080 FB68 ldr r3, [r7, #12]
  8539. 5389 0082 2122 movs r2, #33
  8540. 5390 0084 83F84120 strb r2, [r3, #65]
  8541. 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
  8542. 5391 .loc 1 2997 23 discriminator 2
  8543. 5392 0088 FB68 ldr r3, [r7, #12]
  8544. 5393 008a 4022 movs r2, #64
  8545. 5394 008c 83F84220 strb r2, [r3, #66]
  8546. 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  8547. 5395 .loc 1 2998 23 discriminator 2
  8548. 5396 0090 FB68 ldr r3, [r7, #12]
  8549. 5397 0092 0022 movs r2, #0
  8550. 5398 0094 5A64 str r2, [r3, #68]
  8551. 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8552. 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  8553. 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  8554. 5399 .loc 1 3001 23 discriminator 2
  8555. 5400 0096 FB68 ldr r3, [r7, #12]
  8556. 5401 0098 3A6A ldr r2, [r7, #32]
  8557. 5402 009a 5A62 str r2, [r3, #36]
  8558. 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  8559. 5403 .loc 1 3002 23 discriminator 2
  8560. 5404 009c FB68 ldr r3, [r7, #12]
  8561. 5405 009e BA8C ldrh r2, [r7, #36] @ movhi
  8562. 5406 00a0 5A85 strh r2, [r3, #42] @ movhi
  8563. 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  8564. 5407 .loc 1 3003 23 discriminator 2
  8565. 5408 00a2 FB68 ldr r3, [r7, #12]
  8566. 5409 00a4 4B4A ldr r2, .L263+4
  8567. 5410 00a6 DA62 str r2, [r3, #44]
  8568. 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
  8569. 5411 .loc 1 3004 23 discriminator 2
  8570. 5412 00a8 FB68 ldr r3, [r7, #12]
  8571. 5413 00aa 4B4A ldr r2, .L263+8
  8572. 5414 00ac 5A63 str r2, [r3, #52]
  8573. 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
  8574. 5415 .loc 1 3005 23 discriminator 2
  8575. 5416 00ae 7A89 ldrh r2, [r7, #10]
  8576. 5417 00b0 FB68 ldr r3, [r7, #12]
  8577. 5418 00b2 DA64 str r2, [r3, #76]
  8578. 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8579. 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  8580. 5419 .loc 1 3007 13 discriminator 2
  8581. 5420 00b4 FB68 ldr r3, [r7, #12]
  8582. 5421 00b6 5B8D ldrh r3, [r3, #42] @ movhi
  8583. 5422 00b8 9BB2 uxth r3, r3
  8584. 5423 .loc 1 3007 8 discriminator 2
  8585. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 149
  8586. 5424 00ba FF2B cmp r3, #255
  8587. 5425 00bc 03D9 bls .L254
  8588. 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8589. 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  8590. 5426 .loc 1 3009 22
  8591. 5427 00be FB68 ldr r3, [r7, #12]
  8592. 5428 00c0 FF22 movs r2, #255
  8593. 5429 00c2 1A85 strh r2, [r3, #40] @ movhi
  8594. 5430 00c4 04E0 b .L255
  8595. 5431 .L254:
  8596. 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8597. 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8598. 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8599. 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  8600. 5432 .loc 1 3013 28
  8601. 5433 00c6 FB68 ldr r3, [r7, #12]
  8602. 5434 00c8 5B8D ldrh r3, [r3, #42] @ movhi
  8603. 5435 00ca 9AB2 uxth r2, r3
  8604. 5436 .loc 1 3013 22
  8605. 5437 00cc FB68 ldr r3, [r7, #12]
  8606. 5438 00ce 1A85 strh r2, [r3, #40] @ movhi
  8607. 5439 .L255:
  8608. 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8609. 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8610. 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
  8611. 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
  8612. 5440 .loc 1 3017 8
  8613. 5441 00d0 FB88 ldrh r3, [r7, #6]
  8614. 5442 00d2 012B cmp r3, #1
  8615. 5443 00d4 09D1 bne .L256
  8616. 3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8617. 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
  8618. 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  8619. 5444 .loc 1 3020 30
  8620. 5445 00d6 3B89 ldrh r3, [r7, #8] @ movhi
  8621. 5446 00d8 DAB2 uxtb r2, r3
  8622. 5447 .loc 1 3020 11
  8623. 5448 00da FB68 ldr r3, [r7, #12]
  8624. 5449 00dc 1B68 ldr r3, [r3]
  8625. 5450 .loc 1 3020 28
  8626. 5451 00de 9A62 str r2, [r3, #40]
  8627. 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8628. 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
  8629. 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
  8630. 5452 .loc 1 3023 24
  8631. 5453 00e0 FB68 ldr r3, [r7, #12]
  8632. 5454 00e2 4FF0FF32 mov r2, #-1
  8633. 5455 00e6 1A65 str r2, [r3, #80]
  8634. 5456 00e8 0BE0 b .L257
  8635. 5457 .L256:
  8636. 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8637. 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
  8638. 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8639. 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8640. 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
  8641. 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
  8642. 5458 .loc 1 3029 30
  8643. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 150
  8644. 5459 00ea 3B89 ldrh r3, [r7, #8]
  8645. 5460 00ec 1B0A lsrs r3, r3, #8
  8646. 5461 00ee 9BB2 uxth r3, r3
  8647. 5462 00f0 DAB2 uxtb r2, r3
  8648. 5463 .loc 1 3029 11
  8649. 5464 00f2 FB68 ldr r3, [r7, #12]
  8650. 5465 00f4 1B68 ldr r3, [r3]
  8651. 5466 .loc 1 3029 28
  8652. 5467 00f6 9A62 str r2, [r3, #40]
  8653. 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8654. 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
  8655. 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
  8656. 5468 .loc 1 3032 26
  8657. 5469 00f8 3B89 ldrh r3, [r7, #8] @ movhi
  8658. 5470 00fa DBB2 uxtb r3, r3
  8659. 5471 00fc 1A46 mov r2, r3
  8660. 5472 .loc 1 3032 24
  8661. 5473 00fe FB68 ldr r3, [r7, #12]
  8662. 5474 0100 1A65 str r2, [r3, #80]
  8663. 5475 .L257:
  8664. 3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8665. 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8666. 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  8667. 5476 .loc 1 3035 13
  8668. 5477 0102 FB68 ldr r3, [r7, #12]
  8669. 5478 0104 9B6B ldr r3, [r3, #56]
  8670. 5479 .loc 1 3035 8
  8671. 5480 0106 002B cmp r3, #0
  8672. 5481 0108 20D0 beq .L258
  8673. 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8674. 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  8675. 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
  8676. 5482 .loc 1 3038 11
  8677. 5483 010a FB68 ldr r3, [r7, #12]
  8678. 5484 010c 9B6B ldr r3, [r3, #56]
  8679. 5485 .loc 1 3038 38
  8680. 5486 010e 334A ldr r2, .L263+12
  8681. 5487 0110 9A62 str r2, [r3, #40]
  8682. 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8683. 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  8684. 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
  8685. 5488 .loc 1 3041 11
  8686. 5489 0112 FB68 ldr r3, [r7, #12]
  8687. 5490 0114 9B6B ldr r3, [r3, #56]
  8688. 5491 .loc 1 3041 39
  8689. 5492 0116 324A ldr r2, .L263+16
  8690. 5493 0118 1A63 str r2, [r3, #48]
  8691. 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8692. 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  8693. 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
  8694. 5494 .loc 1 3044 11
  8695. 5495 011a FB68 ldr r3, [r7, #12]
  8696. 5496 011c 9B6B ldr r3, [r3, #56]
  8697. 5497 .loc 1 3044 42
  8698. 5498 011e 0022 movs r2, #0
  8699. 5499 0120 DA62 str r2, [r3, #44]
  8700. 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
  8701. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 151
  8702. 5500 .loc 1 3045 11
  8703. 5501 0122 FB68 ldr r3, [r7, #12]
  8704. 5502 0124 9B6B ldr r3, [r3, #56]
  8705. 5503 .loc 1 3045 39
  8706. 5504 0126 0022 movs r2, #0
  8707. 5505 0128 5A63 str r2, [r3, #52]
  8708. 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8709. 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  8710. 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
  8711. 5506 .loc 1 3048 23
  8712. 5507 012a FB68 ldr r3, [r7, #12]
  8713. 5508 012c 986B ldr r0, [r3, #56]
  8714. 5509 012e 396A ldr r1, [r7, #32]
  8715. 5510 .loc 1 3048 86
  8716. 5511 0130 FB68 ldr r3, [r7, #12]
  8717. 5512 0132 1B68 ldr r3, [r3]
  8718. 5513 .loc 1 3048 81
  8719. 5514 0134 2833 adds r3, r3, #40
  8720. 5515 .loc 1 3048 23
  8721. 5516 0136 1A46 mov r2, r3
  8722. 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  8723. 5517 .loc 1 3049 44
  8724. 5518 0138 FB68 ldr r3, [r7, #12]
  8725. 5519 013a 1B8D ldrh r3, [r3, #40]
  8726. 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  8727. 5520 .loc 1 3048 23
  8728. 5521 013c FFF7FEFF bl HAL_DMA_Start_IT
  8729. 5522 0140 0346 mov r3, r0
  8730. 5523 0142 FB75 strb r3, [r7, #23]
  8731. 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8732. 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8733. 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8734. 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  8735. 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  8736. 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  8737. 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8738. 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  8739. 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  8740. 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8741. 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  8742. 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  8743. 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8744. 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  8745. 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8746. 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8747. 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  8748. 5524 .loc 1 3066 8
  8749. 5525 0144 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  8750. 5526 0146 002B cmp r3, #0
  8751. 5527 0148 28D1 bne .L260
  8752. 5528 014a 13E0 b .L262
  8753. 5529 .L258:
  8754. 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  8755. 5530 .loc 1 3054 23
  8756. 5531 014c FB68 ldr r3, [r7, #12]
  8757. 5532 014e 2022 movs r2, #32
  8758. 5533 0150 83F84120 strb r2, [r3, #65]
  8759. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 152
  8760. 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8761. 5534 .loc 1 3055 23
  8762. 5535 0154 FB68 ldr r3, [r7, #12]
  8763. 5536 0156 0022 movs r2, #0
  8764. 5537 0158 83F84220 strb r2, [r3, #66]
  8765. 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8766. 5538 .loc 1 3058 23
  8767. 5539 015c FB68 ldr r3, [r7, #12]
  8768. 5540 015e 5B6C ldr r3, [r3, #68]
  8769. 5541 0160 43F08002 orr r2, r3, #128
  8770. 5542 0164 FB68 ldr r3, [r7, #12]
  8771. 5543 0166 5A64 str r2, [r3, #68]
  8772. 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8773. 5544 .loc 1 3061 7
  8774. 5545 0168 FB68 ldr r3, [r7, #12]
  8775. 5546 016a 0022 movs r2, #0
  8776. 5547 016c 83F84020 strb r2, [r3, #64]
  8777. 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8778. 5548 .loc 1 3063 14
  8779. 5549 0170 0123 movs r3, #1
  8780. 5550 0172 28E0 b .L251
  8781. 5551 .L262:
  8782. 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8783. 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
  8784. 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START
  8785. 5552 .loc 1 3069 7
  8786. 5553 0174 FB88 ldrh r3, [r7, #6] @ movhi
  8787. 5554 0176 DAB2 uxtb r2, r3
  8788. 5555 0178 7989 ldrh r1, [r7, #10]
  8789. 5556 017a 1A4B ldr r3, .L263+20
  8790. 5557 017c 0093 str r3, [sp]
  8791. 5558 017e 4FF08073 mov r3, #16777216
  8792. 5559 0182 F868 ldr r0, [r7, #12]
  8793. 5560 0184 FFF7FEFF bl I2C_TransferConfig
  8794. 3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8795. 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  8796. 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  8797. 5561 .loc 1 3072 7
  8798. 5562 0188 FB68 ldr r3, [r7, #12]
  8799. 5563 018a 0022 movs r2, #0
  8800. 5564 018c 83F84020 strb r2, [r3, #64]
  8801. 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8802. 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  8803. 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  8804. 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  8805. 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  8806. 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  8807. 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  8808. 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  8809. 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  8810. 5565 .loc 1 3081 7
  8811. 5566 0190 0121 movs r1, #1
  8812. 5567 0192 F868 ldr r0, [r7, #12]
  8813. 5568 0194 FFF7FEFF bl I2C_Enable_IRQ
  8814. 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8815. 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8816. 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8817. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 153
  8818. 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  8819. 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  8820. 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  8821. 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8822. 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  8823. 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  8824. 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8825. 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  8826. 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  8827. 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8828. 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  8829. 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8830. 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8831. 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  8832. 5569 .loc 1 3098 12
  8833. 5570 0198 0023 movs r3, #0
  8834. 5571 019a 14E0 b .L251
  8835. 5572 .L260:
  8836. 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  8837. 5573 .loc 1 3086 23
  8838. 5574 019c FB68 ldr r3, [r7, #12]
  8839. 5575 019e 2022 movs r2, #32
  8840. 5576 01a0 83F84120 strb r2, [r3, #65]
  8841. 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8842. 5577 .loc 1 3087 23
  8843. 5578 01a4 FB68 ldr r3, [r7, #12]
  8844. 5579 01a6 0022 movs r2, #0
  8845. 5580 01a8 83F84220 strb r2, [r3, #66]
  8846. 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8847. 5581 .loc 1 3090 23
  8848. 5582 01ac FB68 ldr r3, [r7, #12]
  8849. 5583 01ae 5B6C ldr r3, [r3, #68]
  8850. 5584 01b0 43F01002 orr r2, r3, #16
  8851. 5585 01b4 FB68 ldr r3, [r7, #12]
  8852. 5586 01b6 5A64 str r2, [r3, #68]
  8853. 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8854. 5587 .loc 1 3093 7
  8855. 5588 01b8 FB68 ldr r3, [r7, #12]
  8856. 5589 01ba 0022 movs r2, #0
  8857. 5590 01bc 83F84020 strb r2, [r3, #64]
  8858. 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8859. 5591 .loc 1 3095 14
  8860. 5592 01c0 0123 movs r3, #1
  8861. 5593 01c2 00E0 b .L251
  8862. 5594 .L248:
  8863. 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8864. 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  8865. 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8866. 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  8867. 5595 .loc 1 3102 12
  8868. 5596 01c4 0223 movs r3, #2
  8869. 5597 .L251:
  8870. 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8871. 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8872. 5598 .loc 1 3104 1
  8873. 5599 01c6 1846 mov r0, r3
  8874. 5600 01c8 1837 adds r7, r7, #24
  8875. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 154
  8876. 5601 .LCFI105:
  8877. 5602 .cfi_def_cfa_offset 8
  8878. 5603 01ca BD46 mov sp, r7
  8879. 5604 .LCFI106:
  8880. 5605 .cfi_def_cfa_register 13
  8881. 5606 @ sp needed
  8882. 5607 01cc 80BD pop {r7, pc}
  8883. 5608 .L264:
  8884. 5609 01ce 00BF .align 2
  8885. 5610 .L263:
  8886. 5611 01d0 00000000 .word .LC0
  8887. 5612 01d4 0000FFFF .word -65536
  8888. 5613 01d8 00000000 .word I2C_Mem_ISR_DMA
  8889. 5614 01dc 00000000 .word I2C_DMAMasterTransmitCplt
  8890. 5615 01e0 00000000 .word I2C_DMAError
  8891. 5616 01e4 00200080 .word -2147475456
  8892. 5617 .cfi_endproc
  8893. 5618 .LFE150:
  8894. 5620 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
  8895. 5621 .align 1
  8896. 5622 .global HAL_I2C_Mem_Read_DMA
  8897. 5623 .syntax unified
  8898. 5624 .thumb
  8899. 5625 .thumb_func
  8900. 5627 HAL_I2C_Mem_Read_DMA:
  8901. 5628 .LFB151:
  8902. 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8903. 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  8904. 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address.
  8905. 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  8906. 3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  8907. 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  8908. 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  8909. 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  8910. 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  8911. 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  8912. 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be read
  8913. 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  8914. 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  8915. 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
  8916. 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
  8917. 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8918. 5629 .loc 1 3120 1
  8919. 5630 .cfi_startproc
  8920. 5631 @ args = 8, pretend = 0, frame = 24
  8921. 5632 @ frame_needed = 1, uses_anonymous_args = 0
  8922. 5633 0000 80B5 push {r7, lr}
  8923. 5634 .LCFI107:
  8924. 5635 .cfi_def_cfa_offset 8
  8925. 5636 .cfi_offset 7, -8
  8926. 5637 .cfi_offset 14, -4
  8927. 5638 0002 88B0 sub sp, sp, #32
  8928. 5639 .LCFI108:
  8929. 5640 .cfi_def_cfa_offset 40
  8930. 5641 0004 02AF add r7, sp, #8
  8931. 5642 .LCFI109:
  8932. 5643 .cfi_def_cfa 7, 32
  8933. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 155
  8934. 5644 0006 F860 str r0, [r7, #12]
  8935. 5645 0008 0846 mov r0, r1
  8936. 5646 000a 1146 mov r1, r2
  8937. 5647 000c 1A46 mov r2, r3
  8938. 5648 000e 0346 mov r3, r0 @ movhi
  8939. 5649 0010 7B81 strh r3, [r7, #10] @ movhi
  8940. 5650 0012 0B46 mov r3, r1 @ movhi
  8941. 5651 0014 3B81 strh r3, [r7, #8] @ movhi
  8942. 5652 0016 1346 mov r3, r2 @ movhi
  8943. 5653 0018 FB80 strh r3, [r7, #6] @ movhi
  8944. 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  8945. 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8946. 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  8947. 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
  8948. 5654 .loc 1 3124 3
  8949. 5655 001a FB88 ldrh r3, [r7, #6]
  8950. 5656 001c 012B cmp r3, #1
  8951. 5657 001e 07D0 beq .L266
  8952. 5658 .loc 1 3124 3 is_stmt 0 discriminator 1
  8953. 5659 0020 FB88 ldrh r3, [r7, #6]
  8954. 5660 0022 022B cmp r3, #2
  8955. 5661 0024 04D0 beq .L266
  8956. 5662 .loc 1 3124 3 discriminator 2
  8957. 5663 0026 40F63441 movw r1, #3124
  8958. 5664 002a 6848 ldr r0, .L282
  8959. 5665 002c FFF7FEFF bl assert_failed
  8960. 5666 .L266:
  8961. 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8962. 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  8963. 5667 .loc 1 3126 11 is_stmt 1
  8964. 5668 0030 FB68 ldr r3, [r7, #12]
  8965. 5669 0032 93F84130 ldrb r3, [r3, #65]
  8966. 5670 0036 DBB2 uxtb r3, r3
  8967. 5671 .loc 1 3126 6
  8968. 5672 0038 202B cmp r3, #32
  8969. 5673 003a 40F0C280 bne .L267
  8970. 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8971. 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  8972. 5674 .loc 1 3128 8
  8973. 5675 003e 3B6A ldr r3, [r7, #32]
  8974. 5676 0040 002B cmp r3, #0
  8975. 5677 0042 02D0 beq .L268
  8976. 5678 .loc 1 3128 25 discriminator 1
  8977. 5679 0044 BB8C ldrh r3, [r7, #36]
  8978. 5680 0046 002B cmp r3, #0
  8979. 5681 0048 05D1 bne .L269
  8980. 5682 .L268:
  8981. 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  8982. 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  8983. 5683 .loc 1 3130 23
  8984. 5684 004a FB68 ldr r3, [r7, #12]
  8985. 5685 004c 4FF40072 mov r2, #512
  8986. 5686 0050 5A64 str r2, [r3, #68]
  8987. 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  8988. 5687 .loc 1 3131 15
  8989. 5688 0052 0123 movs r3, #1
  8990. 5689 0054 B6E0 b .L270
  8991. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 156
  8992. 5690 .L269:
  8993. 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  8994. 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  8995. 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  8996. 5691 .loc 1 3134 9
  8997. 5692 0056 FB68 ldr r3, [r7, #12]
  8998. 5693 0058 1B68 ldr r3, [r3]
  8999. 5694 005a 9B69 ldr r3, [r3, #24]
  9000. 5695 005c 03F40043 and r3, r3, #32768
  9001. 5696 .loc 1 3134 8
  9002. 5697 0060 B3F5004F cmp r3, #32768
  9003. 5698 0064 01D1 bne .L271
  9004. 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9005. 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  9006. 5699 .loc 1 3136 14
  9007. 5700 0066 0223 movs r3, #2
  9008. 5701 0068 ACE0 b .L270
  9009. 5702 .L271:
  9010. 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9011. 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9012. 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  9013. 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  9014. 5703 .loc 1 3140 5
  9015. 5704 006a FB68 ldr r3, [r7, #12]
  9016. 5705 006c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  9017. 5706 0070 012B cmp r3, #1
  9018. 5707 0072 01D1 bne .L272
  9019. 5708 .loc 1 3140 5 is_stmt 0 discriminator 1
  9020. 5709 0074 0223 movs r3, #2
  9021. 5710 0076 A5E0 b .L270
  9022. 5711 .L272:
  9023. 5712 .loc 1 3140 5 discriminator 2
  9024. 5713 0078 FB68 ldr r3, [r7, #12]
  9025. 5714 007a 0122 movs r2, #1
  9026. 5715 007c 83F84020 strb r2, [r3, #64]
  9027. 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9028. 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  9029. 5716 .loc 1 3142 23 is_stmt 1 discriminator 2
  9030. 5717 0080 FB68 ldr r3, [r7, #12]
  9031. 5718 0082 2222 movs r2, #34
  9032. 5719 0084 83F84120 strb r2, [r3, #65]
  9033. 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
  9034. 5720 .loc 1 3143 23 discriminator 2
  9035. 5721 0088 FB68 ldr r3, [r7, #12]
  9036. 5722 008a 4022 movs r2, #64
  9037. 5723 008c 83F84220 strb r2, [r3, #66]
  9038. 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  9039. 5724 .loc 1 3144 23 discriminator 2
  9040. 5725 0090 FB68 ldr r3, [r7, #12]
  9041. 5726 0092 0022 movs r2, #0
  9042. 5727 0094 5A64 str r2, [r3, #68]
  9043. 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9044. 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  9045. 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  9046. 5728 .loc 1 3147 23 discriminator 2
  9047. 5729 0096 FB68 ldr r3, [r7, #12]
  9048. 5730 0098 3A6A ldr r2, [r7, #32]
  9049. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 157
  9050. 5731 009a 5A62 str r2, [r3, #36]
  9051. 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  9052. 5732 .loc 1 3148 23 discriminator 2
  9053. 5733 009c FB68 ldr r3, [r7, #12]
  9054. 5734 009e BA8C ldrh r2, [r7, #36] @ movhi
  9055. 5735 00a0 5A85 strh r2, [r3, #42] @ movhi
  9056. 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  9057. 5736 .loc 1 3149 23 discriminator 2
  9058. 5737 00a2 FB68 ldr r3, [r7, #12]
  9059. 5738 00a4 4A4A ldr r2, .L282+4
  9060. 5739 00a6 DA62 str r2, [r3, #44]
  9061. 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
  9062. 5740 .loc 1 3150 23 discriminator 2
  9063. 5741 00a8 FB68 ldr r3, [r7, #12]
  9064. 5742 00aa 4A4A ldr r2, .L282+8
  9065. 5743 00ac 5A63 str r2, [r3, #52]
  9066. 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
  9067. 5744 .loc 1 3151 23 discriminator 2
  9068. 5745 00ae 7A89 ldrh r2, [r7, #10]
  9069. 5746 00b0 FB68 ldr r3, [r7, #12]
  9070. 5747 00b2 DA64 str r2, [r3, #76]
  9071. 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9072. 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  9073. 5748 .loc 1 3153 13 discriminator 2
  9074. 5749 00b4 FB68 ldr r3, [r7, #12]
  9075. 5750 00b6 5B8D ldrh r3, [r3, #42] @ movhi
  9076. 5751 00b8 9BB2 uxth r3, r3
  9077. 5752 .loc 1 3153 8 discriminator 2
  9078. 5753 00ba FF2B cmp r3, #255
  9079. 5754 00bc 03D9 bls .L273
  9080. 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9081. 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  9082. 5755 .loc 1 3155 22
  9083. 5756 00be FB68 ldr r3, [r7, #12]
  9084. 5757 00c0 FF22 movs r2, #255
  9085. 5758 00c2 1A85 strh r2, [r3, #40] @ movhi
  9086. 5759 00c4 04E0 b .L274
  9087. 5760 .L273:
  9088. 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9089. 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  9090. 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9091. 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  9092. 5761 .loc 1 3159 28
  9093. 5762 00c6 FB68 ldr r3, [r7, #12]
  9094. 5763 00c8 5B8D ldrh r3, [r3, #42] @ movhi
  9095. 5764 00ca 9AB2 uxth r2, r3
  9096. 5765 .loc 1 3159 22
  9097. 5766 00cc FB68 ldr r3, [r7, #12]
  9098. 5767 00ce 1A85 strh r2, [r3, #40] @ movhi
  9099. 5768 .L274:
  9100. 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9101. 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9102. 3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
  9103. 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
  9104. 5769 .loc 1 3163 8
  9105. 5770 00d0 FB88 ldrh r3, [r7, #6]
  9106. 5771 00d2 012B cmp r3, #1
  9107. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 158
  9108. 5772 00d4 09D1 bne .L275
  9109. 3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9110. 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
  9111. 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  9112. 5773 .loc 1 3166 30
  9113. 5774 00d6 3B89 ldrh r3, [r7, #8] @ movhi
  9114. 5775 00d8 DAB2 uxtb r2, r3
  9115. 5776 .loc 1 3166 11
  9116. 5777 00da FB68 ldr r3, [r7, #12]
  9117. 5778 00dc 1B68 ldr r3, [r3]
  9118. 5779 .loc 1 3166 28
  9119. 5780 00de 9A62 str r2, [r3, #40]
  9120. 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9121. 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
  9122. 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
  9123. 5781 .loc 1 3169 24
  9124. 5782 00e0 FB68 ldr r3, [r7, #12]
  9125. 5783 00e2 4FF0FF32 mov r2, #-1
  9126. 5784 00e6 1A65 str r2, [r3, #80]
  9127. 5785 00e8 0BE0 b .L276
  9128. 5786 .L275:
  9129. 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9130. 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
  9131. 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  9132. 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9133. 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
  9134. 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
  9135. 5787 .loc 1 3175 30
  9136. 5788 00ea 3B89 ldrh r3, [r7, #8]
  9137. 5789 00ec 1B0A lsrs r3, r3, #8
  9138. 5790 00ee 9BB2 uxth r3, r3
  9139. 5791 00f0 DAB2 uxtb r2, r3
  9140. 5792 .loc 1 3175 11
  9141. 5793 00f2 FB68 ldr r3, [r7, #12]
  9142. 5794 00f4 1B68 ldr r3, [r3]
  9143. 5795 .loc 1 3175 28
  9144. 5796 00f6 9A62 str r2, [r3, #40]
  9145. 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9146. 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
  9147. 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
  9148. 5797 .loc 1 3178 26
  9149. 5798 00f8 3B89 ldrh r3, [r7, #8] @ movhi
  9150. 5799 00fa DBB2 uxtb r3, r3
  9151. 5800 00fc 1A46 mov r2, r3
  9152. 5801 .loc 1 3178 24
  9153. 5802 00fe FB68 ldr r3, [r7, #12]
  9154. 5803 0100 1A65 str r2, [r3, #80]
  9155. 5804 .L276:
  9156. 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9157. 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9158. 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  9159. 5805 .loc 1 3181 13
  9160. 5806 0102 FB68 ldr r3, [r7, #12]
  9161. 5807 0104 DB6B ldr r3, [r3, #60]
  9162. 5808 .loc 1 3181 8
  9163. 5809 0106 002B cmp r3, #0
  9164. 5810 0108 20D0 beq .L277
  9165. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 159
  9166. 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9167. 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  9168. 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
  9169. 5811 .loc 1 3184 11
  9170. 5812 010a FB68 ldr r3, [r7, #12]
  9171. 5813 010c DB6B ldr r3, [r3, #60]
  9172. 5814 .loc 1 3184 38
  9173. 5815 010e 324A ldr r2, .L282+12
  9174. 5816 0110 9A62 str r2, [r3, #40]
  9175. 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9176. 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  9177. 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
  9178. 5817 .loc 1 3187 11
  9179. 5818 0112 FB68 ldr r3, [r7, #12]
  9180. 5819 0114 DB6B ldr r3, [r3, #60]
  9181. 5820 .loc 1 3187 39
  9182. 5821 0116 314A ldr r2, .L282+16
  9183. 5822 0118 1A63 str r2, [r3, #48]
  9184. 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9185. 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  9186. 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
  9187. 5823 .loc 1 3190 11
  9188. 5824 011a FB68 ldr r3, [r7, #12]
  9189. 5825 011c DB6B ldr r3, [r3, #60]
  9190. 5826 .loc 1 3190 42
  9191. 5827 011e 0022 movs r2, #0
  9192. 5828 0120 DA62 str r2, [r3, #44]
  9193. 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
  9194. 5829 .loc 1 3191 11
  9195. 5830 0122 FB68 ldr r3, [r7, #12]
  9196. 5831 0124 DB6B ldr r3, [r3, #60]
  9197. 5832 .loc 1 3191 39
  9198. 5833 0126 0022 movs r2, #0
  9199. 5834 0128 5A63 str r2, [r3, #52]
  9200. 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9201. 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  9202. 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
  9203. 5835 .loc 1 3194 23
  9204. 5836 012a FB68 ldr r3, [r7, #12]
  9205. 5837 012c D86B ldr r0, [r3, #60]
  9206. 5838 .loc 1 3194 69
  9207. 5839 012e FB68 ldr r3, [r7, #12]
  9208. 5840 0130 1B68 ldr r3, [r3]
  9209. 5841 .loc 1 3194 64
  9210. 5842 0132 2433 adds r3, r3, #36
  9211. 5843 .loc 1 3194 23
  9212. 5844 0134 1946 mov r1, r3
  9213. 5845 0136 3A6A ldr r2, [r7, #32]
  9214. 3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  9215. 5846 .loc 1 3195 44
  9216. 5847 0138 FB68 ldr r3, [r7, #12]
  9217. 5848 013a 1B8D ldrh r3, [r3, #40]
  9218. 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  9219. 5849 .loc 1 3194 23
  9220. 5850 013c FFF7FEFF bl HAL_DMA_Start_IT
  9221. 5851 0140 0346 mov r3, r0
  9222. 5852 0142 FB75 strb r3, [r7, #23]
  9223. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 160
  9224. 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9225. 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  9226. 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9227. 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  9228. 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  9229. 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  9230. 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9231. 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  9232. 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  9233. 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9234. 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  9235. 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  9236. 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9237. 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  9238. 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9239. 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9240. 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  9241. 5853 .loc 1 3212 8
  9242. 5854 0144 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  9243. 5855 0146 002B cmp r3, #0
  9244. 5856 0148 27D1 bne .L279
  9245. 5857 014a 13E0 b .L281
  9246. 5858 .L277:
  9247. 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  9248. 5859 .loc 1 3200 23
  9249. 5860 014c FB68 ldr r3, [r7, #12]
  9250. 5861 014e 2022 movs r2, #32
  9251. 5862 0150 83F84120 strb r2, [r3, #65]
  9252. 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9253. 5863 .loc 1 3201 23
  9254. 5864 0154 FB68 ldr r3, [r7, #12]
  9255. 5865 0156 0022 movs r2, #0
  9256. 5866 0158 83F84220 strb r2, [r3, #66]
  9257. 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9258. 5867 .loc 1 3204 23
  9259. 5868 015c FB68 ldr r3, [r7, #12]
  9260. 5869 015e 5B6C ldr r3, [r3, #68]
  9261. 5870 0160 43F08002 orr r2, r3, #128
  9262. 5871 0164 FB68 ldr r3, [r7, #12]
  9263. 5872 0166 5A64 str r2, [r3, #68]
  9264. 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9265. 5873 .loc 1 3207 7
  9266. 5874 0168 FB68 ldr r3, [r7, #12]
  9267. 5875 016a 0022 movs r2, #0
  9268. 5876 016c 83F84020 strb r2, [r3, #64]
  9269. 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9270. 5877 .loc 1 3209 14
  9271. 5878 0170 0123 movs r3, #1
  9272. 5879 0172 27E0 b .L270
  9273. 5880 .L281:
  9274. 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9275. 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
  9276. 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR
  9277. 5881 .loc 1 3215 7
  9278. 5882 0174 FB88 ldrh r3, [r7, #6] @ movhi
  9279. 5883 0176 DAB2 uxtb r2, r3
  9280. 5884 0178 7989 ldrh r1, [r7, #10]
  9281. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 161
  9282. 5885 017a 194B ldr r3, .L282+20
  9283. 5886 017c 0093 str r3, [sp]
  9284. 5887 017e 0023 movs r3, #0
  9285. 5888 0180 F868 ldr r0, [r7, #12]
  9286. 5889 0182 FFF7FEFF bl I2C_TransferConfig
  9287. 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9288. 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  9289. 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  9290. 5890 .loc 1 3218 7
  9291. 5891 0186 FB68 ldr r3, [r7, #12]
  9292. 5892 0188 0022 movs r2, #0
  9293. 5893 018a 83F84020 strb r2, [r3, #64]
  9294. 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9295. 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  9296. 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  9297. 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  9298. 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  9299. 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  9300. 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  9301. 3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  9302. 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  9303. 5894 .loc 1 3227 7
  9304. 5895 018e 0121 movs r1, #1
  9305. 5896 0190 F868 ldr r0, [r7, #12]
  9306. 5897 0192 FFF7FEFF bl I2C_Enable_IRQ
  9307. 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9308. 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  9309. 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9310. 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  9311. 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  9312. 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  9313. 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9314. 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  9315. 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  9316. 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9317. 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  9318. 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  9319. 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9320. 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  9321. 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9322. 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9323. 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  9324. 5898 .loc 1 3244 12
  9325. 5899 0196 0023 movs r3, #0
  9326. 5900 0198 14E0 b .L270
  9327. 5901 .L279:
  9328. 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  9329. 5902 .loc 1 3232 23
  9330. 5903 019a FB68 ldr r3, [r7, #12]
  9331. 5904 019c 2022 movs r2, #32
  9332. 5905 019e 83F84120 strb r2, [r3, #65]
  9333. 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9334. 5906 .loc 1 3233 23
  9335. 5907 01a2 FB68 ldr r3, [r7, #12]
  9336. 5908 01a4 0022 movs r2, #0
  9337. 5909 01a6 83F84220 strb r2, [r3, #66]
  9338. 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9339. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 162
  9340. 5910 .loc 1 3236 23
  9341. 5911 01aa FB68 ldr r3, [r7, #12]
  9342. 5912 01ac 5B6C ldr r3, [r3, #68]
  9343. 5913 01ae 43F01002 orr r2, r3, #16
  9344. 5914 01b2 FB68 ldr r3, [r7, #12]
  9345. 5915 01b4 5A64 str r2, [r3, #68]
  9346. 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9347. 5916 .loc 1 3239 7
  9348. 5917 01b6 FB68 ldr r3, [r7, #12]
  9349. 5918 01b8 0022 movs r2, #0
  9350. 5919 01ba 83F84020 strb r2, [r3, #64]
  9351. 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9352. 5920 .loc 1 3241 14
  9353. 5921 01be 0123 movs r3, #1
  9354. 5922 01c0 00E0 b .L270
  9355. 5923 .L267:
  9356. 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9357. 3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  9358. 3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9359. 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  9360. 5924 .loc 1 3248 12
  9361. 5925 01c2 0223 movs r3, #2
  9362. 5926 .L270:
  9363. 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9364. 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9365. 5927 .loc 1 3250 1
  9366. 5928 01c4 1846 mov r0, r3
  9367. 5929 01c6 1837 adds r7, r7, #24
  9368. 5930 .LCFI110:
  9369. 5931 .cfi_def_cfa_offset 8
  9370. 5932 01c8 BD46 mov sp, r7
  9371. 5933 .LCFI111:
  9372. 5934 .cfi_def_cfa_register 13
  9373. 5935 @ sp needed
  9374. 5936 01ca 80BD pop {r7, pc}
  9375. 5937 .L283:
  9376. 5938 .align 2
  9377. 5939 .L282:
  9378. 5940 01cc 00000000 .word .LC0
  9379. 5941 01d0 0000FFFF .word -65536
  9380. 5942 01d4 00000000 .word I2C_Mem_ISR_DMA
  9381. 5943 01d8 00000000 .word I2C_DMAMasterReceiveCplt
  9382. 5944 01dc 00000000 .word I2C_DMAError
  9383. 5945 01e0 00200080 .word -2147475456
  9384. 5946 .cfi_endproc
  9385. 5947 .LFE151:
  9386. 5949 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
  9387. 5950 .align 1
  9388. 5951 .global HAL_I2C_IsDeviceReady
  9389. 5952 .syntax unified
  9390. 5953 .thumb
  9391. 5954 .thumb_func
  9392. 5956 HAL_I2C_IsDeviceReady:
  9393. 5957 .LFB152:
  9394. 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9395. 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  9396. 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
  9397. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 163
  9398. 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This function is used with Memory devices
  9399. 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  9400. 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  9401. 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  9402. 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  9403. 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Trials Number of trials
  9404. 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  9405. 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  9406. 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  9407. 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
  9408. 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
  9409. 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9410. 5958 .loc 1 3265 1
  9411. 5959 .cfi_startproc
  9412. 5960 @ args = 0, pretend = 0, frame = 32
  9413. 5961 @ frame_needed = 1, uses_anonymous_args = 0
  9414. 5962 0000 80B5 push {r7, lr}
  9415. 5963 .LCFI112:
  9416. 5964 .cfi_def_cfa_offset 8
  9417. 5965 .cfi_offset 7, -8
  9418. 5966 .cfi_offset 14, -4
  9419. 5967 0002 8AB0 sub sp, sp, #40
  9420. 5968 .LCFI113:
  9421. 5969 .cfi_def_cfa_offset 48
  9422. 5970 0004 02AF add r7, sp, #8
  9423. 5971 .LCFI114:
  9424. 5972 .cfi_def_cfa 7, 40
  9425. 5973 0006 F860 str r0, [r7, #12]
  9426. 5974 0008 7A60 str r2, [r7, #4]
  9427. 5975 000a 3B60 str r3, [r7]
  9428. 5976 000c 0B46 mov r3, r1 @ movhi
  9429. 5977 000e 7B81 strh r3, [r7, #10] @ movhi
  9430. 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
  9431. 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9432. 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
  9433. 5978 .loc 1 3268 17
  9434. 5979 0010 0023 movs r3, #0
  9435. 5980 0012 7B61 str r3, [r7, #20]
  9436. 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9437. 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp1;
  9438. 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2;
  9439. 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9440. 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  9441. 5981 .loc 1 3273 11
  9442. 5982 0014 FB68 ldr r3, [r7, #12]
  9443. 5983 0016 93F84130 ldrb r3, [r3, #65]
  9444. 5984 001a DBB2 uxtb r3, r3
  9445. 5985 .loc 1 3273 6
  9446. 5986 001c 202B cmp r3, #32
  9447. 5987 001e 40F0D680 bne .L285
  9448. 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9449. 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
  9450. 5988 .loc 1 3275 9
  9451. 5989 0022 FB68 ldr r3, [r7, #12]
  9452. 5990 0024 1B68 ldr r3, [r3]
  9453. 5991 0026 9B69 ldr r3, [r3, #24]
  9454. 5992 0028 03F40043 and r3, r3, #32768
  9455. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 164
  9456. 5993 .loc 1 3275 8
  9457. 5994 002c B3F5004F cmp r3, #32768
  9458. 5995 0030 01D1 bne .L286
  9459. 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9460. 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  9461. 5996 .loc 1 3277 14
  9462. 5997 0032 0223 movs r3, #2
  9463. 5998 0034 CCE0 b .L287
  9464. 5999 .L286:
  9465. 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9466. 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9467. 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  9468. 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  9469. 6000 .loc 1 3281 5
  9470. 6001 0036 FB68 ldr r3, [r7, #12]
  9471. 6002 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  9472. 6003 003c 012B cmp r3, #1
  9473. 6004 003e 01D1 bne .L288
  9474. 6005 .loc 1 3281 5 is_stmt 0 discriminator 1
  9475. 6006 0040 0223 movs r3, #2
  9476. 6007 0042 C5E0 b .L287
  9477. 6008 .L288:
  9478. 6009 .loc 1 3281 5 discriminator 2
  9479. 6010 0044 FB68 ldr r3, [r7, #12]
  9480. 6011 0046 0122 movs r2, #1
  9481. 6012 0048 83F84020 strb r2, [r3, #64]
  9482. 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9483. 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
  9484. 6013 .loc 1 3283 17 is_stmt 1 discriminator 2
  9485. 6014 004c FB68 ldr r3, [r7, #12]
  9486. 6015 004e 2422 movs r2, #36
  9487. 6016 0050 83F84120 strb r2, [r3, #65]
  9488. 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  9489. 6017 .loc 1 3284 21 discriminator 2
  9490. 6018 0054 FB68 ldr r3, [r7, #12]
  9491. 6019 0056 0022 movs r2, #0
  9492. 6020 0058 5A64 str r2, [r3, #68]
  9493. 6021 .L299:
  9494. 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9495. 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
  9496. 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9497. 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Start */
  9498. 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
  9499. 6022 .loc 1 3289 29
  9500. 6023 005a FB68 ldr r3, [r7, #12]
  9501. 6024 005c DB68 ldr r3, [r3, #12]
  9502. 6025 005e 012B cmp r3, #1
  9503. 6026 0060 07D1 bne .L289
  9504. 6027 .loc 1 3289 29 is_stmt 0 discriminator 1
  9505. 6028 0062 7B89 ldrh r3, [r7, #10]
  9506. 6029 0064 C3F30903 ubfx r3, r3, #0, #10
  9507. 6030 0068 43F00073 orr r3, r3, #33554432
  9508. 6031 006c 43F40053 orr r3, r3, #8192
  9509. 6032 0070 06E0 b .L290
  9510. 6033 .L289:
  9511. 6034 .loc 1 3289 29 discriminator 2
  9512. 6035 0072 7B89 ldrh r3, [r7, #10]
  9513. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 165
  9514. 6036 0074 C3F30903 ubfx r3, r3, #0, #10
  9515. 6037 0078 43F00073 orr r3, r3, #33554432
  9516. 6038 007c 43F42053 orr r3, r3, #10240
  9517. 6039 .L290:
  9518. 6040 .loc 1 3289 11 is_stmt 1 discriminator 4
  9519. 6041 0080 FA68 ldr r2, [r7, #12]
  9520. 6042 0082 1268 ldr r2, [r2]
  9521. 6043 .loc 1 3289 27 discriminator 4
  9522. 6044 0084 5360 str r3, [r2, #4]
  9523. 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9524. 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
  9525. 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
  9526. 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  9527. 6045 .loc 1 3293 19 discriminator 4
  9528. 6046 0086 FFF7FEFF bl HAL_GetTick
  9529. 6047 008a B861 str r0, [r7, #24]
  9530. 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9531. 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
  9532. 6048 .loc 1 3295 14 discriminator 4
  9533. 6049 008c FB68 ldr r3, [r7, #12]
  9534. 6050 008e 1B68 ldr r3, [r3]
  9535. 6051 0090 9B69 ldr r3, [r3, #24]
  9536. 6052 0092 03F02003 and r3, r3, #32
  9537. 6053 0096 202B cmp r3, #32
  9538. 6054 0098 0CBF ite eq
  9539. 6055 009a 0123 moveq r3, #1
  9540. 6056 009c 0023 movne r3, #0
  9541. 6057 009e DBB2 uxtb r3, r3
  9542. 6058 .loc 1 3295 12 discriminator 4
  9543. 6059 00a0 FB77 strb r3, [r7, #31]
  9544. 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
  9545. 6060 .loc 1 3296 14 discriminator 4
  9546. 6061 00a2 FB68 ldr r3, [r7, #12]
  9547. 6062 00a4 1B68 ldr r3, [r3]
  9548. 6063 00a6 9B69 ldr r3, [r3, #24]
  9549. 6064 00a8 03F01003 and r3, r3, #16
  9550. 6065 00ac 102B cmp r3, #16
  9551. 6066 00ae 0CBF ite eq
  9552. 6067 00b0 0123 moveq r3, #1
  9553. 6068 00b2 0023 movne r3, #0
  9554. 6069 00b4 DBB2 uxtb r3, r3
  9555. 6070 .loc 1 3296 12 discriminator 4
  9556. 6071 00b6 BB77 strb r3, [r7, #30]
  9557. 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9558. 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
  9559. 6072 .loc 1 3298 13 discriminator 4
  9560. 6073 00b8 34E0 b .L291
  9561. 6074 .L295:
  9562. 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9563. 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
  9564. 6075 .loc 1 3300 12
  9565. 6076 00ba 3B68 ldr r3, [r7]
  9566. 6077 00bc B3F1FF3F cmp r3, #-1
  9567. 6078 00c0 1AD0 beq .L292
  9568. 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9569. 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
  9570. 6079 .loc 1 3302 17
  9571. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 166
  9572. 6080 00c2 FFF7FEFF bl HAL_GetTick
  9573. 6081 00c6 0246 mov r2, r0
  9574. 6082 .loc 1 3302 31
  9575. 6083 00c8 BB69 ldr r3, [r7, #24]
  9576. 6084 00ca D31A subs r3, r2, r3
  9577. 6085 .loc 1 3302 14
  9578. 6086 00cc 3A68 ldr r2, [r7]
  9579. 6087 00ce 9A42 cmp r2, r3
  9580. 6088 00d0 02D3 bcc .L293
  9581. 6089 .loc 1 3302 55 discriminator 1
  9582. 6090 00d2 3B68 ldr r3, [r7]
  9583. 6091 00d4 002B cmp r3, #0
  9584. 6092 00d6 0FD1 bne .L292
  9585. 6093 .L293:
  9586. 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9587. 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  9588. 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  9589. 6094 .loc 1 3305 25
  9590. 6095 00d8 FB68 ldr r3, [r7, #12]
  9591. 6096 00da 2022 movs r2, #32
  9592. 6097 00dc 83F84120 strb r2, [r3, #65]
  9593. 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9594. 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  9595. 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
  9596. 6098 .loc 1 3308 29
  9597. 6099 00e0 FB68 ldr r3, [r7, #12]
  9598. 6100 00e2 5B6C ldr r3, [r3, #68]
  9599. 6101 00e4 43F02002 orr r2, r3, #32
  9600. 6102 00e8 FB68 ldr r3, [r7, #12]
  9601. 6103 00ea 5A64 str r2, [r3, #68]
  9602. 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9603. 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  9604. 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  9605. 6104 .loc 1 3311 13
  9606. 6105 00ec FB68 ldr r3, [r7, #12]
  9607. 6106 00ee 0022 movs r2, #0
  9608. 6107 00f0 83F84020 strb r2, [r3, #64]
  9609. 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9610. 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  9611. 6108 .loc 1 3313 20
  9612. 6109 00f4 0123 movs r3, #1
  9613. 6110 00f6 6BE0 b .L287
  9614. 6111 .L292:
  9615. 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9616. 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9617. 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9618. 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
  9619. 6112 .loc 1 3317 16
  9620. 6113 00f8 FB68 ldr r3, [r7, #12]
  9621. 6114 00fa 1B68 ldr r3, [r3]
  9622. 6115 00fc 9B69 ldr r3, [r3, #24]
  9623. 6116 00fe 03F02003 and r3, r3, #32
  9624. 6117 0102 202B cmp r3, #32
  9625. 6118 0104 0CBF ite eq
  9626. 6119 0106 0123 moveq r3, #1
  9627. 6120 0108 0023 movne r3, #0
  9628. 6121 010a DBB2 uxtb r3, r3
  9629. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 167
  9630. 6122 .loc 1 3317 14
  9631. 6123 010c FB77 strb r3, [r7, #31]
  9632. 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
  9633. 6124 .loc 1 3318 16
  9634. 6125 010e FB68 ldr r3, [r7, #12]
  9635. 6126 0110 1B68 ldr r3, [r3]
  9636. 6127 0112 9B69 ldr r3, [r3, #24]
  9637. 6128 0114 03F01003 and r3, r3, #16
  9638. 6129 0118 102B cmp r3, #16
  9639. 6130 011a 0CBF ite eq
  9640. 6131 011c 0123 moveq r3, #1
  9641. 6132 011e 0023 movne r3, #0
  9642. 6133 0120 DBB2 uxtb r3, r3
  9643. 6134 .loc 1 3318 14
  9644. 6135 0122 BB77 strb r3, [r7, #30]
  9645. 6136 .L291:
  9646. 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9647. 6137 .loc 1 3298 13
  9648. 6138 0124 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2
  9649. 6139 0126 002B cmp r3, #0
  9650. 6140 0128 02D1 bne .L294
  9651. 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9652. 6141 .loc 1 3298 30 discriminator 1
  9653. 6142 012a BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
  9654. 6143 012c 002B cmp r3, #0
  9655. 6144 012e C4D0 beq .L295
  9656. 6145 .L294:
  9657. 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9658. 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9659. 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
  9660. 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
  9661. 6146 .loc 1 3322 11
  9662. 6147 0130 FB68 ldr r3, [r7, #12]
  9663. 6148 0132 1B68 ldr r3, [r3]
  9664. 6149 0134 9B69 ldr r3, [r3, #24]
  9665. 6150 0136 03F01003 and r3, r3, #16
  9666. 6151 .loc 1 3322 10
  9667. 6152 013a 102B cmp r3, #16
  9668. 6153 013c 1AD0 beq .L296
  9669. 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9670. 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
  9671. 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
  9672. 6154 .loc 1 3325 13
  9673. 6155 013e BB69 ldr r3, [r7, #24]
  9674. 6156 0140 0093 str r3, [sp]
  9675. 6157 0142 3B68 ldr r3, [r7]
  9676. 6158 0144 0022 movs r2, #0
  9677. 6159 0146 2021 movs r1, #32
  9678. 6160 0148 F868 ldr r0, [r7, #12]
  9679. 6161 014a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  9680. 6162 014e 0346 mov r3, r0
  9681. 6163 .loc 1 3325 12
  9682. 6164 0150 002B cmp r3, #0
  9683. 6165 0152 01D0 beq .L297
  9684. 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9685. 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  9686. 6166 .loc 1 3327 18
  9687. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 168
  9688. 6167 0154 0123 movs r3, #1
  9689. 6168 0156 3BE0 b .L287
  9690. 6169 .L297:
  9691. 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9692. 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9693. 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  9694. 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  9695. 6170 .loc 1 3331 9
  9696. 6171 0158 FB68 ldr r3, [r7, #12]
  9697. 6172 015a 1B68 ldr r3, [r3]
  9698. 6173 015c 2022 movs r2, #32
  9699. 6174 015e DA61 str r2, [r3, #28]
  9700. 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9701. 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Device is ready */
  9702. 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  9703. 6175 .loc 1 3334 21
  9704. 6176 0160 FB68 ldr r3, [r7, #12]
  9705. 6177 0162 2022 movs r2, #32
  9706. 6178 0164 83F84120 strb r2, [r3, #65]
  9707. 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9708. 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  9709. 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  9710. 6179 .loc 1 3337 9
  9711. 6180 0168 FB68 ldr r3, [r7, #12]
  9712. 6181 016a 0022 movs r2, #0
  9713. 6182 016c 83F84020 strb r2, [r3, #64]
  9714. 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9715. 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  9716. 6183 .loc 1 3339 16
  9717. 6184 0170 0023 movs r3, #0
  9718. 6185 0172 2DE0 b .L287
  9719. 6186 .L296:
  9720. 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9721. 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  9722. 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9723. 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
  9724. 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
  9725. 6187 .loc 1 3344 13
  9726. 6188 0174 BB69 ldr r3, [r7, #24]
  9727. 6189 0176 0093 str r3, [sp]
  9728. 6190 0178 3B68 ldr r3, [r7]
  9729. 6191 017a 0022 movs r2, #0
  9730. 6192 017c 2021 movs r1, #32
  9731. 6193 017e F868 ldr r0, [r7, #12]
  9732. 6194 0180 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  9733. 6195 0184 0346 mov r3, r0
  9734. 6196 .loc 1 3344 12
  9735. 6197 0186 002B cmp r3, #0
  9736. 6198 0188 01D0 beq .L298
  9737. 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9738. 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  9739. 6199 .loc 1 3346 18
  9740. 6200 018a 0123 movs r3, #1
  9741. 6201 018c 20E0 b .L287
  9742. 6202 .L298:
  9743. 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9744. 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9745. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 169
  9746. 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  9747. 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  9748. 6203 .loc 1 3350 9
  9749. 6204 018e FB68 ldr r3, [r7, #12]
  9750. 6205 0190 1B68 ldr r3, [r3]
  9751. 6206 0192 1022 movs r2, #16
  9752. 6207 0194 DA61 str r2, [r3, #28]
  9753. 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9754. 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
  9755. 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  9756. 6208 .loc 1 3353 9
  9757. 6209 0196 FB68 ldr r3, [r7, #12]
  9758. 6210 0198 1B68 ldr r3, [r3]
  9759. 6211 019a 2022 movs r2, #32
  9760. 6212 019c DA61 str r2, [r3, #28]
  9761. 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9762. 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9763. 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Trials */
  9764. 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Trials++;
  9765. 6213 .loc 1 3357 17
  9766. 6214 019e 7B69 ldr r3, [r7, #20]
  9767. 6215 01a0 0133 adds r3, r3, #1
  9768. 6216 01a2 7B61 str r3, [r7, #20]
  9769. 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
  9770. 6217 .loc 1 3358 25
  9771. 6218 01a4 7B69 ldr r3, [r7, #20]
  9772. 6219 .loc 1 3358 5
  9773. 6220 01a6 7A68 ldr r2, [r7, #4]
  9774. 6221 01a8 9A42 cmp r2, r3
  9775. 6222 01aa 3FF656AF bhi .L299
  9776. 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9777. 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  9778. 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  9779. 6223 .loc 1 3361 17
  9780. 6224 01ae FB68 ldr r3, [r7, #12]
  9781. 6225 01b0 2022 movs r2, #32
  9782. 6226 01b2 83F84120 strb r2, [r3, #65]
  9783. 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9784. 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  9785. 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
  9786. 6227 .loc 1 3364 21
  9787. 6228 01b6 FB68 ldr r3, [r7, #12]
  9788. 6229 01b8 5B6C ldr r3, [r3, #68]
  9789. 6230 01ba 43F02002 orr r2, r3, #32
  9790. 6231 01be FB68 ldr r3, [r7, #12]
  9791. 6232 01c0 5A64 str r2, [r3, #68]
  9792. 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9793. 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  9794. 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  9795. 6233 .loc 1 3367 5
  9796. 6234 01c2 FB68 ldr r3, [r7, #12]
  9797. 6235 01c4 0022 movs r2, #0
  9798. 6236 01c6 83F84020 strb r2, [r3, #64]
  9799. 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9800. 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  9801. 6237 .loc 1 3369 12
  9802. 6238 01ca 0123 movs r3, #1
  9803. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 170
  9804. 6239 01cc 00E0 b .L287
  9805. 6240 .L285:
  9806. 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9807. 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  9808. 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9809. 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  9810. 6241 .loc 1 3373 12
  9811. 6242 01ce 0223 movs r3, #2
  9812. 6243 .L287:
  9813. 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9814. 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  9815. 6244 .loc 1 3375 1
  9816. 6245 01d0 1846 mov r0, r3
  9817. 6246 01d2 2037 adds r7, r7, #32
  9818. 6247 .LCFI115:
  9819. 6248 .cfi_def_cfa_offset 8
  9820. 6249 01d4 BD46 mov sp, r7
  9821. 6250 .LCFI116:
  9822. 6251 .cfi_def_cfa_register 13
  9823. 6252 @ sp needed
  9824. 6253 01d6 80BD pop {r7, pc}
  9825. 6254 .cfi_endproc
  9826. 6255 .LFE152:
  9827. 6257 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
  9828. 6258 .align 1
  9829. 6259 .global HAL_I2C_Master_Seq_Transmit_IT
  9830. 6260 .syntax unified
  9831. 6261 .thumb
  9832. 6262 .thumb_func
  9833. 6264 HAL_I2C_Master_Seq_Transmit_IT:
  9834. 6265 .LFB153:
  9835. 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9836. 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  9837. 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte
  9838. 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  9839. 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  9840. 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  9841. 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  9842. 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  9843. 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  9844. 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  9845. 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  9846. 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  9847. 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  9848. 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
  9849. 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
  9850. 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9851. 6266 .loc 1 3391 1
  9852. 6267 .cfi_startproc
  9853. 6268 @ args = 4, pretend = 0, frame = 32
  9854. 6269 @ frame_needed = 1, uses_anonymous_args = 0
  9855. 6270 0000 80B5 push {r7, lr}
  9856. 6271 .LCFI117:
  9857. 6272 .cfi_def_cfa_offset 8
  9858. 6273 .cfi_offset 7, -8
  9859. 6274 .cfi_offset 14, -4
  9860. 6275 0002 8AB0 sub sp, sp, #40
  9861. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 171
  9862. 6276 .LCFI118:
  9863. 6277 .cfi_def_cfa_offset 48
  9864. 6278 0004 02AF add r7, sp, #8
  9865. 6279 .LCFI119:
  9866. 6280 .cfi_def_cfa 7, 40
  9867. 6281 0006 F860 str r0, [r7, #12]
  9868. 6282 0008 7A60 str r2, [r7, #4]
  9869. 6283 000a 1A46 mov r2, r3
  9870. 6284 000c 0B46 mov r3, r1 @ movhi
  9871. 6285 000e 7B81 strh r3, [r7, #10] @ movhi
  9872. 6286 0010 1346 mov r3, r2 @ movhi
  9873. 6287 0012 3B81 strh r3, [r7, #8] @ movhi
  9874. 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  9875. 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
  9876. 6288 .loc 1 3393 12
  9877. 6289 0014 684B ldr r3, .L317
  9878. 6290 0016 BB61 str r3, [r7, #24]
  9879. 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
  9880. 6291 .loc 1 3394 12
  9881. 6292 0018 0023 movs r3, #0
  9882. 6293 001a 7B61 str r3, [r7, #20]
  9883. 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9884. 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  9885. 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  9886. 6294 .loc 1 3397 3
  9887. 6295 001c BB6A ldr r3, [r7, #40]
  9888. 6296 001e 002B cmp r3, #0
  9889. 6297 0020 1ED0 beq .L301
  9890. 6298 .loc 1 3397 3 is_stmt 0 discriminator 1
  9891. 6299 0022 BB6A ldr r3, [r7, #40]
  9892. 6300 0024 B3F1807F cmp r3, #16777216
  9893. 6301 0028 1AD0 beq .L301
  9894. 6302 .loc 1 3397 3 discriminator 2
  9895. 6303 002a BB6A ldr r3, [r7, #40]
  9896. 6304 002c B3F1807F cmp r3, #16777216
  9897. 6305 0030 16D0 beq .L301
  9898. 6306 .loc 1 3397 3 discriminator 3
  9899. 6307 0032 BB6A ldr r3, [r7, #40]
  9900. 6308 0034 B3F1007F cmp r3, #33554432
  9901. 6309 0038 12D0 beq .L301
  9902. 6310 .loc 1 3397 3 discriminator 4
  9903. 6311 003a BB6A ldr r3, [r7, #40]
  9904. 6312 003c B3F1007F cmp r3, #33554432
  9905. 6313 0040 0ED0 beq .L301
  9906. 6314 .loc 1 3397 3 discriminator 5
  9907. 6315 0042 BB6A ldr r3, [r7, #40]
  9908. 6316 0044 002B cmp r3, #0
  9909. 6317 0046 0BD0 beq .L301
  9910. 6318 .loc 1 3397 3 discriminator 6
  9911. 6319 0048 BB6A ldr r3, [r7, #40]
  9912. 6320 004a AA2B cmp r3, #170
  9913. 6321 004c 08D0 beq .L301
  9914. 6322 .loc 1 3397 3 discriminator 7
  9915. 6323 004e BB6A ldr r3, [r7, #40]
  9916. 6324 0050 B3F52A4F cmp r3, #43520
  9917. 6325 0054 04D0 beq .L301
  9918. 6326 .loc 1 3397 3 discriminator 8
  9919. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 172
  9920. 6327 0056 40F64551 movw r1, #3397
  9921. 6328 005a 5848 ldr r0, .L317+4
  9922. 6329 005c FFF7FEFF bl assert_failed
  9923. 6330 .L301:
  9924. 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9925. 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  9926. 6331 .loc 1 3399 11 is_stmt 1
  9927. 6332 0060 FB68 ldr r3, [r7, #12]
  9928. 6333 0062 93F84130 ldrb r3, [r3, #65]
  9929. 6334 0066 DBB2 uxtb r3, r3
  9930. 6335 .loc 1 3399 6
  9931. 6336 0068 202B cmp r3, #32
  9932. 6337 006a 40F09F80 bne .L302
  9933. 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9934. 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  9935. 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  9936. 6338 .loc 1 3402 5
  9937. 6339 006e FB68 ldr r3, [r7, #12]
  9938. 6340 0070 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  9939. 6341 0074 012B cmp r3, #1
  9940. 6342 0076 01D1 bne .L303
  9941. 6343 .loc 1 3402 5 is_stmt 0 discriminator 1
  9942. 6344 0078 0223 movs r3, #2
  9943. 6345 007a 98E0 b .L304
  9944. 6346 .L303:
  9945. 6347 .loc 1 3402 5 discriminator 2
  9946. 6348 007c FB68 ldr r3, [r7, #12]
  9947. 6349 007e 0122 movs r2, #1
  9948. 6350 0080 83F84020 strb r2, [r3, #64]
  9949. 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9950. 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  9951. 6351 .loc 1 3404 21 is_stmt 1 discriminator 2
  9952. 6352 0084 FB68 ldr r3, [r7, #12]
  9953. 6353 0086 2122 movs r2, #33
  9954. 6354 0088 83F84120 strb r2, [r3, #65]
  9955. 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  9956. 6355 .loc 1 3405 21 discriminator 2
  9957. 6356 008c FB68 ldr r3, [r7, #12]
  9958. 6357 008e 1022 movs r2, #16
  9959. 6358 0090 83F84220 strb r2, [r3, #66]
  9960. 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  9961. 6359 .loc 1 3406 21 discriminator 2
  9962. 6360 0094 FB68 ldr r3, [r7, #12]
  9963. 6361 0096 0022 movs r2, #0
  9964. 6362 0098 5A64 str r2, [r3, #68]
  9965. 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9966. 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  9967. 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  9968. 6363 .loc 1 3409 23 discriminator 2
  9969. 6364 009a FB68 ldr r3, [r7, #12]
  9970. 6365 009c 7A68 ldr r2, [r7, #4]
  9971. 6366 009e 5A62 str r2, [r3, #36]
  9972. 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  9973. 6367 .loc 1 3410 23 discriminator 2
  9974. 6368 00a0 FB68 ldr r3, [r7, #12]
  9975. 6369 00a2 3A89 ldrh r2, [r7, #8] @ movhi
  9976. 6370 00a4 5A85 strh r2, [r3, #42] @ movhi
  9977. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 173
  9978. 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  9979. 6371 .loc 1 3411 23 discriminator 2
  9980. 6372 00a6 FB68 ldr r3, [r7, #12]
  9981. 6373 00a8 BA6A ldr r2, [r7, #40]
  9982. 6374 00aa DA62 str r2, [r3, #44]
  9983. 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  9984. 6375 .loc 1 3412 23 discriminator 2
  9985. 6376 00ac FB68 ldr r3, [r7, #12]
  9986. 6377 00ae 444A ldr r2, .L317+8
  9987. 6378 00b0 5A63 str r2, [r3, #52]
  9988. 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  9989. 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
  9990. 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  9991. 6379 .loc 1 3415 13 discriminator 2
  9992. 6380 00b2 FB68 ldr r3, [r7, #12]
  9993. 6381 00b4 5B8D ldrh r3, [r3, #42] @ movhi
  9994. 6382 00b6 9BB2 uxth r3, r3
  9995. 6383 .loc 1 3415 8 discriminator 2
  9996. 6384 00b8 FF2B cmp r3, #255
  9997. 6385 00ba 06D9 bls .L305
  9998. 3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  9999. 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  10000. 6386 .loc 1 3417 22
  10001. 6387 00bc FB68 ldr r3, [r7, #12]
  10002. 6388 00be FF22 movs r2, #255
  10003. 6389 00c0 1A85 strh r2, [r3, #40] @ movhi
  10004. 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  10005. 6390 .loc 1 3418 16
  10006. 6391 00c2 4FF08073 mov r3, #16777216
  10007. 6392 00c6 FB61 str r3, [r7, #28]
  10008. 6393 00c8 07E0 b .L306
  10009. 6394 .L305:
  10010. 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10011. 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10012. 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10013. 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  10014. 6395 .loc 1 3422 28
  10015. 6396 00ca FB68 ldr r3, [r7, #12]
  10016. 6397 00cc 5B8D ldrh r3, [r3, #42] @ movhi
  10017. 6398 00ce 9AB2 uxth r2, r3
  10018. 6399 .loc 1 3422 22
  10019. 6400 00d0 FB68 ldr r3, [r7, #12]
  10020. 6401 00d2 1A85 strh r2, [r3, #40] @ movhi
  10021. 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  10022. 6402 .loc 1 3423 16
  10023. 6403 00d4 FB68 ldr r3, [r7, #12]
  10024. 6404 00d6 DB6A ldr r3, [r3, #44]
  10025. 6405 00d8 FB61 str r3, [r7, #28]
  10026. 6406 .L306:
  10027. 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10028. 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10029. 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
  10030. 6407 .loc 1 3426 14
  10031. 6408 00da FB68 ldr r3, [r7, #12]
  10032. 6409 00dc 1B8D ldrh r3, [r3, #40]
  10033. 6410 .loc 1 3426 8
  10034. 6411 00de 002B cmp r3, #0
  10035. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 174
  10036. 6412 00e0 21D0 beq .L307
  10037. 6413 .loc 1 3426 31 discriminator 1
  10038. 6414 00e2 BB6A ldr r3, [r7, #40]
  10039. 6415 00e4 002B cmp r3, #0
  10040. 6416 00e6 03D0 beq .L308
  10041. 6417 .loc 1 3426 68 discriminator 2
  10042. 6418 00e8 BB6A ldr r3, [r7, #40]
  10043. 6419 00ea B3F1007F cmp r3, #33554432
  10044. 6420 00ee 1AD1 bne .L307
  10045. 6421 .L308:
  10046. 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
  10047. 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10048. 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  10049. 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  10050. 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  10051. 6422 .loc 1 3431 35
  10052. 6423 00f0 FB68 ldr r3, [r7, #12]
  10053. 6424 00f2 5B6A ldr r3, [r3, #36]
  10054. 6425 .loc 1 3431 30
  10055. 6426 00f4 1A78 ldrb r2, [r3] @ zero_extendqisi2
  10056. 6427 .loc 1 3431 11
  10057. 6428 00f6 FB68 ldr r3, [r7, #12]
  10058. 6429 00f8 1B68 ldr r3, [r3]
  10059. 6430 .loc 1 3431 28
  10060. 6431 00fa 9A62 str r2, [r3, #40]
  10061. 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10062. 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  10063. 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  10064. 6432 .loc 1 3434 11
  10065. 6433 00fc FB68 ldr r3, [r7, #12]
  10066. 6434 00fe 5B6A ldr r3, [r3, #36]
  10067. 6435 .loc 1 3434 21
  10068. 6436 0100 5A1C adds r2, r3, #1
  10069. 6437 0102 FB68 ldr r3, [r7, #12]
  10070. 6438 0104 5A62 str r2, [r3, #36]
  10071. 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10072. 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
  10073. 6439 .loc 1 3436 24
  10074. 6440 0106 FB68 ldr r3, [r7, #12]
  10075. 6441 0108 1B8D ldrh r3, [r3, #40]
  10076. 6442 .loc 1 3436 18
  10077. 6443 010a 7B61 str r3, [r7, #20]
  10078. 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  10079. 6444 .loc 1 3437 11
  10080. 6445 010c FB68 ldr r3, [r7, #12]
  10081. 6446 010e 5B8D ldrh r3, [r3, #42] @ movhi
  10082. 6447 0110 9BB2 uxth r3, r3
  10083. 6448 .loc 1 3437 22
  10084. 6449 0112 013B subs r3, r3, #1
  10085. 6450 0114 9AB2 uxth r2, r3
  10086. 6451 0116 FB68 ldr r3, [r7, #12]
  10087. 6452 0118 5A85 strh r2, [r3, #42] @ movhi
  10088. 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  10089. 6453 .loc 1 3438 11
  10090. 6454 011a FB68 ldr r3, [r7, #12]
  10091. 6455 011c 1B8D ldrh r3, [r3, #40]
  10092. 6456 .loc 1 3438 21
  10093. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 175
  10094. 6457 011e 013B subs r3, r3, #1
  10095. 6458 0120 9AB2 uxth r2, r3
  10096. 6459 0122 FB68 ldr r3, [r7, #12]
  10097. 6460 0124 1A85 strh r2, [r3, #40] @ movhi
  10098. 6461 .L307:
  10099. 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10100. 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10101. 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
  10102. 3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
  10103. 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
  10104. 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
  10105. 6462 .loc 1 3444 14
  10106. 6463 0126 FB68 ldr r3, [r7, #12]
  10107. 6464 0128 1B6B ldr r3, [r3, #48]
  10108. 6465 .loc 1 3444 8
  10109. 6466 012a 112B cmp r3, #17
  10110. 6467 012c 0ED1 bne .L309
  10111. 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  10112. 6468 .loc 1 3445 10
  10113. 6469 012e BB6A ldr r3, [r7, #40]
  10114. 6470 0130 AA2B cmp r3, #170
  10115. 6471 0132 03D0 beq .L310
  10116. 6472 .loc 1 3445 10 is_stmt 0 discriminator 2
  10117. 6473 0134 BB6A ldr r3, [r7, #40]
  10118. 6474 0136 B3F52A4F cmp r3, #43520
  10119. 6475 013a 01D1 bne .L311
  10120. 6476 .L310:
  10121. 6477 .loc 1 3445 10 discriminator 3
  10122. 6478 013c 0123 movs r3, #1
  10123. 6479 013e 00E0 b .L312
  10124. 6480 .L311:
  10125. 6481 .loc 1 3445 10 discriminator 4
  10126. 6482 0140 0023 movs r3, #0
  10127. 6483 .L312:
  10128. 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  10129. 6484 .loc 1 3444 59 is_stmt 1
  10130. 6485 0142 002B cmp r3, #0
  10131. 6486 0144 02D1 bne .L309
  10132. 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10133. 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
  10134. 6487 .loc 1 3447 19
  10135. 6488 0146 0023 movs r3, #0
  10136. 6489 0148 BB61 str r3, [r7, #24]
  10137. 6490 014a 0AE0 b .L313
  10138. 6491 .L309:
  10139. 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10140. 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10141. 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10142. 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
  10143. 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
  10144. 6492 .loc 1 3452 7
  10145. 6493 014c F868 ldr r0, [r7, #12]
  10146. 6494 014e FFF7FEFF bl I2C_ConvertOtherXferOptions
  10147. 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10148. 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
  10149. 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
  10150. 6495 .loc 1 3455 15
  10151. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 176
  10152. 6496 0152 FB68 ldr r3, [r7, #12]
  10153. 6497 0154 5B8D ldrh r3, [r3, #42] @ movhi
  10154. 6498 0156 9BB2 uxth r3, r3
  10155. 6499 .loc 1 3455 10
  10156. 6500 0158 FF2B cmp r3, #255
  10157. 6501 015a 02D8 bhi .L313
  10158. 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10159. 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  10160. 6502 .loc 1 3457 18
  10161. 6503 015c FB68 ldr r3, [r7, #12]
  10162. 6504 015e DB6A ldr r3, [r3, #44]
  10163. 6505 0160 FB61 str r3, [r7, #28]
  10164. 6506 .L313:
  10165. 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10166. 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10167. 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10168. 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
  10169. 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
  10170. 6507 .loc 1 3462 8
  10171. 6508 0162 BB6A ldr r3, [r7, #40]
  10172. 6509 0164 002B cmp r3, #0
  10173. 6510 0166 03D0 beq .L314
  10174. 6511 .loc 1 3462 42 discriminator 1
  10175. 6512 0168 BB6A ldr r3, [r7, #40]
  10176. 6513 016a B3F1007F cmp r3, #33554432
  10177. 6514 016e 09D1 bne .L315
  10178. 6515 .L314:
  10179. 3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10180. 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
  10181. 6516 .loc 1 3464 7
  10182. 6517 0170 7B69 ldr r3, [r7, #20]
  10183. 6518 0172 DAB2 uxtb r2, r3
  10184. 6519 0174 7989 ldrh r1, [r7, #10]
  10185. 6520 0176 BB69 ldr r3, [r7, #24]
  10186. 6521 0178 0093 str r3, [sp]
  10187. 6522 017a FB69 ldr r3, [r7, #28]
  10188. 6523 017c F868 ldr r0, [r7, #12]
  10189. 6524 017e FFF7FEFF bl I2C_TransferConfig
  10190. 6525 0182 09E0 b .L316
  10191. 6526 .L315:
  10192. 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10193. 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10194. 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10195. 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
  10196. 6527 .loc 1 3468 57
  10197. 6528 0184 FB68 ldr r3, [r7, #12]
  10198. 6529 0186 1B8D ldrh r3, [r3, #40]
  10199. 6530 .loc 1 3468 7
  10200. 6531 0188 DAB2 uxtb r2, r3
  10201. 6532 018a 7989 ldrh r1, [r7, #10]
  10202. 6533 018c BB69 ldr r3, [r7, #24]
  10203. 6534 018e 0093 str r3, [sp]
  10204. 6535 0190 FB69 ldr r3, [r7, #28]
  10205. 6536 0192 F868 ldr r0, [r7, #12]
  10206. 6537 0194 FFF7FEFF bl I2C_TransferConfig
  10207. 6538 .L316:
  10208. 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10209. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 177
  10210. 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10211. 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  10212. 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  10213. 6539 .loc 1 3472 5
  10214. 6540 0198 FB68 ldr r3, [r7, #12]
  10215. 6541 019a 0022 movs r2, #0
  10216. 6542 019c 83F84020 strb r2, [r3, #64]
  10217. 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10218. 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  10219. 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  10220. 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  10221. 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  10222. 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  10223. 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  10224. 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  10225. 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  10226. 6543 .loc 1 3481 5
  10227. 6544 01a0 0121 movs r1, #1
  10228. 6545 01a2 F868 ldr r0, [r7, #12]
  10229. 6546 01a4 FFF7FEFF bl I2C_Enable_IRQ
  10230. 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10231. 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  10232. 6547 .loc 1 3483 12
  10233. 6548 01a8 0023 movs r3, #0
  10234. 6549 01aa 00E0 b .L304
  10235. 6550 .L302:
  10236. 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10237. 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10238. 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10239. 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  10240. 6551 .loc 1 3487 12
  10241. 6552 01ac 0223 movs r3, #2
  10242. 6553 .L304:
  10243. 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10244. 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10245. 6554 .loc 1 3489 1
  10246. 6555 01ae 1846 mov r0, r3
  10247. 6556 01b0 2037 adds r7, r7, #32
  10248. 6557 .LCFI120:
  10249. 6558 .cfi_def_cfa_offset 8
  10250. 6559 01b2 BD46 mov sp, r7
  10251. 6560 .LCFI121:
  10252. 6561 .cfi_def_cfa_register 13
  10253. 6562 @ sp needed
  10254. 6563 01b4 80BD pop {r7, pc}
  10255. 6564 .L318:
  10256. 6565 01b6 00BF .align 2
  10257. 6566 .L317:
  10258. 6567 01b8 00200080 .word -2147475456
  10259. 6568 01bc 00000000 .word .LC0
  10260. 6569 01c0 00000000 .word I2C_Master_ISR_IT
  10261. 6570 .cfi_endproc
  10262. 6571 .LFE153:
  10263. 6573 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
  10264. 6574 .align 1
  10265. 6575 .global HAL_I2C_Master_Seq_Transmit_DMA
  10266. 6576 .syntax unified
  10267. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 178
  10268. 6577 .thumb
  10269. 6578 .thumb_func
  10270. 6580 HAL_I2C_Master_Seq_Transmit_DMA:
  10271. 6581 .LFB154:
  10272. 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10273. 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  10274. 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA.
  10275. 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  10276. 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  10277. 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  10278. 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  10279. 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  10280. 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  10281. 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  10282. 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  10283. 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  10284. 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  10285. 3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
  10286. 3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
  10287. 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10288. 6582 .loc 1 3505 1
  10289. 6583 .cfi_startproc
  10290. 6584 @ args = 4, pretend = 0, frame = 32
  10291. 6585 @ frame_needed = 1, uses_anonymous_args = 0
  10292. 6586 0000 80B5 push {r7, lr}
  10293. 6587 .LCFI122:
  10294. 6588 .cfi_def_cfa_offset 8
  10295. 6589 .cfi_offset 7, -8
  10296. 6590 .cfi_offset 14, -4
  10297. 6591 0002 8AB0 sub sp, sp, #40
  10298. 6592 .LCFI123:
  10299. 6593 .cfi_def_cfa_offset 48
  10300. 6594 0004 02AF add r7, sp, #8
  10301. 6595 .LCFI124:
  10302. 6596 .cfi_def_cfa 7, 40
  10303. 6597 0006 F860 str r0, [r7, #12]
  10304. 6598 0008 7A60 str r2, [r7, #4]
  10305. 6599 000a 1A46 mov r2, r3
  10306. 6600 000c 0B46 mov r3, r1 @ movhi
  10307. 6601 000e 7B81 strh r3, [r7, #10] @ movhi
  10308. 6602 0010 1346 mov r3, r2 @ movhi
  10309. 6603 0012 3B81 strh r3, [r7, #8] @ movhi
  10310. 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  10311. 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
  10312. 6604 .loc 1 3507 12
  10313. 6605 0014 8D4B ldr r3, .L345
  10314. 6606 0016 BB61 str r3, [r7, #24]
  10315. 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  10316. 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
  10317. 6607 .loc 1 3509 12
  10318. 6608 0018 0023 movs r3, #0
  10319. 6609 001a 7B61 str r3, [r7, #20]
  10320. 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10321. 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  10322. 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  10323. 6610 .loc 1 3512 3
  10324. 6611 001c BB6A ldr r3, [r7, #40]
  10325. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 179
  10326. 6612 001e 002B cmp r3, #0
  10327. 6613 0020 1ED0 beq .L320
  10328. 6614 .loc 1 3512 3 is_stmt 0 discriminator 1
  10329. 6615 0022 BB6A ldr r3, [r7, #40]
  10330. 6616 0024 B3F1807F cmp r3, #16777216
  10331. 6617 0028 1AD0 beq .L320
  10332. 6618 .loc 1 3512 3 discriminator 2
  10333. 6619 002a BB6A ldr r3, [r7, #40]
  10334. 6620 002c B3F1807F cmp r3, #16777216
  10335. 6621 0030 16D0 beq .L320
  10336. 6622 .loc 1 3512 3 discriminator 3
  10337. 6623 0032 BB6A ldr r3, [r7, #40]
  10338. 6624 0034 B3F1007F cmp r3, #33554432
  10339. 6625 0038 12D0 beq .L320
  10340. 6626 .loc 1 3512 3 discriminator 4
  10341. 6627 003a BB6A ldr r3, [r7, #40]
  10342. 6628 003c B3F1007F cmp r3, #33554432
  10343. 6629 0040 0ED0 beq .L320
  10344. 6630 .loc 1 3512 3 discriminator 5
  10345. 6631 0042 BB6A ldr r3, [r7, #40]
  10346. 6632 0044 002B cmp r3, #0
  10347. 6633 0046 0BD0 beq .L320
  10348. 6634 .loc 1 3512 3 discriminator 6
  10349. 6635 0048 BB6A ldr r3, [r7, #40]
  10350. 6636 004a AA2B cmp r3, #170
  10351. 6637 004c 08D0 beq .L320
  10352. 6638 .loc 1 3512 3 discriminator 7
  10353. 6639 004e BB6A ldr r3, [r7, #40]
  10354. 6640 0050 B3F52A4F cmp r3, #43520
  10355. 6641 0054 04D0 beq .L320
  10356. 6642 .loc 1 3512 3 discriminator 8
  10357. 6643 0056 40F6B851 movw r1, #3512
  10358. 6644 005a 7D48 ldr r0, .L345+4
  10359. 6645 005c FFF7FEFF bl assert_failed
  10360. 6646 .L320:
  10361. 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10362. 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  10363. 6647 .loc 1 3514 11 is_stmt 1
  10364. 6648 0060 FB68 ldr r3, [r7, #12]
  10365. 6649 0062 93F84130 ldrb r3, [r3, #65]
  10366. 6650 0066 DBB2 uxtb r3, r3
  10367. 6651 .loc 1 3514 6
  10368. 6652 0068 202B cmp r3, #32
  10369. 6653 006a 40F03581 bne .L321
  10370. 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10371. 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  10372. 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  10373. 6654 .loc 1 3517 5
  10374. 6655 006e FB68 ldr r3, [r7, #12]
  10375. 6656 0070 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  10376. 6657 0074 012B cmp r3, #1
  10377. 6658 0076 01D1 bne .L322
  10378. 6659 .loc 1 3517 5 is_stmt 0 discriminator 1
  10379. 6660 0078 0223 movs r3, #2
  10380. 6661 007a 2EE1 b .L323
  10381. 6662 .L322:
  10382. 6663 .loc 1 3517 5 discriminator 2
  10383. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 180
  10384. 6664 007c FB68 ldr r3, [r7, #12]
  10385. 6665 007e 0122 movs r2, #1
  10386. 6666 0080 83F84020 strb r2, [r3, #64]
  10387. 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10388. 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
  10389. 6667 .loc 1 3519 21 is_stmt 1 discriminator 2
  10390. 6668 0084 FB68 ldr r3, [r7, #12]
  10391. 6669 0086 2122 movs r2, #33
  10392. 6670 0088 83F84120 strb r2, [r3, #65]
  10393. 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  10394. 6671 .loc 1 3520 21 discriminator 2
  10395. 6672 008c FB68 ldr r3, [r7, #12]
  10396. 6673 008e 1022 movs r2, #16
  10397. 6674 0090 83F84220 strb r2, [r3, #66]
  10398. 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  10399. 6675 .loc 1 3521 21 discriminator 2
  10400. 6676 0094 FB68 ldr r3, [r7, #12]
  10401. 6677 0096 0022 movs r2, #0
  10402. 6678 0098 5A64 str r2, [r3, #68]
  10403. 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10404. 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  10405. 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  10406. 6679 .loc 1 3524 23 discriminator 2
  10407. 6680 009a FB68 ldr r3, [r7, #12]
  10408. 6681 009c 7A68 ldr r2, [r7, #4]
  10409. 6682 009e 5A62 str r2, [r3, #36]
  10410. 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  10411. 6683 .loc 1 3525 23 discriminator 2
  10412. 6684 00a0 FB68 ldr r3, [r7, #12]
  10413. 6685 00a2 3A89 ldrh r2, [r7, #8] @ movhi
  10414. 6686 00a4 5A85 strh r2, [r3, #42] @ movhi
  10415. 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  10416. 6687 .loc 1 3526 23 discriminator 2
  10417. 6688 00a6 FB68 ldr r3, [r7, #12]
  10418. 6689 00a8 BA6A ldr r2, [r7, #40]
  10419. 6690 00aa DA62 str r2, [r3, #44]
  10420. 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
  10421. 6691 .loc 1 3527 23 discriminator 2
  10422. 6692 00ac FB68 ldr r3, [r7, #12]
  10423. 6693 00ae 694A ldr r2, .L345+8
  10424. 6694 00b0 5A63 str r2, [r3, #52]
  10425. 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10426. 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
  10427. 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  10428. 6695 .loc 1 3530 13 discriminator 2
  10429. 6696 00b2 FB68 ldr r3, [r7, #12]
  10430. 6697 00b4 5B8D ldrh r3, [r3, #42] @ movhi
  10431. 6698 00b6 9BB2 uxth r3, r3
  10432. 6699 .loc 1 3530 8 discriminator 2
  10433. 6700 00b8 FF2B cmp r3, #255
  10434. 6701 00ba 06D9 bls .L324
  10435. 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10436. 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  10437. 6702 .loc 1 3532 22
  10438. 6703 00bc FB68 ldr r3, [r7, #12]
  10439. 6704 00be FF22 movs r2, #255
  10440. 6705 00c0 1A85 strh r2, [r3, #40] @ movhi
  10441. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 181
  10442. 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  10443. 6706 .loc 1 3533 16
  10444. 6707 00c2 4FF08073 mov r3, #16777216
  10445. 6708 00c6 FB61 str r3, [r7, #28]
  10446. 6709 00c8 07E0 b .L325
  10447. 6710 .L324:
  10448. 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10449. 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10450. 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10451. 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  10452. 6711 .loc 1 3537 28
  10453. 6712 00ca FB68 ldr r3, [r7, #12]
  10454. 6713 00cc 5B8D ldrh r3, [r3, #42] @ movhi
  10455. 6714 00ce 9AB2 uxth r2, r3
  10456. 6715 .loc 1 3537 22
  10457. 6716 00d0 FB68 ldr r3, [r7, #12]
  10458. 6717 00d2 1A85 strh r2, [r3, #40] @ movhi
  10459. 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  10460. 6718 .loc 1 3538 16
  10461. 6719 00d4 FB68 ldr r3, [r7, #12]
  10462. 6720 00d6 DB6A ldr r3, [r3, #44]
  10463. 6721 00d8 FB61 str r3, [r7, #28]
  10464. 6722 .L325:
  10465. 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10466. 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10467. 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
  10468. 6723 .loc 1 3541 14
  10469. 6724 00da FB68 ldr r3, [r7, #12]
  10470. 6725 00dc 1B8D ldrh r3, [r3, #40]
  10471. 6726 .loc 1 3541 8
  10472. 6727 00de 002B cmp r3, #0
  10473. 6728 00e0 21D0 beq .L326
  10474. 6729 .loc 1 3541 31 discriminator 1
  10475. 6730 00e2 BB6A ldr r3, [r7, #40]
  10476. 6731 00e4 002B cmp r3, #0
  10477. 6732 00e6 03D0 beq .L327
  10478. 6733 .loc 1 3541 68 discriminator 2
  10479. 6734 00e8 BB6A ldr r3, [r7, #40]
  10480. 6735 00ea B3F1007F cmp r3, #33554432
  10481. 6736 00ee 1AD1 bne .L326
  10482. 6737 .L327:
  10483. 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
  10484. 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10485. 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
  10486. 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  10487. 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  10488. 6738 .loc 1 3546 35
  10489. 6739 00f0 FB68 ldr r3, [r7, #12]
  10490. 6740 00f2 5B6A ldr r3, [r3, #36]
  10491. 6741 .loc 1 3546 30
  10492. 6742 00f4 1A78 ldrb r2, [r3] @ zero_extendqisi2
  10493. 6743 .loc 1 3546 11
  10494. 6744 00f6 FB68 ldr r3, [r7, #12]
  10495. 6745 00f8 1B68 ldr r3, [r3]
  10496. 6746 .loc 1 3546 28
  10497. 6747 00fa 9A62 str r2, [r3, #40]
  10498. 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10499. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 182
  10500. 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  10501. 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  10502. 6748 .loc 1 3549 11
  10503. 6749 00fc FB68 ldr r3, [r7, #12]
  10504. 6750 00fe 5B6A ldr r3, [r3, #36]
  10505. 6751 .loc 1 3549 21
  10506. 6752 0100 5A1C adds r2, r3, #1
  10507. 6753 0102 FB68 ldr r3, [r7, #12]
  10508. 6754 0104 5A62 str r2, [r3, #36]
  10509. 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10510. 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
  10511. 6755 .loc 1 3551 24
  10512. 6756 0106 FB68 ldr r3, [r7, #12]
  10513. 6757 0108 1B8D ldrh r3, [r3, #40]
  10514. 6758 .loc 1 3551 18
  10515. 6759 010a 7B61 str r3, [r7, #20]
  10516. 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  10517. 6760 .loc 1 3552 11
  10518. 6761 010c FB68 ldr r3, [r7, #12]
  10519. 6762 010e 5B8D ldrh r3, [r3, #42] @ movhi
  10520. 6763 0110 9BB2 uxth r3, r3
  10521. 6764 .loc 1 3552 22
  10522. 6765 0112 013B subs r3, r3, #1
  10523. 6766 0114 9AB2 uxth r2, r3
  10524. 6767 0116 FB68 ldr r3, [r7, #12]
  10525. 6768 0118 5A85 strh r2, [r3, #42] @ movhi
  10526. 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  10527. 6769 .loc 1 3553 11
  10528. 6770 011a FB68 ldr r3, [r7, #12]
  10529. 6771 011c 1B8D ldrh r3, [r3, #40]
  10530. 6772 .loc 1 3553 21
  10531. 6773 011e 013B subs r3, r3, #1
  10532. 6774 0120 9AB2 uxth r2, r3
  10533. 6775 0122 FB68 ldr r3, [r7, #12]
  10534. 6776 0124 1A85 strh r2, [r3, #40] @ movhi
  10535. 6777 .L326:
  10536. 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10537. 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10538. 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
  10539. 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
  10540. 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
  10541. 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
  10542. 6778 .loc 1 3559 14
  10543. 6779 0126 FB68 ldr r3, [r7, #12]
  10544. 6780 0128 1B6B ldr r3, [r3, #48]
  10545. 6781 .loc 1 3559 8
  10546. 6782 012a 112B cmp r3, #17
  10547. 6783 012c 0ED1 bne .L328
  10548. 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  10549. 6784 .loc 1 3560 10
  10550. 6785 012e BB6A ldr r3, [r7, #40]
  10551. 6786 0130 AA2B cmp r3, #170
  10552. 6787 0132 03D0 beq .L329
  10553. 6788 .loc 1 3560 10 is_stmt 0 discriminator 2
  10554. 6789 0134 BB6A ldr r3, [r7, #40]
  10555. 6790 0136 B3F52A4F cmp r3, #43520
  10556. 6791 013a 01D1 bne .L330
  10557. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 183
  10558. 6792 .L329:
  10559. 6793 .loc 1 3560 10 discriminator 3
  10560. 6794 013c 0123 movs r3, #1
  10561. 6795 013e 00E0 b .L331
  10562. 6796 .L330:
  10563. 6797 .loc 1 3560 10 discriminator 4
  10564. 6798 0140 0023 movs r3, #0
  10565. 6799 .L331:
  10566. 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  10567. 6800 .loc 1 3559 59 is_stmt 1
  10568. 6801 0142 002B cmp r3, #0
  10569. 6802 0144 02D1 bne .L328
  10570. 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10571. 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
  10572. 6803 .loc 1 3562 19
  10573. 6804 0146 0023 movs r3, #0
  10574. 6805 0148 BB61 str r3, [r7, #24]
  10575. 6806 014a 0AE0 b .L332
  10576. 6807 .L328:
  10577. 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10578. 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10579. 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10580. 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
  10581. 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
  10582. 6808 .loc 1 3567 7
  10583. 6809 014c F868 ldr r0, [r7, #12]
  10584. 6810 014e FFF7FEFF bl I2C_ConvertOtherXferOptions
  10585. 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10586. 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
  10587. 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
  10588. 6811 .loc 1 3570 15
  10589. 6812 0152 FB68 ldr r3, [r7, #12]
  10590. 6813 0154 5B8D ldrh r3, [r3, #42] @ movhi
  10591. 6814 0156 9BB2 uxth r3, r3
  10592. 6815 .loc 1 3570 10
  10593. 6816 0158 FF2B cmp r3, #255
  10594. 6817 015a 02D8 bhi .L332
  10595. 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10596. 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  10597. 6818 .loc 1 3572 18
  10598. 6819 015c FB68 ldr r3, [r7, #12]
  10599. 6820 015e DB6A ldr r3, [r3, #44]
  10600. 6821 0160 FB61 str r3, [r7, #28]
  10601. 6822 .L332:
  10602. 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10603. 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10604. 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10605. 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
  10606. 6823 .loc 1 3576 13
  10607. 6824 0162 FB68 ldr r3, [r7, #12]
  10608. 6825 0164 1B8D ldrh r3, [r3, #40]
  10609. 6826 .loc 1 3576 8
  10610. 6827 0166 002B cmp r3, #0
  10611. 6828 0168 00F08E80 beq .L333
  10612. 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10613. 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  10614. 6829 .loc 1 3578 15
  10615. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 184
  10616. 6830 016c FB68 ldr r3, [r7, #12]
  10617. 6831 016e 9B6B ldr r3, [r3, #56]
  10618. 6832 .loc 1 3578 10
  10619. 6833 0170 002B cmp r3, #0
  10620. 6834 0172 22D0 beq .L334
  10621. 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10622. 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  10623. 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
  10624. 6835 .loc 1 3581 13
  10625. 6836 0174 FB68 ldr r3, [r7, #12]
  10626. 6837 0176 9B6B ldr r3, [r3, #56]
  10627. 6838 .loc 1 3581 40
  10628. 6839 0178 374A ldr r2, .L345+12
  10629. 6840 017a 9A62 str r2, [r3, #40]
  10630. 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10631. 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  10632. 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
  10633. 6841 .loc 1 3584 13
  10634. 6842 017c FB68 ldr r3, [r7, #12]
  10635. 6843 017e 9B6B ldr r3, [r3, #56]
  10636. 6844 .loc 1 3584 41
  10637. 6845 0180 364A ldr r2, .L345+16
  10638. 6846 0182 1A63 str r2, [r3, #48]
  10639. 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10640. 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  10641. 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
  10642. 6847 .loc 1 3587 13
  10643. 6848 0184 FB68 ldr r3, [r7, #12]
  10644. 6849 0186 9B6B ldr r3, [r3, #56]
  10645. 6850 .loc 1 3587 44
  10646. 6851 0188 0022 movs r2, #0
  10647. 6852 018a DA62 str r2, [r3, #44]
  10648. 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
  10649. 6853 .loc 1 3588 13
  10650. 6854 018c FB68 ldr r3, [r7, #12]
  10651. 6855 018e 9B6B ldr r3, [r3, #56]
  10652. 6856 .loc 1 3588 41
  10653. 6857 0190 0022 movs r2, #0
  10654. 6858 0192 5A63 str r2, [r3, #52]
  10655. 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10656. 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  10657. 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
  10658. 6859 .loc 1 3591 25
  10659. 6860 0194 FB68 ldr r3, [r7, #12]
  10660. 6861 0196 986B ldr r0, [r3, #56]
  10661. 6862 .loc 1 3591 70
  10662. 6863 0198 FB68 ldr r3, [r7, #12]
  10663. 6864 019a 5B6A ldr r3, [r3, #36]
  10664. 6865 .loc 1 3591 25
  10665. 6866 019c 1946 mov r1, r3
  10666. 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
  10667. 6867 .loc 1 3592 57
  10668. 6868 019e FB68 ldr r3, [r7, #12]
  10669. 6869 01a0 1B68 ldr r3, [r3]
  10670. 6870 .loc 1 3592 52
  10671. 6871 01a2 2833 adds r3, r3, #40
  10672. 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
  10673. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 185
  10674. 6872 .loc 1 3591 25
  10675. 6873 01a4 1A46 mov r2, r3
  10676. 6874 .loc 1 3592 79
  10677. 6875 01a6 FB68 ldr r3, [r7, #12]
  10678. 6876 01a8 1B8D ldrh r3, [r3, #40]
  10679. 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
  10680. 6877 .loc 1 3591 25
  10681. 6878 01aa FFF7FEFF bl HAL_DMA_Start_IT
  10682. 6879 01ae 0346 mov r3, r0
  10683. 6880 01b0 FB74 strb r3, [r7, #19]
  10684. 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10685. 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10686. 3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10687. 3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  10688. 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  10689. 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  10690. 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10691. 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  10692. 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  10693. 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10694. 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  10695. 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  10696. 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10697. 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  10698. 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10699. 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10700. 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  10701. 6881 .loc 1 3609 10
  10702. 6882 01b2 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
  10703. 6883 01b4 002B cmp r3, #0
  10704. 6884 01b6 53D1 bne .L336
  10705. 6885 01b8 13E0 b .L344
  10706. 6886 .L334:
  10707. 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  10708. 6887 .loc 1 3597 25
  10709. 6888 01ba FB68 ldr r3, [r7, #12]
  10710. 6889 01bc 2022 movs r2, #32
  10711. 6890 01be 83F84120 strb r2, [r3, #65]
  10712. 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10713. 6891 .loc 1 3598 25
  10714. 6892 01c2 FB68 ldr r3, [r7, #12]
  10715. 6893 01c4 0022 movs r2, #0
  10716. 6894 01c6 83F84220 strb r2, [r3, #66]
  10717. 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10718. 6895 .loc 1 3601 25
  10719. 6896 01ca FB68 ldr r3, [r7, #12]
  10720. 6897 01cc 5B6C ldr r3, [r3, #68]
  10721. 6898 01ce 43F08002 orr r2, r3, #128
  10722. 6899 01d2 FB68 ldr r3, [r7, #12]
  10723. 6900 01d4 5A64 str r2, [r3, #68]
  10724. 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10725. 6901 .loc 1 3604 9
  10726. 6902 01d6 FB68 ldr r3, [r7, #12]
  10727. 6903 01d8 0022 movs r2, #0
  10728. 6904 01da 83F84020 strb r2, [r3, #64]
  10729. 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10730. 6905 .loc 1 3606 16
  10731. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 186
  10732. 6906 01de 0123 movs r3, #1
  10733. 6907 01e0 7BE0 b .L323
  10734. 6908 .L344:
  10735. 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10736. 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
  10737. 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
  10738. 6909 .loc 1 3612 12
  10739. 6910 01e2 BB6A ldr r3, [r7, #40]
  10740. 6911 01e4 002B cmp r3, #0
  10741. 6912 01e6 03D0 beq .L337
  10742. 6913 .loc 1 3612 46 discriminator 1
  10743. 6914 01e8 BB6A ldr r3, [r7, #40]
  10744. 6915 01ea B3F1007F cmp r3, #33554432
  10745. 6916 01ee 09D1 bne .L338
  10746. 6917 .L337:
  10747. 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10748. 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
  10749. 6918 .loc 1 3614 11
  10750. 6919 01f0 7B69 ldr r3, [r7, #20]
  10751. 6920 01f2 DAB2 uxtb r2, r3
  10752. 6921 01f4 7989 ldrh r1, [r7, #10]
  10753. 6922 01f6 BB69 ldr r3, [r7, #24]
  10754. 6923 01f8 0093 str r3, [sp]
  10755. 6924 01fa FB69 ldr r3, [r7, #28]
  10756. 6925 01fc F868 ldr r0, [r7, #12]
  10757. 6926 01fe FFF7FEFF bl I2C_TransferConfig
  10758. 6927 0202 09E0 b .L339
  10759. 6928 .L338:
  10760. 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10761. 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10762. 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10763. 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
  10764. 6929 .loc 1 3618 61
  10765. 6930 0204 FB68 ldr r3, [r7, #12]
  10766. 6931 0206 1B8D ldrh r3, [r3, #40]
  10767. 6932 .loc 1 3618 11
  10768. 6933 0208 DAB2 uxtb r2, r3
  10769. 6934 020a 7989 ldrh r1, [r7, #10]
  10770. 6935 020c BB69 ldr r3, [r7, #24]
  10771. 6936 020e 0093 str r3, [sp]
  10772. 6937 0210 FB69 ldr r3, [r7, #28]
  10773. 6938 0212 F868 ldr r0, [r7, #12]
  10774. 6939 0214 FFF7FEFF bl I2C_TransferConfig
  10775. 6940 .L339:
  10776. 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10777. 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10778. 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  10779. 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  10780. 6941 .loc 1 3622 25
  10781. 6942 0218 FB68 ldr r3, [r7, #12]
  10782. 6943 021a 5B8D ldrh r3, [r3, #42] @ movhi
  10783. 6944 021c 9AB2 uxth r2, r3
  10784. 6945 .loc 1 3622 32
  10785. 6946 021e FB68 ldr r3, [r7, #12]
  10786. 6947 0220 1B8D ldrh r3, [r3, #40]
  10787. 6948 .loc 1 3622 25
  10788. 6949 0222 D31A subs r3, r2, r3
  10789. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 187
  10790. 6950 0224 9AB2 uxth r2, r3
  10791. 6951 0226 FB68 ldr r3, [r7, #12]
  10792. 6952 0228 5A85 strh r2, [r3, #42] @ movhi
  10793. 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10794. 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  10795. 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  10796. 6953 .loc 1 3625 9
  10797. 6954 022a FB68 ldr r3, [r7, #12]
  10798. 6955 022c 0022 movs r2, #0
  10799. 6956 022e 83F84020 strb r2, [r3, #64]
  10800. 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10801. 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  10802. 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  10803. 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  10804. 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
  10805. 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
  10806. 6957 .loc 1 3631 9
  10807. 6958 0232 1021 movs r1, #16
  10808. 6959 0234 F868 ldr r0, [r7, #12]
  10809. 6960 0236 FFF7FEFF bl I2C_Enable_IRQ
  10810. 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10811. 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  10812. 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
  10813. 6961 .loc 1 3634 13
  10814. 6962 023a FB68 ldr r3, [r7, #12]
  10815. 6963 023c 1B68 ldr r3, [r3]
  10816. 6964 .loc 1 3634 29
  10817. 6965 023e 1A68 ldr r2, [r3]
  10818. 6966 .loc 1 3634 13
  10819. 6967 0240 FB68 ldr r3, [r7, #12]
  10820. 6968 0242 1B68 ldr r3, [r3]
  10821. 6969 .loc 1 3634 29
  10822. 6970 0244 42F48042 orr r2, r2, #16384
  10823. 6971 0248 1A60 str r2, [r3]
  10824. 6972 024a 43E0 b .L340
  10825. 6973 .L346:
  10826. 6974 .align 2
  10827. 6975 .L345:
  10828. 6976 024c 00200080 .word -2147475456
  10829. 6977 0250 00000000 .word .LC0
  10830. 6978 0254 00000000 .word I2C_Master_ISR_DMA
  10831. 6979 0258 00000000 .word I2C_DMAMasterTransmitCplt
  10832. 6980 025c 00000000 .word I2C_DMAError
  10833. 6981 .L336:
  10834. 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10835. 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10836. 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10837. 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  10838. 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  10839. 6982 .loc 1 3639 25
  10840. 6983 0260 FB68 ldr r3, [r7, #12]
  10841. 6984 0262 2022 movs r2, #32
  10842. 6985 0264 83F84120 strb r2, [r3, #65]
  10843. 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  10844. 6986 .loc 1 3640 25
  10845. 6987 0268 FB68 ldr r3, [r7, #12]
  10846. 6988 026a 0022 movs r2, #0
  10847. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 188
  10848. 6989 026c 83F84220 strb r2, [r3, #66]
  10849. 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10850. 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  10851. 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  10852. 6990 .loc 1 3643 25
  10853. 6991 0270 FB68 ldr r3, [r7, #12]
  10854. 6992 0272 5B6C ldr r3, [r3, #68]
  10855. 6993 0274 43F01002 orr r2, r3, #16
  10856. 6994 0278 FB68 ldr r3, [r7, #12]
  10857. 6995 027a 5A64 str r2, [r3, #68]
  10858. 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10859. 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  10860. 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  10861. 6996 .loc 1 3646 9
  10862. 6997 027c FB68 ldr r3, [r7, #12]
  10863. 6998 027e 0022 movs r2, #0
  10864. 6999 0280 83F84020 strb r2, [r3, #64]
  10865. 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10866. 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  10867. 7000 .loc 1 3648 16
  10868. 7001 0284 0123 movs r3, #1
  10869. 7002 0286 28E0 b .L323
  10870. 7003 .L333:
  10871. 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10872. 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10873. 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10874. 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10875. 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
  10876. 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  10877. 7004 .loc 1 3654 21
  10878. 7005 0288 FB68 ldr r3, [r7, #12]
  10879. 7006 028a 164A ldr r2, .L347
  10880. 7007 028c 5A63 str r2, [r3, #52]
  10881. 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10882. 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  10883. 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
  10884. 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
  10885. 7008 .loc 1 3658 10
  10886. 7009 028e BB6A ldr r3, [r7, #40]
  10887. 7010 0290 002B cmp r3, #0
  10888. 7011 0292 03D0 beq .L341
  10889. 7012 .loc 1 3658 44 discriminator 1
  10890. 7013 0294 BB6A ldr r3, [r7, #40]
  10891. 7014 0296 B3F1007F cmp r3, #33554432
  10892. 7015 029a 09D1 bne .L342
  10893. 7016 .L341:
  10894. 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10895. 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
  10896. 7017 .loc 1 3660 9
  10897. 7018 029c 7B69 ldr r3, [r7, #20]
  10898. 7019 029e DAB2 uxtb r2, r3
  10899. 7020 02a0 7989 ldrh r1, [r7, #10]
  10900. 7021 02a2 BB69 ldr r3, [r7, #24]
  10901. 7022 02a4 0093 str r3, [sp]
  10902. 7023 02a6 FB69 ldr r3, [r7, #28]
  10903. 7024 02a8 F868 ldr r0, [r7, #12]
  10904. 7025 02aa FFF7FEFF bl I2C_TransferConfig
  10905. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 189
  10906. 7026 02ae 09E0 b .L343
  10907. 7027 .L342:
  10908. 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10909. 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10910. 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10911. 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
  10912. 7028 .loc 1 3664 59
  10913. 7029 02b0 FB68 ldr r3, [r7, #12]
  10914. 7030 02b2 1B8D ldrh r3, [r3, #40]
  10915. 7031 .loc 1 3664 9
  10916. 7032 02b4 DAB2 uxtb r2, r3
  10917. 7033 02b6 7989 ldrh r1, [r7, #10]
  10918. 7034 02b8 BB69 ldr r3, [r7, #24]
  10919. 7035 02ba 0093 str r3, [sp]
  10920. 7036 02bc FB69 ldr r3, [r7, #28]
  10921. 7037 02be F868 ldr r0, [r7, #12]
  10922. 7038 02c0 FFF7FEFF bl I2C_TransferConfig
  10923. 7039 .L343:
  10924. 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10925. 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10926. 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  10927. 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  10928. 7040 .loc 1 3668 7
  10929. 7041 02c4 FB68 ldr r3, [r7, #12]
  10930. 7042 02c6 0022 movs r2, #0
  10931. 7043 02c8 83F84020 strb r2, [r3, #64]
  10932. 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10933. 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  10934. 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  10935. 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  10936. 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
  10937. 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  10938. 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  10939. 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  10940. 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
  10941. 7044 .loc 1 3677 7
  10942. 7045 02cc 0121 movs r1, #1
  10943. 7046 02ce F868 ldr r0, [r7, #12]
  10944. 7047 02d0 FFF7FEFF bl I2C_Enable_IRQ
  10945. 7048 .L340:
  10946. 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10947. 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10948. 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  10949. 7049 .loc 1 3680 12
  10950. 7050 02d4 0023 movs r3, #0
  10951. 7051 02d6 00E0 b .L323
  10952. 7052 .L321:
  10953. 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10954. 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  10955. 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  10956. 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  10957. 7053 .loc 1 3684 12
  10958. 7054 02d8 0223 movs r3, #2
  10959. 7055 .L323:
  10960. 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10961. 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  10962. 7056 .loc 1 3686 1
  10963. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 190
  10964. 7057 02da 1846 mov r0, r3
  10965. 7058 02dc 2037 adds r7, r7, #32
  10966. 7059 .LCFI125:
  10967. 7060 .cfi_def_cfa_offset 8
  10968. 7061 02de BD46 mov sp, r7
  10969. 7062 .LCFI126:
  10970. 7063 .cfi_def_cfa_register 13
  10971. 7064 @ sp needed
  10972. 7065 02e0 80BD pop {r7, pc}
  10973. 7066 .L348:
  10974. 7067 02e2 00BF .align 2
  10975. 7068 .L347:
  10976. 7069 02e4 00000000 .word I2C_Master_ISR_IT
  10977. 7070 .cfi_endproc
  10978. 7071 .LFE154:
  10979. 7073 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
  10980. 7074 .align 1
  10981. 7075 .global HAL_I2C_Master_Seq_Receive_IT
  10982. 7076 .syntax unified
  10983. 7077 .thumb
  10984. 7078 .thumb_func
  10985. 7080 HAL_I2C_Master_Seq_Receive_IT:
  10986. 7081 .LFB155:
  10987. 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  10988. 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  10989. 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter
  10990. 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  10991. 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  10992. 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  10993. 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  10994. 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  10995. 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  10996. 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  10997. 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  10998. 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  10999. 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  11000. 3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
  11001. 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
  11002. 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11003. 7082 .loc 1 3702 1
  11004. 7083 .cfi_startproc
  11005. 7084 @ args = 4, pretend = 0, frame = 24
  11006. 7085 @ frame_needed = 1, uses_anonymous_args = 0
  11007. 7086 0000 80B5 push {r7, lr}
  11008. 7087 .LCFI127:
  11009. 7088 .cfi_def_cfa_offset 8
  11010. 7089 .cfi_offset 7, -8
  11011. 7090 .cfi_offset 14, -4
  11012. 7091 0002 88B0 sub sp, sp, #32
  11013. 7092 .LCFI128:
  11014. 7093 .cfi_def_cfa_offset 40
  11015. 7094 0004 02AF add r7, sp, #8
  11016. 7095 .LCFI129:
  11017. 7096 .cfi_def_cfa 7, 32
  11018. 7097 0006 F860 str r0, [r7, #12]
  11019. 7098 0008 7A60 str r2, [r7, #4]
  11020. 7099 000a 1A46 mov r2, r3
  11021. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 191
  11022. 7100 000c 0B46 mov r3, r1 @ movhi
  11023. 7101 000e 7B81 strh r3, [r7, #10] @ movhi
  11024. 7102 0010 1346 mov r3, r2 @ movhi
  11025. 7103 0012 3B81 strh r3, [r7, #8] @ movhi
  11026. 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  11027. 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
  11028. 7104 .loc 1 3704 12
  11029. 7105 0014 4B4B ldr r3, .L361
  11030. 7106 0016 3B61 str r3, [r7, #16]
  11031. 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11032. 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  11033. 3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  11034. 7107 .loc 1 3707 3
  11035. 7108 0018 3B6A ldr r3, [r7, #32]
  11036. 7109 001a 002B cmp r3, #0
  11037. 7110 001c 1ED0 beq .L350
  11038. 7111 .loc 1 3707 3 is_stmt 0 discriminator 1
  11039. 7112 001e 3B6A ldr r3, [r7, #32]
  11040. 7113 0020 B3F1807F cmp r3, #16777216
  11041. 7114 0024 1AD0 beq .L350
  11042. 7115 .loc 1 3707 3 discriminator 2
  11043. 7116 0026 3B6A ldr r3, [r7, #32]
  11044. 7117 0028 B3F1807F cmp r3, #16777216
  11045. 7118 002c 16D0 beq .L350
  11046. 7119 .loc 1 3707 3 discriminator 3
  11047. 7120 002e 3B6A ldr r3, [r7, #32]
  11048. 7121 0030 B3F1007F cmp r3, #33554432
  11049. 7122 0034 12D0 beq .L350
  11050. 7123 .loc 1 3707 3 discriminator 4
  11051. 7124 0036 3B6A ldr r3, [r7, #32]
  11052. 7125 0038 B3F1007F cmp r3, #33554432
  11053. 7126 003c 0ED0 beq .L350
  11054. 7127 .loc 1 3707 3 discriminator 5
  11055. 7128 003e 3B6A ldr r3, [r7, #32]
  11056. 7129 0040 002B cmp r3, #0
  11057. 7130 0042 0BD0 beq .L350
  11058. 7131 .loc 1 3707 3 discriminator 6
  11059. 7132 0044 3B6A ldr r3, [r7, #32]
  11060. 7133 0046 AA2B cmp r3, #170
  11061. 7134 0048 08D0 beq .L350
  11062. 7135 .loc 1 3707 3 discriminator 7
  11063. 7136 004a 3B6A ldr r3, [r7, #32]
  11064. 7137 004c B3F52A4F cmp r3, #43520
  11065. 7138 0050 04D0 beq .L350
  11066. 7139 .loc 1 3707 3 discriminator 8
  11067. 7140 0052 40F67B61 movw r1, #3707
  11068. 7141 0056 3C48 ldr r0, .L361+4
  11069. 7142 0058 FFF7FEFF bl assert_failed
  11070. 7143 .L350:
  11071. 3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11072. 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  11073. 7144 .loc 1 3709 11 is_stmt 1
  11074. 7145 005c FB68 ldr r3, [r7, #12]
  11075. 7146 005e 93F84130 ldrb r3, [r3, #65]
  11076. 7147 0062 DBB2 uxtb r3, r3
  11077. 7148 .loc 1 3709 6
  11078. 7149 0064 202B cmp r3, #32
  11079. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 192
  11080. 7150 0066 67D1 bne .L351
  11081. 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11082. 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  11083. 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  11084. 7151 .loc 1 3712 5
  11085. 7152 0068 FB68 ldr r3, [r7, #12]
  11086. 7153 006a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  11087. 7154 006e 012B cmp r3, #1
  11088. 7155 0070 01D1 bne .L352
  11089. 7156 .loc 1 3712 5 is_stmt 0 discriminator 1
  11090. 7157 0072 0223 movs r3, #2
  11091. 7158 0074 61E0 b .L353
  11092. 7159 .L352:
  11093. 7160 .loc 1 3712 5 discriminator 2
  11094. 7161 0076 FB68 ldr r3, [r7, #12]
  11095. 7162 0078 0122 movs r2, #1
  11096. 7163 007a 83F84020 strb r2, [r3, #64]
  11097. 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11098. 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  11099. 7164 .loc 1 3714 21 is_stmt 1 discriminator 2
  11100. 7165 007e FB68 ldr r3, [r7, #12]
  11101. 7166 0080 2222 movs r2, #34
  11102. 7167 0082 83F84120 strb r2, [r3, #65]
  11103. 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  11104. 7168 .loc 1 3715 21 discriminator 2
  11105. 7169 0086 FB68 ldr r3, [r7, #12]
  11106. 7170 0088 1022 movs r2, #16
  11107. 7171 008a 83F84220 strb r2, [r3, #66]
  11108. 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  11109. 7172 .loc 1 3716 21 discriminator 2
  11110. 7173 008e FB68 ldr r3, [r7, #12]
  11111. 7174 0090 0022 movs r2, #0
  11112. 7175 0092 5A64 str r2, [r3, #68]
  11113. 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11114. 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  11115. 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  11116. 7176 .loc 1 3719 23 discriminator 2
  11117. 7177 0094 FB68 ldr r3, [r7, #12]
  11118. 7178 0096 7A68 ldr r2, [r7, #4]
  11119. 7179 0098 5A62 str r2, [r3, #36]
  11120. 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  11121. 7180 .loc 1 3720 23 discriminator 2
  11122. 7181 009a FB68 ldr r3, [r7, #12]
  11123. 7182 009c 3A89 ldrh r2, [r7, #8] @ movhi
  11124. 7183 009e 5A85 strh r2, [r3, #42] @ movhi
  11125. 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  11126. 7184 .loc 1 3721 23 discriminator 2
  11127. 7185 00a0 FB68 ldr r3, [r7, #12]
  11128. 7186 00a2 3A6A ldr r2, [r7, #32]
  11129. 7187 00a4 DA62 str r2, [r3, #44]
  11130. 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  11131. 7188 .loc 1 3722 23 discriminator 2
  11132. 7189 00a6 FB68 ldr r3, [r7, #12]
  11133. 7190 00a8 284A ldr r2, .L361+8
  11134. 7191 00aa 5A63 str r2, [r3, #52]
  11135. 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11136. 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
  11137. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 193
  11138. 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  11139. 7192 .loc 1 3725 13 discriminator 2
  11140. 7193 00ac FB68 ldr r3, [r7, #12]
  11141. 7194 00ae 5B8D ldrh r3, [r3, #42] @ movhi
  11142. 7195 00b0 9BB2 uxth r3, r3
  11143. 7196 .loc 1 3725 8 discriminator 2
  11144. 7197 00b2 FF2B cmp r3, #255
  11145. 7198 00b4 06D9 bls .L354
  11146. 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11147. 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  11148. 7199 .loc 1 3727 22
  11149. 7200 00b6 FB68 ldr r3, [r7, #12]
  11150. 7201 00b8 FF22 movs r2, #255
  11151. 7202 00ba 1A85 strh r2, [r3, #40] @ movhi
  11152. 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  11153. 7203 .loc 1 3728 16
  11154. 7204 00bc 4FF08073 mov r3, #16777216
  11155. 7205 00c0 7B61 str r3, [r7, #20]
  11156. 7206 00c2 07E0 b .L355
  11157. 7207 .L354:
  11158. 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11159. 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11160. 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11161. 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  11162. 7208 .loc 1 3732 28
  11163. 7209 00c4 FB68 ldr r3, [r7, #12]
  11164. 7210 00c6 5B8D ldrh r3, [r3, #42] @ movhi
  11165. 7211 00c8 9AB2 uxth r2, r3
  11166. 7212 .loc 1 3732 22
  11167. 7213 00ca FB68 ldr r3, [r7, #12]
  11168. 7214 00cc 1A85 strh r2, [r3, #40] @ movhi
  11169. 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  11170. 7215 .loc 1 3733 16
  11171. 7216 00ce FB68 ldr r3, [r7, #12]
  11172. 7217 00d0 DB6A ldr r3, [r3, #44]
  11173. 7218 00d2 7B61 str r3, [r7, #20]
  11174. 7219 .L355:
  11175. 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11176. 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11177. 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
  11178. 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
  11179. 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
  11180. 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
  11181. 7220 .loc 1 3739 14
  11182. 7221 00d4 FB68 ldr r3, [r7, #12]
  11183. 7222 00d6 1B6B ldr r3, [r3, #48]
  11184. 7223 .loc 1 3739 8
  11185. 7224 00d8 122B cmp r3, #18
  11186. 7225 00da 0ED1 bne .L356
  11187. 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  11188. 7226 .loc 1 3740 10
  11189. 7227 00dc 3B6A ldr r3, [r7, #32]
  11190. 7228 00de AA2B cmp r3, #170
  11191. 7229 00e0 03D0 beq .L357
  11192. 7230 .loc 1 3740 10 is_stmt 0 discriminator 2
  11193. 7231 00e2 3B6A ldr r3, [r7, #32]
  11194. 7232 00e4 B3F52A4F cmp r3, #43520
  11195. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 194
  11196. 7233 00e8 01D1 bne .L358
  11197. 7234 .L357:
  11198. 7235 .loc 1 3740 10 discriminator 3
  11199. 7236 00ea 0123 movs r3, #1
  11200. 7237 00ec 00E0 b .L359
  11201. 7238 .L358:
  11202. 7239 .loc 1 3740 10 discriminator 4
  11203. 7240 00ee 0023 movs r3, #0
  11204. 7241 .L359:
  11205. 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  11206. 7242 .loc 1 3739 59 is_stmt 1
  11207. 7243 00f0 002B cmp r3, #0
  11208. 7244 00f2 02D1 bne .L356
  11209. 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11210. 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
  11211. 7245 .loc 1 3742 19
  11212. 7246 00f4 0023 movs r3, #0
  11213. 7247 00f6 3B61 str r3, [r7, #16]
  11214. 7248 00f8 0AE0 b .L360
  11215. 7249 .L356:
  11216. 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11217. 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11218. 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11219. 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
  11220. 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
  11221. 7250 .loc 1 3747 7
  11222. 7251 00fa F868 ldr r0, [r7, #12]
  11223. 7252 00fc FFF7FEFF bl I2C_ConvertOtherXferOptions
  11224. 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11225. 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
  11226. 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
  11227. 7253 .loc 1 3750 15
  11228. 7254 0100 FB68 ldr r3, [r7, #12]
  11229. 7255 0102 5B8D ldrh r3, [r3, #42] @ movhi
  11230. 7256 0104 9BB2 uxth r3, r3
  11231. 7257 .loc 1 3750 10
  11232. 7258 0106 FF2B cmp r3, #255
  11233. 7259 0108 02D8 bhi .L360
  11234. 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11235. 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  11236. 7260 .loc 1 3752 18
  11237. 7261 010a FB68 ldr r3, [r7, #12]
  11238. 7262 010c DB6A ldr r3, [r3, #44]
  11239. 7263 010e 7B61 str r3, [r7, #20]
  11240. 7264 .L360:
  11241. 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11242. 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11243. 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11244. 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
  11245. 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
  11246. 7265 .loc 1 3757 55
  11247. 7266 0110 FB68 ldr r3, [r7, #12]
  11248. 7267 0112 1B8D ldrh r3, [r3, #40]
  11249. 7268 .loc 1 3757 5
  11250. 7269 0114 DAB2 uxtb r2, r3
  11251. 7270 0116 7989 ldrh r1, [r7, #10]
  11252. 7271 0118 3B69 ldr r3, [r7, #16]
  11253. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 195
  11254. 7272 011a 0093 str r3, [sp]
  11255. 7273 011c 7B69 ldr r3, [r7, #20]
  11256. 7274 011e F868 ldr r0, [r7, #12]
  11257. 7275 0120 FFF7FEFF bl I2C_TransferConfig
  11258. 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11259. 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  11260. 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  11261. 7276 .loc 1 3760 5
  11262. 7277 0124 FB68 ldr r3, [r7, #12]
  11263. 7278 0126 0022 movs r2, #0
  11264. 7279 0128 83F84020 strb r2, [r3, #64]
  11265. 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11266. 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  11267. 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  11268. 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  11269. 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
  11270. 7280 .loc 1 3765 5
  11271. 7281 012c 0221 movs r1, #2
  11272. 7282 012e F868 ldr r0, [r7, #12]
  11273. 7283 0130 FFF7FEFF bl I2C_Enable_IRQ
  11274. 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11275. 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  11276. 7284 .loc 1 3767 12
  11277. 7285 0134 0023 movs r3, #0
  11278. 7286 0136 00E0 b .L353
  11279. 7287 .L351:
  11280. 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11281. 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11282. 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11283. 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  11284. 7288 .loc 1 3771 12
  11285. 7289 0138 0223 movs r3, #2
  11286. 7290 .L353:
  11287. 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11288. 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11289. 7291 .loc 1 3773 1
  11290. 7292 013a 1846 mov r0, r3
  11291. 7293 013c 1837 adds r7, r7, #24
  11292. 7294 .LCFI130:
  11293. 7295 .cfi_def_cfa_offset 8
  11294. 7296 013e BD46 mov sp, r7
  11295. 7297 .LCFI131:
  11296. 7298 .cfi_def_cfa_register 13
  11297. 7299 @ sp needed
  11298. 7300 0140 80BD pop {r7, pc}
  11299. 7301 .L362:
  11300. 7302 0142 00BF .align 2
  11301. 7303 .L361:
  11302. 7304 0144 00240080 .word -2147474432
  11303. 7305 0148 00000000 .word .LC0
  11304. 7306 014c 00000000 .word I2C_Master_ISR_IT
  11305. 7307 .cfi_endproc
  11306. 7308 .LFE155:
  11307. 7310 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
  11308. 7311 .align 1
  11309. 7312 .global HAL_I2C_Master_Seq_Receive_DMA
  11310. 7313 .syntax unified
  11311. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 196
  11312. 7314 .thumb
  11313. 7315 .thumb_func
  11314. 7317 HAL_I2C_Master_Seq_Receive_DMA:
  11315. 7318 .LFB156:
  11316. 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11317. 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  11318. 3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA
  11319. 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  11320. 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  11321. 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  11322. 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  11323. 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  11324. 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  11325. 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  11326. 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  11327. 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  11328. 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  11329. 3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
  11330. 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
  11331. 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11332. 7319 .loc 1 3789 1
  11333. 7320 .cfi_startproc
  11334. 7321 @ args = 4, pretend = 0, frame = 32
  11335. 7322 @ frame_needed = 1, uses_anonymous_args = 0
  11336. 7323 0000 80B5 push {r7, lr}
  11337. 7324 .LCFI132:
  11338. 7325 .cfi_def_cfa_offset 8
  11339. 7326 .cfi_offset 7, -8
  11340. 7327 .cfi_offset 14, -4
  11341. 7328 0002 8AB0 sub sp, sp, #40
  11342. 7329 .LCFI133:
  11343. 7330 .cfi_def_cfa_offset 48
  11344. 7331 0004 02AF add r7, sp, #8
  11345. 7332 .LCFI134:
  11346. 7333 .cfi_def_cfa 7, 40
  11347. 7334 0006 F860 str r0, [r7, #12]
  11348. 7335 0008 7A60 str r2, [r7, #4]
  11349. 7336 000a 1A46 mov r2, r3
  11350. 7337 000c 0B46 mov r3, r1 @ movhi
  11351. 7338 000e 7B81 strh r3, [r7, #10] @ movhi
  11352. 7339 0010 1346 mov r3, r2 @ movhi
  11353. 7340 0012 3B81 strh r3, [r7, #8] @ movhi
  11354. 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  11355. 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
  11356. 7341 .loc 1 3791 12
  11357. 7342 0014 884B ldr r3, .L381
  11358. 7343 0016 BB61 str r3, [r7, #24]
  11359. 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  11360. 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11361. 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  11362. 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  11363. 7344 .loc 1 3795 3
  11364. 7345 0018 BB6A ldr r3, [r7, #40]
  11365. 7346 001a 002B cmp r3, #0
  11366. 7347 001c 1ED0 beq .L364
  11367. 7348 .loc 1 3795 3 is_stmt 0 discriminator 1
  11368. 7349 001e BB6A ldr r3, [r7, #40]
  11369. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 197
  11370. 7350 0020 B3F1807F cmp r3, #16777216
  11371. 7351 0024 1AD0 beq .L364
  11372. 7352 .loc 1 3795 3 discriminator 2
  11373. 7353 0026 BB6A ldr r3, [r7, #40]
  11374. 7354 0028 B3F1807F cmp r3, #16777216
  11375. 7355 002c 16D0 beq .L364
  11376. 7356 .loc 1 3795 3 discriminator 3
  11377. 7357 002e BB6A ldr r3, [r7, #40]
  11378. 7358 0030 B3F1007F cmp r3, #33554432
  11379. 7359 0034 12D0 beq .L364
  11380. 7360 .loc 1 3795 3 discriminator 4
  11381. 7361 0036 BB6A ldr r3, [r7, #40]
  11382. 7362 0038 B3F1007F cmp r3, #33554432
  11383. 7363 003c 0ED0 beq .L364
  11384. 7364 .loc 1 3795 3 discriminator 5
  11385. 7365 003e BB6A ldr r3, [r7, #40]
  11386. 7366 0040 002B cmp r3, #0
  11387. 7367 0042 0BD0 beq .L364
  11388. 7368 .loc 1 3795 3 discriminator 6
  11389. 7369 0044 BB6A ldr r3, [r7, #40]
  11390. 7370 0046 AA2B cmp r3, #170
  11391. 7371 0048 08D0 beq .L364
  11392. 7372 .loc 1 3795 3 discriminator 7
  11393. 7373 004a BB6A ldr r3, [r7, #40]
  11394. 7374 004c B3F52A4F cmp r3, #43520
  11395. 7375 0050 04D0 beq .L364
  11396. 7376 .loc 1 3795 3 discriminator 8
  11397. 7377 0052 40F6D361 movw r1, #3795
  11398. 7378 0056 7948 ldr r0, .L381+4
  11399. 7379 0058 FFF7FEFF bl assert_failed
  11400. 7380 .L364:
  11401. 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11402. 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  11403. 7381 .loc 1 3797 11 is_stmt 1
  11404. 7382 005c FB68 ldr r3, [r7, #12]
  11405. 7383 005e 93F84130 ldrb r3, [r3, #65]
  11406. 7384 0062 DBB2 uxtb r3, r3
  11407. 7385 .loc 1 3797 6
  11408. 7386 0064 202B cmp r3, #32
  11409. 7387 0066 40F0E180 bne .L365
  11410. 3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11411. 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  11412. 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  11413. 7388 .loc 1 3800 5
  11414. 7389 006a FB68 ldr r3, [r7, #12]
  11415. 7390 006c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  11416. 7391 0070 012B cmp r3, #1
  11417. 7392 0072 01D1 bne .L366
  11418. 7393 .loc 1 3800 5 is_stmt 0 discriminator 1
  11419. 7394 0074 0223 movs r3, #2
  11420. 7395 0076 DAE0 b .L367
  11421. 7396 .L366:
  11422. 7397 .loc 1 3800 5 discriminator 2
  11423. 7398 0078 FB68 ldr r3, [r7, #12]
  11424. 7399 007a 0122 movs r2, #1
  11425. 7400 007c 83F84020 strb r2, [r3, #64]
  11426. 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11427. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 198
  11428. 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
  11429. 7401 .loc 1 3802 21 is_stmt 1 discriminator 2
  11430. 7402 0080 FB68 ldr r3, [r7, #12]
  11431. 7403 0082 2222 movs r2, #34
  11432. 7404 0084 83F84120 strb r2, [r3, #65]
  11433. 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
  11434. 7405 .loc 1 3803 21 discriminator 2
  11435. 7406 0088 FB68 ldr r3, [r7, #12]
  11436. 7407 008a 1022 movs r2, #16
  11437. 7408 008c 83F84220 strb r2, [r3, #66]
  11438. 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  11439. 7409 .loc 1 3804 21 discriminator 2
  11440. 7410 0090 FB68 ldr r3, [r7, #12]
  11441. 7411 0092 0022 movs r2, #0
  11442. 7412 0094 5A64 str r2, [r3, #68]
  11443. 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11444. 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  11445. 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  11446. 7413 .loc 1 3807 23 discriminator 2
  11447. 7414 0096 FB68 ldr r3, [r7, #12]
  11448. 7415 0098 7A68 ldr r2, [r7, #4]
  11449. 7416 009a 5A62 str r2, [r3, #36]
  11450. 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  11451. 7417 .loc 1 3808 23 discriminator 2
  11452. 7418 009c FB68 ldr r3, [r7, #12]
  11453. 7419 009e 3A89 ldrh r2, [r7, #8] @ movhi
  11454. 7420 00a0 5A85 strh r2, [r3, #42] @ movhi
  11455. 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  11456. 7421 .loc 1 3809 23 discriminator 2
  11457. 7422 00a2 FB68 ldr r3, [r7, #12]
  11458. 7423 00a4 BA6A ldr r2, [r7, #40]
  11459. 7424 00a6 DA62 str r2, [r3, #44]
  11460. 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
  11461. 7425 .loc 1 3810 23 discriminator 2
  11462. 7426 00a8 FB68 ldr r3, [r7, #12]
  11463. 7427 00aa 654A ldr r2, .L381+8
  11464. 7428 00ac 5A63 str r2, [r3, #52]
  11465. 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11466. 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
  11467. 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  11468. 7429 .loc 1 3813 13 discriminator 2
  11469. 7430 00ae FB68 ldr r3, [r7, #12]
  11470. 7431 00b0 5B8D ldrh r3, [r3, #42] @ movhi
  11471. 7432 00b2 9BB2 uxth r3, r3
  11472. 7433 .loc 1 3813 8 discriminator 2
  11473. 7434 00b4 FF2B cmp r3, #255
  11474. 7435 00b6 06D9 bls .L368
  11475. 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11476. 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  11477. 7436 .loc 1 3815 22
  11478. 7437 00b8 FB68 ldr r3, [r7, #12]
  11479. 7438 00ba FF22 movs r2, #255
  11480. 7439 00bc 1A85 strh r2, [r3, #40] @ movhi
  11481. 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  11482. 7440 .loc 1 3816 16
  11483. 7441 00be 4FF08073 mov r3, #16777216
  11484. 7442 00c2 FB61 str r3, [r7, #28]
  11485. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 199
  11486. 7443 00c4 07E0 b .L369
  11487. 7444 .L368:
  11488. 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11489. 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11490. 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11491. 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  11492. 7445 .loc 1 3820 28
  11493. 7446 00c6 FB68 ldr r3, [r7, #12]
  11494. 7447 00c8 5B8D ldrh r3, [r3, #42] @ movhi
  11495. 7448 00ca 9AB2 uxth r2, r3
  11496. 7449 .loc 1 3820 22
  11497. 7450 00cc FB68 ldr r3, [r7, #12]
  11498. 7451 00ce 1A85 strh r2, [r3, #40] @ movhi
  11499. 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  11500. 7452 .loc 1 3821 16
  11501. 7453 00d0 FB68 ldr r3, [r7, #12]
  11502. 7454 00d2 DB6A ldr r3, [r3, #44]
  11503. 7455 00d4 FB61 str r3, [r7, #28]
  11504. 7456 .L369:
  11505. 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11506. 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11507. 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
  11508. 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
  11509. 3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
  11510. 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
  11511. 7457 .loc 1 3827 14
  11512. 7458 00d6 FB68 ldr r3, [r7, #12]
  11513. 7459 00d8 1B6B ldr r3, [r3, #48]
  11514. 7460 .loc 1 3827 8
  11515. 7461 00da 122B cmp r3, #18
  11516. 7462 00dc 0ED1 bne .L370
  11517. 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  11518. 7463 .loc 1 3828 10
  11519. 7464 00de BB6A ldr r3, [r7, #40]
  11520. 7465 00e0 AA2B cmp r3, #170
  11521. 7466 00e2 03D0 beq .L371
  11522. 7467 .loc 1 3828 10 is_stmt 0 discriminator 2
  11523. 7468 00e4 BB6A ldr r3, [r7, #40]
  11524. 7469 00e6 B3F52A4F cmp r3, #43520
  11525. 7470 00ea 01D1 bne .L372
  11526. 7471 .L371:
  11527. 7472 .loc 1 3828 10 discriminator 3
  11528. 7473 00ec 0123 movs r3, #1
  11529. 7474 00ee 00E0 b .L373
  11530. 7475 .L372:
  11531. 7476 .loc 1 3828 10 discriminator 4
  11532. 7477 00f0 0023 movs r3, #0
  11533. 7478 .L373:
  11534. 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
  11535. 7479 .loc 1 3827 59 is_stmt 1
  11536. 7480 00f2 002B cmp r3, #0
  11537. 7481 00f4 02D1 bne .L370
  11538. 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11539. 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
  11540. 7482 .loc 1 3830 19
  11541. 7483 00f6 0023 movs r3, #0
  11542. 7484 00f8 BB61 str r3, [r7, #24]
  11543. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 200
  11544. 7485 00fa 0AE0 b .L374
  11545. 7486 .L370:
  11546. 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11547. 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11548. 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11549. 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
  11550. 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
  11551. 7487 .loc 1 3835 7
  11552. 7488 00fc F868 ldr r0, [r7, #12]
  11553. 7489 00fe FFF7FEFF bl I2C_ConvertOtherXferOptions
  11554. 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11555. 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
  11556. 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
  11557. 7490 .loc 1 3838 15
  11558. 7491 0102 FB68 ldr r3, [r7, #12]
  11559. 7492 0104 5B8D ldrh r3, [r3, #42] @ movhi
  11560. 7493 0106 9BB2 uxth r3, r3
  11561. 7494 .loc 1 3838 10
  11562. 7495 0108 FF2B cmp r3, #255
  11563. 7496 010a 02D8 bhi .L374
  11564. 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11565. 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  11566. 7497 .loc 1 3840 18
  11567. 7498 010c FB68 ldr r3, [r7, #12]
  11568. 7499 010e DB6A ldr r3, [r3, #44]
  11569. 7500 0110 FB61 str r3, [r7, #28]
  11570. 7501 .L374:
  11571. 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11572. 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11573. 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11574. 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
  11575. 7502 .loc 1 3844 13
  11576. 7503 0112 FB68 ldr r3, [r7, #12]
  11577. 7504 0114 1B8D ldrh r3, [r3, #40]
  11578. 7505 .loc 1 3844 8
  11579. 7506 0116 002B cmp r3, #0
  11580. 7507 0118 70D0 beq .L375
  11581. 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11582. 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  11583. 7508 .loc 1 3846 15
  11584. 7509 011a FB68 ldr r3, [r7, #12]
  11585. 7510 011c DB6B ldr r3, [r3, #60]
  11586. 7511 .loc 1 3846 10
  11587. 7512 011e 002B cmp r3, #0
  11588. 7513 0120 20D0 beq .L376
  11589. 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11590. 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  11591. 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
  11592. 7514 .loc 1 3849 13
  11593. 7515 0122 FB68 ldr r3, [r7, #12]
  11594. 7516 0124 DB6B ldr r3, [r3, #60]
  11595. 7517 .loc 1 3849 40
  11596. 7518 0126 474A ldr r2, .L381+12
  11597. 7519 0128 9A62 str r2, [r3, #40]
  11598. 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11599. 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  11600. 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
  11601. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 201
  11602. 7520 .loc 1 3852 13
  11603. 7521 012a FB68 ldr r3, [r7, #12]
  11604. 7522 012c DB6B ldr r3, [r3, #60]
  11605. 7523 .loc 1 3852 41
  11606. 7524 012e 464A ldr r2, .L381+16
  11607. 7525 0130 1A63 str r2, [r3, #48]
  11608. 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11609. 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  11610. 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
  11611. 7526 .loc 1 3855 13
  11612. 7527 0132 FB68 ldr r3, [r7, #12]
  11613. 7528 0134 DB6B ldr r3, [r3, #60]
  11614. 7529 .loc 1 3855 44
  11615. 7530 0136 0022 movs r2, #0
  11616. 7531 0138 DA62 str r2, [r3, #44]
  11617. 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
  11618. 7532 .loc 1 3856 13
  11619. 7533 013a FB68 ldr r3, [r7, #12]
  11620. 7534 013c DB6B ldr r3, [r3, #60]
  11621. 7535 .loc 1 3856 41
  11622. 7536 013e 0022 movs r2, #0
  11623. 7537 0140 5A63 str r2, [r3, #52]
  11624. 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11625. 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  11626. 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
  11627. 7538 .loc 1 3859 25
  11628. 7539 0142 FB68 ldr r3, [r7, #12]
  11629. 7540 0144 D86B ldr r0, [r3, #60]
  11630. 7541 .loc 1 3859 71
  11631. 7542 0146 FB68 ldr r3, [r7, #12]
  11632. 7543 0148 1B68 ldr r3, [r3]
  11633. 7544 .loc 1 3859 66
  11634. 7545 014a 2433 adds r3, r3, #36
  11635. 7546 .loc 1 3859 25
  11636. 7547 014c 1946 mov r1, r3
  11637. 7548 014e 7A68 ldr r2, [r7, #4]
  11638. 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  11639. 7549 .loc 1 3860 46
  11640. 7550 0150 FB68 ldr r3, [r7, #12]
  11641. 7551 0152 1B8D ldrh r3, [r3, #40]
  11642. 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  11643. 7552 .loc 1 3859 25
  11644. 7553 0154 FFF7FEFF bl HAL_DMA_Start_IT
  11645. 7554 0158 0346 mov r3, r0
  11646. 7555 015a FB75 strb r3, [r7, #23]
  11647. 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11648. 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11649. 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11650. 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  11651. 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  11652. 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  11653. 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11654. 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  11655. 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  11656. 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11657. 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  11658. 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  11659. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 202
  11660. 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11661. 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  11662. 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11663. 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11664. 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  11665. 7556 .loc 1 3877 10
  11666. 7557 015c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  11667. 7558 015e 002B cmp r3, #0
  11668. 7559 0160 38D1 bne .L378
  11669. 7560 0162 13E0 b .L380
  11670. 7561 .L376:
  11671. 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  11672. 7562 .loc 1 3865 25
  11673. 7563 0164 FB68 ldr r3, [r7, #12]
  11674. 7564 0166 2022 movs r2, #32
  11675. 7565 0168 83F84120 strb r2, [r3, #65]
  11676. 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11677. 7566 .loc 1 3866 25
  11678. 7567 016c FB68 ldr r3, [r7, #12]
  11679. 7568 016e 0022 movs r2, #0
  11680. 7569 0170 83F84220 strb r2, [r3, #66]
  11681. 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11682. 7570 .loc 1 3869 25
  11683. 7571 0174 FB68 ldr r3, [r7, #12]
  11684. 7572 0176 5B6C ldr r3, [r3, #68]
  11685. 7573 0178 43F08002 orr r2, r3, #128
  11686. 7574 017c FB68 ldr r3, [r7, #12]
  11687. 7575 017e 5A64 str r2, [r3, #68]
  11688. 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11689. 7576 .loc 1 3872 9
  11690. 7577 0180 FB68 ldr r3, [r7, #12]
  11691. 7578 0182 0022 movs r2, #0
  11692. 7579 0184 83F84020 strb r2, [r3, #64]
  11693. 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11694. 7580 .loc 1 3874 16
  11695. 7581 0188 0123 movs r3, #1
  11696. 7582 018a 50E0 b .L367
  11697. 7583 .L380:
  11698. 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11699. 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
  11700. 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
  11701. 7584 .loc 1 3880 59
  11702. 7585 018c FB68 ldr r3, [r7, #12]
  11703. 7586 018e 1B8D ldrh r3, [r3, #40]
  11704. 7587 .loc 1 3880 9
  11705. 7588 0190 DAB2 uxtb r2, r3
  11706. 7589 0192 7989 ldrh r1, [r7, #10]
  11707. 7590 0194 BB69 ldr r3, [r7, #24]
  11708. 7591 0196 0093 str r3, [sp]
  11709. 7592 0198 FB69 ldr r3, [r7, #28]
  11710. 7593 019a F868 ldr r0, [r7, #12]
  11711. 7594 019c FFF7FEFF bl I2C_TransferConfig
  11712. 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11713. 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  11714. 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  11715. 7595 .loc 1 3883 25
  11716. 7596 01a0 FB68 ldr r3, [r7, #12]
  11717. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 203
  11718. 7597 01a2 5B8D ldrh r3, [r3, #42] @ movhi
  11719. 7598 01a4 9AB2 uxth r2, r3
  11720. 7599 .loc 1 3883 32
  11721. 7600 01a6 FB68 ldr r3, [r7, #12]
  11722. 7601 01a8 1B8D ldrh r3, [r3, #40]
  11723. 7602 .loc 1 3883 25
  11724. 7603 01aa D31A subs r3, r2, r3
  11725. 7604 01ac 9AB2 uxth r2, r3
  11726. 7605 01ae FB68 ldr r3, [r7, #12]
  11727. 7606 01b0 5A85 strh r2, [r3, #42] @ movhi
  11728. 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11729. 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  11730. 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  11731. 7607 .loc 1 3886 9
  11732. 7608 01b2 FB68 ldr r3, [r7, #12]
  11733. 7609 01b4 0022 movs r2, #0
  11734. 7610 01b6 83F84020 strb r2, [r3, #64]
  11735. 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11736. 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  11737. 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  11738. 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  11739. 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
  11740. 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
  11741. 7611 .loc 1 3892 9
  11742. 7612 01ba 1021 movs r1, #16
  11743. 7613 01bc F868 ldr r0, [r7, #12]
  11744. 7614 01be FFF7FEFF bl I2C_Enable_IRQ
  11745. 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11746. 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  11747. 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
  11748. 7615 .loc 1 3895 13
  11749. 7616 01c2 FB68 ldr r3, [r7, #12]
  11750. 7617 01c4 1B68 ldr r3, [r3]
  11751. 7618 .loc 1 3895 29
  11752. 7619 01c6 1A68 ldr r2, [r3]
  11753. 7620 .loc 1 3895 13
  11754. 7621 01c8 FB68 ldr r3, [r7, #12]
  11755. 7622 01ca 1B68 ldr r3, [r3]
  11756. 7623 .loc 1 3895 29
  11757. 7624 01cc 42F40042 orr r2, r2, #32768
  11758. 7625 01d0 1A60 str r2, [r3]
  11759. 7626 01d2 29E0 b .L379
  11760. 7627 .L378:
  11761. 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11762. 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11763. 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11764. 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  11765. 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  11766. 7628 .loc 1 3900 25
  11767. 7629 01d4 FB68 ldr r3, [r7, #12]
  11768. 7630 01d6 2022 movs r2, #32
  11769. 7631 01d8 83F84120 strb r2, [r3, #65]
  11770. 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  11771. 7632 .loc 1 3901 25
  11772. 7633 01dc FB68 ldr r3, [r7, #12]
  11773. 7634 01de 0022 movs r2, #0
  11774. 7635 01e0 83F84220 strb r2, [r3, #66]
  11775. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 204
  11776. 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11777. 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  11778. 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  11779. 7636 .loc 1 3904 25
  11780. 7637 01e4 FB68 ldr r3, [r7, #12]
  11781. 7638 01e6 5B6C ldr r3, [r3, #68]
  11782. 7639 01e8 43F01002 orr r2, r3, #16
  11783. 7640 01ec FB68 ldr r3, [r7, #12]
  11784. 7641 01ee 5A64 str r2, [r3, #68]
  11785. 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11786. 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  11787. 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  11788. 7642 .loc 1 3907 9
  11789. 7643 01f0 FB68 ldr r3, [r7, #12]
  11790. 7644 01f2 0022 movs r2, #0
  11791. 7645 01f4 83F84020 strb r2, [r3, #64]
  11792. 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11793. 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  11794. 7646 .loc 1 3909 16
  11795. 7647 01f8 0123 movs r3, #1
  11796. 7648 01fa 18E0 b .L367
  11797. 7649 .L375:
  11798. 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11799. 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11800. 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11801. 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11802. 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
  11803. 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
  11804. 7650 .loc 1 3915 21
  11805. 7651 01fc FB68 ldr r3, [r7, #12]
  11806. 7652 01fe 134A ldr r2, .L381+20
  11807. 7653 0200 5A63 str r2, [r3, #52]
  11808. 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11809. 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
  11810. 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
  11811. 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
  11812. 7654 .loc 1 3919 57
  11813. 7655 0202 FB68 ldr r3, [r7, #12]
  11814. 7656 0204 1B8D ldrh r3, [r3, #40]
  11815. 7657 .loc 1 3919 7
  11816. 7658 0206 DAB2 uxtb r2, r3
  11817. 7659 0208 7989 ldrh r1, [r7, #10]
  11818. 7660 020a 0B4B ldr r3, .L381
  11819. 7661 020c 0093 str r3, [sp]
  11820. 7662 020e 4FF00073 mov r3, #33554432
  11821. 7663 0212 F868 ldr r0, [r7, #12]
  11822. 7664 0214 FFF7FEFF bl I2C_TransferConfig
  11823. 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
  11824. 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11825. 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  11826. 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  11827. 7665 .loc 1 3923 7
  11828. 7666 0218 FB68 ldr r3, [r7, #12]
  11829. 7667 021a 0022 movs r2, #0
  11830. 7668 021c 83F84020 strb r2, [r3, #64]
  11831. 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11832. 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  11833. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 205
  11834. 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  11835. 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  11836. 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
  11837. 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
  11838. 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
  11839. 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
  11840. 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
  11841. 7669 .loc 1 3932 7
  11842. 7670 0220 0221 movs r1, #2
  11843. 7671 0222 F868 ldr r0, [r7, #12]
  11844. 7672 0224 FFF7FEFF bl I2C_Enable_IRQ
  11845. 7673 .L379:
  11846. 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11847. 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11848. 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  11849. 7674 .loc 1 3935 12
  11850. 7675 0228 0023 movs r3, #0
  11851. 7676 022a 00E0 b .L367
  11852. 7677 .L365:
  11853. 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11854. 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  11855. 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11856. 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  11857. 7678 .loc 1 3939 12
  11858. 7679 022c 0223 movs r3, #2
  11859. 7680 .L367:
  11860. 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11861. 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  11862. 7681 .loc 1 3941 1
  11863. 7682 022e 1846 mov r0, r3
  11864. 7683 0230 2037 adds r7, r7, #32
  11865. 7684 .LCFI135:
  11866. 7685 .cfi_def_cfa_offset 8
  11867. 7686 0232 BD46 mov sp, r7
  11868. 7687 .LCFI136:
  11869. 7688 .cfi_def_cfa_register 13
  11870. 7689 @ sp needed
  11871. 7690 0234 80BD pop {r7, pc}
  11872. 7691 .L382:
  11873. 7692 0236 00BF .align 2
  11874. 7693 .L381:
  11875. 7694 0238 00240080 .word -2147474432
  11876. 7695 023c 00000000 .word .LC0
  11877. 7696 0240 00000000 .word I2C_Master_ISR_DMA
  11878. 7697 0244 00000000 .word I2C_DMAMasterReceiveCplt
  11879. 7698 0248 00000000 .word I2C_DMAError
  11880. 7699 024c 00000000 .word I2C_Master_ISR_IT
  11881. 7700 .cfi_endproc
  11882. 7701 .LFE156:
  11883. 7703 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
  11884. 7704 .align 1
  11885. 7705 .global HAL_I2C_Slave_Seq_Transmit_IT
  11886. 7706 .syntax unified
  11887. 7707 .thumb
  11888. 7708 .thumb_func
  11889. 7710 HAL_I2C_Slave_Seq_Transmit_IT:
  11890. 7711 .LFB157:
  11891. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 206
  11892. 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11893. 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  11894. 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
  11895. 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  11896. 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  11897. 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  11898. 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  11899. 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  11900. 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  11901. 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  11902. 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  11903. 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
  11904. 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
  11905. 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11906. 7712 .loc 1 3955 1
  11907. 7713 .cfi_startproc
  11908. 7714 @ args = 0, pretend = 0, frame = 24
  11909. 7715 @ frame_needed = 1, uses_anonymous_args = 0
  11910. 7716 0000 80B5 push {r7, lr}
  11911. 7717 .LCFI137:
  11912. 7718 .cfi_def_cfa_offset 8
  11913. 7719 .cfi_offset 7, -8
  11914. 7720 .cfi_offset 14, -4
  11915. 7721 0002 86B0 sub sp, sp, #24
  11916. 7722 .LCFI138:
  11917. 7723 .cfi_def_cfa_offset 32
  11918. 7724 0004 00AF add r7, sp, #0
  11919. 7725 .LCFI139:
  11920. 7726 .cfi_def_cfa_register 7
  11921. 7727 0006 F860 str r0, [r7, #12]
  11922. 7728 0008 B960 str r1, [r7, #8]
  11923. 7729 000a 3B60 str r3, [r7]
  11924. 7730 000c 1346 mov r3, r2 @ movhi
  11925. 7731 000e FB80 strh r3, [r7, #6] @ movhi
  11926. 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
  11927. 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
  11928. 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11929. 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  11930. 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  11931. 7732 .loc 1 3960 3
  11932. 7733 0010 3B68 ldr r3, [r7]
  11933. 7734 0012 002B cmp r3, #0
  11934. 7735 0014 1ED0 beq .L384
  11935. 7736 .loc 1 3960 3 is_stmt 0 discriminator 1
  11936. 7737 0016 3B68 ldr r3, [r7]
  11937. 7738 0018 B3F1807F cmp r3, #16777216
  11938. 7739 001c 1AD0 beq .L384
  11939. 7740 .loc 1 3960 3 discriminator 2
  11940. 7741 001e 3B68 ldr r3, [r7]
  11941. 7742 0020 B3F1807F cmp r3, #16777216
  11942. 7743 0024 16D0 beq .L384
  11943. 7744 .loc 1 3960 3 discriminator 3
  11944. 7745 0026 3B68 ldr r3, [r7]
  11945. 7746 0028 B3F1007F cmp r3, #33554432
  11946. 7747 002c 12D0 beq .L384
  11947. 7748 .loc 1 3960 3 discriminator 4
  11948. 7749 002e 3B68 ldr r3, [r7]
  11949. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 207
  11950. 7750 0030 B3F1007F cmp r3, #33554432
  11951. 7751 0034 0ED0 beq .L384
  11952. 7752 .loc 1 3960 3 discriminator 5
  11953. 7753 0036 3B68 ldr r3, [r7]
  11954. 7754 0038 002B cmp r3, #0
  11955. 7755 003a 0BD0 beq .L384
  11956. 7756 .loc 1 3960 3 discriminator 6
  11957. 7757 003c 3B68 ldr r3, [r7]
  11958. 7758 003e AA2B cmp r3, #170
  11959. 7759 0040 08D0 beq .L384
  11960. 7760 .loc 1 3960 3 discriminator 7
  11961. 7761 0042 3B68 ldr r3, [r7]
  11962. 7762 0044 B3F52A4F cmp r3, #43520
  11963. 7763 0048 04D0 beq .L384
  11964. 7764 .loc 1 3960 3 discriminator 8
  11965. 7765 004a 40F67871 movw r1, #3960
  11966. 7766 004e 5448 ldr r0, .L392
  11967. 7767 0050 FFF7FEFF bl assert_failed
  11968. 7768 .L384:
  11969. 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  11970. 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
  11971. 7769 .loc 1 3962 22 is_stmt 1
  11972. 7770 0054 FB68 ldr r3, [r7, #12]
  11973. 7771 0056 93F84130 ldrb r3, [r3, #65]
  11974. 7772 005a DBB2 uxtb r3, r3
  11975. 7773 .loc 1 3962 30
  11976. 7774 005c 03F02803 and r3, r3, #40
  11977. 7775 .loc 1 3962 6
  11978. 7776 0060 282B cmp r3, #40
  11979. 7777 0062 40F09880 bne .L385
  11980. 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11981. 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  11982. 7778 .loc 1 3964 8
  11983. 7779 0066 BB68 ldr r3, [r7, #8]
  11984. 7780 0068 002B cmp r3, #0
  11985. 7781 006a 02D0 beq .L386
  11986. 7782 .loc 1 3964 25 discriminator 1
  11987. 7783 006c FB88 ldrh r3, [r7, #6]
  11988. 7784 006e 002B cmp r3, #0
  11989. 7785 0070 05D1 bne .L387
  11990. 7786 .L386:
  11991. 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  11992. 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  11993. 7787 .loc 1 3966 23
  11994. 7788 0072 FB68 ldr r3, [r7, #12]
  11995. 7789 0074 4FF40072 mov r2, #512
  11996. 7790 0078 5A64 str r2, [r3, #68]
  11997. 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  11998. 7791 .loc 1 3967 15
  11999. 7792 007a 0123 movs r3, #1
  12000. 7793 007c 8CE0 b .L388
  12001. 7794 .L387:
  12002. 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12003. 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12004. 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
  12005. 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
  12006. 7795 .loc 1 3971 5
  12007. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 208
  12008. 7796 007e 48F20101 movw r1, #32769
  12009. 7797 0082 F868 ldr r0, [r7, #12]
  12010. 7798 0084 FFF7FEFF bl I2C_Disable_IRQ
  12011. 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12012. 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  12013. 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  12014. 7799 .loc 1 3974 5
  12015. 7800 0088 FB68 ldr r3, [r7, #12]
  12016. 7801 008a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  12017. 7802 008e 012B cmp r3, #1
  12018. 7803 0090 01D1 bne .L389
  12019. 7804 .loc 1 3974 5 is_stmt 0 discriminator 1
  12020. 7805 0092 0223 movs r3, #2
  12021. 7806 0094 80E0 b .L388
  12022. 7807 .L389:
  12023. 7808 .loc 1 3974 5 discriminator 2
  12024. 7809 0096 FB68 ldr r3, [r7, #12]
  12025. 7810 0098 0122 movs r2, #1
  12026. 7811 009a 83F84020 strb r2, [r3, #64]
  12027. 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12028. 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
  12029. 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
  12030. 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
  12031. 7812 .loc 1 3978 13 is_stmt 1 discriminator 2
  12032. 7813 009e FB68 ldr r3, [r7, #12]
  12033. 7814 00a0 93F84130 ldrb r3, [r3, #65]
  12034. 7815 00a4 DBB2 uxtb r3, r3
  12035. 7816 .loc 1 3978 8 discriminator 2
  12036. 7817 00a6 2A2B cmp r3, #42
  12037. 7818 00a8 2AD1 bne .L390
  12038. 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12039. 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
  12040. 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
  12041. 7819 .loc 1 3981 7
  12042. 7820 00aa 0221 movs r1, #2
  12043. 7821 00ac F868 ldr r0, [r7, #12]
  12044. 7822 00ae FFF7FEFF bl I2C_Disable_IRQ
  12045. 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12046. 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
  12047. 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
  12048. 7823 .loc 1 3984 16
  12049. 7824 00b2 FB68 ldr r3, [r7, #12]
  12050. 7825 00b4 1B68 ldr r3, [r3]
  12051. 7826 .loc 1 3984 26
  12052. 7827 00b6 1B68 ldr r3, [r3]
  12053. 7828 .loc 1 3984 32
  12054. 7829 00b8 03F40043 and r3, r3, #32768
  12055. 7830 .loc 1 3984 10
  12056. 7831 00bc B3F5004F cmp r3, #32768
  12057. 7832 00c0 1ED1 bne .L390
  12058. 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12059. 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  12060. 7833 .loc 1 3986 13
  12061. 7834 00c2 FB68 ldr r3, [r7, #12]
  12062. 7835 00c4 1B68 ldr r3, [r3]
  12063. 7836 .loc 1 3986 29
  12064. 7837 00c6 1A68 ldr r2, [r3]
  12065. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 209
  12066. 7838 .loc 1 3986 13
  12067. 7839 00c8 FB68 ldr r3, [r7, #12]
  12068. 7840 00ca 1B68 ldr r3, [r3]
  12069. 7841 .loc 1 3986 29
  12070. 7842 00cc 22F40042 bic r2, r2, #32768
  12071. 7843 00d0 1A60 str r2, [r3]
  12072. 3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12073. 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  12074. 7844 .loc 1 3988 17
  12075. 7845 00d2 FB68 ldr r3, [r7, #12]
  12076. 7846 00d4 DB6B ldr r3, [r3, #60]
  12077. 7847 .loc 1 3988 12
  12078. 7848 00d6 002B cmp r3, #0
  12079. 7849 00d8 12D0 beq .L390
  12080. 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12081. 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  12082. 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  12083. 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
  12084. 7850 .loc 1 3992 15
  12085. 7851 00da FB68 ldr r3, [r7, #12]
  12086. 7852 00dc DB6B ldr r3, [r3, #60]
  12087. 7853 .loc 1 3992 43
  12088. 7854 00de 314A ldr r2, .L392+4
  12089. 7855 00e0 5A63 str r2, [r3, #52]
  12090. 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12091. 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
  12092. 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
  12093. 7856 .loc 1 3995 15
  12094. 7857 00e2 FB68 ldr r3, [r7, #12]
  12095. 7858 00e4 DB6B ldr r3, [r3, #60]
  12096. 7859 00e6 1846 mov r0, r3
  12097. 7860 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
  12098. 7861 00ec 0346 mov r3, r0
  12099. 7862 .loc 1 3995 14
  12100. 7863 00ee 002B cmp r3, #0
  12101. 7864 00f0 06D0 beq .L390
  12102. 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12103. 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
  12104. 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
  12105. 7865 .loc 1 3998 17
  12106. 7866 00f2 FB68 ldr r3, [r7, #12]
  12107. 7867 00f4 DB6B ldr r3, [r3, #60]
  12108. 7868 .loc 1 3998 25
  12109. 7869 00f6 5B6B ldr r3, [r3, #52]
  12110. 7870 .loc 1 3998 49
  12111. 7871 00f8 FA68 ldr r2, [r7, #12]
  12112. 7872 00fa D26B ldr r2, [r2, #60]
  12113. 7873 .loc 1 3998 13
  12114. 7874 00fc 1046 mov r0, r2
  12115. 7875 00fe 9847 blx r3
  12116. 7876 .LVL0:
  12117. 7877 .L390:
  12118. 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12119. 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12120. 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12121. 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12122. 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12123. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 210
  12124. 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
  12125. 7878 .loc 1 4004 21
  12126. 7879 0100 FB68 ldr r3, [r7, #12]
  12127. 7880 0102 2922 movs r2, #41
  12128. 7881 0104 83F84120 strb r2, [r3, #65]
  12129. 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  12130. 7882 .loc 1 4005 21
  12131. 7883 0108 FB68 ldr r3, [r7, #12]
  12132. 7884 010a 2022 movs r2, #32
  12133. 7885 010c 83F84220 strb r2, [r3, #66]
  12134. 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  12135. 7886 .loc 1 4006 21
  12136. 7887 0110 FB68 ldr r3, [r7, #12]
  12137. 7888 0112 0022 movs r2, #0
  12138. 7889 0114 5A64 str r2, [r3, #68]
  12139. 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12140. 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  12141. 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  12142. 7890 .loc 1 4009 9
  12143. 7891 0116 FB68 ldr r3, [r7, #12]
  12144. 7892 0118 1B68 ldr r3, [r3]
  12145. 7893 .loc 1 4009 25
  12146. 7894 011a 5A68 ldr r2, [r3, #4]
  12147. 7895 .loc 1 4009 9
  12148. 7896 011c FB68 ldr r3, [r7, #12]
  12149. 7897 011e 1B68 ldr r3, [r3]
  12150. 7898 .loc 1 4009 25
  12151. 7899 0120 22F40042 bic r2, r2, #32768
  12152. 7900 0124 5A60 str r2, [r3, #4]
  12153. 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12154. 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  12155. 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  12156. 7901 .loc 1 4012 23
  12157. 7902 0126 FB68 ldr r3, [r7, #12]
  12158. 7903 0128 BA68 ldr r2, [r7, #8]
  12159. 7904 012a 5A62 str r2, [r3, #36]
  12160. 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  12161. 7905 .loc 1 4013 23
  12162. 7906 012c FB68 ldr r3, [r7, #12]
  12163. 7907 012e FA88 ldrh r2, [r7, #6] @ movhi
  12164. 7908 0130 5A85 strh r2, [r3, #42] @ movhi
  12165. 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  12166. 7909 .loc 1 4014 29
  12167. 7910 0132 FB68 ldr r3, [r7, #12]
  12168. 7911 0134 5B8D ldrh r3, [r3, #42] @ movhi
  12169. 7912 0136 9AB2 uxth r2, r3
  12170. 7913 .loc 1 4014 23
  12171. 7914 0138 FB68 ldr r3, [r7, #12]
  12172. 7915 013a 1A85 strh r2, [r3, #40] @ movhi
  12173. 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  12174. 7916 .loc 1 4015 23
  12175. 7917 013c FB68 ldr r3, [r7, #12]
  12176. 7918 013e 3A68 ldr r2, [r7]
  12177. 7919 0140 DA62 str r2, [r3, #44]
  12178. 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
  12179. 7920 .loc 1 4016 23
  12180. 7921 0142 FB68 ldr r3, [r7, #12]
  12181. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 211
  12182. 7922 0144 184A ldr r2, .L392+8
  12183. 7923 0146 5A63 str r2, [r3, #52]
  12184. 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12185. 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
  12186. 7924 .loc 1 4018 11
  12187. 7925 0148 FB68 ldr r3, [r7, #12]
  12188. 7926 014a 1B68 ldr r3, [r3]
  12189. 7927 014c 9B69 ldr r3, [r3, #24]
  12190. 7928 014e 03F00803 and r3, r3, #8
  12191. 7929 0152 082B cmp r3, #8
  12192. 7930 0154 0CBF ite eq
  12193. 7931 0156 0123 moveq r3, #1
  12194. 7932 0158 0023 movne r3, #0
  12195. 7933 015a DBB2 uxtb r3, r3
  12196. 7934 .loc 1 4018 9
  12197. 7935 015c FB75 strb r3, [r7, #23]
  12198. 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
  12199. 7936 .loc 1 4019 10
  12200. 7937 015e FB68 ldr r3, [r7, #12]
  12201. 7938 0160 1B68 ldr r3, [r3]
  12202. 7939 0162 9B69 ldr r3, [r3, #24]
  12203. 7940 0164 1B0C lsrs r3, r3, #16
  12204. 7941 0166 DBB2 uxtb r3, r3
  12205. 7942 0168 03F00103 and r3, r3, #1
  12206. 7943 016c DBB2 uxtb r3, r3
  12207. 7944 .loc 1 4019 8
  12208. 7945 016e 012B cmp r3, #1
  12209. 7946 0170 06D1 bne .L391
  12210. 7947 .loc 1 4019 54 discriminator 1
  12211. 7948 0172 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  12212. 7949 0174 002B cmp r3, #0
  12213. 7950 0176 03D0 beq .L391
  12214. 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12215. 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
  12216. 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
  12217. 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  12218. 7951 .loc 1 4023 7
  12219. 7952 0178 FB68 ldr r3, [r7, #12]
  12220. 7953 017a 1B68 ldr r3, [r3]
  12221. 7954 017c 0822 movs r2, #8
  12222. 7955 017e DA61 str r2, [r3, #28]
  12223. 7956 .L391:
  12224. 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12225. 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12226. 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  12227. 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  12228. 7957 .loc 1 4027 5
  12229. 7958 0180 FB68 ldr r3, [r7, #12]
  12230. 7959 0182 0022 movs r2, #0
  12231. 7960 0184 83F84020 strb r2, [r3, #64]
  12232. 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12233. 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  12234. 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  12235. 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  12236. 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
  12237. 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
  12238. 7961 .loc 1 4033 5
  12239. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 212
  12240. 7962 0188 48F20101 movw r1, #32769
  12241. 7963 018c F868 ldr r0, [r7, #12]
  12242. 7964 018e FFF7FEFF bl I2C_Enable_IRQ
  12243. 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12244. 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  12245. 7965 .loc 1 4035 12
  12246. 7966 0192 0023 movs r3, #0
  12247. 7967 0194 00E0 b .L388
  12248. 7968 .L385:
  12249. 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12250. 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  12251. 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12252. 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  12253. 7969 .loc 1 4039 12
  12254. 7970 0196 0123 movs r3, #1
  12255. 7971 .L388:
  12256. 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12257. 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12258. 7972 .loc 1 4041 1
  12259. 7973 0198 1846 mov r0, r3
  12260. 7974 019a 1837 adds r7, r7, #24
  12261. 7975 .LCFI140:
  12262. 7976 .cfi_def_cfa_offset 8
  12263. 7977 019c BD46 mov sp, r7
  12264. 7978 .LCFI141:
  12265. 7979 .cfi_def_cfa_register 13
  12266. 7980 @ sp needed
  12267. 7981 019e 80BD pop {r7, pc}
  12268. 7982 .L393:
  12269. 7983 .align 2
  12270. 7984 .L392:
  12271. 7985 01a0 00000000 .word .LC0
  12272. 7986 01a4 00000000 .word I2C_DMAAbort
  12273. 7987 01a8 00000000 .word I2C_Slave_ISR_IT
  12274. 7988 .cfi_endproc
  12275. 7989 .LFE157:
  12276. 7991 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
  12277. 7992 .align 1
  12278. 7993 .global HAL_I2C_Slave_Seq_Transmit_DMA
  12279. 7994 .syntax unified
  12280. 7995 .thumb
  12281. 7996 .thumb_func
  12282. 7998 HAL_I2C_Slave_Seq_Transmit_DMA:
  12283. 7999 .LFB158:
  12284. 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12285. 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  12286. 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
  12287. 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  12288. 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  12289. 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  12290. 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  12291. 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  12292. 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  12293. 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  12294. 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  12295. 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t
  12296. 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
  12297. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 213
  12298. 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12299. 8000 .loc 1 4055 1
  12300. 8001 .cfi_startproc
  12301. 8002 @ args = 0, pretend = 0, frame = 24
  12302. 8003 @ frame_needed = 1, uses_anonymous_args = 0
  12303. 8004 0000 80B5 push {r7, lr}
  12304. 8005 .LCFI142:
  12305. 8006 .cfi_def_cfa_offset 8
  12306. 8007 .cfi_offset 7, -8
  12307. 8008 .cfi_offset 14, -4
  12308. 8009 0002 86B0 sub sp, sp, #24
  12309. 8010 .LCFI143:
  12310. 8011 .cfi_def_cfa_offset 32
  12311. 8012 0004 00AF add r7, sp, #0
  12312. 8013 .LCFI144:
  12313. 8014 .cfi_def_cfa_register 7
  12314. 8015 0006 F860 str r0, [r7, #12]
  12315. 8016 0008 B960 str r1, [r7, #8]
  12316. 8017 000a 3B60 str r3, [r7]
  12317. 8018 000c 1346 mov r3, r2 @ movhi
  12318. 8019 000e FB80 strh r3, [r7, #6] @ movhi
  12319. 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
  12320. 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
  12321. 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  12322. 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12323. 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  12324. 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  12325. 8020 .loc 1 4061 3
  12326. 8021 0010 3B68 ldr r3, [r7]
  12327. 8022 0012 002B cmp r3, #0
  12328. 8023 0014 1ED0 beq .L395
  12329. 8024 .loc 1 4061 3 is_stmt 0 discriminator 1
  12330. 8025 0016 3B68 ldr r3, [r7]
  12331. 8026 0018 B3F1807F cmp r3, #16777216
  12332. 8027 001c 1AD0 beq .L395
  12333. 8028 .loc 1 4061 3 discriminator 2
  12334. 8029 001e 3B68 ldr r3, [r7]
  12335. 8030 0020 B3F1807F cmp r3, #16777216
  12336. 8031 0024 16D0 beq .L395
  12337. 8032 .loc 1 4061 3 discriminator 3
  12338. 8033 0026 3B68 ldr r3, [r7]
  12339. 8034 0028 B3F1007F cmp r3, #33554432
  12340. 8035 002c 12D0 beq .L395
  12341. 8036 .loc 1 4061 3 discriminator 4
  12342. 8037 002e 3B68 ldr r3, [r7]
  12343. 8038 0030 B3F1007F cmp r3, #33554432
  12344. 8039 0034 0ED0 beq .L395
  12345. 8040 .loc 1 4061 3 discriminator 5
  12346. 8041 0036 3B68 ldr r3, [r7]
  12347. 8042 0038 002B cmp r3, #0
  12348. 8043 003a 0BD0 beq .L395
  12349. 8044 .loc 1 4061 3 discriminator 6
  12350. 8045 003c 3B68 ldr r3, [r7]
  12351. 8046 003e AA2B cmp r3, #170
  12352. 8047 0040 08D0 beq .L395
  12353. 8048 .loc 1 4061 3 discriminator 7
  12354. 8049 0042 3B68 ldr r3, [r7]
  12355. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 214
  12356. 8050 0044 B3F52A4F cmp r3, #43520
  12357. 8051 0048 04D0 beq .L395
  12358. 8052 .loc 1 4061 3 discriminator 8
  12359. 8053 004a 40F6DD71 movw r1, #4061
  12360. 8054 004e 9A48 ldr r0, .L410
  12361. 8055 0050 FFF7FEFF bl assert_failed
  12362. 8056 .L395:
  12363. 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12364. 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
  12365. 8057 .loc 1 4063 22 is_stmt 1
  12366. 8058 0054 FB68 ldr r3, [r7, #12]
  12367. 8059 0056 93F84130 ldrb r3, [r3, #65]
  12368. 8060 005a DBB2 uxtb r3, r3
  12369. 8061 .loc 1 4063 30
  12370. 8062 005c 03F02803 and r3, r3, #40
  12371. 8063 .loc 1 4063 6
  12372. 8064 0060 282B cmp r3, #40
  12373. 8065 0062 40F03381 bne .L396
  12374. 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12375. 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  12376. 8066 .loc 1 4065 8
  12377. 8067 0066 BB68 ldr r3, [r7, #8]
  12378. 8068 0068 002B cmp r3, #0
  12379. 8069 006a 02D0 beq .L397
  12380. 8070 .loc 1 4065 25 discriminator 1
  12381. 8071 006c FB88 ldrh r3, [r7, #6]
  12382. 8072 006e 002B cmp r3, #0
  12383. 8073 0070 05D1 bne .L398
  12384. 8074 .L397:
  12385. 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12386. 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  12387. 8075 .loc 1 4067 23
  12388. 8076 0072 FB68 ldr r3, [r7, #12]
  12389. 8077 0074 4FF40072 mov r2, #512
  12390. 8078 0078 5A64 str r2, [r3, #68]
  12391. 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  12392. 8079 .loc 1 4068 15
  12393. 8080 007a 0123 movs r3, #1
  12394. 8081 007c 27E1 b .L399
  12395. 8082 .L398:
  12396. 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12397. 4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12398. 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  12399. 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  12400. 8083 .loc 1 4072 5
  12401. 8084 007e FB68 ldr r3, [r7, #12]
  12402. 8085 0080 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  12403. 8086 0084 012B cmp r3, #1
  12404. 8087 0086 01D1 bne .L400
  12405. 8088 .loc 1 4072 5 is_stmt 0 discriminator 1
  12406. 8089 0088 0223 movs r3, #2
  12407. 8090 008a 20E1 b .L399
  12408. 8091 .L400:
  12409. 8092 .loc 1 4072 5 discriminator 2
  12410. 8093 008c FB68 ldr r3, [r7, #12]
  12411. 8094 008e 0122 movs r2, #1
  12412. 8095 0090 83F84020 strb r2, [r3, #64]
  12413. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 215
  12414. 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12415. 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
  12416. 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
  12417. 8096 .loc 1 4075 5 is_stmt 1 discriminator 2
  12418. 8097 0094 48F20101 movw r1, #32769
  12419. 8098 0098 F868 ldr r0, [r7, #12]
  12420. 8099 009a FFF7FEFF bl I2C_Disable_IRQ
  12421. 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12422. 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
  12423. 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
  12424. 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
  12425. 8100 .loc 1 4079 13 discriminator 2
  12426. 8101 009e FB68 ldr r3, [r7, #12]
  12427. 8102 00a0 93F84130 ldrb r3, [r3, #65]
  12428. 8103 00a4 DBB2 uxtb r3, r3
  12429. 8104 .loc 1 4079 8 discriminator 2
  12430. 8105 00a6 2A2B cmp r3, #42
  12431. 8106 00a8 2BD1 bne .L401
  12432. 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12433. 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
  12434. 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
  12435. 8107 .loc 1 4082 7
  12436. 8108 00aa 0221 movs r1, #2
  12437. 8109 00ac F868 ldr r0, [r7, #12]
  12438. 8110 00ae FFF7FEFF bl I2C_Disable_IRQ
  12439. 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12440. 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
  12441. 8111 .loc 1 4084 16
  12442. 8112 00b2 FB68 ldr r3, [r7, #12]
  12443. 8113 00b4 1B68 ldr r3, [r3]
  12444. 8114 .loc 1 4084 26
  12445. 8115 00b6 1B68 ldr r3, [r3]
  12446. 8116 .loc 1 4084 32
  12447. 8117 00b8 03F40043 and r3, r3, #32768
  12448. 8118 .loc 1 4084 10
  12449. 8119 00bc B3F5004F cmp r3, #32768
  12450. 8120 00c0 4CD1 bne .L402
  12451. 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12452. 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
  12453. 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  12454. 8121 .loc 1 4087 17
  12455. 8122 00c2 FB68 ldr r3, [r7, #12]
  12456. 8123 00c4 DB6B ldr r3, [r3, #60]
  12457. 8124 .loc 1 4087 12
  12458. 8125 00c6 002B cmp r3, #0
  12459. 8126 00c8 48D0 beq .L402
  12460. 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12461. 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  12462. 8127 .loc 1 4089 15
  12463. 8128 00ca FB68 ldr r3, [r7, #12]
  12464. 8129 00cc 1B68 ldr r3, [r3]
  12465. 8130 .loc 1 4089 31
  12466. 8131 00ce 1A68 ldr r2, [r3]
  12467. 8132 .loc 1 4089 15
  12468. 8133 00d0 FB68 ldr r3, [r7, #12]
  12469. 8134 00d2 1B68 ldr r3, [r3]
  12470. 8135 .loc 1 4089 31
  12471. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 216
  12472. 8136 00d4 22F40042 bic r2, r2, #32768
  12473. 8137 00d8 1A60 str r2, [r3]
  12474. 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12475. 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  12476. 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  12477. 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
  12478. 8138 .loc 1 4093 15
  12479. 8139 00da FB68 ldr r3, [r7, #12]
  12480. 8140 00dc DB6B ldr r3, [r3, #60]
  12481. 8141 .loc 1 4093 43
  12482. 8142 00de 774A ldr r2, .L410+4
  12483. 8143 00e0 5A63 str r2, [r3, #52]
  12484. 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12485. 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
  12486. 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
  12487. 8144 .loc 1 4096 15
  12488. 8145 00e2 FB68 ldr r3, [r7, #12]
  12489. 8146 00e4 DB6B ldr r3, [r3, #60]
  12490. 8147 00e6 1846 mov r0, r3
  12491. 8148 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
  12492. 8149 00ec 0346 mov r3, r0
  12493. 8150 .loc 1 4096 14
  12494. 8151 00ee 002B cmp r3, #0
  12495. 8152 00f0 34D0 beq .L402
  12496. 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12497. 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
  12498. 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
  12499. 8153 .loc 1 4099 17
  12500. 8154 00f2 FB68 ldr r3, [r7, #12]
  12501. 8155 00f4 DB6B ldr r3, [r3, #60]
  12502. 8156 .loc 1 4099 25
  12503. 8157 00f6 5B6B ldr r3, [r3, #52]
  12504. 8158 .loc 1 4099 49
  12505. 8159 00f8 FA68 ldr r2, [r7, #12]
  12506. 8160 00fa D26B ldr r2, [r2, #60]
  12507. 8161 .loc 1 4099 13
  12508. 8162 00fc 1046 mov r0, r2
  12509. 8163 00fe 9847 blx r3
  12510. 8164 .LVL1:
  12511. 8165 0100 2CE0 b .L402
  12512. 8166 .L401:
  12513. 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12514. 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12515. 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12516. 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12517. 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
  12518. 8167 .loc 1 4104 18
  12519. 8168 0102 FB68 ldr r3, [r7, #12]
  12520. 8169 0104 93F84130 ldrb r3, [r3, #65]
  12521. 8170 0108 DBB2 uxtb r3, r3
  12522. 8171 .loc 1 4104 13
  12523. 8172 010a 292B cmp r3, #41
  12524. 8173 010c 26D1 bne .L402
  12525. 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12526. 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
  12527. 8174 .loc 1 4106 16
  12528. 8175 010e FB68 ldr r3, [r7, #12]
  12529. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 217
  12530. 8176 0110 1B68 ldr r3, [r3]
  12531. 8177 .loc 1 4106 26
  12532. 8178 0112 1B68 ldr r3, [r3]
  12533. 8179 .loc 1 4106 32
  12534. 8180 0114 03F48043 and r3, r3, #16384
  12535. 8181 .loc 1 4106 10
  12536. 8182 0118 B3F5804F cmp r3, #16384
  12537. 8183 011c 1ED1 bne .L402
  12538. 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12539. 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  12540. 8184 .loc 1 4108 13
  12541. 8185 011e FB68 ldr r3, [r7, #12]
  12542. 8186 0120 1B68 ldr r3, [r3]
  12543. 8187 .loc 1 4108 29
  12544. 8188 0122 1A68 ldr r2, [r3]
  12545. 8189 .loc 1 4108 13
  12546. 8190 0124 FB68 ldr r3, [r7, #12]
  12547. 8191 0126 1B68 ldr r3, [r3]
  12548. 8192 .loc 1 4108 29
  12549. 8193 0128 22F48042 bic r2, r2, #16384
  12550. 8194 012c 1A60 str r2, [r3]
  12551. 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12552. 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
  12553. 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  12554. 8195 .loc 1 4111 17
  12555. 8196 012e FB68 ldr r3, [r7, #12]
  12556. 8197 0130 9B6B ldr r3, [r3, #56]
  12557. 8198 .loc 1 4111 12
  12558. 8199 0132 002B cmp r3, #0
  12559. 8200 0134 12D0 beq .L402
  12560. 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12561. 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  12562. 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  12563. 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
  12564. 8201 .loc 1 4115 15
  12565. 8202 0136 FB68 ldr r3, [r7, #12]
  12566. 8203 0138 9B6B ldr r3, [r3, #56]
  12567. 8204 .loc 1 4115 43
  12568. 8205 013a 604A ldr r2, .L410+4
  12569. 8206 013c 5A63 str r2, [r3, #52]
  12570. 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12571. 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
  12572. 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
  12573. 8207 .loc 1 4118 15
  12574. 8208 013e FB68 ldr r3, [r7, #12]
  12575. 8209 0140 9B6B ldr r3, [r3, #56]
  12576. 8210 0142 1846 mov r0, r3
  12577. 8211 0144 FFF7FEFF bl HAL_DMA_Abort_IT
  12578. 8212 0148 0346 mov r3, r0
  12579. 8213 .loc 1 4118 14
  12580. 8214 014a 002B cmp r3, #0
  12581. 8215 014c 06D0 beq .L402
  12582. 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12583. 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
  12584. 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
  12585. 8216 .loc 1 4121 17
  12586. 8217 014e FB68 ldr r3, [r7, #12]
  12587. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 218
  12588. 8218 0150 9B6B ldr r3, [r3, #56]
  12589. 8219 .loc 1 4121 25
  12590. 8220 0152 5B6B ldr r3, [r3, #52]
  12591. 8221 .loc 1 4121 49
  12592. 8222 0154 FA68 ldr r2, [r7, #12]
  12593. 8223 0156 926B ldr r2, [r2, #56]
  12594. 8224 .loc 1 4121 13
  12595. 8225 0158 1046 mov r0, r2
  12596. 8226 015a 9847 blx r3
  12597. 8227 .LVL2:
  12598. 8228 .L402:
  12599. 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12600. 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12601. 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12602. 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12603. 4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  12604. 4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12605. 4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  12606. 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12607. 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12608. 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
  12609. 8229 .loc 1 4131 21
  12610. 8230 015c FB68 ldr r3, [r7, #12]
  12611. 8231 015e 2922 movs r2, #41
  12612. 8232 0160 83F84120 strb r2, [r3, #65]
  12613. 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  12614. 8233 .loc 1 4132 21
  12615. 8234 0164 FB68 ldr r3, [r7, #12]
  12616. 8235 0166 2022 movs r2, #32
  12617. 8236 0168 83F84220 strb r2, [r3, #66]
  12618. 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  12619. 8237 .loc 1 4133 21
  12620. 8238 016c FB68 ldr r3, [r7, #12]
  12621. 8239 016e 0022 movs r2, #0
  12622. 8240 0170 5A64 str r2, [r3, #68]
  12623. 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12624. 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  12625. 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  12626. 8241 .loc 1 4136 9
  12627. 8242 0172 FB68 ldr r3, [r7, #12]
  12628. 8243 0174 1B68 ldr r3, [r3]
  12629. 8244 .loc 1 4136 25
  12630. 8245 0176 5A68 ldr r2, [r3, #4]
  12631. 8246 .loc 1 4136 9
  12632. 8247 0178 FB68 ldr r3, [r7, #12]
  12633. 8248 017a 1B68 ldr r3, [r3]
  12634. 8249 .loc 1 4136 25
  12635. 8250 017c 22F40042 bic r2, r2, #32768
  12636. 8251 0180 5A60 str r2, [r3, #4]
  12637. 4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12638. 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  12639. 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  12640. 8252 .loc 1 4139 23
  12641. 8253 0182 FB68 ldr r3, [r7, #12]
  12642. 8254 0184 BA68 ldr r2, [r7, #8]
  12643. 8255 0186 5A62 str r2, [r3, #36]
  12644. 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  12645. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 219
  12646. 8256 .loc 1 4140 23
  12647. 8257 0188 FB68 ldr r3, [r7, #12]
  12648. 8258 018a FA88 ldrh r2, [r7, #6] @ movhi
  12649. 8259 018c 5A85 strh r2, [r3, #42] @ movhi
  12650. 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  12651. 8260 .loc 1 4141 29
  12652. 8261 018e FB68 ldr r3, [r7, #12]
  12653. 8262 0190 5B8D ldrh r3, [r3, #42] @ movhi
  12654. 8263 0192 9AB2 uxth r2, r3
  12655. 8264 .loc 1 4141 23
  12656. 8265 0194 FB68 ldr r3, [r7, #12]
  12657. 8266 0196 1A85 strh r2, [r3, #40] @ movhi
  12658. 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  12659. 8267 .loc 1 4142 23
  12660. 8268 0198 FB68 ldr r3, [r7, #12]
  12661. 8269 019a 3A68 ldr r2, [r7]
  12662. 8270 019c DA62 str r2, [r3, #44]
  12663. 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
  12664. 8271 .loc 1 4143 23
  12665. 8272 019e FB68 ldr r3, [r7, #12]
  12666. 8273 01a0 474A ldr r2, .L410+8
  12667. 8274 01a2 5A63 str r2, [r3, #52]
  12668. 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12669. 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  12670. 8275 .loc 1 4145 13
  12671. 8276 01a4 FB68 ldr r3, [r7, #12]
  12672. 8277 01a6 9B6B ldr r3, [r3, #56]
  12673. 8278 .loc 1 4145 8
  12674. 8279 01a8 002B cmp r3, #0
  12675. 8280 01aa 20D0 beq .L403
  12676. 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12677. 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  12678. 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
  12679. 8281 .loc 1 4148 11
  12680. 8282 01ac FB68 ldr r3, [r7, #12]
  12681. 8283 01ae 9B6B ldr r3, [r3, #56]
  12682. 8284 .loc 1 4148 38
  12683. 8285 01b0 444A ldr r2, .L410+12
  12684. 8286 01b2 9A62 str r2, [r3, #40]
  12685. 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12686. 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  12687. 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
  12688. 8287 .loc 1 4151 11
  12689. 8288 01b4 FB68 ldr r3, [r7, #12]
  12690. 8289 01b6 9B6B ldr r3, [r3, #56]
  12691. 8290 .loc 1 4151 39
  12692. 8291 01b8 434A ldr r2, .L410+16
  12693. 8292 01ba 1A63 str r2, [r3, #48]
  12694. 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12695. 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  12696. 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
  12697. 8293 .loc 1 4154 11
  12698. 8294 01bc FB68 ldr r3, [r7, #12]
  12699. 8295 01be 9B6B ldr r3, [r3, #56]
  12700. 8296 .loc 1 4154 42
  12701. 8297 01c0 0022 movs r2, #0
  12702. 8298 01c2 DA62 str r2, [r3, #44]
  12703. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 220
  12704. 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
  12705. 8299 .loc 1 4155 11
  12706. 8300 01c4 FB68 ldr r3, [r7, #12]
  12707. 8301 01c6 9B6B ldr r3, [r3, #56]
  12708. 8302 .loc 1 4155 39
  12709. 8303 01c8 0022 movs r2, #0
  12710. 8304 01ca 5A63 str r2, [r3, #52]
  12711. 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12712. 4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  12713. 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
  12714. 8305 .loc 1 4158 23
  12715. 8306 01cc FB68 ldr r3, [r7, #12]
  12716. 8307 01ce 986B ldr r0, [r3, #56]
  12717. 8308 01d0 B968 ldr r1, [r7, #8]
  12718. 8309 .loc 1 4158 86
  12719. 8310 01d2 FB68 ldr r3, [r7, #12]
  12720. 8311 01d4 1B68 ldr r3, [r3]
  12721. 8312 .loc 1 4158 81
  12722. 8313 01d6 2833 adds r3, r3, #40
  12723. 8314 .loc 1 4158 23
  12724. 8315 01d8 1A46 mov r2, r3
  12725. 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  12726. 8316 .loc 1 4159 44
  12727. 8317 01da FB68 ldr r3, [r7, #12]
  12728. 8318 01dc 1B8D ldrh r3, [r3, #40]
  12729. 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
  12730. 8319 .loc 1 4158 23
  12731. 8320 01de FFF7FEFF bl HAL_DMA_Start_IT
  12732. 8321 01e2 0346 mov r3, r0
  12733. 8322 01e4 FB75 strb r3, [r7, #23]
  12734. 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12735. 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  12736. 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12737. 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  12738. 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  12739. 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  12740. 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12741. 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  12742. 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  12743. 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12744. 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  12745. 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  12746. 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12747. 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  12748. 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12749. 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12750. 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  12751. 8323 .loc 1 4176 8
  12752. 8324 01e6 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  12753. 8325 01e8 002B cmp r3, #0
  12754. 8326 01ea 36D1 bne .L405
  12755. 8327 01ec 13E0 b .L408
  12756. 8328 .L403:
  12757. 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  12758. 8329 .loc 1 4164 23
  12759. 8330 01ee FB68 ldr r3, [r7, #12]
  12760. 8331 01f0 2822 movs r2, #40
  12761. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 221
  12762. 8332 01f2 83F84120 strb r2, [r3, #65]
  12763. 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12764. 8333 .loc 1 4165 23
  12765. 8334 01f6 FB68 ldr r3, [r7, #12]
  12766. 8335 01f8 0022 movs r2, #0
  12767. 8336 01fa 83F84220 strb r2, [r3, #66]
  12768. 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12769. 8337 .loc 1 4168 23
  12770. 8338 01fe FB68 ldr r3, [r7, #12]
  12771. 8339 0200 5B6C ldr r3, [r3, #68]
  12772. 8340 0202 43F08002 orr r2, r3, #128
  12773. 8341 0206 FB68 ldr r3, [r7, #12]
  12774. 8342 0208 5A64 str r2, [r3, #68]
  12775. 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12776. 8343 .loc 1 4171 7
  12777. 8344 020a FB68 ldr r3, [r7, #12]
  12778. 8345 020c 0022 movs r2, #0
  12779. 8346 020e 83F84020 strb r2, [r3, #64]
  12780. 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12781. 8347 .loc 1 4173 14
  12782. 8348 0212 0123 movs r3, #1
  12783. 8349 0214 5BE0 b .L399
  12784. 8350 .L408:
  12785. 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12786. 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  12787. 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  12788. 8351 .loc 1 4179 23
  12789. 8352 0216 FB68 ldr r3, [r7, #12]
  12790. 8353 0218 5B8D ldrh r3, [r3, #42] @ movhi
  12791. 8354 021a 9AB2 uxth r2, r3
  12792. 8355 .loc 1 4179 30
  12793. 8356 021c FB68 ldr r3, [r7, #12]
  12794. 8357 021e 1B8D ldrh r3, [r3, #40]
  12795. 8358 .loc 1 4179 23
  12796. 8359 0220 D31A subs r3, r2, r3
  12797. 8360 0222 9AB2 uxth r2, r3
  12798. 8361 0224 FB68 ldr r3, [r7, #12]
  12799. 8362 0226 5A85 strh r2, [r3, #42] @ movhi
  12800. 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12801. 4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
  12802. 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
  12803. 8363 .loc 1 4182 22
  12804. 8364 0228 FB68 ldr r3, [r7, #12]
  12805. 8365 022a 0022 movs r2, #0
  12806. 8366 022c 1A85 strh r2, [r3, #40] @ movhi
  12807. 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12808. 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  12809. 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12810. 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  12811. 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  12812. 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  12813. 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12814. 4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  12815. 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  12816. 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12817. 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  12818. 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  12819. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 222
  12820. 4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12821. 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  12822. 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12823. 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12824. 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
  12825. 8367 .loc 1 4199 11
  12826. 8368 022e FB68 ldr r3, [r7, #12]
  12827. 8369 0230 1B68 ldr r3, [r3]
  12828. 8370 0232 9B69 ldr r3, [r3, #24]
  12829. 8371 0234 03F00803 and r3, r3, #8
  12830. 8372 0238 082B cmp r3, #8
  12831. 8373 023a 0CBF ite eq
  12832. 8374 023c 0123 moveq r3, #1
  12833. 8375 023e 0023 movne r3, #0
  12834. 8376 0240 DBB2 uxtb r3, r3
  12835. 8377 .loc 1 4199 9
  12836. 8378 0242 BB75 strb r3, [r7, #22]
  12837. 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
  12838. 8379 .loc 1 4200 10
  12839. 8380 0244 FB68 ldr r3, [r7, #12]
  12840. 8381 0246 1B68 ldr r3, [r3]
  12841. 8382 0248 9B69 ldr r3, [r3, #24]
  12842. 8383 024a 1B0C lsrs r3, r3, #16
  12843. 8384 024c DBB2 uxtb r3, r3
  12844. 8385 024e 03F00103 and r3, r3, #1
  12845. 8386 0252 DBB2 uxtb r3, r3
  12846. 8387 .loc 1 4200 8
  12847. 8388 0254 012B cmp r3, #1
  12848. 8389 0256 1BD1 bne .L407
  12849. 8390 0258 13E0 b .L409
  12850. 8391 .L405:
  12851. 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  12852. 8392 .loc 1 4187 23
  12853. 8393 025a FB68 ldr r3, [r7, #12]
  12854. 8394 025c 2822 movs r2, #40
  12855. 8395 025e 83F84120 strb r2, [r3, #65]
  12856. 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12857. 8396 .loc 1 4188 23
  12858. 8397 0262 FB68 ldr r3, [r7, #12]
  12859. 8398 0264 0022 movs r2, #0
  12860. 8399 0266 83F84220 strb r2, [r3, #66]
  12861. 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12862. 8400 .loc 1 4191 23
  12863. 8401 026a FB68 ldr r3, [r7, #12]
  12864. 8402 026c 5B6C ldr r3, [r3, #68]
  12865. 8403 026e 43F01002 orr r2, r3, #16
  12866. 8404 0272 FB68 ldr r3, [r7, #12]
  12867. 8405 0274 5A64 str r2, [r3, #68]
  12868. 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12869. 8406 .loc 1 4194 7
  12870. 8407 0276 FB68 ldr r3, [r7, #12]
  12871. 8408 0278 0022 movs r2, #0
  12872. 8409 027a 83F84020 strb r2, [r3, #64]
  12873. 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12874. 8410 .loc 1 4196 14
  12875. 8411 027e 0123 movs r3, #1
  12876. 8412 0280 25E0 b .L399
  12877. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 223
  12878. 8413 .L409:
  12879. 8414 .loc 1 4200 54 discriminator 1
  12880. 8415 0282 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
  12881. 8416 0284 002B cmp r3, #0
  12882. 8417 0286 03D0 beq .L407
  12883. 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12884. 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
  12885. 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
  12886. 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  12887. 8418 .loc 1 4204 7
  12888. 8419 0288 FB68 ldr r3, [r7, #12]
  12889. 8420 028a 1B68 ldr r3, [r3]
  12890. 8421 028c 0822 movs r2, #8
  12891. 8422 028e DA61 str r2, [r3, #28]
  12892. 8423 .L407:
  12893. 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12894. 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12895. 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  12896. 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  12897. 8424 .loc 1 4208 5
  12898. 8425 0290 FB68 ldr r3, [r7, #12]
  12899. 8426 0292 0022 movs r2, #0
  12900. 8427 0294 83F84020 strb r2, [r3, #64]
  12901. 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12902. 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  12903. 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
  12904. 8428 .loc 1 4211 9
  12905. 8429 0298 FB68 ldr r3, [r7, #12]
  12906. 8430 029a 1B68 ldr r3, [r3]
  12907. 8431 .loc 1 4211 25
  12908. 8432 029c 1A68 ldr r2, [r3]
  12909. 8433 .loc 1 4211 9
  12910. 8434 029e FB68 ldr r3, [r7, #12]
  12911. 8435 02a0 1B68 ldr r3, [r3]
  12912. 8436 .loc 1 4211 25
  12913. 8437 02a2 42F48042 orr r2, r2, #16384
  12914. 8438 02a6 1A60 str r2, [r3]
  12915. 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12916. 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  12917. 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  12918. 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  12919. 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
  12920. 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  12921. 8439 .loc 1 4217 5
  12922. 8440 02a8 4FF40041 mov r1, #32768
  12923. 8441 02ac F868 ldr r0, [r7, #12]
  12924. 8442 02ae FFF7FEFF bl I2C_Enable_IRQ
  12925. 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12926. 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  12927. 8443 .loc 1 4219 12
  12928. 8444 02b2 0023 movs r3, #0
  12929. 8445 02b4 0BE0 b .L399
  12930. 8446 .L411:
  12931. 8447 02b6 00BF .align 2
  12932. 8448 .L410:
  12933. 8449 02b8 00000000 .word .LC0
  12934. 8450 02bc 00000000 .word I2C_DMAAbort
  12935. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 224
  12936. 8451 02c0 00000000 .word I2C_Slave_ISR_DMA
  12937. 8452 02c4 00000000 .word I2C_DMASlaveTransmitCplt
  12938. 8453 02c8 00000000 .word I2C_DMAError
  12939. 8454 .L396:
  12940. 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12941. 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  12942. 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12943. 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  12944. 8455 .loc 1 4223 12
  12945. 8456 02cc 0123 movs r3, #1
  12946. 8457 .L399:
  12947. 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12948. 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  12949. 8458 .loc 1 4225 1
  12950. 8459 02ce 1846 mov r0, r3
  12951. 8460 02d0 1837 adds r7, r7, #24
  12952. 8461 .LCFI145:
  12953. 8462 .cfi_def_cfa_offset 8
  12954. 8463 02d2 BD46 mov sp, r7
  12955. 8464 .LCFI146:
  12956. 8465 .cfi_def_cfa_register 13
  12957. 8466 @ sp needed
  12958. 8467 02d4 80BD pop {r7, pc}
  12959. 8468 .cfi_endproc
  12960. 8469 .LFE158:
  12961. 8471 02d6 00BF .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
  12962. 8472 .align 1
  12963. 8473 .global HAL_I2C_Slave_Seq_Receive_IT
  12964. 8474 .syntax unified
  12965. 8475 .thumb
  12966. 8476 .thumb_func
  12967. 8478 HAL_I2C_Slave_Seq_Receive_IT:
  12968. 8479 .LFB159:
  12969. 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  12970. 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  12971. 4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
  12972. 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  12973. 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  12974. 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  12975. 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  12976. 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  12977. 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  12978. 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  12979. 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  12980. 4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si
  12981. 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
  12982. 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  12983. 8480 .loc 1 4239 1
  12984. 8481 .cfi_startproc
  12985. 8482 @ args = 0, pretend = 0, frame = 24
  12986. 8483 @ frame_needed = 1, uses_anonymous_args = 0
  12987. 8484 0000 80B5 push {r7, lr}
  12988. 8485 .LCFI147:
  12989. 8486 .cfi_def_cfa_offset 8
  12990. 8487 .cfi_offset 7, -8
  12991. 8488 .cfi_offset 14, -4
  12992. 8489 0002 86B0 sub sp, sp, #24
  12993. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 225
  12994. 8490 .LCFI148:
  12995. 8491 .cfi_def_cfa_offset 32
  12996. 8492 0004 00AF add r7, sp, #0
  12997. 8493 .LCFI149:
  12998. 8494 .cfi_def_cfa_register 7
  12999. 8495 0006 F860 str r0, [r7, #12]
  13000. 8496 0008 B960 str r1, [r7, #8]
  13001. 8497 000a 3B60 str r3, [r7]
  13002. 8498 000c 1346 mov r3, r2 @ movhi
  13003. 8499 000e FB80 strh r3, [r7, #6] @ movhi
  13004. 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
  13005. 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
  13006. 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13007. 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  13008. 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  13009. 8500 .loc 1 4244 3
  13010. 8501 0010 3B68 ldr r3, [r7]
  13011. 8502 0012 002B cmp r3, #0
  13012. 8503 0014 1ED0 beq .L413
  13013. 8504 .loc 1 4244 3 is_stmt 0 discriminator 1
  13014. 8505 0016 3B68 ldr r3, [r7]
  13015. 8506 0018 B3F1807F cmp r3, #16777216
  13016. 8507 001c 1AD0 beq .L413
  13017. 8508 .loc 1 4244 3 discriminator 2
  13018. 8509 001e 3B68 ldr r3, [r7]
  13019. 8510 0020 B3F1807F cmp r3, #16777216
  13020. 8511 0024 16D0 beq .L413
  13021. 8512 .loc 1 4244 3 discriminator 3
  13022. 8513 0026 3B68 ldr r3, [r7]
  13023. 8514 0028 B3F1007F cmp r3, #33554432
  13024. 8515 002c 12D0 beq .L413
  13025. 8516 .loc 1 4244 3 discriminator 4
  13026. 8517 002e 3B68 ldr r3, [r7]
  13027. 8518 0030 B3F1007F cmp r3, #33554432
  13028. 8519 0034 0ED0 beq .L413
  13029. 8520 .loc 1 4244 3 discriminator 5
  13030. 8521 0036 3B68 ldr r3, [r7]
  13031. 8522 0038 002B cmp r3, #0
  13032. 8523 003a 0BD0 beq .L413
  13033. 8524 .loc 1 4244 3 discriminator 6
  13034. 8525 003c 3B68 ldr r3, [r7]
  13035. 8526 003e AA2B cmp r3, #170
  13036. 8527 0040 08D0 beq .L413
  13037. 8528 .loc 1 4244 3 discriminator 7
  13038. 8529 0042 3B68 ldr r3, [r7]
  13039. 8530 0044 B3F52A4F cmp r3, #43520
  13040. 8531 0048 04D0 beq .L413
  13041. 8532 .loc 1 4244 3 discriminator 8
  13042. 8533 004a 41F29401 movw r1, #4244
  13043. 8534 004e 5448 ldr r0, .L421
  13044. 8535 0050 FFF7FEFF bl assert_failed
  13045. 8536 .L413:
  13046. 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13047. 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
  13048. 8537 .loc 1 4246 22 is_stmt 1
  13049. 8538 0054 FB68 ldr r3, [r7, #12]
  13050. 8539 0056 93F84130 ldrb r3, [r3, #65]
  13051. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 226
  13052. 8540 005a DBB2 uxtb r3, r3
  13053. 8541 .loc 1 4246 30
  13054. 8542 005c 03F02803 and r3, r3, #40
  13055. 8543 .loc 1 4246 6
  13056. 8544 0060 282B cmp r3, #40
  13057. 8545 0062 40F09880 bne .L414
  13058. 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13059. 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  13060. 8546 .loc 1 4248 8
  13061. 8547 0066 BB68 ldr r3, [r7, #8]
  13062. 8548 0068 002B cmp r3, #0
  13063. 8549 006a 02D0 beq .L415
  13064. 8550 .loc 1 4248 25 discriminator 1
  13065. 8551 006c FB88 ldrh r3, [r7, #6]
  13066. 8552 006e 002B cmp r3, #0
  13067. 8553 0070 05D1 bne .L416
  13068. 8554 .L415:
  13069. 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13070. 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  13071. 8555 .loc 1 4250 23
  13072. 8556 0072 FB68 ldr r3, [r7, #12]
  13073. 8557 0074 4FF40072 mov r2, #512
  13074. 8558 0078 5A64 str r2, [r3, #68]
  13075. 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  13076. 8559 .loc 1 4251 15
  13077. 8560 007a 0123 movs r3, #1
  13078. 8561 007c 8CE0 b .L417
  13079. 8562 .L416:
  13080. 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13081. 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13082. 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
  13083. 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
  13084. 8563 .loc 1 4255 5
  13085. 8564 007e 48F20201 movw r1, #32770
  13086. 8565 0082 F868 ldr r0, [r7, #12]
  13087. 8566 0084 FFF7FEFF bl I2C_Disable_IRQ
  13088. 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13089. 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  13090. 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  13091. 8567 .loc 1 4258 5
  13092. 8568 0088 FB68 ldr r3, [r7, #12]
  13093. 8569 008a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  13094. 8570 008e 012B cmp r3, #1
  13095. 8571 0090 01D1 bne .L418
  13096. 8572 .loc 1 4258 5 is_stmt 0 discriminator 1
  13097. 8573 0092 0223 movs r3, #2
  13098. 8574 0094 80E0 b .L417
  13099. 8575 .L418:
  13100. 8576 .loc 1 4258 5 discriminator 2
  13101. 8577 0096 FB68 ldr r3, [r7, #12]
  13102. 8578 0098 0122 movs r2, #1
  13103. 8579 009a 83F84020 strb r2, [r3, #64]
  13104. 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13105. 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
  13106. 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
  13107. 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
  13108. 8580 .loc 1 4262 13 is_stmt 1 discriminator 2
  13109. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 227
  13110. 8581 009e FB68 ldr r3, [r7, #12]
  13111. 8582 00a0 93F84130 ldrb r3, [r3, #65]
  13112. 8583 00a4 DBB2 uxtb r3, r3
  13113. 8584 .loc 1 4262 8 discriminator 2
  13114. 8585 00a6 292B cmp r3, #41
  13115. 8586 00a8 2AD1 bne .L419
  13116. 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13117. 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
  13118. 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  13119. 8587 .loc 1 4265 7
  13120. 8588 00aa 0121 movs r1, #1
  13121. 8589 00ac F868 ldr r0, [r7, #12]
  13122. 8590 00ae FFF7FEFF bl I2C_Disable_IRQ
  13123. 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13124. 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
  13125. 8591 .loc 1 4267 16
  13126. 8592 00b2 FB68 ldr r3, [r7, #12]
  13127. 8593 00b4 1B68 ldr r3, [r3]
  13128. 8594 .loc 1 4267 26
  13129. 8595 00b6 1B68 ldr r3, [r3]
  13130. 8596 .loc 1 4267 32
  13131. 8597 00b8 03F48043 and r3, r3, #16384
  13132. 8598 .loc 1 4267 10
  13133. 8599 00bc B3F5804F cmp r3, #16384
  13134. 8600 00c0 1ED1 bne .L419
  13135. 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13136. 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  13137. 8601 .loc 1 4269 13
  13138. 8602 00c2 FB68 ldr r3, [r7, #12]
  13139. 8603 00c4 1B68 ldr r3, [r3]
  13140. 8604 .loc 1 4269 29
  13141. 8605 00c6 1A68 ldr r2, [r3]
  13142. 8606 .loc 1 4269 13
  13143. 8607 00c8 FB68 ldr r3, [r7, #12]
  13144. 8608 00ca 1B68 ldr r3, [r3]
  13145. 8609 .loc 1 4269 29
  13146. 8610 00cc 22F48042 bic r2, r2, #16384
  13147. 8611 00d0 1A60 str r2, [r3]
  13148. 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13149. 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
  13150. 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  13151. 8612 .loc 1 4272 17
  13152. 8613 00d2 FB68 ldr r3, [r7, #12]
  13153. 8614 00d4 9B6B ldr r3, [r3, #56]
  13154. 8615 .loc 1 4272 12
  13155. 8616 00d6 002B cmp r3, #0
  13156. 8617 00d8 12D0 beq .L419
  13157. 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13158. 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  13159. 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  13160. 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
  13161. 8618 .loc 1 4276 15
  13162. 8619 00da FB68 ldr r3, [r7, #12]
  13163. 8620 00dc 9B6B ldr r3, [r3, #56]
  13164. 8621 .loc 1 4276 43
  13165. 8622 00de 314A ldr r2, .L421+4
  13166. 8623 00e0 5A63 str r2, [r3, #52]
  13167. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 228
  13168. 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13169. 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
  13170. 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
  13171. 8624 .loc 1 4279 15
  13172. 8625 00e2 FB68 ldr r3, [r7, #12]
  13173. 8626 00e4 9B6B ldr r3, [r3, #56]
  13174. 8627 00e6 1846 mov r0, r3
  13175. 8628 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
  13176. 8629 00ec 0346 mov r3, r0
  13177. 8630 .loc 1 4279 14
  13178. 8631 00ee 002B cmp r3, #0
  13179. 8632 00f0 06D0 beq .L419
  13180. 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13181. 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
  13182. 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
  13183. 8633 .loc 1 4282 17
  13184. 8634 00f2 FB68 ldr r3, [r7, #12]
  13185. 8635 00f4 9B6B ldr r3, [r3, #56]
  13186. 8636 .loc 1 4282 25
  13187. 8637 00f6 5B6B ldr r3, [r3, #52]
  13188. 8638 .loc 1 4282 49
  13189. 8639 00f8 FA68 ldr r2, [r7, #12]
  13190. 8640 00fa 926B ldr r2, [r2, #56]
  13191. 8641 .loc 1 4282 13
  13192. 8642 00fc 1046 mov r0, r2
  13193. 8643 00fe 9847 blx r3
  13194. 8644 .LVL3:
  13195. 8645 .L419:
  13196. 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13197. 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13198. 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13199. 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13200. 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13201. 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
  13202. 8646 .loc 1 4288 21
  13203. 8647 0100 FB68 ldr r3, [r7, #12]
  13204. 8648 0102 2A22 movs r2, #42
  13205. 8649 0104 83F84120 strb r2, [r3, #65]
  13206. 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  13207. 8650 .loc 1 4289 21
  13208. 8651 0108 FB68 ldr r3, [r7, #12]
  13209. 8652 010a 2022 movs r2, #32
  13210. 8653 010c 83F84220 strb r2, [r3, #66]
  13211. 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  13212. 8654 .loc 1 4290 21
  13213. 8655 0110 FB68 ldr r3, [r7, #12]
  13214. 8656 0112 0022 movs r2, #0
  13215. 8657 0114 5A64 str r2, [r3, #68]
  13216. 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13217. 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  13218. 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  13219. 8658 .loc 1 4293 9
  13220. 8659 0116 FB68 ldr r3, [r7, #12]
  13221. 8660 0118 1B68 ldr r3, [r3]
  13222. 8661 .loc 1 4293 25
  13223. 8662 011a 5A68 ldr r2, [r3, #4]
  13224. 8663 .loc 1 4293 9
  13225. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 229
  13226. 8664 011c FB68 ldr r3, [r7, #12]
  13227. 8665 011e 1B68 ldr r3, [r3]
  13228. 8666 .loc 1 4293 25
  13229. 8667 0120 22F40042 bic r2, r2, #32768
  13230. 8668 0124 5A60 str r2, [r3, #4]
  13231. 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13232. 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  13233. 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  13234. 8669 .loc 1 4296 23
  13235. 8670 0126 FB68 ldr r3, [r7, #12]
  13236. 8671 0128 BA68 ldr r2, [r7, #8]
  13237. 8672 012a 5A62 str r2, [r3, #36]
  13238. 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  13239. 8673 .loc 1 4297 23
  13240. 8674 012c FB68 ldr r3, [r7, #12]
  13241. 8675 012e FA88 ldrh r2, [r7, #6] @ movhi
  13242. 8676 0130 5A85 strh r2, [r3, #42] @ movhi
  13243. 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  13244. 8677 .loc 1 4298 29
  13245. 8678 0132 FB68 ldr r3, [r7, #12]
  13246. 8679 0134 5B8D ldrh r3, [r3, #42] @ movhi
  13247. 8680 0136 9AB2 uxth r2, r3
  13248. 8681 .loc 1 4298 23
  13249. 8682 0138 FB68 ldr r3, [r7, #12]
  13250. 8683 013a 1A85 strh r2, [r3, #40] @ movhi
  13251. 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  13252. 8684 .loc 1 4299 23
  13253. 8685 013c FB68 ldr r3, [r7, #12]
  13254. 8686 013e 3A68 ldr r2, [r7]
  13255. 8687 0140 DA62 str r2, [r3, #44]
  13256. 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
  13257. 8688 .loc 1 4300 23
  13258. 8689 0142 FB68 ldr r3, [r7, #12]
  13259. 8690 0144 184A ldr r2, .L421+8
  13260. 8691 0146 5A63 str r2, [r3, #52]
  13261. 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13262. 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
  13263. 8692 .loc 1 4302 11
  13264. 8693 0148 FB68 ldr r3, [r7, #12]
  13265. 8694 014a 1B68 ldr r3, [r3]
  13266. 8695 014c 9B69 ldr r3, [r3, #24]
  13267. 8696 014e 03F00803 and r3, r3, #8
  13268. 8697 0152 082B cmp r3, #8
  13269. 8698 0154 0CBF ite eq
  13270. 8699 0156 0123 moveq r3, #1
  13271. 8700 0158 0023 movne r3, #0
  13272. 8701 015a DBB2 uxtb r3, r3
  13273. 8702 .loc 1 4302 9
  13274. 8703 015c FB75 strb r3, [r7, #23]
  13275. 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
  13276. 8704 .loc 1 4303 10
  13277. 8705 015e FB68 ldr r3, [r7, #12]
  13278. 8706 0160 1B68 ldr r3, [r3]
  13279. 8707 0162 9B69 ldr r3, [r3, #24]
  13280. 8708 0164 1B0C lsrs r3, r3, #16
  13281. 8709 0166 DBB2 uxtb r3, r3
  13282. 8710 0168 03F00103 and r3, r3, #1
  13283. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 230
  13284. 8711 016c DBB2 uxtb r3, r3
  13285. 8712 .loc 1 4303 8
  13286. 8713 016e 002B cmp r3, #0
  13287. 8714 0170 06D1 bne .L420
  13288. 8715 .loc 1 4303 55 discriminator 1
  13289. 8716 0172 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  13290. 8717 0174 002B cmp r3, #0
  13291. 8718 0176 03D0 beq .L420
  13292. 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13293. 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
  13294. 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
  13295. 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  13296. 8719 .loc 1 4307 7
  13297. 8720 0178 FB68 ldr r3, [r7, #12]
  13298. 8721 017a 1B68 ldr r3, [r3]
  13299. 8722 017c 0822 movs r2, #8
  13300. 8723 017e DA61 str r2, [r3, #28]
  13301. 8724 .L420:
  13302. 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13303. 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13304. 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  13305. 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  13306. 8725 .loc 1 4311 5
  13307. 8726 0180 FB68 ldr r3, [r7, #12]
  13308. 8727 0182 0022 movs r2, #0
  13309. 8728 0184 83F84020 strb r2, [r3, #64]
  13310. 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13311. 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  13312. 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  13313. 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  13314. 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
  13315. 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
  13316. 8729 .loc 1 4317 5
  13317. 8730 0188 48F20201 movw r1, #32770
  13318. 8731 018c F868 ldr r0, [r7, #12]
  13319. 8732 018e FFF7FEFF bl I2C_Enable_IRQ
  13320. 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13321. 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  13322. 8733 .loc 1 4319 12
  13323. 8734 0192 0023 movs r3, #0
  13324. 8735 0194 00E0 b .L417
  13325. 8736 .L414:
  13326. 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13327. 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  13328. 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13329. 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  13330. 8737 .loc 1 4323 12
  13331. 8738 0196 0123 movs r3, #1
  13332. 8739 .L417:
  13333. 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13334. 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13335. 8740 .loc 1 4325 1
  13336. 8741 0198 1846 mov r0, r3
  13337. 8742 019a 1837 adds r7, r7, #24
  13338. 8743 .LCFI150:
  13339. 8744 .cfi_def_cfa_offset 8
  13340. 8745 019c BD46 mov sp, r7
  13341. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 231
  13342. 8746 .LCFI151:
  13343. 8747 .cfi_def_cfa_register 13
  13344. 8748 @ sp needed
  13345. 8749 019e 80BD pop {r7, pc}
  13346. 8750 .L422:
  13347. 8751 .align 2
  13348. 8752 .L421:
  13349. 8753 01a0 00000000 .word .LC0
  13350. 8754 01a4 00000000 .word I2C_DMAAbort
  13351. 8755 01a8 00000000 .word I2C_Slave_ISR_IT
  13352. 8756 .cfi_endproc
  13353. 8757 .LFE159:
  13354. 8759 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
  13355. 8760 .align 1
  13356. 8761 .global HAL_I2C_Slave_Seq_Receive_DMA
  13357. 8762 .syntax unified
  13358. 8763 .thumb
  13359. 8764 .thumb_func
  13360. 8766 HAL_I2C_Slave_Seq_Receive_DMA:
  13361. 8767 .LFB160:
  13362. 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13363. 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  13364. 4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
  13365. 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
  13366. 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  13367. 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  13368. 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
  13369. 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
  13370. 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
  13371. 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  13372. 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  13373. 4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
  13374. 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
  13375. 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13376. 8768 .loc 1 4339 1
  13377. 8769 .cfi_startproc
  13378. 8770 @ args = 0, pretend = 0, frame = 24
  13379. 8771 @ frame_needed = 1, uses_anonymous_args = 0
  13380. 8772 0000 80B5 push {r7, lr}
  13381. 8773 .LCFI152:
  13382. 8774 .cfi_def_cfa_offset 8
  13383. 8775 .cfi_offset 7, -8
  13384. 8776 .cfi_offset 14, -4
  13385. 8777 0002 86B0 sub sp, sp, #24
  13386. 8778 .LCFI153:
  13387. 8779 .cfi_def_cfa_offset 32
  13388. 8780 0004 00AF add r7, sp, #0
  13389. 8781 .LCFI154:
  13390. 8782 .cfi_def_cfa_register 7
  13391. 8783 0006 F860 str r0, [r7, #12]
  13392. 8784 0008 B960 str r1, [r7, #8]
  13393. 8785 000a 3B60 str r3, [r7]
  13394. 8786 000c 1346 mov r3, r2 @ movhi
  13395. 8787 000e FB80 strh r3, [r7, #6] @ movhi
  13396. 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
  13397. 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
  13398. 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
  13399. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 232
  13400. 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13401. 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  13402. 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
  13403. 8788 .loc 1 4345 3
  13404. 8789 0010 3B68 ldr r3, [r7]
  13405. 8790 0012 002B cmp r3, #0
  13406. 8791 0014 1ED0 beq .L424
  13407. 8792 .loc 1 4345 3 is_stmt 0 discriminator 1
  13408. 8793 0016 3B68 ldr r3, [r7]
  13409. 8794 0018 B3F1807F cmp r3, #16777216
  13410. 8795 001c 1AD0 beq .L424
  13411. 8796 .loc 1 4345 3 discriminator 2
  13412. 8797 001e 3B68 ldr r3, [r7]
  13413. 8798 0020 B3F1807F cmp r3, #16777216
  13414. 8799 0024 16D0 beq .L424
  13415. 8800 .loc 1 4345 3 discriminator 3
  13416. 8801 0026 3B68 ldr r3, [r7]
  13417. 8802 0028 B3F1007F cmp r3, #33554432
  13418. 8803 002c 12D0 beq .L424
  13419. 8804 .loc 1 4345 3 discriminator 4
  13420. 8805 002e 3B68 ldr r3, [r7]
  13421. 8806 0030 B3F1007F cmp r3, #33554432
  13422. 8807 0034 0ED0 beq .L424
  13423. 8808 .loc 1 4345 3 discriminator 5
  13424. 8809 0036 3B68 ldr r3, [r7]
  13425. 8810 0038 002B cmp r3, #0
  13426. 8811 003a 0BD0 beq .L424
  13427. 8812 .loc 1 4345 3 discriminator 6
  13428. 8813 003c 3B68 ldr r3, [r7]
  13429. 8814 003e AA2B cmp r3, #170
  13430. 8815 0040 08D0 beq .L424
  13431. 8816 .loc 1 4345 3 discriminator 7
  13432. 8817 0042 3B68 ldr r3, [r7]
  13433. 8818 0044 B3F52A4F cmp r3, #43520
  13434. 8819 0048 04D0 beq .L424
  13435. 8820 .loc 1 4345 3 discriminator 8
  13436. 8821 004a 41F2F901 movw r1, #4345
  13437. 8822 004e 9A48 ldr r0, .L439
  13438. 8823 0050 FFF7FEFF bl assert_failed
  13439. 8824 .L424:
  13440. 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13441. 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
  13442. 8825 .loc 1 4347 22 is_stmt 1
  13443. 8826 0054 FB68 ldr r3, [r7, #12]
  13444. 8827 0056 93F84130 ldrb r3, [r3, #65]
  13445. 8828 005a DBB2 uxtb r3, r3
  13446. 8829 .loc 1 4347 30
  13447. 8830 005c 03F02803 and r3, r3, #40
  13448. 8831 .loc 1 4347 6
  13449. 8832 0060 282B cmp r3, #40
  13450. 8833 0062 40F03381 bne .L425
  13451. 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13452. 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
  13453. 8834 .loc 1 4349 8
  13454. 8835 0066 BB68 ldr r3, [r7, #8]
  13455. 8836 0068 002B cmp r3, #0
  13456. 8837 006a 02D0 beq .L426
  13457. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 233
  13458. 8838 .loc 1 4349 25 discriminator 1
  13459. 8839 006c FB88 ldrh r3, [r7, #6]
  13460. 8840 006e 002B cmp r3, #0
  13461. 8841 0070 05D1 bne .L427
  13462. 8842 .L426:
  13463. 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13464. 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
  13465. 8843 .loc 1 4351 23
  13466. 8844 0072 FB68 ldr r3, [r7, #12]
  13467. 8845 0074 4FF40072 mov r2, #512
  13468. 8846 0078 5A64 str r2, [r3, #68]
  13469. 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  13470. 8847 .loc 1 4352 15
  13471. 8848 007a 0123 movs r3, #1
  13472. 8849 007c 27E1 b .L428
  13473. 8850 .L427:
  13474. 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13475. 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13476. 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
  13477. 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
  13478. 8851 .loc 1 4356 5
  13479. 8852 007e 48F20201 movw r1, #32770
  13480. 8853 0082 F868 ldr r0, [r7, #12]
  13481. 8854 0084 FFF7FEFF bl I2C_Disable_IRQ
  13482. 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13483. 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  13484. 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  13485. 8855 .loc 1 4359 5
  13486. 8856 0088 FB68 ldr r3, [r7, #12]
  13487. 8857 008a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  13488. 8858 008e 012B cmp r3, #1
  13489. 8859 0090 01D1 bne .L429
  13490. 8860 .loc 1 4359 5 is_stmt 0 discriminator 1
  13491. 8861 0092 0223 movs r3, #2
  13492. 8862 0094 1BE1 b .L428
  13493. 8863 .L429:
  13494. 8864 .loc 1 4359 5 discriminator 2
  13495. 8865 0096 FB68 ldr r3, [r7, #12]
  13496. 8866 0098 0122 movs r2, #1
  13497. 8867 009a 83F84020 strb r2, [r3, #64]
  13498. 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13499. 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
  13500. 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
  13501. 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
  13502. 8868 .loc 1 4363 13 is_stmt 1 discriminator 2
  13503. 8869 009e FB68 ldr r3, [r7, #12]
  13504. 8870 00a0 93F84130 ldrb r3, [r3, #65]
  13505. 8871 00a4 DBB2 uxtb r3, r3
  13506. 8872 .loc 1 4363 8 discriminator 2
  13507. 8873 00a6 292B cmp r3, #41
  13508. 8874 00a8 2BD1 bne .L430
  13509. 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13510. 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
  13511. 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  13512. 8875 .loc 1 4366 7
  13513. 8876 00aa 0121 movs r1, #1
  13514. 8877 00ac F868 ldr r0, [r7, #12]
  13515. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 234
  13516. 8878 00ae FFF7FEFF bl I2C_Disable_IRQ
  13517. 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13518. 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
  13519. 8879 .loc 1 4368 16
  13520. 8880 00b2 FB68 ldr r3, [r7, #12]
  13521. 8881 00b4 1B68 ldr r3, [r3]
  13522. 8882 .loc 1 4368 26
  13523. 8883 00b6 1B68 ldr r3, [r3]
  13524. 8884 .loc 1 4368 32
  13525. 8885 00b8 03F48043 and r3, r3, #16384
  13526. 8886 .loc 1 4368 10
  13527. 8887 00bc B3F5804F cmp r3, #16384
  13528. 8888 00c0 4CD1 bne .L431
  13529. 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13530. 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
  13531. 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  13532. 8889 .loc 1 4371 17
  13533. 8890 00c2 FB68 ldr r3, [r7, #12]
  13534. 8891 00c4 9B6B ldr r3, [r3, #56]
  13535. 8892 .loc 1 4371 12
  13536. 8893 00c6 002B cmp r3, #0
  13537. 8894 00c8 48D0 beq .L431
  13538. 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13539. 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  13540. 8895 .loc 1 4373 15
  13541. 8896 00ca FB68 ldr r3, [r7, #12]
  13542. 8897 00cc 1B68 ldr r3, [r3]
  13543. 8898 .loc 1 4373 31
  13544. 8899 00ce 1A68 ldr r2, [r3]
  13545. 8900 .loc 1 4373 15
  13546. 8901 00d0 FB68 ldr r3, [r7, #12]
  13547. 8902 00d2 1B68 ldr r3, [r3]
  13548. 8903 .loc 1 4373 31
  13549. 8904 00d4 22F48042 bic r2, r2, #16384
  13550. 8905 00d8 1A60 str r2, [r3]
  13551. 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13552. 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  13553. 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  13554. 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
  13555. 8906 .loc 1 4377 15
  13556. 8907 00da FB68 ldr r3, [r7, #12]
  13557. 8908 00dc 9B6B ldr r3, [r3, #56]
  13558. 8909 .loc 1 4377 43
  13559. 8910 00de 774A ldr r2, .L439+4
  13560. 8911 00e0 5A63 str r2, [r3, #52]
  13561. 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13562. 4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
  13563. 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
  13564. 8912 .loc 1 4380 15
  13565. 8913 00e2 FB68 ldr r3, [r7, #12]
  13566. 8914 00e4 9B6B ldr r3, [r3, #56]
  13567. 8915 00e6 1846 mov r0, r3
  13568. 8916 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
  13569. 8917 00ec 0346 mov r3, r0
  13570. 8918 .loc 1 4380 14
  13571. 8919 00ee 002B cmp r3, #0
  13572. 8920 00f0 34D0 beq .L431
  13573. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 235
  13574. 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13575. 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
  13576. 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
  13577. 8921 .loc 1 4383 17
  13578. 8922 00f2 FB68 ldr r3, [r7, #12]
  13579. 8923 00f4 9B6B ldr r3, [r3, #56]
  13580. 8924 .loc 1 4383 25
  13581. 8925 00f6 5B6B ldr r3, [r3, #52]
  13582. 8926 .loc 1 4383 49
  13583. 8927 00f8 FA68 ldr r2, [r7, #12]
  13584. 8928 00fa 926B ldr r2, [r2, #56]
  13585. 8929 .loc 1 4383 13
  13586. 8930 00fc 1046 mov r0, r2
  13587. 8931 00fe 9847 blx r3
  13588. 8932 .LVL4:
  13589. 8933 0100 2CE0 b .L431
  13590. 8934 .L430:
  13591. 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13592. 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13593. 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13594. 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13595. 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
  13596. 8935 .loc 1 4388 18
  13597. 8936 0102 FB68 ldr r3, [r7, #12]
  13598. 8937 0104 93F84130 ldrb r3, [r3, #65]
  13599. 8938 0108 DBB2 uxtb r3, r3
  13600. 8939 .loc 1 4388 13
  13601. 8940 010a 2A2B cmp r3, #42
  13602. 8941 010c 26D1 bne .L431
  13603. 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13604. 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
  13605. 8942 .loc 1 4390 16
  13606. 8943 010e FB68 ldr r3, [r7, #12]
  13607. 8944 0110 1B68 ldr r3, [r3]
  13608. 8945 .loc 1 4390 26
  13609. 8946 0112 1B68 ldr r3, [r3]
  13610. 8947 .loc 1 4390 32
  13611. 8948 0114 03F40043 and r3, r3, #32768
  13612. 8949 .loc 1 4390 10
  13613. 8950 0118 B3F5004F cmp r3, #32768
  13614. 8951 011c 1ED1 bne .L431
  13615. 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13616. 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  13617. 8952 .loc 1 4392 13
  13618. 8953 011e FB68 ldr r3, [r7, #12]
  13619. 8954 0120 1B68 ldr r3, [r3]
  13620. 8955 .loc 1 4392 29
  13621. 8956 0122 1A68 ldr r2, [r3]
  13622. 8957 .loc 1 4392 13
  13623. 8958 0124 FB68 ldr r3, [r7, #12]
  13624. 8959 0126 1B68 ldr r3, [r3]
  13625. 8960 .loc 1 4392 29
  13626. 8961 0128 22F40042 bic r2, r2, #32768
  13627. 8962 012c 1A60 str r2, [r3]
  13628. 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13629. 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
  13630. 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  13631. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 236
  13632. 8963 .loc 1 4395 17
  13633. 8964 012e FB68 ldr r3, [r7, #12]
  13634. 8965 0130 DB6B ldr r3, [r3, #60]
  13635. 8966 .loc 1 4395 12
  13636. 8967 0132 002B cmp r3, #0
  13637. 8968 0134 12D0 beq .L431
  13638. 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13639. 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  13640. 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  13641. 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
  13642. 8969 .loc 1 4399 15
  13643. 8970 0136 FB68 ldr r3, [r7, #12]
  13644. 8971 0138 DB6B ldr r3, [r3, #60]
  13645. 8972 .loc 1 4399 43
  13646. 8973 013a 604A ldr r2, .L439+4
  13647. 8974 013c 5A63 str r2, [r3, #52]
  13648. 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13649. 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
  13650. 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
  13651. 8975 .loc 1 4402 15
  13652. 8976 013e FB68 ldr r3, [r7, #12]
  13653. 8977 0140 DB6B ldr r3, [r3, #60]
  13654. 8978 0142 1846 mov r0, r3
  13655. 8979 0144 FFF7FEFF bl HAL_DMA_Abort_IT
  13656. 8980 0148 0346 mov r3, r0
  13657. 8981 .loc 1 4402 14
  13658. 8982 014a 002B cmp r3, #0
  13659. 8983 014c 06D0 beq .L431
  13660. 4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13661. 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
  13662. 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
  13663. 8984 .loc 1 4405 17
  13664. 8985 014e FB68 ldr r3, [r7, #12]
  13665. 8986 0150 DB6B ldr r3, [r3, #60]
  13666. 8987 .loc 1 4405 25
  13667. 8988 0152 5B6B ldr r3, [r3, #52]
  13668. 8989 .loc 1 4405 49
  13669. 8990 0154 FA68 ldr r2, [r7, #12]
  13670. 8991 0156 D26B ldr r2, [r2, #60]
  13671. 8992 .loc 1 4405 13
  13672. 8993 0158 1046 mov r0, r2
  13673. 8994 015a 9847 blx r3
  13674. 8995 .LVL5:
  13675. 8996 .L431:
  13676. 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13677. 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13678. 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13679. 4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13680. 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  13681. 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13682. 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  13683. 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13684. 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13685. 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
  13686. 8997 .loc 1 4415 21
  13687. 8998 015c FB68 ldr r3, [r7, #12]
  13688. 8999 015e 2A22 movs r2, #42
  13689. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 237
  13690. 9000 0160 83F84120 strb r2, [r3, #65]
  13691. 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
  13692. 9001 .loc 1 4416 21
  13693. 9002 0164 FB68 ldr r3, [r7, #12]
  13694. 9003 0166 2022 movs r2, #32
  13695. 9004 0168 83F84220 strb r2, [r3, #66]
  13696. 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  13697. 9005 .loc 1 4417 21
  13698. 9006 016c FB68 ldr r3, [r7, #12]
  13699. 9007 016e 0022 movs r2, #0
  13700. 9008 0170 5A64 str r2, [r3, #68]
  13701. 4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13702. 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
  13703. 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
  13704. 9009 .loc 1 4420 9
  13705. 9010 0172 FB68 ldr r3, [r7, #12]
  13706. 9011 0174 1B68 ldr r3, [r3]
  13707. 9012 .loc 1 4420 25
  13708. 9013 0176 5A68 ldr r2, [r3, #4]
  13709. 9014 .loc 1 4420 9
  13710. 9015 0178 FB68 ldr r3, [r7, #12]
  13711. 9016 017a 1B68 ldr r3, [r3]
  13712. 9017 .loc 1 4420 25
  13713. 9018 017c 22F40042 bic r2, r2, #32768
  13714. 9019 0180 5A60 str r2, [r3, #4]
  13715. 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13716. 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
  13717. 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
  13718. 9020 .loc 1 4423 23
  13719. 9021 0182 FB68 ldr r3, [r7, #12]
  13720. 9022 0184 BA68 ldr r2, [r7, #8]
  13721. 9023 0186 5A62 str r2, [r3, #36]
  13722. 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
  13723. 9024 .loc 1 4424 23
  13724. 9025 0188 FB68 ldr r3, [r7, #12]
  13725. 9026 018a FA88 ldrh r2, [r7, #6] @ movhi
  13726. 9027 018c 5A85 strh r2, [r3, #42] @ movhi
  13727. 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  13728. 9028 .loc 1 4425 29
  13729. 9029 018e FB68 ldr r3, [r7, #12]
  13730. 9030 0190 5B8D ldrh r3, [r3, #42] @ movhi
  13731. 9031 0192 9AB2 uxth r2, r3
  13732. 9032 .loc 1 4425 23
  13733. 9033 0194 FB68 ldr r3, [r7, #12]
  13734. 9034 0196 1A85 strh r2, [r3, #40] @ movhi
  13735. 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
  13736. 9035 .loc 1 4426 23
  13737. 9036 0198 FB68 ldr r3, [r7, #12]
  13738. 9037 019a 3A68 ldr r2, [r7]
  13739. 9038 019c DA62 str r2, [r3, #44]
  13740. 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
  13741. 9039 .loc 1 4427 23
  13742. 9040 019e FB68 ldr r3, [r7, #12]
  13743. 9041 01a0 474A ldr r2, .L439+8
  13744. 9042 01a2 5A63 str r2, [r3, #52]
  13745. 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13746. 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  13747. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 238
  13748. 9043 .loc 1 4429 13
  13749. 9044 01a4 FB68 ldr r3, [r7, #12]
  13750. 9045 01a6 DB6B ldr r3, [r3, #60]
  13751. 9046 .loc 1 4429 8
  13752. 9047 01a8 002B cmp r3, #0
  13753. 9048 01aa 20D0 beq .L432
  13754. 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13755. 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
  13756. 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
  13757. 9049 .loc 1 4432 11
  13758. 9050 01ac FB68 ldr r3, [r7, #12]
  13759. 9051 01ae DB6B ldr r3, [r3, #60]
  13760. 9052 .loc 1 4432 38
  13761. 9053 01b0 444A ldr r2, .L439+12
  13762. 9054 01b2 9A62 str r2, [r3, #40]
  13763. 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13764. 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
  13765. 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
  13766. 9055 .loc 1 4435 11
  13767. 9056 01b4 FB68 ldr r3, [r7, #12]
  13768. 9057 01b6 DB6B ldr r3, [r3, #60]
  13769. 9058 .loc 1 4435 39
  13770. 9059 01b8 434A ldr r2, .L439+16
  13771. 9060 01ba 1A63 str r2, [r3, #48]
  13772. 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13773. 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
  13774. 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
  13775. 9061 .loc 1 4438 11
  13776. 9062 01bc FB68 ldr r3, [r7, #12]
  13777. 9063 01be DB6B ldr r3, [r3, #60]
  13778. 9064 .loc 1 4438 42
  13779. 9065 01c0 0022 movs r2, #0
  13780. 9066 01c2 DA62 str r2, [r3, #44]
  13781. 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
  13782. 9067 .loc 1 4439 11
  13783. 9068 01c4 FB68 ldr r3, [r7, #12]
  13784. 9069 01c6 DB6B ldr r3, [r3, #60]
  13785. 9070 .loc 1 4439 39
  13786. 9071 01c8 0022 movs r2, #0
  13787. 9072 01ca 5A63 str r2, [r3, #52]
  13788. 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13789. 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  13790. 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR,
  13791. 9073 .loc 1 4442 23
  13792. 9074 01cc FB68 ldr r3, [r7, #12]
  13793. 9075 01ce D86B ldr r0, [r3, #60]
  13794. 9076 .loc 1 4442 69
  13795. 9077 01d0 FB68 ldr r3, [r7, #12]
  13796. 9078 01d2 1B68 ldr r3, [r3]
  13797. 9079 .loc 1 4442 64
  13798. 9080 01d4 2433 adds r3, r3, #36
  13799. 9081 .loc 1 4442 23
  13800. 9082 01d6 1946 mov r1, r3
  13801. 9083 01d8 BA68 ldr r2, [r7, #8]
  13802. 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
  13803. 9084 .loc 1 4443 61
  13804. 9085 01da FB68 ldr r3, [r7, #12]
  13805. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 239
  13806. 9086 01dc 1B8D ldrh r3, [r3, #40]
  13807. 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
  13808. 9087 .loc 1 4442 23
  13809. 9088 01de FFF7FEFF bl HAL_DMA_Start_IT
  13810. 9089 01e2 0346 mov r3, r0
  13811. 9090 01e4 FB75 strb r3, [r7, #23]
  13812. 4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13813. 4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  13814. 4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13815. 4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  13816. 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  13817. 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  13818. 4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13819. 4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  13820. 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
  13821. 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13822. 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  13823. 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  13824. 4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13825. 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  13826. 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13827. 4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13828. 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
  13829. 9091 .loc 1 4460 8
  13830. 9092 01e6 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  13831. 9093 01e8 002B cmp r3, #0
  13832. 9094 01ea 36D1 bne .L434
  13833. 9095 01ec 13E0 b .L437
  13834. 9096 .L432:
  13835. 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  13836. 9097 .loc 1 4448 23
  13837. 9098 01ee FB68 ldr r3, [r7, #12]
  13838. 9099 01f0 2822 movs r2, #40
  13839. 9100 01f2 83F84120 strb r2, [r3, #65]
  13840. 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13841. 9101 .loc 1 4449 23
  13842. 9102 01f6 FB68 ldr r3, [r7, #12]
  13843. 9103 01f8 0022 movs r2, #0
  13844. 9104 01fa 83F84220 strb r2, [r3, #66]
  13845. 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13846. 9105 .loc 1 4452 23
  13847. 9106 01fe FB68 ldr r3, [r7, #12]
  13848. 9107 0200 5B6C ldr r3, [r3, #68]
  13849. 9108 0202 43F08002 orr r2, r3, #128
  13850. 9109 0206 FB68 ldr r3, [r7, #12]
  13851. 9110 0208 5A64 str r2, [r3, #68]
  13852. 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13853. 9111 .loc 1 4455 7
  13854. 9112 020a FB68 ldr r3, [r7, #12]
  13855. 9113 020c 0022 movs r2, #0
  13856. 9114 020e 83F84020 strb r2, [r3, #64]
  13857. 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13858. 9115 .loc 1 4457 14
  13859. 9116 0212 0123 movs r3, #1
  13860. 9117 0214 5BE0 b .L428
  13861. 9118 .L437:
  13862. 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13863. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 240
  13864. 4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  13865. 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  13866. 9119 .loc 1 4463 23
  13867. 9120 0216 FB68 ldr r3, [r7, #12]
  13868. 9121 0218 5B8D ldrh r3, [r3, #42] @ movhi
  13869. 9122 021a 9AB2 uxth r2, r3
  13870. 9123 .loc 1 4463 30
  13871. 9124 021c FB68 ldr r3, [r7, #12]
  13872. 9125 021e 1B8D ldrh r3, [r3, #40]
  13873. 9126 .loc 1 4463 23
  13874. 9127 0220 D31A subs r3, r2, r3
  13875. 9128 0222 9AB2 uxth r2, r3
  13876. 9129 0224 FB68 ldr r3, [r7, #12]
  13877. 9130 0226 5A85 strh r2, [r3, #42] @ movhi
  13878. 4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13879. 4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
  13880. 4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
  13881. 9131 .loc 1 4466 22
  13882. 9132 0228 FB68 ldr r3, [r7, #12]
  13883. 9133 022a 0022 movs r2, #0
  13884. 9134 022c 1A85 strh r2, [r3, #40] @ movhi
  13885. 4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13886. 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  13887. 4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13888. 4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
  13889. 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  13890. 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  13891. 4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13892. 4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
  13893. 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
  13894. 4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13895. 4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  13896. 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  13897. 4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13898. 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  13899. 4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13900. 4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13901. 4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
  13902. 9135 .loc 1 4483 11
  13903. 9136 022e FB68 ldr r3, [r7, #12]
  13904. 9137 0230 1B68 ldr r3, [r3]
  13905. 9138 0232 9B69 ldr r3, [r3, #24]
  13906. 9139 0234 03F00803 and r3, r3, #8
  13907. 9140 0238 082B cmp r3, #8
  13908. 9141 023a 0CBF ite eq
  13909. 9142 023c 0123 moveq r3, #1
  13910. 9143 023e 0023 movne r3, #0
  13911. 9144 0240 DBB2 uxtb r3, r3
  13912. 9145 .loc 1 4483 9
  13913. 9146 0242 BB75 strb r3, [r7, #22]
  13914. 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
  13915. 9147 .loc 1 4484 10
  13916. 9148 0244 FB68 ldr r3, [r7, #12]
  13917. 9149 0246 1B68 ldr r3, [r3]
  13918. 9150 0248 9B69 ldr r3, [r3, #24]
  13919. 9151 024a 1B0C lsrs r3, r3, #16
  13920. 9152 024c DBB2 uxtb r3, r3
  13921. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 241
  13922. 9153 024e 03F00103 and r3, r3, #1
  13923. 9154 0252 DBB2 uxtb r3, r3
  13924. 9155 .loc 1 4484 8
  13925. 9156 0254 002B cmp r3, #0
  13926. 9157 0256 1BD1 bne .L436
  13927. 9158 0258 13E0 b .L438
  13928. 9159 .L434:
  13929. 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  13930. 9160 .loc 1 4471 23
  13931. 9161 025a FB68 ldr r3, [r7, #12]
  13932. 9162 025c 2822 movs r2, #40
  13933. 9163 025e 83F84120 strb r2, [r3, #65]
  13934. 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13935. 9164 .loc 1 4472 23
  13936. 9165 0262 FB68 ldr r3, [r7, #12]
  13937. 9166 0264 0022 movs r2, #0
  13938. 9167 0266 83F84220 strb r2, [r3, #66]
  13939. 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13940. 9168 .loc 1 4475 23
  13941. 9169 026a FB68 ldr r3, [r7, #12]
  13942. 9170 026c 5B6C ldr r3, [r3, #68]
  13943. 9171 026e 43F01002 orr r2, r3, #16
  13944. 9172 0272 FB68 ldr r3, [r7, #12]
  13945. 9173 0274 5A64 str r2, [r3, #68]
  13946. 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13947. 9174 .loc 1 4478 7
  13948. 9175 0276 FB68 ldr r3, [r7, #12]
  13949. 9176 0278 0022 movs r2, #0
  13950. 9177 027a 83F84020 strb r2, [r3, #64]
  13951. 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13952. 9178 .loc 1 4480 14
  13953. 9179 027e 0123 movs r3, #1
  13954. 9180 0280 25E0 b .L428
  13955. 9181 .L438:
  13956. 9182 .loc 1 4484 55 discriminator 1
  13957. 9183 0282 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
  13958. 9184 0284 002B cmp r3, #0
  13959. 9185 0286 03D0 beq .L436
  13960. 4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  13961. 4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
  13962. 4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
  13963. 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  13964. 9186 .loc 1 4488 7
  13965. 9187 0288 FB68 ldr r3, [r7, #12]
  13966. 9188 028a 1B68 ldr r3, [r3]
  13967. 9189 028c 0822 movs r2, #8
  13968. 9190 028e DA61 str r2, [r3, #28]
  13969. 9191 .L436:
  13970. 4489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  13971. 4490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13972. 4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  13973. 4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  13974. 9192 .loc 1 4492 5
  13975. 9193 0290 FB68 ldr r3, [r7, #12]
  13976. 9194 0292 0022 movs r2, #0
  13977. 9195 0294 83F84020 strb r2, [r3, #64]
  13978. 4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13979. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 242
  13980. 4494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  13981. 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
  13982. 9196 .loc 1 4495 9
  13983. 9197 0298 FB68 ldr r3, [r7, #12]
  13984. 9198 029a 1B68 ldr r3, [r3]
  13985. 9199 .loc 1 4495 25
  13986. 9200 029c 1A68 ldr r2, [r3]
  13987. 9201 .loc 1 4495 9
  13988. 9202 029e FB68 ldr r3, [r7, #12]
  13989. 9203 02a0 1B68 ldr r3, [r3]
  13990. 9204 .loc 1 4495 25
  13991. 9205 02a2 42F40042 orr r2, r2, #32768
  13992. 9206 02a6 1A60 str r2, [r3]
  13993. 4496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  13994. 4497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  13995. 4498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  13996. 4499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  13997. 4500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
  13998. 4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
  13999. 9207 .loc 1 4501 5
  14000. 9208 02a8 48F20201 movw r1, #32770
  14001. 9209 02ac F868 ldr r0, [r7, #12]
  14002. 9210 02ae FFF7FEFF bl I2C_Enable_IRQ
  14003. 4502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14004. 4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  14005. 9211 .loc 1 4503 12
  14006. 9212 02b2 0023 movs r3, #0
  14007. 9213 02b4 0BE0 b .L428
  14008. 9214 .L440:
  14009. 9215 02b6 00BF .align 2
  14010. 9216 .L439:
  14011. 9217 02b8 00000000 .word .LC0
  14012. 9218 02bc 00000000 .word I2C_DMAAbort
  14013. 9219 02c0 00000000 .word I2C_Slave_ISR_DMA
  14014. 9220 02c4 00000000 .word I2C_DMASlaveReceiveCplt
  14015. 9221 02c8 00000000 .word I2C_DMAError
  14016. 9222 .L425:
  14017. 4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14018. 4505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  14019. 4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14020. 4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  14021. 9223 .loc 1 4507 12
  14022. 9224 02cc 0123 movs r3, #1
  14023. 9225 .L428:
  14024. 4508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14025. 4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14026. 9226 .loc 1 4509 1
  14027. 9227 02ce 1846 mov r0, r3
  14028. 9228 02d0 1837 adds r7, r7, #24
  14029. 9229 .LCFI155:
  14030. 9230 .cfi_def_cfa_offset 8
  14031. 9231 02d2 BD46 mov sp, r7
  14032. 9232 .LCFI156:
  14033. 9233 .cfi_def_cfa_register 13
  14034. 9234 @ sp needed
  14035. 9235 02d4 80BD pop {r7, pc}
  14036. 9236 .cfi_endproc
  14037. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 243
  14038. 9237 .LFE160:
  14039. 9239 02d6 00BF .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
  14040. 9240 .align 1
  14041. 9241 .global HAL_I2C_EnableListen_IT
  14042. 9242 .syntax unified
  14043. 9243 .thumb
  14044. 9244 .thumb_func
  14045. 9246 HAL_I2C_EnableListen_IT:
  14046. 9247 .LFB161:
  14047. 4510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14048. 4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14049. 4512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
  14050. 4513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14051. 4514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14052. 4515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  14053. 4516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14054. 4517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
  14055. 4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14056. 9248 .loc 1 4518 1
  14057. 9249 .cfi_startproc
  14058. 9250 @ args = 0, pretend = 0, frame = 8
  14059. 9251 @ frame_needed = 1, uses_anonymous_args = 0
  14060. 9252 0000 80B5 push {r7, lr}
  14061. 9253 .LCFI157:
  14062. 9254 .cfi_def_cfa_offset 8
  14063. 9255 .cfi_offset 7, -8
  14064. 9256 .cfi_offset 14, -4
  14065. 9257 0002 82B0 sub sp, sp, #8
  14066. 9258 .LCFI158:
  14067. 9259 .cfi_def_cfa_offset 16
  14068. 9260 0004 00AF add r7, sp, #0
  14069. 9261 .LCFI159:
  14070. 9262 .cfi_def_cfa_register 7
  14071. 9263 0006 7860 str r0, [r7, #4]
  14072. 4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
  14073. 9264 .loc 1 4519 11
  14074. 9265 0008 7B68 ldr r3, [r7, #4]
  14075. 9266 000a 93F84130 ldrb r3, [r3, #65]
  14076. 9267 000e DBB2 uxtb r3, r3
  14077. 9268 .loc 1 4519 6
  14078. 9269 0010 202B cmp r3, #32
  14079. 9270 0012 0DD1 bne .L442
  14080. 4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14081. 4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  14082. 9271 .loc 1 4521 17
  14083. 9272 0014 7B68 ldr r3, [r7, #4]
  14084. 9273 0016 2822 movs r2, #40
  14085. 9274 0018 83F84120 strb r2, [r3, #65]
  14086. 4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
  14087. 9275 .loc 1 4522 19
  14088. 9276 001c 7B68 ldr r3, [r7, #4]
  14089. 9277 001e 074A ldr r2, .L444
  14090. 9278 0020 5A63 str r2, [r3, #52]
  14091. 4523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14092. 4524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the Address Match interrupt */
  14093. 4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  14094. 9279 .loc 1 4525 5
  14095. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 244
  14096. 9280 0022 4FF40041 mov r1, #32768
  14097. 9281 0026 7868 ldr r0, [r7, #4]
  14098. 9282 0028 FFF7FEFF bl I2C_Enable_IRQ
  14099. 4526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14100. 4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  14101. 9283 .loc 1 4527 12
  14102. 9284 002c 0023 movs r3, #0
  14103. 9285 002e 00E0 b .L443
  14104. 9286 .L442:
  14105. 4528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14106. 4529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  14107. 4530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14108. 4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  14109. 9287 .loc 1 4531 12
  14110. 9288 0030 0223 movs r3, #2
  14111. 9289 .L443:
  14112. 4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14113. 4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14114. 9290 .loc 1 4533 1
  14115. 9291 0032 1846 mov r0, r3
  14116. 9292 0034 0837 adds r7, r7, #8
  14117. 9293 .LCFI160:
  14118. 9294 .cfi_def_cfa_offset 8
  14119. 9295 0036 BD46 mov sp, r7
  14120. 9296 .LCFI161:
  14121. 9297 .cfi_def_cfa_register 13
  14122. 9298 @ sp needed
  14123. 9299 0038 80BD pop {r7, pc}
  14124. 9300 .L445:
  14125. 9301 003a 00BF .align 2
  14126. 9302 .L444:
  14127. 9303 003c 00000000 .word I2C_Slave_ISR_IT
  14128. 9304 .cfi_endproc
  14129. 9305 .LFE161:
  14130. 9307 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
  14131. 9308 .align 1
  14132. 9309 .global HAL_I2C_DisableListen_IT
  14133. 9310 .syntax unified
  14134. 9311 .thumb
  14135. 9312 .thumb_func
  14136. 9314 HAL_I2C_DisableListen_IT:
  14137. 9315 .LFB162:
  14138. 4534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14139. 4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14140. 4536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
  14141. 4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14142. 4538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C
  14143. 4539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  14144. 4540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14145. 4541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
  14146. 4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14147. 9316 .loc 1 4542 1
  14148. 9317 .cfi_startproc
  14149. 9318 @ args = 0, pretend = 0, frame = 16
  14150. 9319 @ frame_needed = 1, uses_anonymous_args = 0
  14151. 9320 0000 80B5 push {r7, lr}
  14152. 9321 .LCFI162:
  14153. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 245
  14154. 9322 .cfi_def_cfa_offset 8
  14155. 9323 .cfi_offset 7, -8
  14156. 9324 .cfi_offset 14, -4
  14157. 9325 0002 84B0 sub sp, sp, #16
  14158. 9326 .LCFI163:
  14159. 9327 .cfi_def_cfa_offset 24
  14160. 9328 0004 00AF add r7, sp, #0
  14161. 9329 .LCFI164:
  14162. 9330 .cfi_def_cfa_register 7
  14163. 9331 0006 7860 str r0, [r7, #4]
  14164. 4543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
  14165. 4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp;
  14166. 4545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14167. 4546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
  14168. 4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
  14169. 9332 .loc 1 4547 11
  14170. 9333 0008 7B68 ldr r3, [r7, #4]
  14171. 9334 000a 93F84130 ldrb r3, [r3, #65]
  14172. 9335 000e DBB2 uxtb r3, r3
  14173. 9336 .loc 1 4547 6
  14174. 9337 0010 282B cmp r3, #40
  14175. 9338 0012 21D1 bne .L447
  14176. 4548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14177. 4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
  14178. 9339 .loc 1 4549 26
  14179. 9340 0014 7B68 ldr r3, [r7, #4]
  14180. 9341 0016 93F84130 ldrb r3, [r3, #65]
  14181. 9342 001a DBB2 uxtb r3, r3
  14182. 9343 .loc 1 4549 9
  14183. 9344 001c 03F00303 and r3, r3, #3
  14184. 9345 0020 FB60 str r3, [r7, #12]
  14185. 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
  14186. 9346 .loc 1 4550 48
  14187. 9347 0022 7B68 ldr r3, [r7, #4]
  14188. 9348 0024 93F84230 ldrb r3, [r3, #66]
  14189. 9349 0028 DBB2 uxtb r3, r3
  14190. 9350 .loc 1 4550 33
  14191. 9351 002a 1A46 mov r2, r3
  14192. 9352 .loc 1 4550 31
  14193. 9353 002c FB68 ldr r3, [r7, #12]
  14194. 9354 002e 1A43 orrs r2, r2, r3
  14195. 9355 .loc 1 4550 25
  14196. 9356 0030 7B68 ldr r3, [r7, #4]
  14197. 9357 0032 1A63 str r2, [r3, #48]
  14198. 4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  14199. 9358 .loc 1 4551 17
  14200. 9359 0034 7B68 ldr r3, [r7, #4]
  14201. 9360 0036 2022 movs r2, #32
  14202. 9361 0038 83F84120 strb r2, [r3, #65]
  14203. 4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  14204. 9362 .loc 1 4552 16
  14205. 9363 003c 7B68 ldr r3, [r7, #4]
  14206. 9364 003e 0022 movs r2, #0
  14207. 9365 0040 83F84220 strb r2, [r3, #66]
  14208. 4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  14209. 9366 .loc 1 4553 19
  14210. 9367 0044 7B68 ldr r3, [r7, #4]
  14211. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 246
  14212. 9368 0046 0022 movs r2, #0
  14213. 9369 0048 5A63 str r2, [r3, #52]
  14214. 4554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14215. 4555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the Address Match interrupt */
  14216. 4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  14217. 9370 .loc 1 4556 5
  14218. 9371 004a 4FF40041 mov r1, #32768
  14219. 9372 004e 7868 ldr r0, [r7, #4]
  14220. 9373 0050 FFF7FEFF bl I2C_Disable_IRQ
  14221. 4557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14222. 4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  14223. 9374 .loc 1 4558 12
  14224. 9375 0054 0023 movs r3, #0
  14225. 9376 0056 00E0 b .L448
  14226. 9377 .L447:
  14227. 4559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14228. 4560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  14229. 4561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14230. 4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
  14231. 9378 .loc 1 4562 12
  14232. 9379 0058 0223 movs r3, #2
  14233. 9380 .L448:
  14234. 4563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14235. 4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14236. 9381 .loc 1 4564 1
  14237. 9382 005a 1846 mov r0, r3
  14238. 9383 005c 1037 adds r7, r7, #16
  14239. 9384 .LCFI165:
  14240. 9385 .cfi_def_cfa_offset 8
  14241. 9386 005e BD46 mov sp, r7
  14242. 9387 .LCFI166:
  14243. 9388 .cfi_def_cfa_register 13
  14244. 9389 @ sp needed
  14245. 9390 0060 80BD pop {r7, pc}
  14246. 9391 .cfi_endproc
  14247. 9392 .LFE162:
  14248. 9394 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
  14249. 9395 .align 1
  14250. 9396 .global HAL_I2C_Master_Abort_IT
  14251. 9397 .syntax unified
  14252. 9398 .thumb
  14253. 9399 .thumb_func
  14254. 9401 HAL_I2C_Master_Abort_IT:
  14255. 9402 .LFB163:
  14256. 4565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14257. 4566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14258. 4567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt.
  14259. 4568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14260. 4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14261. 4570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  14262. 4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  14263. 4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  14264. 4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14265. 4574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
  14266. 4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14267. 9403 .loc 1 4575 1
  14268. 9404 .cfi_startproc
  14269. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 247
  14270. 9405 @ args = 0, pretend = 0, frame = 16
  14271. 9406 @ frame_needed = 1, uses_anonymous_args = 0
  14272. 9407 0000 80B5 push {r7, lr}
  14273. 9408 .LCFI167:
  14274. 9409 .cfi_def_cfa_offset 8
  14275. 9410 .cfi_offset 7, -8
  14276. 9411 .cfi_offset 14, -4
  14277. 9412 0002 86B0 sub sp, sp, #24
  14278. 9413 .LCFI168:
  14279. 9414 .cfi_def_cfa_offset 32
  14280. 9415 0004 02AF add r7, sp, #8
  14281. 9416 .LCFI169:
  14282. 9417 .cfi_def_cfa 7, 24
  14283. 9418 0006 7860 str r0, [r7, #4]
  14284. 9419 0008 0B46 mov r3, r1
  14285. 9420 000a 7B80 strh r3, [r7, #2] @ movhi
  14286. 4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
  14287. 9421 .loc 1 4576 23
  14288. 9422 000c 7B68 ldr r3, [r7, #4]
  14289. 9423 000e 93F84230 ldrb r3, [r3, #66]
  14290. 9424 0012 FB73 strb r3, [r7, #15]
  14291. 4577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14292. 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM))
  14293. 9425 .loc 1 4578 6
  14294. 9426 0014 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  14295. 9427 0016 102B cmp r3, #16
  14296. 9428 0018 02D0 beq .L450
  14297. 9429 .loc 1 4578 41 discriminator 1
  14298. 9430 001a FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  14299. 9431 001c 402B cmp r3, #64
  14300. 9432 001e 3CD1 bne .L451
  14301. 9433 .L450:
  14302. 4579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14303. 4580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  14304. 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  14305. 9434 .loc 1 4581 5
  14306. 9435 0020 7B68 ldr r3, [r7, #4]
  14307. 9436 0022 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  14308. 9437 0026 012B cmp r3, #1
  14309. 9438 0028 01D1 bne .L452
  14310. 9439 .loc 1 4581 5 is_stmt 0 discriminator 1
  14311. 9440 002a 0223 movs r3, #2
  14312. 9441 002c 36E0 b .L453
  14313. 9442 .L452:
  14314. 9443 .loc 1 4581 5 discriminator 2
  14315. 9444 002e 7B68 ldr r3, [r7, #4]
  14316. 9445 0030 0122 movs r2, #1
  14317. 9446 0032 83F84020 strb r2, [r3, #64]
  14318. 4582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14319. 4583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
  14320. 4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
  14321. 9447 .loc 1 4584 13 is_stmt 1 discriminator 2
  14322. 9448 0036 7B68 ldr r3, [r7, #4]
  14323. 9449 0038 93F84130 ldrb r3, [r3, #65]
  14324. 9450 003c DBB2 uxtb r3, r3
  14325. 9451 .loc 1 4584 8 discriminator 2
  14326. 9452 003e 212B cmp r3, #33
  14327. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 248
  14328. 9453 0040 07D1 bne .L454
  14329. 4585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14330. 4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  14331. 9454 .loc 1 4586 7
  14332. 9455 0042 0121 movs r1, #1
  14333. 9456 0044 7868 ldr r0, [r7, #4]
  14334. 9457 0046 FFF7FEFF bl I2C_Disable_IRQ
  14335. 4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
  14336. 9458 .loc 1 4587 27
  14337. 9459 004a 7B68 ldr r3, [r7, #4]
  14338. 9460 004c 1122 movs r2, #17
  14339. 9461 004e 1A63 str r2, [r3, #48]
  14340. 9462 0050 0CE0 b .L455
  14341. 9463 .L454:
  14342. 4588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14343. 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  14344. 9464 .loc 1 4589 18
  14345. 9465 0052 7B68 ldr r3, [r7, #4]
  14346. 9466 0054 93F84130 ldrb r3, [r3, #65]
  14347. 9467 0058 DBB2 uxtb r3, r3
  14348. 9468 .loc 1 4589 13
  14349. 9469 005a 222B cmp r3, #34
  14350. 9470 005c 06D1 bne .L455
  14351. 4590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14352. 4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
  14353. 9471 .loc 1 4591 7
  14354. 9472 005e 0221 movs r1, #2
  14355. 9473 0060 7868 ldr r0, [r7, #4]
  14356. 9474 0062 FFF7FEFF bl I2C_Disable_IRQ
  14357. 4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
  14358. 9475 .loc 1 4592 27
  14359. 9476 0066 7B68 ldr r3, [r7, #4]
  14360. 9477 0068 1222 movs r2, #18
  14361. 9478 006a 1A63 str r2, [r3, #48]
  14362. 9479 .L455:
  14363. 4593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14364. 4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  14365. 4595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14366. 4596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
  14367. 4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14368. 4598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14369. 4599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
  14370. 4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
  14371. 9480 .loc 1 4600 17
  14372. 9481 006c 7B68 ldr r3, [r7, #4]
  14373. 9482 006e 6022 movs r2, #96
  14374. 9483 0070 83F84120 strb r2, [r3, #65]
  14375. 4601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14376. 4602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
  14377. 4603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe
  14378. 4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
  14379. 9484 .loc 1 4604 5
  14380. 9485 0074 7988 ldrh r1, [r7, #2]
  14381. 9486 0076 0B4B ldr r3, .L456
  14382. 9487 0078 0093 str r3, [sp]
  14383. 9488 007a 4FF00073 mov r3, #33554432
  14384. 9489 007e 0122 movs r2, #1
  14385. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 249
  14386. 9490 0080 7868 ldr r0, [r7, #4]
  14387. 9491 0082 FFF7FEFF bl I2C_TransferConfig
  14388. 4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14389. 4606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  14390. 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  14391. 9492 .loc 1 4607 5
  14392. 9493 0086 7B68 ldr r3, [r7, #4]
  14393. 9494 0088 0022 movs r2, #0
  14394. 9495 008a 83F84020 strb r2, [r3, #64]
  14395. 4608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14396. 4609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
  14397. 4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
  14398. 4611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
  14399. 4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
  14400. 9496 .loc 1 4612 5
  14401. 9497 008e 2021 movs r1, #32
  14402. 9498 0090 7868 ldr r0, [r7, #4]
  14403. 9499 0092 FFF7FEFF bl I2C_Enable_IRQ
  14404. 4613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14405. 4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  14406. 9500 .loc 1 4614 12
  14407. 9501 0096 0023 movs r3, #0
  14408. 9502 0098 00E0 b .L453
  14409. 9503 .L451:
  14410. 4615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14411. 4616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  14412. 4617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14413. 4618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong usage of abort function */
  14414. 4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
  14415. 4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  14416. 9504 .loc 1 4620 12
  14417. 9505 009a 0123 movs r3, #1
  14418. 9506 .L453:
  14419. 4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14420. 4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14421. 9507 .loc 1 4622 1
  14422. 9508 009c 1846 mov r0, r3
  14423. 9509 009e 1037 adds r7, r7, #16
  14424. 9510 .LCFI170:
  14425. 9511 .cfi_def_cfa_offset 8
  14426. 9512 00a0 BD46 mov sp, r7
  14427. 9513 .LCFI171:
  14428. 9514 .cfi_def_cfa_register 13
  14429. 9515 @ sp needed
  14430. 9516 00a2 80BD pop {r7, pc}
  14431. 9517 .L457:
  14432. 9518 .align 2
  14433. 9519 .L456:
  14434. 9520 00a4 00400080 .word -2147467264
  14435. 9521 .cfi_endproc
  14436. 9522 .LFE163:
  14437. 9524 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
  14438. 9525 .align 1
  14439. 9526 .global HAL_I2C_EV_IRQHandler
  14440. 9527 .syntax unified
  14441. 9528 .thumb
  14442. 9529 .thumb_func
  14443. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 250
  14444. 9531 HAL_I2C_EV_IRQHandler:
  14445. 9532 .LFB164:
  14446. 4623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14447. 4624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14448. 4625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  14449. 4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14450. 4627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14451. 4628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
  14452. 4629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  14453. 4630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14454. 4631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14455. 4632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14456. 4633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
  14457. 4634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14458. 4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14459. 4636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  14460. 4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14461. 4638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */
  14462. 4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14463. 9533 .loc 1 4639 1
  14464. 9534 .cfi_startproc
  14465. 9535 @ args = 0, pretend = 0, frame = 16
  14466. 9536 @ frame_needed = 1, uses_anonymous_args = 0
  14467. 9537 0000 80B5 push {r7, lr}
  14468. 9538 .LCFI172:
  14469. 9539 .cfi_def_cfa_offset 8
  14470. 9540 .cfi_offset 7, -8
  14471. 9541 .cfi_offset 14, -4
  14472. 9542 0002 84B0 sub sp, sp, #16
  14473. 9543 .LCFI173:
  14474. 9544 .cfi_def_cfa_offset 24
  14475. 9545 0004 00AF add r7, sp, #0
  14476. 9546 .LCFI174:
  14477. 9547 .cfi_def_cfa_register 7
  14478. 9548 0006 7860 str r0, [r7, #4]
  14479. 4640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
  14480. 4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
  14481. 9549 .loc 1 4641 24
  14482. 9550 0008 7B68 ldr r3, [r7, #4]
  14483. 9551 000a 1B68 ldr r3, [r3]
  14484. 9552 .loc 1 4641 12
  14485. 9553 000c 9B69 ldr r3, [r3, #24]
  14486. 9554 000e FB60 str r3, [r7, #12]
  14487. 4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
  14488. 9555 .loc 1 4642 24
  14489. 9556 0010 7B68 ldr r3, [r7, #4]
  14490. 9557 0012 1B68 ldr r3, [r3]
  14491. 9558 .loc 1 4642 12
  14492. 9559 0014 1B68 ldr r3, [r3]
  14493. 9560 0016 BB60 str r3, [r7, #8]
  14494. 4643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14495. 4644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
  14496. 4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
  14497. 9561 .loc 1 4645 11
  14498. 9562 0018 7B68 ldr r3, [r7, #4]
  14499. 9563 001a 5B6B ldr r3, [r3, #52]
  14500. 9564 .loc 1 4645 6
  14501. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 251
  14502. 9565 001c 002B cmp r3, #0
  14503. 9566 001e 05D0 beq .L460
  14504. 4646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14505. 4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
  14506. 9567 .loc 1 4647 9
  14507. 9568 0020 7B68 ldr r3, [r7, #4]
  14508. 9569 0022 5B6B ldr r3, [r3, #52]
  14509. 9570 .loc 1 4647 5
  14510. 9571 0024 BA68 ldr r2, [r7, #8]
  14511. 9572 0026 F968 ldr r1, [r7, #12]
  14512. 9573 0028 7868 ldr r0, [r7, #4]
  14513. 9574 002a 9847 blx r3
  14514. 9575 .LVL6:
  14515. 9576 .L460:
  14516. 4648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14517. 4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14518. 9577 .loc 1 4649 1
  14519. 9578 002c 00BF nop
  14520. 9579 002e 1037 adds r7, r7, #16
  14521. 9580 .LCFI175:
  14522. 9581 .cfi_def_cfa_offset 8
  14523. 9582 0030 BD46 mov sp, r7
  14524. 9583 .LCFI176:
  14525. 9584 .cfi_def_cfa_register 13
  14526. 9585 @ sp needed
  14527. 9586 0032 80BD pop {r7, pc}
  14528. 9587 .cfi_endproc
  14529. 9588 .LFE164:
  14530. 9590 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
  14531. 9591 .align 1
  14532. 9592 .global HAL_I2C_ER_IRQHandler
  14533. 9593 .syntax unified
  14534. 9594 .thumb
  14535. 9595 .thumb_func
  14536. 9597 HAL_I2C_ER_IRQHandler:
  14537. 9598 .LFB165:
  14538. 4650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14539. 4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14540. 4652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
  14541. 4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14542. 4654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14543. 4655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  14544. 4656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14545. 4657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
  14546. 4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14547. 9599 .loc 1 4658 1
  14548. 9600 .cfi_startproc
  14549. 9601 @ args = 0, pretend = 0, frame = 24
  14550. 9602 @ frame_needed = 1, uses_anonymous_args = 0
  14551. 9603 0000 80B5 push {r7, lr}
  14552. 9604 .LCFI177:
  14553. 9605 .cfi_def_cfa_offset 8
  14554. 9606 .cfi_offset 7, -8
  14555. 9607 .cfi_offset 14, -4
  14556. 9608 0002 86B0 sub sp, sp, #24
  14557. 9609 .LCFI178:
  14558. 9610 .cfi_def_cfa_offset 32
  14559. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 252
  14560. 9611 0004 00AF add r7, sp, #0
  14561. 9612 .LCFI179:
  14562. 9613 .cfi_def_cfa_register 7
  14563. 9614 0006 7860 str r0, [r7, #4]
  14564. 4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
  14565. 9615 .loc 1 4659 24
  14566. 9616 0008 7B68 ldr r3, [r7, #4]
  14567. 9617 000a 1B68 ldr r3, [r3]
  14568. 9618 .loc 1 4659 12
  14569. 9619 000c 9B69 ldr r3, [r3, #24]
  14570. 9620 000e 7B61 str r3, [r7, #20]
  14571. 4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
  14572. 9621 .loc 1 4660 24
  14573. 9622 0010 7B68 ldr r3, [r7, #4]
  14574. 9623 0012 1B68 ldr r3, [r3]
  14575. 9624 .loc 1 4660 12
  14576. 9625 0014 1B68 ldr r3, [r3]
  14577. 9626 0016 3B61 str r3, [r7, #16]
  14578. 4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
  14579. 4662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14580. 4663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
  14581. 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \
  14582. 9627 .loc 1 4664 8
  14583. 9628 0018 7B69 ldr r3, [r7, #20]
  14584. 9629 001a 1B0A lsrs r3, r3, #8
  14585. 9630 001c 03F00103 and r3, r3, #1
  14586. 9631 .loc 1 4664 6
  14587. 9632 0020 002B cmp r3, #0
  14588. 9633 0022 10D0 beq .L462
  14589. 4665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
  14590. 9634 .loc 1 4665 8 discriminator 1
  14591. 9635 0024 3B69 ldr r3, [r7, #16]
  14592. 9636 0026 DB09 lsrs r3, r3, #7
  14593. 9637 0028 03F00103 and r3, r3, #1
  14594. 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
  14595. 9638 .loc 1 4664 57 discriminator 1
  14596. 9639 002c 002B cmp r3, #0
  14597. 9640 002e 0AD0 beq .L462
  14598. 4666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14599. 4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
  14600. 9641 .loc 1 4667 21
  14601. 9642 0030 7B68 ldr r3, [r7, #4]
  14602. 9643 0032 5B6C ldr r3, [r3, #68]
  14603. 9644 0034 43F00102 orr r2, r3, #1
  14604. 9645 0038 7B68 ldr r3, [r7, #4]
  14605. 9646 003a 5A64 str r2, [r3, #68]
  14606. 4668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14607. 4669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
  14608. 4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
  14609. 9647 .loc 1 4670 5
  14610. 9648 003c 7B68 ldr r3, [r7, #4]
  14611. 9649 003e 1B68 ldr r3, [r3]
  14612. 9650 0040 4FF48072 mov r2, #256
  14613. 9651 0044 DA61 str r2, [r3, #28]
  14614. 9652 .L462:
  14615. 4671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14616. 4672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14617. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 253
  14618. 4673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
  14619. 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \
  14620. 9653 .loc 1 4674 8
  14621. 9654 0046 7B69 ldr r3, [r7, #20]
  14622. 9655 0048 9B0A lsrs r3, r3, #10
  14623. 9656 004a 03F00103 and r3, r3, #1
  14624. 9657 .loc 1 4674 6
  14625. 9658 004e 002B cmp r3, #0
  14626. 9659 0050 10D0 beq .L463
  14627. 4675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
  14628. 9660 .loc 1 4675 8 discriminator 1
  14629. 9661 0052 3B69 ldr r3, [r7, #16]
  14630. 9662 0054 DB09 lsrs r3, r3, #7
  14631. 9663 0056 03F00103 and r3, r3, #1
  14632. 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
  14633. 9664 .loc 1 4674 56 discriminator 1
  14634. 9665 005a 002B cmp r3, #0
  14635. 9666 005c 0AD0 beq .L463
  14636. 4676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14637. 4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
  14638. 9667 .loc 1 4677 21
  14639. 9668 005e 7B68 ldr r3, [r7, #4]
  14640. 9669 0060 5B6C ldr r3, [r3, #68]
  14641. 9670 0062 43F00802 orr r2, r3, #8
  14642. 9671 0066 7B68 ldr r3, [r7, #4]
  14643. 9672 0068 5A64 str r2, [r3, #68]
  14644. 4678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14645. 4679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
  14646. 4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
  14647. 9673 .loc 1 4680 5
  14648. 9674 006a 7B68 ldr r3, [r7, #4]
  14649. 9675 006c 1B68 ldr r3, [r3]
  14650. 9676 006e 4FF48062 mov r2, #1024
  14651. 9677 0072 DA61 str r2, [r3, #28]
  14652. 9678 .L463:
  14653. 4681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14654. 4682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14655. 4683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
  14656. 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \
  14657. 9679 .loc 1 4684 8
  14658. 9680 0074 7B69 ldr r3, [r7, #20]
  14659. 9681 0076 5B0A lsrs r3, r3, #9
  14660. 9682 0078 03F00103 and r3, r3, #1
  14661. 9683 .loc 1 4684 6
  14662. 9684 007c 002B cmp r3, #0
  14663. 9685 007e 10D0 beq .L464
  14664. 4685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
  14665. 9686 .loc 1 4685 8 discriminator 1
  14666. 9687 0080 3B69 ldr r3, [r7, #16]
  14667. 9688 0082 DB09 lsrs r3, r3, #7
  14668. 9689 0084 03F00103 and r3, r3, #1
  14669. 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
  14670. 9690 .loc 1 4684 57 discriminator 1
  14671. 9691 0088 002B cmp r3, #0
  14672. 9692 008a 0AD0 beq .L464
  14673. 4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14674. 4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
  14675. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 254
  14676. 9693 .loc 1 4687 21
  14677. 9694 008c 7B68 ldr r3, [r7, #4]
  14678. 9695 008e 5B6C ldr r3, [r3, #68]
  14679. 9696 0090 43F00202 orr r2, r3, #2
  14680. 9697 0094 7B68 ldr r3, [r7, #4]
  14681. 9698 0096 5A64 str r2, [r3, #68]
  14682. 4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14683. 4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
  14684. 4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
  14685. 9699 .loc 1 4690 5
  14686. 9700 0098 7B68 ldr r3, [r7, #4]
  14687. 9701 009a 1B68 ldr r3, [r3]
  14688. 9702 009c 4FF40072 mov r2, #512
  14689. 9703 00a0 DA61 str r2, [r3, #28]
  14690. 9704 .L464:
  14691. 4691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14692. 4692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14693. 4693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
  14694. 4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
  14695. 9705 .loc 1 4694 12
  14696. 9706 00a2 7B68 ldr r3, [r7, #4]
  14697. 9707 00a4 5B6C ldr r3, [r3, #68]
  14698. 9708 00a6 FB60 str r3, [r7, #12]
  14699. 4695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14700. 4696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
  14701. 4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_
  14702. 9709 .loc 1 4697 17
  14703. 9710 00a8 FB68 ldr r3, [r7, #12]
  14704. 9711 00aa 03F00B03 and r3, r3, #11
  14705. 9712 .loc 1 4697 6
  14706. 9713 00ae 002B cmp r3, #0
  14707. 9714 00b0 03D0 beq .L466
  14708. 4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14709. 4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
  14710. 9715 .loc 1 4699 5
  14711. 9716 00b2 F968 ldr r1, [r7, #12]
  14712. 9717 00b4 7868 ldr r0, [r7, #4]
  14713. 9718 00b6 FFF7FEFF bl I2C_ITError
  14714. 9719 .L466:
  14715. 4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14716. 4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14717. 9720 .loc 1 4701 1
  14718. 9721 00ba 00BF nop
  14719. 9722 00bc 1837 adds r7, r7, #24
  14720. 9723 .LCFI180:
  14721. 9724 .cfi_def_cfa_offset 8
  14722. 9725 00be BD46 mov sp, r7
  14723. 9726 .LCFI181:
  14724. 9727 .cfi_def_cfa_register 13
  14725. 9728 @ sp needed
  14726. 9729 00c0 80BD pop {r7, pc}
  14727. 9730 .cfi_endproc
  14728. 9731 .LFE165:
  14729. 9733 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
  14730. 9734 .align 1
  14731. 9735 .weak HAL_I2C_MasterTxCpltCallback
  14732. 9736 .syntax unified
  14733. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 255
  14734. 9737 .thumb
  14735. 9738 .thumb_func
  14736. 9740 HAL_I2C_MasterTxCpltCallback:
  14737. 9741 .LFB166:
  14738. 4702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14739. 4703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14740. 4704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
  14741. 4705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14742. 4706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14743. 4707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  14744. 4708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14745. 4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
  14746. 4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14747. 9742 .loc 1 4710 1
  14748. 9743 .cfi_startproc
  14749. 9744 @ args = 0, pretend = 0, frame = 8
  14750. 9745 @ frame_needed = 1, uses_anonymous_args = 0
  14751. 9746 @ link register save eliminated.
  14752. 9747 0000 80B4 push {r7}
  14753. 9748 .LCFI182:
  14754. 9749 .cfi_def_cfa_offset 4
  14755. 9750 .cfi_offset 7, -4
  14756. 9751 0002 83B0 sub sp, sp, #12
  14757. 9752 .LCFI183:
  14758. 9753 .cfi_def_cfa_offset 16
  14759. 9754 0004 00AF add r7, sp, #0
  14760. 9755 .LCFI184:
  14761. 9756 .cfi_def_cfa_register 7
  14762. 9757 0006 7860 str r0, [r7, #4]
  14763. 4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  14764. 4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  14765. 4713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14766. 4714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  14767. 4715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
  14768. 4716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14769. 4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14770. 9758 .loc 1 4717 1
  14771. 9759 0008 00BF nop
  14772. 9760 000a 0C37 adds r7, r7, #12
  14773. 9761 .LCFI185:
  14774. 9762 .cfi_def_cfa_offset 4
  14775. 9763 000c BD46 mov sp, r7
  14776. 9764 .LCFI186:
  14777. 9765 .cfi_def_cfa_register 13
  14778. 9766 @ sp needed
  14779. 9767 000e 5DF8047B ldr r7, [sp], #4
  14780. 9768 .LCFI187:
  14781. 9769 .cfi_restore 7
  14782. 9770 .cfi_def_cfa_offset 0
  14783. 9771 0012 7047 bx lr
  14784. 9772 .cfi_endproc
  14785. 9773 .LFE166:
  14786. 9775 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
  14787. 9776 .align 1
  14788. 9777 .weak HAL_I2C_MasterRxCpltCallback
  14789. 9778 .syntax unified
  14790. 9779 .thumb
  14791. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 256
  14792. 9780 .thumb_func
  14793. 9782 HAL_I2C_MasterRxCpltCallback:
  14794. 9783 .LFB167:
  14795. 4718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14796. 4719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14797. 4720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
  14798. 4721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14799. 4722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14800. 4723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  14801. 4724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14802. 4725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
  14803. 4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14804. 9784 .loc 1 4726 1
  14805. 9785 .cfi_startproc
  14806. 9786 @ args = 0, pretend = 0, frame = 8
  14807. 9787 @ frame_needed = 1, uses_anonymous_args = 0
  14808. 9788 @ link register save eliminated.
  14809. 9789 0000 80B4 push {r7}
  14810. 9790 .LCFI188:
  14811. 9791 .cfi_def_cfa_offset 4
  14812. 9792 .cfi_offset 7, -4
  14813. 9793 0002 83B0 sub sp, sp, #12
  14814. 9794 .LCFI189:
  14815. 9795 .cfi_def_cfa_offset 16
  14816. 9796 0004 00AF add r7, sp, #0
  14817. 9797 .LCFI190:
  14818. 9798 .cfi_def_cfa_register 7
  14819. 9799 0006 7860 str r0, [r7, #4]
  14820. 4727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  14821. 4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  14822. 4729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14823. 4730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  14824. 4731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
  14825. 4732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14826. 4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14827. 9800 .loc 1 4733 1
  14828. 9801 0008 00BF nop
  14829. 9802 000a 0C37 adds r7, r7, #12
  14830. 9803 .LCFI191:
  14831. 9804 .cfi_def_cfa_offset 4
  14832. 9805 000c BD46 mov sp, r7
  14833. 9806 .LCFI192:
  14834. 9807 .cfi_def_cfa_register 13
  14835. 9808 @ sp needed
  14836. 9809 000e 5DF8047B ldr r7, [sp], #4
  14837. 9810 .LCFI193:
  14838. 9811 .cfi_restore 7
  14839. 9812 .cfi_def_cfa_offset 0
  14840. 9813 0012 7047 bx lr
  14841. 9814 .cfi_endproc
  14842. 9815 .LFE167:
  14843. 9817 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
  14844. 9818 .align 1
  14845. 9819 .weak HAL_I2C_SlaveTxCpltCallback
  14846. 9820 .syntax unified
  14847. 9821 .thumb
  14848. 9822 .thumb_func
  14849. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 257
  14850. 9824 HAL_I2C_SlaveTxCpltCallback:
  14851. 9825 .LFB168:
  14852. 4734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14853. 4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
  14854. 4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14855. 4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14856. 4738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  14857. 4739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14858. 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
  14859. 4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14860. 9826 .loc 1 4741 1
  14861. 9827 .cfi_startproc
  14862. 9828 @ args = 0, pretend = 0, frame = 8
  14863. 9829 @ frame_needed = 1, uses_anonymous_args = 0
  14864. 9830 @ link register save eliminated.
  14865. 9831 0000 80B4 push {r7}
  14866. 9832 .LCFI194:
  14867. 9833 .cfi_def_cfa_offset 4
  14868. 9834 .cfi_offset 7, -4
  14869. 9835 0002 83B0 sub sp, sp, #12
  14870. 9836 .LCFI195:
  14871. 9837 .cfi_def_cfa_offset 16
  14872. 9838 0004 00AF add r7, sp, #0
  14873. 9839 .LCFI196:
  14874. 9840 .cfi_def_cfa_register 7
  14875. 9841 0006 7860 str r0, [r7, #4]
  14876. 4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  14877. 4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  14878. 4744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14879. 4745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  14880. 4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
  14881. 4747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14882. 4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14883. 9842 .loc 1 4748 1
  14884. 9843 0008 00BF nop
  14885. 9844 000a 0C37 adds r7, r7, #12
  14886. 9845 .LCFI197:
  14887. 9846 .cfi_def_cfa_offset 4
  14888. 9847 000c BD46 mov sp, r7
  14889. 9848 .LCFI198:
  14890. 9849 .cfi_def_cfa_register 13
  14891. 9850 @ sp needed
  14892. 9851 000e 5DF8047B ldr r7, [sp], #4
  14893. 9852 .LCFI199:
  14894. 9853 .cfi_restore 7
  14895. 9854 .cfi_def_cfa_offset 0
  14896. 9855 0012 7047 bx lr
  14897. 9856 .cfi_endproc
  14898. 9857 .LFE168:
  14899. 9859 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
  14900. 9860 .align 1
  14901. 9861 .weak HAL_I2C_SlaveRxCpltCallback
  14902. 9862 .syntax unified
  14903. 9863 .thumb
  14904. 9864 .thumb_func
  14905. 9866 HAL_I2C_SlaveRxCpltCallback:
  14906. 9867 .LFB169:
  14907. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 258
  14908. 4749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14909. 4750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14910. 4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
  14911. 4752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14912. 4753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14913. 4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  14914. 4755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14915. 4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
  14916. 4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14917. 9868 .loc 1 4757 1
  14918. 9869 .cfi_startproc
  14919. 9870 @ args = 0, pretend = 0, frame = 8
  14920. 9871 @ frame_needed = 1, uses_anonymous_args = 0
  14921. 9872 @ link register save eliminated.
  14922. 9873 0000 80B4 push {r7}
  14923. 9874 .LCFI200:
  14924. 9875 .cfi_def_cfa_offset 4
  14925. 9876 .cfi_offset 7, -4
  14926. 9877 0002 83B0 sub sp, sp, #12
  14927. 9878 .LCFI201:
  14928. 9879 .cfi_def_cfa_offset 16
  14929. 9880 0004 00AF add r7, sp, #0
  14930. 9881 .LCFI202:
  14931. 9882 .cfi_def_cfa_register 7
  14932. 9883 0006 7860 str r0, [r7, #4]
  14933. 4758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  14934. 4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  14935. 4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14936. 4761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  14937. 4762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
  14938. 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14939. 4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  14940. 9884 .loc 1 4764 1
  14941. 9885 0008 00BF nop
  14942. 9886 000a 0C37 adds r7, r7, #12
  14943. 9887 .LCFI203:
  14944. 9888 .cfi_def_cfa_offset 4
  14945. 9889 000c BD46 mov sp, r7
  14946. 9890 .LCFI204:
  14947. 9891 .cfi_def_cfa_register 13
  14948. 9892 @ sp needed
  14949. 9893 000e 5DF8047B ldr r7, [sp], #4
  14950. 9894 .LCFI205:
  14951. 9895 .cfi_restore 7
  14952. 9896 .cfi_def_cfa_offset 0
  14953. 9897 0012 7047 bx lr
  14954. 9898 .cfi_endproc
  14955. 9899 .LFE169:
  14956. 9901 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
  14957. 9902 .align 1
  14958. 9903 .weak HAL_I2C_AddrCallback
  14959. 9904 .syntax unified
  14960. 9905 .thumb
  14961. 9906 .thumb_func
  14962. 9908 HAL_I2C_AddrCallback:
  14963. 9909 .LFB170:
  14964. 4765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  14965. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 259
  14966. 4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  14967. 4767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Address Match callback.
  14968. 4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  14969. 4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  14970. 4770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
  14971. 4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
  14972. 4772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  14973. 4773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  14974. 4774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
  14975. 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  14976. 9910 .loc 1 4775 1
  14977. 9911 .cfi_startproc
  14978. 9912 @ args = 0, pretend = 0, frame = 8
  14979. 9913 @ frame_needed = 1, uses_anonymous_args = 0
  14980. 9914 @ link register save eliminated.
  14981. 9915 0000 80B4 push {r7}
  14982. 9916 .LCFI206:
  14983. 9917 .cfi_def_cfa_offset 4
  14984. 9918 .cfi_offset 7, -4
  14985. 9919 0002 83B0 sub sp, sp, #12
  14986. 9920 .LCFI207:
  14987. 9921 .cfi_def_cfa_offset 16
  14988. 9922 0004 00AF add r7, sp, #0
  14989. 9923 .LCFI208:
  14990. 9924 .cfi_def_cfa_register 7
  14991. 9925 0006 7860 str r0, [r7, #4]
  14992. 9926 0008 0B46 mov r3, r1
  14993. 9927 000a FB70 strb r3, [r7, #3]
  14994. 9928 000c 1346 mov r3, r2 @ movhi
  14995. 9929 000e 3B80 strh r3, [r7] @ movhi
  14996. 4776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  14997. 4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  14998. 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection);
  14999. 4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode);
  15000. 4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15001. 4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  15002. 4782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
  15003. 4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15004. 4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15005. 9930 .loc 1 4784 1
  15006. 9931 0010 00BF nop
  15007. 9932 0012 0C37 adds r7, r7, #12
  15008. 9933 .LCFI209:
  15009. 9934 .cfi_def_cfa_offset 4
  15010. 9935 0014 BD46 mov sp, r7
  15011. 9936 .LCFI210:
  15012. 9937 .cfi_def_cfa_register 13
  15013. 9938 @ sp needed
  15014. 9939 0016 5DF8047B ldr r7, [sp], #4
  15015. 9940 .LCFI211:
  15016. 9941 .cfi_restore 7
  15017. 9942 .cfi_def_cfa_offset 0
  15018. 9943 001a 7047 bx lr
  15019. 9944 .cfi_endproc
  15020. 9945 .LFE170:
  15021. 9947 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
  15022. 9948 .align 1
  15023. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 260
  15024. 9949 .weak HAL_I2C_ListenCpltCallback
  15025. 9950 .syntax unified
  15026. 9951 .thumb
  15027. 9952 .thumb_func
  15028. 9954 HAL_I2C_ListenCpltCallback:
  15029. 9955 .LFB171:
  15030. 4785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15031. 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15032. 4787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Listen Complete callback.
  15033. 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15034. 4789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15035. 4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  15036. 4791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15037. 4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
  15038. 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15039. 9956 .loc 1 4793 1
  15040. 9957 .cfi_startproc
  15041. 9958 @ args = 0, pretend = 0, frame = 8
  15042. 9959 @ frame_needed = 1, uses_anonymous_args = 0
  15043. 9960 @ link register save eliminated.
  15044. 9961 0000 80B4 push {r7}
  15045. 9962 .LCFI212:
  15046. 9963 .cfi_def_cfa_offset 4
  15047. 9964 .cfi_offset 7, -4
  15048. 9965 0002 83B0 sub sp, sp, #12
  15049. 9966 .LCFI213:
  15050. 9967 .cfi_def_cfa_offset 16
  15051. 9968 0004 00AF add r7, sp, #0
  15052. 9969 .LCFI214:
  15053. 9970 .cfi_def_cfa_register 7
  15054. 9971 0006 7860 str r0, [r7, #4]
  15055. 4794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  15056. 4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  15057. 4796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15058. 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  15059. 4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
  15060. 4799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15061. 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15062. 9972 .loc 1 4800 1
  15063. 9973 0008 00BF nop
  15064. 9974 000a 0C37 adds r7, r7, #12
  15065. 9975 .LCFI215:
  15066. 9976 .cfi_def_cfa_offset 4
  15067. 9977 000c BD46 mov sp, r7
  15068. 9978 .LCFI216:
  15069. 9979 .cfi_def_cfa_register 13
  15070. 9980 @ sp needed
  15071. 9981 000e 5DF8047B ldr r7, [sp], #4
  15072. 9982 .LCFI217:
  15073. 9983 .cfi_restore 7
  15074. 9984 .cfi_def_cfa_offset 0
  15075. 9985 0012 7047 bx lr
  15076. 9986 .cfi_endproc
  15077. 9987 .LFE171:
  15078. 9989 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
  15079. 9990 .align 1
  15080. 9991 .weak HAL_I2C_MemTxCpltCallback
  15081. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 261
  15082. 9992 .syntax unified
  15083. 9993 .thumb
  15084. 9994 .thumb_func
  15085. 9996 HAL_I2C_MemTxCpltCallback:
  15086. 9997 .LFB172:
  15087. 4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15088. 4802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15089. 4803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
  15090. 4804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15091. 4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15092. 4806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  15093. 4807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15094. 4808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
  15095. 4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15096. 9998 .loc 1 4809 1
  15097. 9999 .cfi_startproc
  15098. 10000 @ args = 0, pretend = 0, frame = 8
  15099. 10001 @ frame_needed = 1, uses_anonymous_args = 0
  15100. 10002 @ link register save eliminated.
  15101. 10003 0000 80B4 push {r7}
  15102. 10004 .LCFI218:
  15103. 10005 .cfi_def_cfa_offset 4
  15104. 10006 .cfi_offset 7, -4
  15105. 10007 0002 83B0 sub sp, sp, #12
  15106. 10008 .LCFI219:
  15107. 10009 .cfi_def_cfa_offset 16
  15108. 10010 0004 00AF add r7, sp, #0
  15109. 10011 .LCFI220:
  15110. 10012 .cfi_def_cfa_register 7
  15111. 10013 0006 7860 str r0, [r7, #4]
  15112. 4810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  15113. 4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  15114. 4812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15115. 4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  15116. 4814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
  15117. 4815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15118. 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15119. 10014 .loc 1 4816 1
  15120. 10015 0008 00BF nop
  15121. 10016 000a 0C37 adds r7, r7, #12
  15122. 10017 .LCFI221:
  15123. 10018 .cfi_def_cfa_offset 4
  15124. 10019 000c BD46 mov sp, r7
  15125. 10020 .LCFI222:
  15126. 10021 .cfi_def_cfa_register 13
  15127. 10022 @ sp needed
  15128. 10023 000e 5DF8047B ldr r7, [sp], #4
  15129. 10024 .LCFI223:
  15130. 10025 .cfi_restore 7
  15131. 10026 .cfi_def_cfa_offset 0
  15132. 10027 0012 7047 bx lr
  15133. 10028 .cfi_endproc
  15134. 10029 .LFE172:
  15135. 10031 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
  15136. 10032 .align 1
  15137. 10033 .weak HAL_I2C_MemRxCpltCallback
  15138. 10034 .syntax unified
  15139. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 262
  15140. 10035 .thumb
  15141. 10036 .thumb_func
  15142. 10038 HAL_I2C_MemRxCpltCallback:
  15143. 10039 .LFB173:
  15144. 4817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15145. 4818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15146. 4819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
  15147. 4820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15148. 4821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15149. 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  15150. 4823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15151. 4824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
  15152. 4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15153. 10040 .loc 1 4825 1
  15154. 10041 .cfi_startproc
  15155. 10042 @ args = 0, pretend = 0, frame = 8
  15156. 10043 @ frame_needed = 1, uses_anonymous_args = 0
  15157. 10044 @ link register save eliminated.
  15158. 10045 0000 80B4 push {r7}
  15159. 10046 .LCFI224:
  15160. 10047 .cfi_def_cfa_offset 4
  15161. 10048 .cfi_offset 7, -4
  15162. 10049 0002 83B0 sub sp, sp, #12
  15163. 10050 .LCFI225:
  15164. 10051 .cfi_def_cfa_offset 16
  15165. 10052 0004 00AF add r7, sp, #0
  15166. 10053 .LCFI226:
  15167. 10054 .cfi_def_cfa_register 7
  15168. 10055 0006 7860 str r0, [r7, #4]
  15169. 4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  15170. 4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  15171. 4828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15172. 4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  15173. 4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
  15174. 4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15175. 4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15176. 10056 .loc 1 4832 1
  15177. 10057 0008 00BF nop
  15178. 10058 000a 0C37 adds r7, r7, #12
  15179. 10059 .LCFI227:
  15180. 10060 .cfi_def_cfa_offset 4
  15181. 10061 000c BD46 mov sp, r7
  15182. 10062 .LCFI228:
  15183. 10063 .cfi_def_cfa_register 13
  15184. 10064 @ sp needed
  15185. 10065 000e 5DF8047B ldr r7, [sp], #4
  15186. 10066 .LCFI229:
  15187. 10067 .cfi_restore 7
  15188. 10068 .cfi_def_cfa_offset 0
  15189. 10069 0012 7047 bx lr
  15190. 10070 .cfi_endproc
  15191. 10071 .LFE173:
  15192. 10073 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
  15193. 10074 .align 1
  15194. 10075 .weak HAL_I2C_ErrorCallback
  15195. 10076 .syntax unified
  15196. 10077 .thumb
  15197. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 263
  15198. 10078 .thumb_func
  15199. 10080 HAL_I2C_ErrorCallback:
  15200. 10081 .LFB174:
  15201. 4833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15202. 4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15203. 4835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C error callback.
  15204. 4836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15205. 4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15206. 4838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  15207. 4839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15208. 4840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
  15209. 4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15210. 10082 .loc 1 4841 1
  15211. 10083 .cfi_startproc
  15212. 10084 @ args = 0, pretend = 0, frame = 8
  15213. 10085 @ frame_needed = 1, uses_anonymous_args = 0
  15214. 10086 @ link register save eliminated.
  15215. 10087 0000 80B4 push {r7}
  15216. 10088 .LCFI230:
  15217. 10089 .cfi_def_cfa_offset 4
  15218. 10090 .cfi_offset 7, -4
  15219. 10091 0002 83B0 sub sp, sp, #12
  15220. 10092 .LCFI231:
  15221. 10093 .cfi_def_cfa_offset 16
  15222. 10094 0004 00AF add r7, sp, #0
  15223. 10095 .LCFI232:
  15224. 10096 .cfi_def_cfa_register 7
  15225. 10097 0006 7860 str r0, [r7, #4]
  15226. 4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  15227. 4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  15228. 4844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15229. 4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  15230. 4846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
  15231. 4847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15232. 4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15233. 10098 .loc 1 4848 1
  15234. 10099 0008 00BF nop
  15235. 10100 000a 0C37 adds r7, r7, #12
  15236. 10101 .LCFI233:
  15237. 10102 .cfi_def_cfa_offset 4
  15238. 10103 000c BD46 mov sp, r7
  15239. 10104 .LCFI234:
  15240. 10105 .cfi_def_cfa_register 13
  15241. 10106 @ sp needed
  15242. 10107 000e 5DF8047B ldr r7, [sp], #4
  15243. 10108 .LCFI235:
  15244. 10109 .cfi_restore 7
  15245. 10110 .cfi_def_cfa_offset 0
  15246. 10111 0012 7047 bx lr
  15247. 10112 .cfi_endproc
  15248. 10113 .LFE174:
  15249. 10115 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
  15250. 10116 .align 1
  15251. 10117 .weak HAL_I2C_AbortCpltCallback
  15252. 10118 .syntax unified
  15253. 10119 .thumb
  15254. 10120 .thumb_func
  15255. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 264
  15256. 10122 HAL_I2C_AbortCpltCallback:
  15257. 10123 .LFB175:
  15258. 4849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15259. 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15260. 4851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C abort callback.
  15261. 4852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15262. 4853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15263. 4854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  15264. 4855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15265. 4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
  15266. 4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15267. 10124 .loc 1 4857 1
  15268. 10125 .cfi_startproc
  15269. 10126 @ args = 0, pretend = 0, frame = 8
  15270. 10127 @ frame_needed = 1, uses_anonymous_args = 0
  15271. 10128 @ link register save eliminated.
  15272. 10129 0000 80B4 push {r7}
  15273. 10130 .LCFI236:
  15274. 10131 .cfi_def_cfa_offset 4
  15275. 10132 .cfi_offset 7, -4
  15276. 10133 0002 83B0 sub sp, sp, #12
  15277. 10134 .LCFI237:
  15278. 10135 .cfi_def_cfa_offset 16
  15279. 10136 0004 00AF add r7, sp, #0
  15280. 10137 .LCFI238:
  15281. 10138 .cfi_def_cfa_register 7
  15282. 10139 0006 7860 str r0, [r7, #4]
  15283. 4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  15284. 4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
  15285. 4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15286. 4861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
  15287. 4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
  15288. 4863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15289. 4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15290. 10140 .loc 1 4864 1
  15291. 10141 0008 00BF nop
  15292. 10142 000a 0C37 adds r7, r7, #12
  15293. 10143 .LCFI239:
  15294. 10144 .cfi_def_cfa_offset 4
  15295. 10145 000c BD46 mov sp, r7
  15296. 10146 .LCFI240:
  15297. 10147 .cfi_def_cfa_register 13
  15298. 10148 @ sp needed
  15299. 10149 000e 5DF8047B ldr r7, [sp], #4
  15300. 10150 .LCFI241:
  15301. 10151 .cfi_restore 7
  15302. 10152 .cfi_def_cfa_offset 0
  15303. 10153 0012 7047 bx lr
  15304. 10154 .cfi_endproc
  15305. 10155 .LFE175:
  15306. 10157 .section .text.HAL_I2C_GetState,"ax",%progbits
  15307. 10158 .align 1
  15308. 10159 .global HAL_I2C_GetState
  15309. 10160 .syntax unified
  15310. 10161 .thumb
  15311. 10162 .thumb_func
  15312. 10164 HAL_I2C_GetState:
  15313. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 265
  15314. 10165 .LFB176:
  15315. 4865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15316. 4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15317. 4867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  15318. 4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15319. 4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15320. 4870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
  15321. 4871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
  15322. 4872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
  15323. 4873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
  15324. 4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
  15325. 4875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
  15326. 4876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
  15327. 4877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
  15328. 4878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
  15329. 4879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the data flow.
  15330. 4880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15331. 4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
  15332. 4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  15333. 4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15334. 4884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15335. 4885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15336. 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C handle state.
  15337. 4887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15338. 4888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15339. 4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL state
  15340. 4890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15341. 4891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c)
  15342. 4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15343. 10166 .loc 1 4892 1
  15344. 10167 .cfi_startproc
  15345. 10168 @ args = 0, pretend = 0, frame = 8
  15346. 10169 @ frame_needed = 1, uses_anonymous_args = 0
  15347. 10170 @ link register save eliminated.
  15348. 10171 0000 80B4 push {r7}
  15349. 10172 .LCFI242:
  15350. 10173 .cfi_def_cfa_offset 4
  15351. 10174 .cfi_offset 7, -4
  15352. 10175 0002 83B0 sub sp, sp, #12
  15353. 10176 .LCFI243:
  15354. 10177 .cfi_def_cfa_offset 16
  15355. 10178 0004 00AF add r7, sp, #0
  15356. 10179 .LCFI244:
  15357. 10180 .cfi_def_cfa_register 7
  15358. 10181 0006 7860 str r0, [r7, #4]
  15359. 4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */
  15360. 4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->State;
  15361. 10182 .loc 1 4894 14
  15362. 10183 0008 7B68 ldr r3, [r7, #4]
  15363. 10184 000a 93F84130 ldrb r3, [r3, #65]
  15364. 10185 000e DBB2 uxtb r3, r3
  15365. 4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15366. 10186 .loc 1 4895 1
  15367. 10187 0010 1846 mov r0, r3
  15368. 10188 0012 0C37 adds r7, r7, #12
  15369. 10189 .LCFI245:
  15370. 10190 .cfi_def_cfa_offset 4
  15371. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 266
  15372. 10191 0014 BD46 mov sp, r7
  15373. 10192 .LCFI246:
  15374. 10193 .cfi_def_cfa_register 13
  15375. 10194 @ sp needed
  15376. 10195 0016 5DF8047B ldr r7, [sp], #4
  15377. 10196 .LCFI247:
  15378. 10197 .cfi_restore 7
  15379. 10198 .cfi_def_cfa_offset 0
  15380. 10199 001a 7047 bx lr
  15381. 10200 .cfi_endproc
  15382. 10201 .LFE176:
  15383. 10203 .section .text.HAL_I2C_GetMode,"ax",%progbits
  15384. 10204 .align 1
  15385. 10205 .global HAL_I2C_GetMode
  15386. 10206 .syntax unified
  15387. 10207 .thumb
  15388. 10208 .thumb_func
  15389. 10210 HAL_I2C_GetMode:
  15390. 10211 .LFB177:
  15391. 4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15392. 4897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15393. 4898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
  15394. 4899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15395. 4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for I2C module
  15396. 4901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL mode
  15397. 4902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15398. 4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c)
  15399. 4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15400. 10212 .loc 1 4904 1
  15401. 10213 .cfi_startproc
  15402. 10214 @ args = 0, pretend = 0, frame = 8
  15403. 10215 @ frame_needed = 1, uses_anonymous_args = 0
  15404. 10216 @ link register save eliminated.
  15405. 10217 0000 80B4 push {r7}
  15406. 10218 .LCFI248:
  15407. 10219 .cfi_def_cfa_offset 4
  15408. 10220 .cfi_offset 7, -4
  15409. 10221 0002 83B0 sub sp, sp, #12
  15410. 10222 .LCFI249:
  15411. 10223 .cfi_def_cfa_offset 16
  15412. 10224 0004 00AF add r7, sp, #0
  15413. 10225 .LCFI250:
  15414. 10226 .cfi_def_cfa_register 7
  15415. 10227 0006 7860 str r0, [r7, #4]
  15416. 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode;
  15417. 10228 .loc 1 4905 14
  15418. 10229 0008 7B68 ldr r3, [r7, #4]
  15419. 10230 000a 93F84230 ldrb r3, [r3, #66]
  15420. 10231 000e DBB2 uxtb r3, r3
  15421. 4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15422. 10232 .loc 1 4906 1
  15423. 10233 0010 1846 mov r0, r3
  15424. 10234 0012 0C37 adds r7, r7, #12
  15425. 10235 .LCFI251:
  15426. 10236 .cfi_def_cfa_offset 4
  15427. 10237 0014 BD46 mov sp, r7
  15428. 10238 .LCFI252:
  15429. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 267
  15430. 10239 .cfi_def_cfa_register 13
  15431. 10240 @ sp needed
  15432. 10241 0016 5DF8047B ldr r7, [sp], #4
  15433. 10242 .LCFI253:
  15434. 10243 .cfi_restore 7
  15435. 10244 .cfi_def_cfa_offset 0
  15436. 10245 001a 7047 bx lr
  15437. 10246 .cfi_endproc
  15438. 10247 .LFE177:
  15439. 10249 .section .text.HAL_I2C_GetError,"ax",%progbits
  15440. 10250 .align 1
  15441. 10251 .global HAL_I2C_GetError
  15442. 10252 .syntax unified
  15443. 10253 .thumb
  15444. 10254 .thumb_func
  15445. 10256 HAL_I2C_GetError:
  15446. 10257 .LFB178:
  15447. 4907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15448. 4908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15449. 4909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C error code.
  15450. 4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15451. 4911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15452. 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval I2C Error Code
  15453. 4913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15454. 4914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c)
  15455. 4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15456. 10258 .loc 1 4915 1
  15457. 10259 .cfi_startproc
  15458. 10260 @ args = 0, pretend = 0, frame = 8
  15459. 10261 @ frame_needed = 1, uses_anonymous_args = 0
  15460. 10262 @ link register save eliminated.
  15461. 10263 0000 80B4 push {r7}
  15462. 10264 .LCFI254:
  15463. 10265 .cfi_def_cfa_offset 4
  15464. 10266 .cfi_offset 7, -4
  15465. 10267 0002 83B0 sub sp, sp, #12
  15466. 10268 .LCFI255:
  15467. 10269 .cfi_def_cfa_offset 16
  15468. 10270 0004 00AF add r7, sp, #0
  15469. 10271 .LCFI256:
  15470. 10272 .cfi_def_cfa_register 7
  15471. 10273 0006 7860 str r0, [r7, #4]
  15472. 4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode;
  15473. 10274 .loc 1 4916 14
  15474. 10275 0008 7B68 ldr r3, [r7, #4]
  15475. 10276 000a 5B6C ldr r3, [r3, #68]
  15476. 4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15477. 10277 .loc 1 4917 1
  15478. 10278 000c 1846 mov r0, r3
  15479. 10279 000e 0C37 adds r7, r7, #12
  15480. 10280 .LCFI257:
  15481. 10281 .cfi_def_cfa_offset 4
  15482. 10282 0010 BD46 mov sp, r7
  15483. 10283 .LCFI258:
  15484. 10284 .cfi_def_cfa_register 13
  15485. 10285 @ sp needed
  15486. 10286 0012 5DF8047B ldr r7, [sp], #4
  15487. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 268
  15488. 10287 .LCFI259:
  15489. 10288 .cfi_restore 7
  15490. 10289 .cfi_def_cfa_offset 0
  15491. 10290 0016 7047 bx lr
  15492. 10291 .cfi_endproc
  15493. 10292 .LFE178:
  15494. 10294 .section .text.I2C_Master_ISR_IT,"ax",%progbits
  15495. 10295 .align 1
  15496. 10296 .syntax unified
  15497. 10297 .thumb
  15498. 10298 .thumb_func
  15499. 10300 I2C_Master_ISR_IT:
  15500. 10301 .LFB179:
  15501. 4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15502. 4919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15503. 4920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  15504. 4921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15505. 4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15506. 4923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15507. 4924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
  15508. 4925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15509. 4926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15510. 4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
  15511. 4928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
  15512. 4929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15513. 4930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15514. 4931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  15515. 4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
  15516. 4933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  15517. 4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  15518. 4935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  15519. 4936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
  15520. 4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  15521. 4938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  15522. 4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  15523. 4940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
  15524. 4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15525. 10302 .loc 1 4941 1
  15526. 10303 .cfi_startproc
  15527. 10304 @ args = 0, pretend = 0, frame = 24
  15528. 10305 @ frame_needed = 1, uses_anonymous_args = 0
  15529. 10306 0000 80B5 push {r7, lr}
  15530. 10307 .LCFI260:
  15531. 10308 .cfi_def_cfa_offset 8
  15532. 10309 .cfi_offset 7, -8
  15533. 10310 .cfi_offset 14, -4
  15534. 10311 0002 88B0 sub sp, sp, #32
  15535. 10312 .LCFI261:
  15536. 10313 .cfi_def_cfa_offset 40
  15537. 10314 0004 02AF add r7, sp, #8
  15538. 10315 .LCFI262:
  15539. 10316 .cfi_def_cfa 7, 32
  15540. 10317 0006 F860 str r0, [r7, #12]
  15541. 10318 0008 B960 str r1, [r7, #8]
  15542. 10319 000a 7A60 str r2, [r7, #4]
  15543. 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
  15544. 4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
  15545. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 269
  15546. 10320 .loc 1 4943 12
  15547. 10321 000c BB68 ldr r3, [r7, #8]
  15548. 10322 000e 7B61 str r3, [r7, #20]
  15549. 4944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15550. 4945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  15551. 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  15552. 10323 .loc 1 4946 3
  15553. 10324 0010 FB68 ldr r3, [r7, #12]
  15554. 10325 0012 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  15555. 10326 0016 012B cmp r3, #1
  15556. 10327 0018 01D1 bne .L484
  15557. 10328 .loc 1 4946 3 is_stmt 0 discriminator 1
  15558. 10329 001a 0223 movs r3, #2
  15559. 10330 001c 2EE1 b .L485
  15560. 10331 .L484:
  15561. 10332 .loc 1 4946 3 discriminator 2
  15562. 10333 001e FB68 ldr r3, [r7, #12]
  15563. 10334 0020 0122 movs r2, #1
  15564. 10335 0022 83F84020 strb r2, [r3, #64]
  15565. 4947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15566. 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
  15567. 10336 .loc 1 4948 8 is_stmt 1 discriminator 2
  15568. 10337 0026 7B69 ldr r3, [r7, #20]
  15569. 10338 0028 1B09 lsrs r3, r3, #4
  15570. 10339 002a 03F00103 and r3, r3, #1
  15571. 10340 .loc 1 4948 6 discriminator 2
  15572. 10341 002e 002B cmp r3, #0
  15573. 10342 0030 13D0 beq .L486
  15574. 4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  15575. 10343 .loc 1 4949 8 discriminator 1
  15576. 10344 0032 7B68 ldr r3, [r7, #4]
  15577. 10345 0034 1B09 lsrs r3, r3, #4
  15578. 10346 0036 03F00103 and r3, r3, #1
  15579. 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  15580. 10347 .loc 1 4948 58 discriminator 1
  15581. 10348 003a 002B cmp r3, #0
  15582. 10349 003c 0DD0 beq .L486
  15583. 4950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15584. 4951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  15585. 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  15586. 10350 .loc 1 4952 5
  15587. 10351 003e FB68 ldr r3, [r7, #12]
  15588. 10352 0040 1B68 ldr r3, [r3]
  15589. 10353 0042 1022 movs r2, #16
  15590. 10354 0044 DA61 str r2, [r3, #28]
  15591. 4953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15592. 4954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
  15593. 4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
  15594. 4956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
  15595. 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  15596. 10355 .loc 1 4957 21
  15597. 10356 0046 FB68 ldr r3, [r7, #12]
  15598. 10357 0048 5B6C ldr r3, [r3, #68]
  15599. 10358 004a 43F00402 orr r2, r3, #4
  15600. 10359 004e FB68 ldr r3, [r7, #12]
  15601. 10360 0050 5A64 str r2, [r3, #68]
  15602. 4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15603. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 270
  15604. 4959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  15605. 4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  15606. 10361 .loc 1 4960 5
  15607. 10362 0052 F868 ldr r0, [r7, #12]
  15608. 10363 0054 FFF7FEFF bl I2C_Flush_TXDR
  15609. 10364 0058 FBE0 b .L487
  15610. 10365 .L486:
  15611. 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15612. 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
  15613. 10366 .loc 1 4962 13
  15614. 10367 005a 7B69 ldr r3, [r7, #20]
  15615. 10368 005c 9B08 lsrs r3, r3, #2
  15616. 10369 005e 03F00103 and r3, r3, #1
  15617. 10370 .loc 1 4962 11
  15618. 10371 0062 002B cmp r3, #0
  15619. 10372 0064 23D0 beq .L488
  15620. 4963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
  15621. 10373 .loc 1 4963 13 discriminator 1
  15622. 10374 0066 7B68 ldr r3, [r7, #4]
  15623. 10375 0068 9B08 lsrs r3, r3, #2
  15624. 10376 006a 03F00103 and r3, r3, #1
  15625. 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
  15626. 10377 .loc 1 4962 65 discriminator 1
  15627. 10378 006e 002B cmp r3, #0
  15628. 10379 0070 1DD0 beq .L488
  15629. 4964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15630. 4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
  15631. 4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
  15632. 10380 .loc 1 4966 16
  15633. 10381 0072 7B69 ldr r3, [r7, #20]
  15634. 10382 0074 23F00403 bic r3, r3, #4
  15635. 10383 0078 7B61 str r3, [r7, #20]
  15636. 4967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15637. 4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  15638. 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  15639. 10384 .loc 1 4969 36
  15640. 10385 007a FB68 ldr r3, [r7, #12]
  15641. 10386 007c 1B68 ldr r3, [r3]
  15642. 10387 .loc 1 4969 46
  15643. 10388 007e 5A6A ldr r2, [r3, #36]
  15644. 10389 .loc 1 4969 10
  15645. 10390 0080 FB68 ldr r3, [r7, #12]
  15646. 10391 0082 5B6A ldr r3, [r3, #36]
  15647. 10392 .loc 1 4969 23
  15648. 10393 0084 D2B2 uxtb r2, r2
  15649. 10394 .loc 1 4969 21
  15650. 10395 0086 1A70 strb r2, [r3]
  15651. 4970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15652. 4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  15653. 4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  15654. 10396 .loc 1 4972 9
  15655. 10397 0088 FB68 ldr r3, [r7, #12]
  15656. 10398 008a 5B6A ldr r3, [r3, #36]
  15657. 10399 .loc 1 4972 19
  15658. 10400 008c 5A1C adds r2, r3, #1
  15659. 10401 008e FB68 ldr r3, [r7, #12]
  15660. 10402 0090 5A62 str r2, [r3, #36]
  15661. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 271
  15662. 4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15663. 4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  15664. 10403 .loc 1 4974 9
  15665. 10404 0092 FB68 ldr r3, [r7, #12]
  15666. 10405 0094 1B8D ldrh r3, [r3, #40]
  15667. 10406 .loc 1 4974 19
  15668. 10407 0096 013B subs r3, r3, #1
  15669. 10408 0098 9AB2 uxth r2, r3
  15670. 10409 009a FB68 ldr r3, [r7, #12]
  15671. 10410 009c 1A85 strh r2, [r3, #40] @ movhi
  15672. 4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  15673. 10411 .loc 1 4975 9
  15674. 10412 009e FB68 ldr r3, [r7, #12]
  15675. 10413 00a0 5B8D ldrh r3, [r3, #42] @ movhi
  15676. 10414 00a2 9BB2 uxth r3, r3
  15677. 10415 .loc 1 4975 20
  15678. 10416 00a4 013B subs r3, r3, #1
  15679. 10417 00a6 9AB2 uxth r2, r3
  15680. 10418 00a8 FB68 ldr r3, [r7, #12]
  15681. 10419 00aa 5A85 strh r2, [r3, #42] @ movhi
  15682. 10420 00ac D1E0 b .L487
  15683. 10421 .L488:
  15684. 4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15685. 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \
  15686. 10422 .loc 1 4977 13
  15687. 10423 00ae 7B69 ldr r3, [r7, #20]
  15688. 10424 00b0 9B09 lsrs r3, r3, #6
  15689. 10425 00b2 03F00103 and r3, r3, #1
  15690. 10426 .loc 1 4977 11
  15691. 10427 00b6 002B cmp r3, #0
  15692. 10428 00b8 2AD1 bne .L489
  15693. 4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
  15694. 10429 .loc 1 4978 14 discriminator 1
  15695. 10430 00ba 7B69 ldr r3, [r7, #20]
  15696. 10431 00bc 5B08 lsrs r3, r3, #1
  15697. 10432 00be 03F00103 and r3, r3, #1
  15698. 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
  15699. 10433 .loc 1 4977 63 discriminator 1
  15700. 10434 00c2 002B cmp r3, #0
  15701. 10435 00c4 24D0 beq .L489
  15702. 4979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
  15703. 10436 .loc 1 4979 14
  15704. 10437 00c6 7B68 ldr r3, [r7, #4]
  15705. 10438 00c8 5B08 lsrs r3, r3, #1
  15706. 10439 00ca 03F00103 and r3, r3, #1
  15707. 4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
  15708. 10440 .loc 1 4978 66
  15709. 10441 00ce 002B cmp r3, #0
  15710. 10442 00d0 1ED0 beq .L489
  15711. 4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15712. 4981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  15713. 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
  15714. 10443 .loc 1 4982 13
  15715. 10444 00d2 FB68 ldr r3, [r7, #12]
  15716. 10445 00d4 5B8D ldrh r3, [r3, #42] @ movhi
  15717. 10446 00d6 9BB2 uxth r3, r3
  15718. 10447 .loc 1 4982 8
  15719. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 272
  15720. 10448 00d8 002B cmp r3, #0
  15721. 10449 00da 00F0BA80 beq .L487
  15722. 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15723. 4984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  15724. 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  15725. 10450 .loc 1 4985 35
  15726. 10451 00de FB68 ldr r3, [r7, #12]
  15727. 10452 00e0 5B6A ldr r3, [r3, #36]
  15728. 10453 .loc 1 4985 30
  15729. 10454 00e2 1A78 ldrb r2, [r3] @ zero_extendqisi2
  15730. 10455 .loc 1 4985 11
  15731. 10456 00e4 FB68 ldr r3, [r7, #12]
  15732. 10457 00e6 1B68 ldr r3, [r3]
  15733. 10458 .loc 1 4985 28
  15734. 10459 00e8 9A62 str r2, [r3, #40]
  15735. 4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15736. 4987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  15737. 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  15738. 10460 .loc 1 4988 11
  15739. 10461 00ea FB68 ldr r3, [r7, #12]
  15740. 10462 00ec 5B6A ldr r3, [r3, #36]
  15741. 10463 .loc 1 4988 21
  15742. 10464 00ee 5A1C adds r2, r3, #1
  15743. 10465 00f0 FB68 ldr r3, [r7, #12]
  15744. 10466 00f2 5A62 str r2, [r3, #36]
  15745. 4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15746. 4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  15747. 10467 .loc 1 4990 11
  15748. 10468 00f4 FB68 ldr r3, [r7, #12]
  15749. 10469 00f6 1B8D ldrh r3, [r3, #40]
  15750. 10470 .loc 1 4990 21
  15751. 10471 00f8 013B subs r3, r3, #1
  15752. 10472 00fa 9AB2 uxth r2, r3
  15753. 10473 00fc FB68 ldr r3, [r7, #12]
  15754. 10474 00fe 1A85 strh r2, [r3, #40] @ movhi
  15755. 4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  15756. 10475 .loc 1 4991 11
  15757. 10476 0100 FB68 ldr r3, [r7, #12]
  15758. 10477 0102 5B8D ldrh r3, [r3, #42] @ movhi
  15759. 10478 0104 9BB2 uxth r3, r3
  15760. 10479 .loc 1 4991 22
  15761. 10480 0106 013B subs r3, r3, #1
  15762. 10481 0108 9AB2 uxth r2, r3
  15763. 10482 010a FB68 ldr r3, [r7, #12]
  15764. 10483 010c 5A85 strh r2, [r3, #42] @ movhi
  15765. 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15766. 10484 .loc 1 4982 8
  15767. 10485 010e A0E0 b .L487
  15768. 10486 .L489:
  15769. 4992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15770. 4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15771. 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
  15772. 10487 .loc 1 4994 13
  15773. 10488 0110 7B69 ldr r3, [r7, #20]
  15774. 10489 0112 DB09 lsrs r3, r3, #7
  15775. 10490 0114 03F00103 and r3, r3, #1
  15776. 10491 .loc 1 4994 11
  15777. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 273
  15778. 10492 0118 002B cmp r3, #0
  15779. 10493 011a 6BD0 beq .L491
  15780. 4995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  15781. 10494 .loc 1 4995 13 discriminator 1
  15782. 10495 011c 7B68 ldr r3, [r7, #4]
  15783. 10496 011e 9B09 lsrs r3, r3, #6
  15784. 10497 0120 03F00103 and r3, r3, #1
  15785. 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  15786. 10498 .loc 1 4994 64 discriminator 1
  15787. 10499 0124 002B cmp r3, #0
  15788. 10500 0126 65D0 beq .L491
  15789. 4996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15790. 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
  15791. 10501 .loc 1 4997 14
  15792. 10502 0128 FB68 ldr r3, [r7, #12]
  15793. 10503 012a 5B8D ldrh r3, [r3, #42] @ movhi
  15794. 10504 012c 9BB2 uxth r3, r3
  15795. 10505 .loc 1 4997 8
  15796. 10506 012e 002B cmp r3, #0
  15797. 10507 0130 4ED0 beq .L492
  15798. 10508 .loc 1 4997 41 discriminator 1
  15799. 10509 0132 FB68 ldr r3, [r7, #12]
  15800. 10510 0134 1B8D ldrh r3, [r3, #40]
  15801. 10511 .loc 1 4997 33 discriminator 1
  15802. 10512 0136 002B cmp r3, #0
  15803. 10513 0138 4AD1 bne .L492
  15804. 4998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15805. 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
  15806. 10514 .loc 1 4999 35
  15807. 10515 013a FB68 ldr r3, [r7, #12]
  15808. 10516 013c 1B68 ldr r3, [r3]
  15809. 10517 .loc 1 4999 45
  15810. 10518 013e 5B68 ldr r3, [r3, #4]
  15811. 10519 .loc 1 4999 20
  15812. 10520 0140 9BB2 uxth r3, r3
  15813. 10521 .loc 1 4999 18
  15814. 10522 0142 C3F30903 ubfx r3, r3, #0, #10
  15815. 10523 0146 7B82 strh r3, [r7, #18] @ movhi
  15816. 5000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  15817. 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  15818. 10524 .loc 1 5001 15
  15819. 10525 0148 FB68 ldr r3, [r7, #12]
  15820. 10526 014a 5B8D ldrh r3, [r3, #42] @ movhi
  15821. 10527 014c 9BB2 uxth r3, r3
  15822. 10528 .loc 1 5001 10
  15823. 10529 014e FF2B cmp r3, #255
  15824. 10530 0150 1CD9 bls .L493
  15825. 5002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15826. 5003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
  15827. 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
  15828. 10531 .loc 1 5004 13
  15829. 10532 0152 FB68 ldr r3, [r7, #12]
  15830. 10533 0154 1B68 ldr r3, [r3]
  15831. 10534 0156 9B69 ldr r3, [r3, #24]
  15832. 10535 0158 1B0C lsrs r3, r3, #16
  15833. 10536 015a DBB2 uxtb r3, r3
  15834. 10537 015c 03F00103 and r3, r3, #1
  15835. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 274
  15836. 10538 0160 DBB2 uxtb r3, r3
  15837. 10539 .loc 1 5004 12
  15838. 10540 0162 012B cmp r3, #1
  15839. 10541 0164 03D1 bne .L494
  15840. 5005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15841. 5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  15842. 10542 .loc 1 5006 26
  15843. 10543 0166 FB68 ldr r3, [r7, #12]
  15844. 10544 0168 0122 movs r2, #1
  15845. 10545 016a 1A85 strh r2, [r3, #40] @ movhi
  15846. 10546 016c 02E0 b .L495
  15847. 10547 .L494:
  15848. 5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15849. 5008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  15850. 5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15851. 5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  15852. 10548 .loc 1 5010 26
  15853. 10549 016e FB68 ldr r3, [r7, #12]
  15854. 10550 0170 FF22 movs r2, #255
  15855. 10551 0172 1A85 strh r2, [r3, #40] @ movhi
  15856. 10552 .L495:
  15857. 5011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15858. 5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
  15859. 10553 .loc 1 5012 59
  15860. 10554 0174 FB68 ldr r3, [r7, #12]
  15861. 10555 0176 1B8D ldrh r3, [r3, #40]
  15862. 10556 .loc 1 5012 9
  15863. 10557 0178 DAB2 uxtb r2, r3
  15864. 10558 017a 798A ldrh r1, [r7, #18]
  15865. 10559 017c 0023 movs r3, #0
  15866. 10560 017e 0093 str r3, [sp]
  15867. 10561 0180 4FF08073 mov r3, #16777216
  15868. 10562 0184 F868 ldr r0, [r7, #12]
  15869. 10563 0186 FFF7FEFF bl I2C_TransferConfig
  15870. 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15871. 10564 .loc 1 5001 10
  15872. 10565 018a 32E0 b .L498
  15873. 10566 .L493:
  15874. 5013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15875. 5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  15876. 5015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15877. 5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  15878. 10567 .loc 1 5016 30
  15879. 10568 018c FB68 ldr r3, [r7, #12]
  15880. 10569 018e 5B8D ldrh r3, [r3, #42] @ movhi
  15881. 10570 0190 9AB2 uxth r2, r3
  15882. 10571 .loc 1 5016 24
  15883. 10572 0192 FB68 ldr r3, [r7, #12]
  15884. 10573 0194 1A85 strh r2, [r3, #40] @ movhi
  15885. 5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
  15886. 10574 .loc 1 5017 17
  15887. 10575 0196 FB68 ldr r3, [r7, #12]
  15888. 10576 0198 DB6A ldr r3, [r3, #44]
  15889. 10577 .loc 1 5017 12
  15890. 10578 019a 13F5803F cmn r3, #65536
  15891. 10579 019e 0BD0 beq .L497
  15892. 5018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15893. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 275
  15894. 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
  15895. 10580 .loc 1 5019 61
  15896. 10581 01a0 FB68 ldr r3, [r7, #12]
  15897. 10582 01a2 1B8D ldrh r3, [r3, #40]
  15898. 10583 .loc 1 5019 11
  15899. 10584 01a4 DAB2 uxtb r2, r3
  15900. 10585 01a6 FB68 ldr r3, [r7, #12]
  15901. 10586 01a8 DB6A ldr r3, [r3, #44]
  15902. 10587 01aa 798A ldrh r1, [r7, #18]
  15903. 10588 01ac 0020 movs r0, #0
  15904. 10589 01ae 0090 str r0, [sp]
  15905. 10590 01b0 F868 ldr r0, [r7, #12]
  15906. 10591 01b2 FFF7FEFF bl I2C_TransferConfig
  15907. 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15908. 10592 .loc 1 5001 10
  15909. 10593 01b6 1CE0 b .L498
  15910. 10594 .L497:
  15911. 5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
  15912. 5021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15913. 5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  15914. 5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15915. 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
  15916. 10595 .loc 1 5024 61
  15917. 10596 01b8 FB68 ldr r3, [r7, #12]
  15918. 10597 01ba 1B8D ldrh r3, [r3, #40]
  15919. 10598 .loc 1 5024 11
  15920. 10599 01bc DAB2 uxtb r2, r3
  15921. 10600 01be 798A ldrh r1, [r7, #18]
  15922. 10601 01c0 0023 movs r3, #0
  15923. 10602 01c2 0093 str r3, [sp]
  15924. 10603 01c4 4FF00073 mov r3, #33554432
  15925. 10604 01c8 F868 ldr r0, [r7, #12]
  15926. 10605 01ca FFF7FEFF bl I2C_TransferConfig
  15927. 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15928. 10606 .loc 1 5001 10
  15929. 10607 01ce 10E0 b .L498
  15930. 10608 .L492:
  15931. 5025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
  15932. 5026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15933. 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15934. 5028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15935. 5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  15936. 5030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15937. 5031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
  15938. 5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
  15939. 10609 .loc 1 5032 11
  15940. 10610 01d0 FB68 ldr r3, [r7, #12]
  15941. 10611 01d2 1B68 ldr r3, [r3]
  15942. 10612 01d4 5B68 ldr r3, [r3, #4]
  15943. 10613 01d6 03F00073 and r3, r3, #33554432
  15944. 10614 .loc 1 5032 10
  15945. 10615 01da B3F1007F cmp r3, #33554432
  15946. 10616 01de 03D0 beq .L499
  15947. 5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15948. 5034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
  15949. 5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
  15950. 10617 .loc 1 5035 9
  15951. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 276
  15952. 10618 01e0 F868 ldr r0, [r7, #12]
  15953. 10619 01e2 FFF7FEFF bl I2C_ITMasterSeqCplt
  15954. 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15955. 10620 .loc 1 4997 8
  15956. 10621 01e6 34E0 b .L487
  15957. 10622 .L499:
  15958. 5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15959. 5037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  15960. 5038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15961. 5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
  15962. 5040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  15963. 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
  15964. 10623 .loc 1 5041 9
  15965. 10624 01e8 4021 movs r1, #64
  15966. 10625 01ea F868 ldr r0, [r7, #12]
  15967. 10626 01ec FFF7FEFF bl I2C_ITError
  15968. 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15969. 10627 .loc 1 4997 8
  15970. 10628 01f0 2FE0 b .L487
  15971. 10629 .L498:
  15972. 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15973. 10630 .loc 1 4997 8 is_stmt 0 discriminator 1
  15974. 10631 01f2 2EE0 b .L487
  15975. 10632 .L491:
  15976. 5042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15977. 5043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15978. 5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  15979. 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
  15980. 10633 .loc 1 5045 13 is_stmt 1
  15981. 10634 01f4 7B69 ldr r3, [r7, #20]
  15982. 10635 01f6 9B09 lsrs r3, r3, #6
  15983. 10636 01f8 03F00103 and r3, r3, #1
  15984. 10637 .loc 1 5045 11
  15985. 10638 01fc 002B cmp r3, #0
  15986. 10639 01fe 28D0 beq .L487
  15987. 5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  15988. 10640 .loc 1 5046 13 discriminator 1
  15989. 10641 0200 7B68 ldr r3, [r7, #4]
  15990. 10642 0202 9B09 lsrs r3, r3, #6
  15991. 10643 0204 03F00103 and r3, r3, #1
  15992. 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  15993. 10644 .loc 1 5045 63 discriminator 1
  15994. 10645 0208 002B cmp r3, #0
  15995. 10646 020a 22D0 beq .L487
  15996. 5047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  15997. 5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
  15998. 10647 .loc 1 5048 13
  15999. 10648 020c FB68 ldr r3, [r7, #12]
  16000. 10649 020e 5B8D ldrh r3, [r3, #42] @ movhi
  16001. 10650 0210 9BB2 uxth r3, r3
  16002. 10651 .loc 1 5048 8
  16003. 10652 0212 002B cmp r3, #0
  16004. 10653 0214 19D1 bne .L500
  16005. 5049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16006. 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
  16007. 10654 .loc 1 5050 11
  16008. 10655 0216 FB68 ldr r3, [r7, #12]
  16009. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 277
  16010. 10656 0218 1B68 ldr r3, [r3]
  16011. 10657 021a 5B68 ldr r3, [r3, #4]
  16012. 10658 021c 03F00073 and r3, r3, #33554432
  16013. 10659 .loc 1 5050 10
  16014. 10660 0220 B3F1007F cmp r3, #33554432
  16015. 10661 0224 15D0 beq .L487
  16016. 5051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16017. 5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
  16018. 5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
  16019. 10662 .loc 1 5053 17
  16020. 10663 0226 FB68 ldr r3, [r7, #12]
  16021. 10664 0228 DB6A ldr r3, [r3, #44]
  16022. 10665 .loc 1 5053 12
  16023. 10666 022a 13F5803F cmn r3, #65536
  16024. 10667 022e 08D1 bne .L501
  16025. 5054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16026. 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
  16027. 5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
  16028. 10668 .loc 1 5056 15
  16029. 10669 0230 FB68 ldr r3, [r7, #12]
  16030. 10670 0232 1B68 ldr r3, [r3]
  16031. 10671 .loc 1 5056 31
  16032. 10672 0234 5A68 ldr r2, [r3, #4]
  16033. 10673 .loc 1 5056 15
  16034. 10674 0236 FB68 ldr r3, [r7, #12]
  16035. 10675 0238 1B68 ldr r3, [r3]
  16036. 10676 .loc 1 5056 31
  16037. 10677 023a 42F48042 orr r2, r2, #16384
  16038. 10678 023e 5A60 str r2, [r3, #4]
  16039. 10679 0240 07E0 b .L487
  16040. 10680 .L501:
  16041. 5057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16042. 5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16043. 5059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16044. 5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
  16045. 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
  16046. 10681 .loc 1 5061 11
  16047. 10682 0242 F868 ldr r0, [r7, #12]
  16048. 10683 0244 FFF7FEFF bl I2C_ITMasterSeqCplt
  16049. 10684 0248 03E0 b .L487
  16050. 10685 .L500:
  16051. 5062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16052. 5063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16053. 5064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16054. 5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16055. 5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16056. 5067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
  16057. 5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  16058. 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
  16059. 10686 .loc 1 5069 7
  16060. 10687 024a 4021 movs r1, #64
  16061. 10688 024c F868 ldr r0, [r7, #12]
  16062. 10689 024e FFF7FEFF bl I2C_ITError
  16063. 10690 .L487:
  16064. 5070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16065. 5071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16066. 5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16067. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 278
  16068. 5073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16069. 5074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  16070. 5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16071. 5076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16072. 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
  16073. 10691 .loc 1 5077 8
  16074. 10692 0252 7B69 ldr r3, [r7, #20]
  16075. 10693 0254 5B09 lsrs r3, r3, #5
  16076. 10694 0256 03F00103 and r3, r3, #1
  16077. 10695 .loc 1 5077 6
  16078. 10696 025a 002B cmp r3, #0
  16079. 10697 025c 09D0 beq .L502
  16080. 5078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  16081. 10698 .loc 1 5078 8 discriminator 1
  16082. 10699 025e 7B68 ldr r3, [r7, #4]
  16083. 10700 0260 5B09 lsrs r3, r3, #5
  16084. 10701 0262 03F00103 and r3, r3, #1
  16085. 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  16086. 10702 .loc 1 5077 61 discriminator 1
  16087. 10703 0266 002B cmp r3, #0
  16088. 10704 0268 03D0 beq .L502
  16089. 5079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16090. 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
  16091. 5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
  16092. 10705 .loc 1 5081 5
  16093. 10706 026a 7969 ldr r1, [r7, #20]
  16094. 10707 026c F868 ldr r0, [r7, #12]
  16095. 10708 026e FFF7FEFF bl I2C_ITMasterCplt
  16096. 10709 .L502:
  16097. 5082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16098. 5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16099. 5084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  16100. 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  16101. 10710 .loc 1 5085 3
  16102. 10711 0272 FB68 ldr r3, [r7, #12]
  16103. 10712 0274 0022 movs r2, #0
  16104. 10713 0276 83F84020 strb r2, [r3, #64]
  16105. 5086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16106. 5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  16107. 10714 .loc 1 5087 10
  16108. 10715 027a 0023 movs r3, #0
  16109. 10716 .L485:
  16110. 5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16111. 10717 .loc 1 5088 1
  16112. 10718 027c 1846 mov r0, r3
  16113. 10719 027e 1837 adds r7, r7, #24
  16114. 10720 .LCFI263:
  16115. 10721 .cfi_def_cfa_offset 8
  16116. 10722 0280 BD46 mov sp, r7
  16117. 10723 .LCFI264:
  16118. 10724 .cfi_def_cfa_register 13
  16119. 10725 @ sp needed
  16120. 10726 0282 80BD pop {r7, pc}
  16121. 10727 .cfi_endproc
  16122. 10728 .LFE179:
  16123. 10730 .section .text.I2C_Mem_ISR_IT,"ax",%progbits
  16124. 10731 .align 1
  16125. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 279
  16126. 10732 .syntax unified
  16127. 10733 .thumb
  16128. 10734 .thumb_func
  16129. 10736 I2C_Mem_ISR_IT:
  16130. 10737 .LFB180:
  16131. 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16132. 5090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  16133. 5091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt.
  16134. 5092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  16135. 5093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  16136. 5094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  16137. 5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
  16138. 5096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  16139. 5097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  16140. 5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  16141. 5099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
  16142. 5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16143. 10738 .loc 1 5100 1
  16144. 10739 .cfi_startproc
  16145. 10740 @ args = 0, pretend = 0, frame = 24
  16146. 10741 @ frame_needed = 1, uses_anonymous_args = 0
  16147. 10742 0000 80B5 push {r7, lr}
  16148. 10743 .LCFI265:
  16149. 10744 .cfi_def_cfa_offset 8
  16150. 10745 .cfi_offset 7, -8
  16151. 10746 .cfi_offset 14, -4
  16152. 10747 0002 88B0 sub sp, sp, #32
  16153. 10748 .LCFI266:
  16154. 10749 .cfi_def_cfa_offset 40
  16155. 10750 0004 02AF add r7, sp, #8
  16156. 10751 .LCFI267:
  16157. 10752 .cfi_def_cfa 7, 32
  16158. 10753 0006 F860 str r0, [r7, #12]
  16159. 10754 0008 B960 str r1, [r7, #8]
  16160. 10755 000a 7A60 str r2, [r7, #4]
  16161. 5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
  16162. 10756 .loc 1 5101 12
  16163. 10757 000c 8C4B ldr r3, .L524
  16164. 10758 000e 7B61 str r3, [r7, #20]
  16165. 5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
  16166. 10759 .loc 1 5102 12
  16167. 10760 0010 BB68 ldr r3, [r7, #8]
  16168. 10761 0012 3B61 str r3, [r7, #16]
  16169. 5103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16170. 5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  16171. 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  16172. 10762 .loc 1 5105 3
  16173. 10763 0014 FB68 ldr r3, [r7, #12]
  16174. 10764 0016 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  16175. 10765 001a 012B cmp r3, #1
  16176. 10766 001c 01D1 bne .L504
  16177. 10767 .loc 1 5105 3 is_stmt 0 discriminator 1
  16178. 10768 001e 0223 movs r3, #2
  16179. 10769 0020 39E1 b .L505
  16180. 10770 .L504:
  16181. 10771 .loc 1 5105 3 discriminator 2
  16182. 10772 0022 FB68 ldr r3, [r7, #12]
  16183. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 280
  16184. 10773 0024 0122 movs r2, #1
  16185. 10774 0026 83F84020 strb r2, [r3, #64]
  16186. 5106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16187. 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
  16188. 10775 .loc 1 5107 8 is_stmt 1 discriminator 2
  16189. 10776 002a 3B69 ldr r3, [r7, #16]
  16190. 10777 002c 1B09 lsrs r3, r3, #4
  16191. 10778 002e 03F00103 and r3, r3, #1
  16192. 10779 .loc 1 5107 6 discriminator 2
  16193. 10780 0032 002B cmp r3, #0
  16194. 10781 0034 13D0 beq .L506
  16195. 5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  16196. 10782 .loc 1 5108 8 discriminator 1
  16197. 10783 0036 7B68 ldr r3, [r7, #4]
  16198. 10784 0038 1B09 lsrs r3, r3, #4
  16199. 10785 003a 03F00103 and r3, r3, #1
  16200. 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  16201. 10786 .loc 1 5107 58 discriminator 1
  16202. 10787 003e 002B cmp r3, #0
  16203. 10788 0040 0DD0 beq .L506
  16204. 5109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16205. 5110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  16206. 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  16207. 10789 .loc 1 5111 5
  16208. 10790 0042 FB68 ldr r3, [r7, #12]
  16209. 10791 0044 1B68 ldr r3, [r3]
  16210. 10792 0046 1022 movs r2, #16
  16211. 10793 0048 DA61 str r2, [r3, #28]
  16212. 5112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16213. 5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
  16214. 5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
  16215. 5115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
  16216. 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  16217. 10794 .loc 1 5116 21
  16218. 10795 004a FB68 ldr r3, [r7, #12]
  16219. 10796 004c 5B6C ldr r3, [r3, #68]
  16220. 10797 004e 43F00402 orr r2, r3, #4
  16221. 10798 0052 FB68 ldr r3, [r7, #12]
  16222. 10799 0054 5A64 str r2, [r3, #68]
  16223. 5117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16224. 5118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  16225. 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  16226. 10800 .loc 1 5119 5
  16227. 10801 0056 F868 ldr r0, [r7, #12]
  16228. 10802 0058 FFF7FEFF bl I2C_Flush_TXDR
  16229. 10803 005c 06E1 b .L507
  16230. 10804 .L506:
  16231. 5120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16232. 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
  16233. 10805 .loc 1 5121 13
  16234. 10806 005e 3B69 ldr r3, [r7, #16]
  16235. 10807 0060 9B08 lsrs r3, r3, #2
  16236. 10808 0062 03F00103 and r3, r3, #1
  16237. 10809 .loc 1 5121 11
  16238. 10810 0066 002B cmp r3, #0
  16239. 10811 0068 23D0 beq .L508
  16240. 5122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
  16241. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 281
  16242. 10812 .loc 1 5122 13 discriminator 1
  16243. 10813 006a 7B68 ldr r3, [r7, #4]
  16244. 10814 006c 9B08 lsrs r3, r3, #2
  16245. 10815 006e 03F00103 and r3, r3, #1
  16246. 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
  16247. 10816 .loc 1 5121 65 discriminator 1
  16248. 10817 0072 002B cmp r3, #0
  16249. 10818 0074 1DD0 beq .L508
  16250. 5123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16251. 5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
  16252. 5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
  16253. 10819 .loc 1 5125 16
  16254. 10820 0076 3B69 ldr r3, [r7, #16]
  16255. 10821 0078 23F00403 bic r3, r3, #4
  16256. 10822 007c 3B61 str r3, [r7, #16]
  16257. 5126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16258. 5127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  16259. 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  16260. 10823 .loc 1 5128 36
  16261. 10824 007e FB68 ldr r3, [r7, #12]
  16262. 10825 0080 1B68 ldr r3, [r3]
  16263. 10826 .loc 1 5128 46
  16264. 10827 0082 5A6A ldr r2, [r3, #36]
  16265. 10828 .loc 1 5128 10
  16266. 10829 0084 FB68 ldr r3, [r7, #12]
  16267. 10830 0086 5B6A ldr r3, [r3, #36]
  16268. 10831 .loc 1 5128 23
  16269. 10832 0088 D2B2 uxtb r2, r2
  16270. 10833 .loc 1 5128 21
  16271. 10834 008a 1A70 strb r2, [r3]
  16272. 5129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16273. 5130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  16274. 5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  16275. 10835 .loc 1 5131 9
  16276. 10836 008c FB68 ldr r3, [r7, #12]
  16277. 10837 008e 5B6A ldr r3, [r3, #36]
  16278. 10838 .loc 1 5131 19
  16279. 10839 0090 5A1C adds r2, r3, #1
  16280. 10840 0092 FB68 ldr r3, [r7, #12]
  16281. 10841 0094 5A62 str r2, [r3, #36]
  16282. 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16283. 5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  16284. 10842 .loc 1 5133 9
  16285. 10843 0096 FB68 ldr r3, [r7, #12]
  16286. 10844 0098 1B8D ldrh r3, [r3, #40]
  16287. 10845 .loc 1 5133 19
  16288. 10846 009a 013B subs r3, r3, #1
  16289. 10847 009c 9AB2 uxth r2, r3
  16290. 10848 009e FB68 ldr r3, [r7, #12]
  16291. 10849 00a0 1A85 strh r2, [r3, #40] @ movhi
  16292. 5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  16293. 10850 .loc 1 5134 9
  16294. 10851 00a2 FB68 ldr r3, [r7, #12]
  16295. 10852 00a4 5B8D ldrh r3, [r3, #42] @ movhi
  16296. 10853 00a6 9BB2 uxth r3, r3
  16297. 10854 .loc 1 5134 20
  16298. 10855 00a8 013B subs r3, r3, #1
  16299. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 282
  16300. 10856 00aa 9AB2 uxth r2, r3
  16301. 10857 00ac FB68 ldr r3, [r7, #12]
  16302. 10858 00ae 5A85 strh r2, [r3, #42] @ movhi
  16303. 10859 00b0 DCE0 b .L507
  16304. 10860 .L508:
  16305. 5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16306. 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
  16307. 10861 .loc 1 5136 13
  16308. 10862 00b2 3B69 ldr r3, [r7, #16]
  16309. 10863 00b4 5B08 lsrs r3, r3, #1
  16310. 10864 00b6 03F00103 and r3, r3, #1
  16311. 10865 .loc 1 5136 11
  16312. 10866 00ba 002B cmp r3, #0
  16313. 10867 00bc 2DD0 beq .L509
  16314. 5137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
  16315. 10868 .loc 1 5137 13 discriminator 1
  16316. 10869 00be 7B68 ldr r3, [r7, #4]
  16317. 10870 00c0 5B08 lsrs r3, r3, #1
  16318. 10871 00c2 03F00103 and r3, r3, #1
  16319. 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
  16320. 10872 .loc 1 5136 65 discriminator 1
  16321. 10873 00c6 002B cmp r3, #0
  16322. 10874 00c8 27D0 beq .L509
  16323. 5138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16324. 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU)
  16325. 10875 .loc 1 5139 13
  16326. 10876 00ca FB68 ldr r3, [r7, #12]
  16327. 10877 00cc 1B6D ldr r3, [r3, #80]
  16328. 10878 .loc 1 5139 8
  16329. 10879 00ce B3F1FF3F cmp r3, #-1
  16330. 10880 00d2 18D1 bne .L510
  16331. 5140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16332. 5141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  16333. 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  16334. 10881 .loc 1 5142 35
  16335. 10882 00d4 FB68 ldr r3, [r7, #12]
  16336. 10883 00d6 5B6A ldr r3, [r3, #36]
  16337. 10884 .loc 1 5142 30
  16338. 10885 00d8 1A78 ldrb r2, [r3] @ zero_extendqisi2
  16339. 10886 .loc 1 5142 11
  16340. 10887 00da FB68 ldr r3, [r7, #12]
  16341. 10888 00dc 1B68 ldr r3, [r3]
  16342. 10889 .loc 1 5142 28
  16343. 10890 00de 9A62 str r2, [r3, #40]
  16344. 5143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16345. 5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  16346. 5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  16347. 10891 .loc 1 5145 11
  16348. 10892 00e0 FB68 ldr r3, [r7, #12]
  16349. 10893 00e2 5B6A ldr r3, [r3, #36]
  16350. 10894 .loc 1 5145 21
  16351. 10895 00e4 5A1C adds r2, r3, #1
  16352. 10896 00e6 FB68 ldr r3, [r7, #12]
  16353. 10897 00e8 5A62 str r2, [r3, #36]
  16354. 5146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16355. 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  16356. 10898 .loc 1 5147 11
  16357. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 283
  16358. 10899 00ea FB68 ldr r3, [r7, #12]
  16359. 10900 00ec 1B8D ldrh r3, [r3, #40]
  16360. 10901 .loc 1 5147 21
  16361. 10902 00ee 013B subs r3, r3, #1
  16362. 10903 00f0 9AB2 uxth r2, r3
  16363. 10904 00f2 FB68 ldr r3, [r7, #12]
  16364. 10905 00f4 1A85 strh r2, [r3, #40] @ movhi
  16365. 5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  16366. 10906 .loc 1 5148 11
  16367. 10907 00f6 FB68 ldr r3, [r7, #12]
  16368. 10908 00f8 5B8D ldrh r3, [r3, #42] @ movhi
  16369. 10909 00fa 9BB2 uxth r3, r3
  16370. 10910 .loc 1 5148 22
  16371. 10911 00fc 013B subs r3, r3, #1
  16372. 10912 00fe 9AB2 uxth r2, r3
  16373. 10913 0100 FB68 ldr r3, [r7, #12]
  16374. 10914 0102 5A85 strh r2, [r3, #42] @ movhi
  16375. 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16376. 10915 .loc 1 5139 8
  16377. 10916 0104 B2E0 b .L507
  16378. 10917 .L510:
  16379. 5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16380. 5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16381. 5151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16382. 5152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
  16383. 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
  16384. 10918 .loc 1 5153 11
  16385. 10919 0106 FB68 ldr r3, [r7, #12]
  16386. 10920 0108 1B68 ldr r3, [r3]
  16387. 10921 .loc 1 5153 34
  16388. 10922 010a FA68 ldr r2, [r7, #12]
  16389. 10923 010c 126D ldr r2, [r2, #80]
  16390. 10924 .loc 1 5153 28
  16391. 10925 010e 9A62 str r2, [r3, #40]
  16392. 5154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16393. 5155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
  16394. 5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
  16395. 10926 .loc 1 5156 24
  16396. 10927 0110 FB68 ldr r3, [r7, #12]
  16397. 10928 0112 4FF0FF32 mov r2, #-1
  16398. 10929 0116 1A65 str r2, [r3, #80]
  16399. 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16400. 10930 .loc 1 5139 8
  16401. 10931 0118 A8E0 b .L507
  16402. 10932 .L509:
  16403. 5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16404. 5158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16405. 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
  16406. 10933 .loc 1 5159 13
  16407. 10934 011a 3B69 ldr r3, [r7, #16]
  16408. 10935 011c DB09 lsrs r3, r3, #7
  16409. 10936 011e 03F00103 and r3, r3, #1
  16410. 10937 .loc 1 5159 11
  16411. 10938 0122 002B cmp r3, #0
  16412. 10939 0124 4BD0 beq .L512
  16413. 5160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  16414. 10940 .loc 1 5160 13 discriminator 1
  16415. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 284
  16416. 10941 0126 7B68 ldr r3, [r7, #4]
  16417. 10942 0128 9B09 lsrs r3, r3, #6
  16418. 10943 012a 03F00103 and r3, r3, #1
  16419. 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  16420. 10944 .loc 1 5159 64 discriminator 1
  16421. 10945 012e 002B cmp r3, #0
  16422. 10946 0130 45D0 beq .L512
  16423. 5161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16424. 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
  16425. 10947 .loc 1 5162 14
  16426. 10948 0132 FB68 ldr r3, [r7, #12]
  16427. 10949 0134 5B8D ldrh r3, [r3, #42] @ movhi
  16428. 10950 0136 9BB2 uxth r3, r3
  16429. 10951 .loc 1 5162 8
  16430. 10952 0138 002B cmp r3, #0
  16431. 10953 013a 3AD0 beq .L513
  16432. 10954 .loc 1 5162 41 discriminator 1
  16433. 10955 013c FB68 ldr r3, [r7, #12]
  16434. 10956 013e 1B8D ldrh r3, [r3, #40]
  16435. 10957 .loc 1 5162 33 discriminator 1
  16436. 10958 0140 002B cmp r3, #0
  16437. 10959 0142 36D1 bne .L513
  16438. 5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16439. 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  16440. 10960 .loc 1 5164 15
  16441. 10961 0144 FB68 ldr r3, [r7, #12]
  16442. 10962 0146 5B8D ldrh r3, [r3, #42] @ movhi
  16443. 10963 0148 9BB2 uxth r3, r3
  16444. 10964 .loc 1 5164 10
  16445. 10965 014a FF2B cmp r3, #255
  16446. 10966 014c 1ED9 bls .L514
  16447. 5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16448. 5166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
  16449. 5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
  16450. 10967 .loc 1 5167 13
  16451. 10968 014e FB68 ldr r3, [r7, #12]
  16452. 10969 0150 1B68 ldr r3, [r3]
  16453. 10970 0152 9B69 ldr r3, [r3, #24]
  16454. 10971 0154 1B0C lsrs r3, r3, #16
  16455. 10972 0156 DBB2 uxtb r3, r3
  16456. 10973 0158 03F00103 and r3, r3, #1
  16457. 10974 015c DBB2 uxtb r3, r3
  16458. 10975 .loc 1 5167 12
  16459. 10976 015e 012B cmp r3, #1
  16460. 10977 0160 03D1 bne .L515
  16461. 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16462. 5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  16463. 10978 .loc 1 5169 26
  16464. 10979 0162 FB68 ldr r3, [r7, #12]
  16465. 10980 0164 0122 movs r2, #1
  16466. 10981 0166 1A85 strh r2, [r3, #40] @ movhi
  16467. 10982 0168 02E0 b .L516
  16468. 10983 .L515:
  16469. 5170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16470. 5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16471. 5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16472. 5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  16473. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 285
  16474. 10984 .loc 1 5173 26
  16475. 10985 016a FB68 ldr r3, [r7, #12]
  16476. 10986 016c FF22 movs r2, #255
  16477. 10987 016e 1A85 strh r2, [r3, #40] @ movhi
  16478. 10988 .L516:
  16479. 5174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16480. 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  16481. 10989 .loc 1 5175 48
  16482. 10990 0170 FB68 ldr r3, [r7, #12]
  16483. 10991 0172 DB6C ldr r3, [r3, #76]
  16484. 10992 .loc 1 5175 9
  16485. 10993 0174 99B2 uxth r1, r3
  16486. 10994 .loc 1 5175 75
  16487. 10995 0176 FB68 ldr r3, [r7, #12]
  16488. 10996 0178 1B8D ldrh r3, [r3, #40]
  16489. 10997 .loc 1 5175 9
  16490. 10998 017a DAB2 uxtb r2, r3
  16491. 10999 017c 0023 movs r3, #0
  16492. 11000 017e 0093 str r3, [sp]
  16493. 11001 0180 4FF08073 mov r3, #16777216
  16494. 11002 0184 F868 ldr r0, [r7, #12]
  16495. 11003 0186 FFF7FEFF bl I2C_TransferConfig
  16496. 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16497. 11004 .loc 1 5164 10
  16498. 11005 018a 17E0 b .L518
  16499. 11006 .L514:
  16500. 5176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
  16501. 5177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16502. 5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16503. 5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16504. 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  16505. 11007 .loc 1 5180 30
  16506. 11008 018c FB68 ldr r3, [r7, #12]
  16507. 11009 018e 5B8D ldrh r3, [r3, #42] @ movhi
  16508. 11010 0190 9AB2 uxth r2, r3
  16509. 11011 .loc 1 5180 24
  16510. 11012 0192 FB68 ldr r3, [r7, #12]
  16511. 11013 0194 1A85 strh r2, [r3, #40] @ movhi
  16512. 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  16513. 11014 .loc 1 5181 48
  16514. 11015 0196 FB68 ldr r3, [r7, #12]
  16515. 11016 0198 DB6C ldr r3, [r3, #76]
  16516. 11017 .loc 1 5181 9
  16517. 11018 019a 99B2 uxth r1, r3
  16518. 11019 .loc 1 5181 75
  16519. 11020 019c FB68 ldr r3, [r7, #12]
  16520. 11021 019e 1B8D ldrh r3, [r3, #40]
  16521. 11022 .loc 1 5181 9
  16522. 11023 01a0 DAB2 uxtb r2, r3
  16523. 11024 01a2 0023 movs r3, #0
  16524. 11025 01a4 0093 str r3, [sp]
  16525. 11026 01a6 4FF00073 mov r3, #33554432
  16526. 11027 01aa F868 ldr r0, [r7, #12]
  16527. 11028 01ac FFF7FEFF bl I2C_TransferConfig
  16528. 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16529. 11029 .loc 1 5164 10
  16530. 11030 01b0 04E0 b .L518
  16531. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 286
  16532. 11031 .L513:
  16533. 5182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
  16534. 5183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16535. 5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16536. 5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16537. 5186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16538. 5187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
  16539. 5188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  16540. 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
  16541. 11032 .loc 1 5189 7
  16542. 11033 01b2 4021 movs r1, #64
  16543. 11034 01b4 F868 ldr r0, [r7, #12]
  16544. 11035 01b6 FFF7FEFF bl I2C_ITError
  16545. 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16546. 11036 .loc 1 5162 8
  16547. 11037 01ba 57E0 b .L507
  16548. 11038 .L518:
  16549. 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16550. 11039 .loc 1 5162 8 is_stmt 0 discriminator 1
  16551. 11040 01bc 56E0 b .L507
  16552. 11041 .L512:
  16553. 5190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16554. 5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16555. 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
  16556. 11042 .loc 1 5192 13 is_stmt 1
  16557. 11043 01be 3B69 ldr r3, [r7, #16]
  16558. 11044 01c0 9B09 lsrs r3, r3, #6
  16559. 11045 01c2 03F00103 and r3, r3, #1
  16560. 11046 .loc 1 5192 11
  16561. 11047 01c6 002B cmp r3, #0
  16562. 11048 01c8 50D0 beq .L507
  16563. 5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  16564. 11049 .loc 1 5193 13 discriminator 1
  16565. 11050 01ca 7B68 ldr r3, [r7, #4]
  16566. 11051 01cc 9B09 lsrs r3, r3, #6
  16567. 11052 01ce 03F00103 and r3, r3, #1
  16568. 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  16569. 11053 .loc 1 5192 63 discriminator 1
  16570. 11054 01d2 002B cmp r3, #0
  16571. 11055 01d4 4AD0 beq .L507
  16572. 5194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16573. 5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
  16574. 5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  16575. 11056 .loc 1 5196 5
  16576. 11057 01d6 0121 movs r1, #1
  16577. 11058 01d8 F868 ldr r0, [r7, #12]
  16578. 11059 01da FFF7FEFF bl I2C_Disable_IRQ
  16579. 5197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16580. 5198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
  16581. 5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
  16582. 11060 .loc 1 5199 5
  16583. 11061 01de 0221 movs r1, #2
  16584. 11062 01e0 F868 ldr r0, [r7, #12]
  16585. 11063 01e2 FFF7FEFF bl I2C_Enable_IRQ
  16586. 5200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16587. 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  16588. 11064 .loc 1 5201 13
  16589. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 287
  16590. 11065 01e6 FB68 ldr r3, [r7, #12]
  16591. 11066 01e8 93F84130 ldrb r3, [r3, #65]
  16592. 11067 01ec DBB2 uxtb r3, r3
  16593. 11068 .loc 1 5201 8
  16594. 11069 01ee 222B cmp r3, #34
  16595. 11070 01f0 01D1 bne .L519
  16596. 5202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16597. 5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
  16598. 11071 .loc 1 5203 17
  16599. 11072 01f2 144B ldr r3, .L524+4
  16600. 11073 01f4 7B61 str r3, [r7, #20]
  16601. 11074 .L519:
  16602. 5204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16603. 5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16604. 5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  16605. 11075 .loc 1 5206 13
  16606. 11076 01f6 FB68 ldr r3, [r7, #12]
  16607. 11077 01f8 5B8D ldrh r3, [r3, #42] @ movhi
  16608. 11078 01fa 9BB2 uxth r3, r3
  16609. 11079 .loc 1 5206 8
  16610. 11080 01fc FF2B cmp r3, #255
  16611. 11081 01fe 23D9 bls .L520
  16612. 5207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16613. 5208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
  16614. 5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
  16615. 11082 .loc 1 5209 11
  16616. 11083 0200 FB68 ldr r3, [r7, #12]
  16617. 11084 0202 1B68 ldr r3, [r3]
  16618. 11085 0204 9B69 ldr r3, [r3, #24]
  16619. 11086 0206 1B0C lsrs r3, r3, #16
  16620. 11087 0208 DBB2 uxtb r3, r3
  16621. 11088 020a 03F00103 and r3, r3, #1
  16622. 11089 020e DBB2 uxtb r3, r3
  16623. 11090 .loc 1 5209 10
  16624. 11091 0210 012B cmp r3, #1
  16625. 11092 0212 03D1 bne .L521
  16626. 5210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16627. 5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  16628. 11093 .loc 1 5211 24
  16629. 11094 0214 FB68 ldr r3, [r7, #12]
  16630. 11095 0216 0122 movs r2, #1
  16631. 11096 0218 1A85 strh r2, [r3, #40] @ movhi
  16632. 11097 021a 02E0 b .L522
  16633. 11098 .L521:
  16634. 5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16635. 5213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16636. 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16637. 5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  16638. 11099 .loc 1 5215 24
  16639. 11100 021c FB68 ldr r3, [r7, #12]
  16640. 11101 021e FF22 movs r2, #255
  16641. 11102 0220 1A85 strh r2, [r3, #40] @ movhi
  16642. 11103 .L522:
  16643. 5216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16644. 5217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16645. 5218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
  16646. 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  16647. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 288
  16648. 11104 .loc 1 5219 46
  16649. 11105 0222 FB68 ldr r3, [r7, #12]
  16650. 11106 0224 DB6C ldr r3, [r3, #76]
  16651. 11107 .loc 1 5219 7
  16652. 11108 0226 99B2 uxth r1, r3
  16653. 11109 .loc 1 5219 73
  16654. 11110 0228 FB68 ldr r3, [r7, #12]
  16655. 11111 022a 1B8D ldrh r3, [r3, #40]
  16656. 11112 .loc 1 5219 7
  16657. 11113 022c DAB2 uxtb r2, r3
  16658. 11114 022e 7B69 ldr r3, [r7, #20]
  16659. 11115 0230 0093 str r3, [sp]
  16660. 11116 0232 4FF08073 mov r3, #16777216
  16661. 11117 0236 F868 ldr r0, [r7, #12]
  16662. 11118 0238 FFF7FEFF bl I2C_TransferConfig
  16663. 11119 023c 16E0 b .L507
  16664. 11120 .L525:
  16665. 11121 023e 00BF .align 2
  16666. 11122 .L524:
  16667. 11123 0240 00200080 .word -2147475456
  16668. 11124 0244 00240080 .word -2147474432
  16669. 11125 .L520:
  16670. 5220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
  16671. 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16672. 5222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16673. 5223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16674. 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  16675. 11126 .loc 1 5224 28
  16676. 11127 0248 FB68 ldr r3, [r7, #12]
  16677. 11128 024a 5B8D ldrh r3, [r3, #42] @ movhi
  16678. 11129 024c 9AB2 uxth r2, r3
  16679. 11130 .loc 1 5224 22
  16680. 11131 024e FB68 ldr r3, [r7, #12]
  16681. 11132 0250 1A85 strh r2, [r3, #40] @ movhi
  16682. 5225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16683. 5226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
  16684. 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  16685. 11133 .loc 1 5227 46
  16686. 11134 0252 FB68 ldr r3, [r7, #12]
  16687. 11135 0254 DB6C ldr r3, [r3, #76]
  16688. 11136 .loc 1 5227 7
  16689. 11137 0256 99B2 uxth r1, r3
  16690. 11138 .loc 1 5227 73
  16691. 11139 0258 FB68 ldr r3, [r7, #12]
  16692. 11140 025a 1B8D ldrh r3, [r3, #40]
  16693. 11141 .loc 1 5227 7
  16694. 11142 025c DAB2 uxtb r2, r3
  16695. 11143 025e 7B69 ldr r3, [r7, #20]
  16696. 11144 0260 0093 str r3, [sp]
  16697. 11145 0262 4FF00073 mov r3, #33554432
  16698. 11146 0266 F868 ldr r0, [r7, #12]
  16699. 11147 0268 FFF7FEFF bl I2C_TransferConfig
  16700. 11148 .L507:
  16701. 5228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
  16702. 5229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16703. 5230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16704. 5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16705. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 289
  16706. 5232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16707. 5233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  16708. 5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16709. 5235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16710. 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
  16711. 11149 .loc 1 5236 8
  16712. 11150 026c 3B69 ldr r3, [r7, #16]
  16713. 11151 026e 5B09 lsrs r3, r3, #5
  16714. 11152 0270 03F00103 and r3, r3, #1
  16715. 11153 .loc 1 5236 6
  16716. 11154 0274 002B cmp r3, #0
  16717. 11155 0276 09D0 beq .L523
  16718. 5237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  16719. 11156 .loc 1 5237 8 discriminator 1
  16720. 11157 0278 7B68 ldr r3, [r7, #4]
  16721. 11158 027a 5B09 lsrs r3, r3, #5
  16722. 11159 027c 03F00103 and r3, r3, #1
  16723. 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  16724. 11160 .loc 1 5236 61 discriminator 1
  16725. 11161 0280 002B cmp r3, #0
  16726. 11162 0282 03D0 beq .L523
  16727. 5238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16728. 5239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
  16729. 5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
  16730. 11163 .loc 1 5240 5
  16731. 11164 0284 3969 ldr r1, [r7, #16]
  16732. 11165 0286 F868 ldr r0, [r7, #12]
  16733. 11166 0288 FFF7FEFF bl I2C_ITMasterCplt
  16734. 11167 .L523:
  16735. 5241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16736. 5242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16737. 5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  16738. 5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  16739. 11168 .loc 1 5244 3
  16740. 11169 028c FB68 ldr r3, [r7, #12]
  16741. 11170 028e 0022 movs r2, #0
  16742. 11171 0290 83F84020 strb r2, [r3, #64]
  16743. 5245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16744. 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  16745. 11172 .loc 1 5246 10
  16746. 11173 0294 0023 movs r3, #0
  16747. 11174 .L505:
  16748. 5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16749. 11175 .loc 1 5247 1
  16750. 11176 0296 1846 mov r0, r3
  16751. 11177 0298 1837 adds r7, r7, #24
  16752. 11178 .LCFI268:
  16753. 11179 .cfi_def_cfa_offset 8
  16754. 11180 029a BD46 mov sp, r7
  16755. 11181 .LCFI269:
  16756. 11182 .cfi_def_cfa_register 13
  16757. 11183 @ sp needed
  16758. 11184 029c 80BD pop {r7, pc}
  16759. 11185 .cfi_endproc
  16760. 11186 .LFE180:
  16761. 11188 029e 00BF .section .text.I2C_Slave_ISR_IT,"ax",%progbits
  16762. 11189 .align 1
  16763. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 290
  16764. 11190 .syntax unified
  16765. 11191 .thumb
  16766. 11192 .thumb_func
  16767. 11194 I2C_Slave_ISR_IT:
  16768. 11195 .LFB181:
  16769. 5248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16770. 5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  16771. 5250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
  16772. 5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  16773. 5252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  16774. 5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  16775. 5254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
  16776. 5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  16777. 5256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  16778. 5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  16779. 5258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
  16780. 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16781. 11196 .loc 1 5259 1
  16782. 11197 .cfi_startproc
  16783. 11198 @ args = 0, pretend = 0, frame = 24
  16784. 11199 @ frame_needed = 1, uses_anonymous_args = 0
  16785. 11200 0000 80B5 push {r7, lr}
  16786. 11201 .LCFI270:
  16787. 11202 .cfi_def_cfa_offset 8
  16788. 11203 .cfi_offset 7, -8
  16789. 11204 .cfi_offset 14, -4
  16790. 11205 0002 86B0 sub sp, sp, #24
  16791. 11206 .LCFI271:
  16792. 11207 .cfi_def_cfa_offset 32
  16793. 11208 0004 00AF add r7, sp, #0
  16794. 11209 .LCFI272:
  16795. 11210 .cfi_def_cfa_register 7
  16796. 11211 0006 F860 str r0, [r7, #12]
  16797. 11212 0008 B960 str r1, [r7, #8]
  16798. 11213 000a 7A60 str r2, [r7, #4]
  16799. 5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
  16800. 11214 .loc 1 5260 12
  16801. 11215 000c FB68 ldr r3, [r7, #12]
  16802. 11216 000e DB6A ldr r3, [r3, #44]
  16803. 11217 0010 7B61 str r3, [r7, #20]
  16804. 5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
  16805. 11218 .loc 1 5261 12
  16806. 11219 0012 BB68 ldr r3, [r7, #8]
  16807. 11220 0014 3B61 str r3, [r7, #16]
  16808. 5262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16809. 5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
  16810. 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  16811. 11221 .loc 1 5264 3
  16812. 11222 0016 FB68 ldr r3, [r7, #12]
  16813. 11223 0018 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  16814. 11224 001c 012B cmp r3, #1
  16815. 11225 001e 01D1 bne .L527
  16816. 11226 .loc 1 5264 3 is_stmt 0 discriminator 1
  16817. 11227 0020 0223 movs r3, #2
  16818. 11228 0022 EDE0 b .L528
  16819. 11229 .L527:
  16820. 11230 .loc 1 5264 3 discriminator 2
  16821. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 291
  16822. 11231 0024 FB68 ldr r3, [r7, #12]
  16823. 11232 0026 0122 movs r2, #1
  16824. 11233 0028 83F84020 strb r2, [r3, #64]
  16825. 5265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16826. 5266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
  16827. 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
  16828. 11234 .loc 1 5267 8 is_stmt 1 discriminator 2
  16829. 11235 002c 3B69 ldr r3, [r7, #16]
  16830. 11236 002e 5B09 lsrs r3, r3, #5
  16831. 11237 0030 03F00103 and r3, r3, #1
  16832. 11238 .loc 1 5267 6 discriminator 2
  16833. 11239 0034 002B cmp r3, #0
  16834. 11240 0036 0AD0 beq .L529
  16835. 5268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  16836. 11241 .loc 1 5268 8 discriminator 1
  16837. 11242 0038 7B68 ldr r3, [r7, #4]
  16838. 11243 003a 5B09 lsrs r3, r3, #5
  16839. 11244 003c 03F00103 and r3, r3, #1
  16840. 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  16841. 11245 .loc 1 5267 61 discriminator 1
  16842. 11246 0040 002B cmp r3, #0
  16843. 11247 0042 04D0 beq .L529
  16844. 5269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16845. 5270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
  16846. 5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
  16847. 11248 .loc 1 5271 5
  16848. 11249 0044 3969 ldr r1, [r7, #16]
  16849. 11250 0046 F868 ldr r0, [r7, #12]
  16850. 11251 0048 FFF7FEFF bl I2C_ITSlaveCplt
  16851. 11252 004c D3E0 b .L530
  16852. 11253 .L529:
  16853. 5272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16854. 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
  16855. 11254 .loc 1 5273 13
  16856. 11255 004e 3B69 ldr r3, [r7, #16]
  16857. 11256 0050 1B09 lsrs r3, r3, #4
  16858. 11257 0052 03F00103 and r3, r3, #1
  16859. 11258 .loc 1 5273 11
  16860. 11259 0056 002B cmp r3, #0
  16861. 11260 0058 4DD0 beq .L531
  16862. 5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  16863. 11261 .loc 1 5274 13 discriminator 1
  16864. 11262 005a 7B68 ldr r3, [r7, #4]
  16865. 11263 005c 1B09 lsrs r3, r3, #4
  16866. 11264 005e 03F00103 and r3, r3, #1
  16867. 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  16868. 11265 .loc 1 5273 63 discriminator 1
  16869. 11266 0062 002B cmp r3, #0
  16870. 11267 0064 47D0 beq .L531
  16871. 5275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16872. 5276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
  16873. 5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
  16874. 5278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
  16875. 5279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
  16876. 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
  16877. 11268 .loc 1 5280 13
  16878. 11269 0066 FB68 ldr r3, [r7, #12]
  16879. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 292
  16880. 11270 0068 5B8D ldrh r3, [r3, #42] @ movhi
  16881. 11271 006a 9BB2 uxth r3, r3
  16882. 11272 .loc 1 5280 8
  16883. 11273 006c 002B cmp r3, #0
  16884. 11274 006e 28D1 bne .L532
  16885. 5281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16886. 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
  16887. 11275 .loc 1 5282 16
  16888. 11276 0070 FB68 ldr r3, [r7, #12]
  16889. 11277 0072 93F84130 ldrb r3, [r3, #65]
  16890. 11278 0076 DBB2 uxtb r3, r3
  16891. 11279 .loc 1 5282 10
  16892. 11280 0078 282B cmp r3, #40
  16893. 11281 007a 08D1 bne .L533
  16894. 11282 .loc 1 5282 49 discriminator 1
  16895. 11283 007c 7B69 ldr r3, [r7, #20]
  16896. 11284 007e B3F1007F cmp r3, #33554432
  16897. 11285 0082 04D1 bne .L533
  16898. 5283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
  16899. 5284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
  16900. 5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16901. 5286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
  16902. 5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
  16903. 11286 .loc 1 5287 9
  16904. 11287 0084 3969 ldr r1, [r7, #16]
  16905. 11288 0086 F868 ldr r0, [r7, #12]
  16906. 11289 0088 FFF7FEFF bl I2C_ITListenCplt
  16907. 11290 008c 32E0 b .L536
  16908. 11291 .L533:
  16909. 5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16910. 5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
  16911. 11292 .loc 1 5289 21
  16912. 11293 008e FB68 ldr r3, [r7, #12]
  16913. 11294 0090 93F84130 ldrb r3, [r3, #65]
  16914. 11295 0094 DBB2 uxtb r3, r3
  16915. 11296 .loc 1 5289 15
  16916. 11297 0096 292B cmp r3, #41
  16917. 11298 0098 0ED1 bne .L535
  16918. 11299 .loc 1 5289 62 discriminator 1
  16919. 11300 009a 7B69 ldr r3, [r7, #20]
  16920. 11301 009c 13F5803F cmn r3, #65536
  16921. 11302 00a0 0AD0 beq .L535
  16922. 5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16923. 5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  16924. 5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  16925. 11303 .loc 1 5292 9
  16926. 11304 00a2 FB68 ldr r3, [r7, #12]
  16927. 11305 00a4 1B68 ldr r3, [r3]
  16928. 11306 00a6 1022 movs r2, #16
  16929. 11307 00a8 DA61 str r2, [r3, #28]
  16930. 5293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16931. 5294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  16932. 5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  16933. 11308 .loc 1 5295 9
  16934. 11309 00aa F868 ldr r0, [r7, #12]
  16935. 11310 00ac FFF7FEFF bl I2C_Flush_TXDR
  16936. 5296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16937. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 293
  16938. 5297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
  16939. 5298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
  16940. 5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  16941. 11311 .loc 1 5299 9
  16942. 11312 00b0 F868 ldr r0, [r7, #12]
  16943. 11313 00b2 FFF7FEFF bl I2C_ITSlaveSeqCplt
  16944. 11314 00b6 1DE0 b .L536
  16945. 11315 .L535:
  16946. 5300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16947. 5301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16948. 5302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16949. 5303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  16950. 5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  16951. 11316 .loc 1 5304 9
  16952. 11317 00b8 FB68 ldr r3, [r7, #12]
  16953. 11318 00ba 1B68 ldr r3, [r3]
  16954. 11319 00bc 1022 movs r2, #16
  16955. 11320 00be DA61 str r2, [r3, #28]
  16956. 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16957. 11321 .loc 1 5280 8
  16958. 11322 00c0 96E0 b .L544
  16959. 11323 .L532:
  16960. 5305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16961. 5306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  16962. 5307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  16963. 5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16964. 5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
  16965. 5310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  16966. 5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  16967. 11324 .loc 1 5311 7
  16968. 11325 00c2 FB68 ldr r3, [r7, #12]
  16969. 11326 00c4 1B68 ldr r3, [r3]
  16970. 11327 00c6 1022 movs r2, #16
  16971. 11328 00c8 DA61 str r2, [r3, #28]
  16972. 5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16973. 5313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
  16974. 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  16975. 11329 .loc 1 5314 23
  16976. 11330 00ca FB68 ldr r3, [r7, #12]
  16977. 11331 00cc 5B6C ldr r3, [r3, #68]
  16978. 11332 00ce 43F00402 orr r2, r3, #4
  16979. 11333 00d2 FB68 ldr r3, [r7, #12]
  16980. 11334 00d4 5A64 str r2, [r3, #68]
  16981. 5315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  16982. 5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
  16983. 11335 .loc 1 5316 10
  16984. 11336 00d6 7B69 ldr r3, [r7, #20]
  16985. 11337 00d8 002B cmp r3, #0
  16986. 11338 00da 04D0 beq .L537
  16987. 11339 .loc 1 5316 43 discriminator 1
  16988. 11340 00dc 7B69 ldr r3, [r7, #20]
  16989. 11341 00de B3F1807F cmp r3, #16777216
  16990. 11342 00e2 40F08580 bne .L544
  16991. 11343 .L537:
  16992. 5317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  16993. 5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  16994. 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
  16995. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 294
  16996. 11344 .loc 1 5319 9
  16997. 11345 00e6 FB68 ldr r3, [r7, #12]
  16998. 11346 00e8 5B6C ldr r3, [r3, #68]
  16999. 11347 00ea 1946 mov r1, r3
  17000. 11348 00ec F868 ldr r0, [r7, #12]
  17001. 11349 00ee FFF7FEFF bl I2C_ITError
  17002. 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17003. 11350 .loc 1 5280 8
  17004. 11351 00f2 7DE0 b .L544
  17005. 11352 .L536:
  17006. 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17007. 11353 .loc 1 5280 8 is_stmt 0 discriminator 1
  17008. 11354 00f4 7CE0 b .L544
  17009. 11355 .L531:
  17010. 5320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17011. 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17012. 5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17013. 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
  17014. 11356 .loc 1 5323 13 is_stmt 1
  17015. 11357 00f6 3B69 ldr r3, [r7, #16]
  17016. 11358 00f8 9B08 lsrs r3, r3, #2
  17017. 11359 00fa 03F00103 and r3, r3, #1
  17018. 11360 .loc 1 5323 11
  17019. 11361 00fe 002B cmp r3, #0
  17020. 11362 0100 30D0 beq .L538
  17021. 5324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
  17022. 11363 .loc 1 5324 13 discriminator 1
  17023. 11364 0102 7B68 ldr r3, [r7, #4]
  17024. 11365 0104 9B08 lsrs r3, r3, #2
  17025. 11366 0106 03F00103 and r3, r3, #1
  17026. 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
  17027. 11367 .loc 1 5323 65 discriminator 1
  17028. 11368 010a 002B cmp r3, #0
  17029. 11369 010c 2AD0 beq .L538
  17030. 5325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17031. 5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
  17032. 11370 .loc 1 5326 13
  17033. 11371 010e FB68 ldr r3, [r7, #12]
  17034. 11372 0110 5B8D ldrh r3, [r3, #42] @ movhi
  17035. 11373 0112 9BB2 uxth r3, r3
  17036. 11374 .loc 1 5326 8
  17037. 11375 0114 002B cmp r3, #0
  17038. 11376 0116 18D0 beq .L539
  17039. 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17040. 5328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  17041. 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  17042. 11377 .loc 1 5329 38
  17043. 11378 0118 FB68 ldr r3, [r7, #12]
  17044. 11379 011a 1B68 ldr r3, [r3]
  17045. 11380 .loc 1 5329 48
  17046. 11381 011c 5A6A ldr r2, [r3, #36]
  17047. 11382 .loc 1 5329 12
  17048. 11383 011e FB68 ldr r3, [r7, #12]
  17049. 11384 0120 5B6A ldr r3, [r3, #36]
  17050. 11385 .loc 1 5329 25
  17051. 11386 0122 D2B2 uxtb r2, r2
  17052. 11387 .loc 1 5329 23
  17053. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 295
  17054. 11388 0124 1A70 strb r2, [r3]
  17055. 5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17056. 5331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  17057. 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  17058. 11389 .loc 1 5332 11
  17059. 11390 0126 FB68 ldr r3, [r7, #12]
  17060. 11391 0128 5B6A ldr r3, [r3, #36]
  17061. 11392 .loc 1 5332 21
  17062. 11393 012a 5A1C adds r2, r3, #1
  17063. 11394 012c FB68 ldr r3, [r7, #12]
  17064. 11395 012e 5A62 str r2, [r3, #36]
  17065. 5333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17066. 5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  17067. 11396 .loc 1 5334 11
  17068. 11397 0130 FB68 ldr r3, [r7, #12]
  17069. 11398 0132 1B8D ldrh r3, [r3, #40]
  17070. 11399 .loc 1 5334 21
  17071. 11400 0134 013B subs r3, r3, #1
  17072. 11401 0136 9AB2 uxth r2, r3
  17073. 11402 0138 FB68 ldr r3, [r7, #12]
  17074. 11403 013a 1A85 strh r2, [r3, #40] @ movhi
  17075. 5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  17076. 11404 .loc 1 5335 11
  17077. 11405 013c FB68 ldr r3, [r7, #12]
  17078. 11406 013e 5B8D ldrh r3, [r3, #42] @ movhi
  17079. 11407 0140 9BB2 uxth r3, r3
  17080. 11408 .loc 1 5335 22
  17081. 11409 0142 013B subs r3, r3, #1
  17082. 11410 0144 9AB2 uxth r2, r3
  17083. 11411 0146 FB68 ldr r3, [r7, #12]
  17084. 11412 0148 5A85 strh r2, [r3, #42] @ movhi
  17085. 11413 .L539:
  17086. 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17087. 5337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17088. 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
  17089. 11414 .loc 1 5338 14
  17090. 11415 014a FB68 ldr r3, [r7, #12]
  17091. 11416 014c 5B8D ldrh r3, [r3, #42] @ movhi
  17092. 11417 014e 9BB2 uxth r3, r3
  17093. 11418 .loc 1 5338 8
  17094. 11419 0150 002B cmp r3, #0
  17095. 11420 0152 4FD1 bne .L545
  17096. 11421 .loc 1 5338 33 discriminator 1
  17097. 11422 0154 7B69 ldr r3, [r7, #20]
  17098. 11423 0156 13F5803F cmn r3, #65536
  17099. 11424 015a 4BD0 beq .L545
  17100. 5339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
  17101. 5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17102. 5341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
  17103. 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  17104. 11425 .loc 1 5342 7
  17105. 11426 015c F868 ldr r0, [r7, #12]
  17106. 11427 015e FFF7FEFF bl I2C_ITSlaveSeqCplt
  17107. 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
  17108. 11428 .loc 1 5338 8
  17109. 11429 0162 47E0 b .L545
  17110. 11430 .L538:
  17111. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 296
  17112. 5343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17113. 5344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17114. 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \
  17115. 11431 .loc 1 5345 13
  17116. 11432 0164 3B69 ldr r3, [r7, #16]
  17117. 11433 0166 DB08 lsrs r3, r3, #3
  17118. 11434 0168 03F00103 and r3, r3, #1
  17119. 11435 .loc 1 5345 11
  17120. 11436 016c 002B cmp r3, #0
  17121. 11437 016e 0AD0 beq .L541
  17122. 5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
  17123. 11438 .loc 1 5346 13 discriminator 1
  17124. 11439 0170 7B68 ldr r3, [r7, #4]
  17125. 11440 0172 DB08 lsrs r3, r3, #3
  17126. 11441 0174 03F00103 and r3, r3, #1
  17127. 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
  17128. 11442 .loc 1 5345 65 discriminator 1
  17129. 11443 0178 002B cmp r3, #0
  17130. 11444 017a 04D0 beq .L541
  17131. 5347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17132. 5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
  17133. 11445 .loc 1 5348 5
  17134. 11446 017c 3969 ldr r1, [r7, #16]
  17135. 11447 017e F868 ldr r0, [r7, #12]
  17136. 11448 0180 FFF7FEFF bl I2C_ITAddrCplt
  17137. 11449 0184 37E0 b .L530
  17138. 11450 .L541:
  17139. 5349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17140. 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
  17141. 11451 .loc 1 5350 13
  17142. 11452 0186 3B69 ldr r3, [r7, #16]
  17143. 11453 0188 5B08 lsrs r3, r3, #1
  17144. 11454 018a 03F00103 and r3, r3, #1
  17145. 11455 .loc 1 5350 11
  17146. 11456 018e 002B cmp r3, #0
  17147. 11457 0190 31D0 beq .L530
  17148. 5351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
  17149. 11458 .loc 1 5351 13 discriminator 1
  17150. 11459 0192 7B68 ldr r3, [r7, #4]
  17151. 11460 0194 5B08 lsrs r3, r3, #1
  17152. 11461 0196 03F00103 and r3, r3, #1
  17153. 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
  17154. 11462 .loc 1 5350 65 discriminator 1
  17155. 11463 019a 002B cmp r3, #0
  17156. 11464 019c 2BD0 beq .L530
  17157. 5352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17158. 5353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
  17159. 5354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
  17160. 5355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if all Data have already been sent */
  17161. 5356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */
  17162. 5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
  17163. 11465 .loc 1 5357 13
  17164. 11466 019e FB68 ldr r3, [r7, #12]
  17165. 11467 01a0 5B8D ldrh r3, [r3, #42] @ movhi
  17166. 11468 01a2 9BB2 uxth r3, r3
  17167. 11469 .loc 1 5357 8
  17168. 11470 01a4 002B cmp r3, #0
  17169. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 297
  17170. 11471 01a6 18D0 beq .L542
  17171. 5358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17172. 5359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
  17173. 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
  17174. 11472 .loc 1 5360 35
  17175. 11473 01a8 FB68 ldr r3, [r7, #12]
  17176. 11474 01aa 5B6A ldr r3, [r3, #36]
  17177. 11475 .loc 1 5360 30
  17178. 11476 01ac 1A78 ldrb r2, [r3] @ zero_extendqisi2
  17179. 11477 .loc 1 5360 11
  17180. 11478 01ae FB68 ldr r3, [r7, #12]
  17181. 11479 01b0 1B68 ldr r3, [r3]
  17182. 11480 .loc 1 5360 28
  17183. 11481 01b2 9A62 str r2, [r3, #40]
  17184. 5361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17185. 5362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  17186. 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  17187. 11482 .loc 1 5363 11
  17188. 11483 01b4 FB68 ldr r3, [r7, #12]
  17189. 11484 01b6 5B6A ldr r3, [r3, #36]
  17190. 11485 .loc 1 5363 21
  17191. 11486 01b8 5A1C adds r2, r3, #1
  17192. 11487 01ba FB68 ldr r3, [r7, #12]
  17193. 11488 01bc 5A62 str r2, [r3, #36]
  17194. 5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17195. 5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  17196. 11489 .loc 1 5365 11
  17197. 11490 01be FB68 ldr r3, [r7, #12]
  17198. 11491 01c0 5B8D ldrh r3, [r3, #42] @ movhi
  17199. 11492 01c2 9BB2 uxth r3, r3
  17200. 11493 .loc 1 5365 22
  17201. 11494 01c4 013B subs r3, r3, #1
  17202. 11495 01c6 9AB2 uxth r2, r3
  17203. 11496 01c8 FB68 ldr r3, [r7, #12]
  17204. 11497 01ca 5A85 strh r2, [r3, #42] @ movhi
  17205. 5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  17206. 11498 .loc 1 5366 11
  17207. 11499 01cc FB68 ldr r3, [r7, #12]
  17208. 11500 01ce 1B8D ldrh r3, [r3, #40]
  17209. 11501 .loc 1 5366 21
  17210. 11502 01d0 013B subs r3, r3, #1
  17211. 11503 01d2 9AB2 uxth r2, r3
  17212. 11504 01d4 FB68 ldr r3, [r7, #12]
  17213. 11505 01d6 1A85 strh r2, [r3, #40] @ movhi
  17214. 11506 01d8 0DE0 b .L530
  17215. 11507 .L542:
  17216. 5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17217. 5368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17218. 5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17219. 5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
  17220. 11508 .loc 1 5370 10
  17221. 11509 01da 7B69 ldr r3, [r7, #20]
  17222. 11510 01dc B3F1807F cmp r3, #16777216
  17223. 11511 01e0 02D0 beq .L543
  17224. 11512 .loc 1 5370 42 discriminator 1
  17225. 11513 01e2 7B69 ldr r3, [r7, #20]
  17226. 11514 01e4 002B cmp r3, #0
  17227. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 298
  17228. 11515 01e6 06D1 bne .L530
  17229. 11516 .L543:
  17230. 5371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17231. 5372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
  17232. 5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
  17233. 5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  17234. 11517 .loc 1 5374 9
  17235. 11518 01e8 F868 ldr r0, [r7, #12]
  17236. 11519 01ea FFF7FEFF bl I2C_ITSlaveSeqCplt
  17237. 11520 01ee 02E0 b .L530
  17238. 11521 .L544:
  17239. 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17240. 11522 .loc 1 5280 8
  17241. 11523 01f0 00BF nop
  17242. 11524 01f2 00E0 b .L530
  17243. 11525 .L545:
  17244. 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
  17245. 11526 .loc 1 5338 8
  17246. 11527 01f4 00BF nop
  17247. 11528 .L530:
  17248. 5375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17249. 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17250. 5377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17251. 5378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17252. 5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17253. 5380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  17254. 5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17255. 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17256. 5383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  17257. 5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  17258. 11529 .loc 1 5384 3
  17259. 11530 01f6 FB68 ldr r3, [r7, #12]
  17260. 11531 01f8 0022 movs r2, #0
  17261. 11532 01fa 83F84020 strb r2, [r3, #64]
  17262. 5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17263. 5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  17264. 11533 .loc 1 5386 10
  17265. 11534 01fe 0023 movs r3, #0
  17266. 11535 .L528:
  17267. 5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17268. 11536 .loc 1 5387 1
  17269. 11537 0200 1846 mov r0, r3
  17270. 11538 0202 1837 adds r7, r7, #24
  17271. 11539 .LCFI273:
  17272. 11540 .cfi_def_cfa_offset 8
  17273. 11541 0204 BD46 mov sp, r7
  17274. 11542 .LCFI274:
  17275. 11543 .cfi_def_cfa_register 13
  17276. 11544 @ sp needed
  17277. 11545 0206 80BD pop {r7, pc}
  17278. 11546 .cfi_endproc
  17279. 11547 .LFE181:
  17280. 11549 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
  17281. 11550 .align 1
  17282. 11551 .syntax unified
  17283. 11552 .thumb
  17284. 11553 .thumb_func
  17285. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 299
  17286. 11555 I2C_Master_ISR_DMA:
  17287. 11556 .LFB182:
  17288. 5388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17289. 5389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  17290. 5390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
  17291. 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  17292. 5392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  17293. 5393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  17294. 5394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
  17295. 5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  17296. 5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  17297. 5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  17298. 5398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
  17299. 5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17300. 11557 .loc 1 5399 1
  17301. 11558 .cfi_startproc
  17302. 11559 @ args = 0, pretend = 0, frame = 24
  17303. 11560 @ frame_needed = 1, uses_anonymous_args = 0
  17304. 11561 0000 80B5 push {r7, lr}
  17305. 11562 .LCFI275:
  17306. 11563 .cfi_def_cfa_offset 8
  17307. 11564 .cfi_offset 7, -8
  17308. 11565 .cfi_offset 14, -4
  17309. 11566 0002 88B0 sub sp, sp, #32
  17310. 11567 .LCFI276:
  17311. 11568 .cfi_def_cfa_offset 40
  17312. 11569 0004 02AF add r7, sp, #8
  17313. 11570 .LCFI277:
  17314. 11571 .cfi_def_cfa 7, 32
  17315. 11572 0006 F860 str r0, [r7, #12]
  17316. 11573 0008 B960 str r1, [r7, #8]
  17317. 11574 000a 7A60 str r2, [r7, #4]
  17318. 5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
  17319. 5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
  17320. 5402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17321. 5403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  17322. 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  17323. 11575 .loc 1 5404 3
  17324. 11576 000c FB68 ldr r3, [r7, #12]
  17325. 11577 000e 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  17326. 11578 0012 012B cmp r3, #1
  17327. 11579 0014 01D1 bne .L547
  17328. 11580 .loc 1 5404 3 is_stmt 0 discriminator 1
  17329. 11581 0016 0223 movs r3, #2
  17330. 11582 0018 F0E0 b .L548
  17331. 11583 .L547:
  17332. 11584 .loc 1 5404 3 discriminator 2
  17333. 11585 001a FB68 ldr r3, [r7, #12]
  17334. 11586 001c 0122 movs r2, #1
  17335. 11587 001e 83F84020 strb r2, [r3, #64]
  17336. 5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17337. 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
  17338. 11588 .loc 1 5406 8 is_stmt 1 discriminator 2
  17339. 11589 0022 BB68 ldr r3, [r7, #8]
  17340. 11590 0024 1B09 lsrs r3, r3, #4
  17341. 11591 0026 03F00103 and r3, r3, #1
  17342. 11592 .loc 1 5406 6 discriminator 2
  17343. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 300
  17344. 11593 002a 002B cmp r3, #0
  17345. 11594 002c 17D0 beq .L549
  17346. 5407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  17347. 11595 .loc 1 5407 8 discriminator 1
  17348. 11596 002e 7B68 ldr r3, [r7, #4]
  17349. 11597 0030 1B09 lsrs r3, r3, #4
  17350. 11598 0032 03F00103 and r3, r3, #1
  17351. 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  17352. 11599 .loc 1 5406 55 discriminator 1
  17353. 11600 0036 002B cmp r3, #0
  17354. 11601 0038 11D0 beq .L549
  17355. 5408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17356. 5409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  17357. 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  17358. 11602 .loc 1 5410 5
  17359. 11603 003a FB68 ldr r3, [r7, #12]
  17360. 11604 003c 1B68 ldr r3, [r3]
  17361. 11605 003e 1022 movs r2, #16
  17362. 11606 0040 DA61 str r2, [r3, #28]
  17363. 5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17364. 5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
  17365. 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  17366. 11607 .loc 1 5413 21
  17367. 11608 0042 FB68 ldr r3, [r7, #12]
  17368. 11609 0044 5B6C ldr r3, [r3, #68]
  17369. 11610 0046 43F00402 orr r2, r3, #4
  17370. 11611 004a FB68 ldr r3, [r7, #12]
  17371. 11612 004c 5A64 str r2, [r3, #68]
  17372. 5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17373. 5415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
  17374. 5416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
  17375. 5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
  17376. 5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
  17377. 11613 .loc 1 5418 5
  17378. 11614 004e 2021 movs r1, #32
  17379. 11615 0050 F868 ldr r0, [r7, #12]
  17380. 11616 0052 FFF7FEFF bl I2C_Enable_IRQ
  17381. 5419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17382. 5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  17383. 5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  17384. 11617 .loc 1 5421 5
  17385. 11618 0056 F868 ldr r0, [r7, #12]
  17386. 11619 0058 FFF7FEFF bl I2C_Flush_TXDR
  17387. 11620 005c C9E0 b .L550
  17388. 11621 .L549:
  17389. 5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17390. 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
  17391. 11622 .loc 1 5423 13
  17392. 11623 005e BB68 ldr r3, [r7, #8]
  17393. 11624 0060 DB09 lsrs r3, r3, #7
  17394. 11625 0062 03F00103 and r3, r3, #1
  17395. 11626 .loc 1 5423 11
  17396. 11627 0066 002B cmp r3, #0
  17397. 11628 0068 00F08180 beq .L551
  17398. 5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  17399. 11629 .loc 1 5424 13 discriminator 1
  17400. 11630 006c 7B68 ldr r3, [r7, #4]
  17401. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 301
  17402. 11631 006e 9B09 lsrs r3, r3, #6
  17403. 11632 0070 03F00103 and r3, r3, #1
  17404. 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  17405. 11633 .loc 1 5423 61 discriminator 1
  17406. 11634 0074 002B cmp r3, #0
  17407. 11635 0076 7AD0 beq .L551
  17408. 5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17409. 5426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC interrupt */
  17410. 5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
  17411. 11636 .loc 1 5427 5
  17412. 11637 0078 FB68 ldr r3, [r7, #12]
  17413. 11638 007a 1B68 ldr r3, [r3]
  17414. 11639 007c 1A68 ldr r2, [r3]
  17415. 11640 007e FB68 ldr r3, [r7, #12]
  17416. 11641 0080 1B68 ldr r3, [r3]
  17417. 11642 0082 22F04002 bic r2, r2, #64
  17418. 11643 0086 1A60 str r2, [r3]
  17419. 5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17420. 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
  17421. 11644 .loc 1 5429 13
  17422. 11645 0088 FB68 ldr r3, [r7, #12]
  17423. 11646 008a 5B8D ldrh r3, [r3, #42] @ movhi
  17424. 11647 008c 9BB2 uxth r3, r3
  17425. 11648 .loc 1 5429 8
  17426. 11649 008e 002B cmp r3, #0
  17427. 11650 0090 5CD0 beq .L552
  17428. 5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17429. 5431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Recover Slave address */
  17430. 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
  17431. 11651 .loc 1 5432 35
  17432. 11652 0092 FB68 ldr r3, [r7, #12]
  17433. 11653 0094 1B68 ldr r3, [r3]
  17434. 11654 .loc 1 5432 45
  17435. 11655 0096 5B68 ldr r3, [r3, #4]
  17436. 11656 .loc 1 5432 20
  17437. 11657 0098 9BB2 uxth r3, r3
  17438. 11658 .loc 1 5432 18
  17439. 11659 009a C3F30903 ubfx r3, r3, #0, #10
  17440. 11660 009e 7B82 strh r3, [r7, #18] @ movhi
  17441. 5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17442. 5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
  17443. 5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  17444. 11661 .loc 1 5435 15
  17445. 11662 00a0 FB68 ldr r3, [r7, #12]
  17446. 11663 00a2 5B8D ldrh r3, [r3, #42] @ movhi
  17447. 11664 00a4 9BB2 uxth r3, r3
  17448. 11665 .loc 1 5435 10
  17449. 11666 00a6 FF2B cmp r3, #255
  17450. 11667 00a8 14D9 bls .L553
  17451. 5436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17452. 5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
  17453. 5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
  17454. 11668 .loc 1 5438 13
  17455. 11669 00aa FB68 ldr r3, [r7, #12]
  17456. 11670 00ac 1B68 ldr r3, [r3]
  17457. 11671 00ae 9B69 ldr r3, [r3, #24]
  17458. 11672 00b0 1B0C lsrs r3, r3, #16
  17459. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 302
  17460. 11673 00b2 DBB2 uxtb r3, r3
  17461. 11674 00b4 03F00103 and r3, r3, #1
  17462. 11675 00b8 DBB2 uxtb r3, r3
  17463. 11676 .loc 1 5438 12
  17464. 11677 00ba 012B cmp r3, #1
  17465. 11678 00bc 03D1 bne .L554
  17466. 5439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17467. 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  17468. 11679 .loc 1 5440 26
  17469. 11680 00be FB68 ldr r3, [r7, #12]
  17470. 11681 00c0 0122 movs r2, #1
  17471. 11682 00c2 1A85 strh r2, [r3, #40] @ movhi
  17472. 11683 00c4 02E0 b .L555
  17473. 11684 .L554:
  17474. 5441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17475. 5442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17476. 5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17477. 5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  17478. 11685 .loc 1 5444 26
  17479. 11686 00c6 FB68 ldr r3, [r7, #12]
  17480. 11687 00c8 FF22 movs r2, #255
  17481. 11688 00ca 1A85 strh r2, [r3, #40] @ movhi
  17482. 11689 .L555:
  17483. 5445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17484. 5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
  17485. 11690 .loc 1 5446 18
  17486. 11691 00cc 4FF08073 mov r3, #16777216
  17487. 11692 00d0 7B61 str r3, [r7, #20]
  17488. 11693 00d2 10E0 b .L556
  17489. 11694 .L553:
  17490. 5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17491. 5448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17492. 5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17493. 5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  17494. 11695 .loc 1 5450 30
  17495. 11696 00d4 FB68 ldr r3, [r7, #12]
  17496. 11697 00d6 5B8D ldrh r3, [r3, #42] @ movhi
  17497. 11698 00d8 9AB2 uxth r2, r3
  17498. 11699 .loc 1 5450 24
  17499. 11700 00da FB68 ldr r3, [r7, #12]
  17500. 11701 00dc 1A85 strh r2, [r3, #40] @ movhi
  17501. 5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
  17502. 11702 .loc 1 5451 17
  17503. 11703 00de FB68 ldr r3, [r7, #12]
  17504. 11704 00e0 DB6A ldr r3, [r3, #44]
  17505. 11705 .loc 1 5451 12
  17506. 11706 00e2 13F5803F cmn r3, #65536
  17507. 11707 00e6 03D0 beq .L557
  17508. 5452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17509. 5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
  17510. 11708 .loc 1 5453 20
  17511. 11709 00e8 FB68 ldr r3, [r7, #12]
  17512. 11710 00ea DB6A ldr r3, [r3, #44]
  17513. 11711 00ec 7B61 str r3, [r7, #20]
  17514. 11712 00ee 02E0 b .L556
  17515. 11713 .L557:
  17516. 5454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17517. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 303
  17518. 5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17519. 5456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17520. 5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
  17521. 11714 .loc 1 5457 20
  17522. 11715 00f0 4FF00073 mov r3, #33554432
  17523. 11716 00f4 7B61 str r3, [r7, #20]
  17524. 11717 .L556:
  17525. 5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17526. 5459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17527. 5460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17528. 5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
  17529. 5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
  17530. 11718 .loc 1 5462 57
  17531. 11719 00f6 FB68 ldr r3, [r7, #12]
  17532. 11720 00f8 1B8D ldrh r3, [r3, #40]
  17533. 11721 .loc 1 5462 7
  17534. 11722 00fa DAB2 uxtb r2, r3
  17535. 11723 00fc 798A ldrh r1, [r7, #18]
  17536. 11724 00fe 0023 movs r3, #0
  17537. 11725 0100 0093 str r3, [sp]
  17538. 11726 0102 7B69 ldr r3, [r7, #20]
  17539. 11727 0104 F868 ldr r0, [r7, #12]
  17540. 11728 0106 FFF7FEFF bl I2C_TransferConfig
  17541. 5463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17542. 5464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  17543. 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  17544. 11729 .loc 1 5465 23
  17545. 11730 010a FB68 ldr r3, [r7, #12]
  17546. 11731 010c 5B8D ldrh r3, [r3, #42] @ movhi
  17547. 11732 010e 9AB2 uxth r2, r3
  17548. 11733 .loc 1 5465 30
  17549. 11734 0110 FB68 ldr r3, [r7, #12]
  17550. 11735 0112 1B8D ldrh r3, [r3, #40]
  17551. 11736 .loc 1 5465 23
  17552. 11737 0114 D31A subs r3, r2, r3
  17553. 11738 0116 9AB2 uxth r2, r3
  17554. 11739 0118 FB68 ldr r3, [r7, #12]
  17555. 11740 011a 5A85 strh r2, [r3, #42] @ movhi
  17556. 5466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17557. 5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  17558. 5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  17559. 11741 .loc 1 5468 15
  17560. 11742 011c FB68 ldr r3, [r7, #12]
  17561. 11743 011e 93F84130 ldrb r3, [r3, #65]
  17562. 11744 0122 DBB2 uxtb r3, r3
  17563. 11745 .loc 1 5468 10
  17564. 11746 0124 222B cmp r3, #34
  17565. 11747 0126 08D1 bne .L558
  17566. 5469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17567. 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
  17568. 11748 .loc 1 5470 13
  17569. 11749 0128 FB68 ldr r3, [r7, #12]
  17570. 11750 012a 1B68 ldr r3, [r3]
  17571. 11751 .loc 1 5470 29
  17572. 11752 012c 1A68 ldr r2, [r3]
  17573. 11753 .loc 1 5470 13
  17574. 11754 012e FB68 ldr r3, [r7, #12]
  17575. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 304
  17576. 11755 0130 1B68 ldr r3, [r3]
  17577. 11756 .loc 1 5470 29
  17578. 11757 0132 42F40042 orr r2, r2, #32768
  17579. 11758 0136 1A60 str r2, [r3]
  17580. 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17581. 11759 .loc 1 5429 8
  17582. 11760 0138 5BE0 b .L550
  17583. 11761 .L558:
  17584. 5471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17585. 5472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17586. 5473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17587. 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
  17588. 11762 .loc 1 5474 13
  17589. 11763 013a FB68 ldr r3, [r7, #12]
  17590. 11764 013c 1B68 ldr r3, [r3]
  17591. 11765 .loc 1 5474 29
  17592. 11766 013e 1A68 ldr r2, [r3]
  17593. 11767 .loc 1 5474 13
  17594. 11768 0140 FB68 ldr r3, [r7, #12]
  17595. 11769 0142 1B68 ldr r3, [r3]
  17596. 11770 .loc 1 5474 29
  17597. 11771 0144 42F48042 orr r2, r2, #16384
  17598. 11772 0148 1A60 str r2, [r3]
  17599. 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17600. 11773 .loc 1 5429 8
  17601. 11774 014a 52E0 b .L550
  17602. 11775 .L552:
  17603. 5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17604. 5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17605. 5477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17606. 5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17607. 5479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
  17608. 5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
  17609. 11776 .loc 1 5480 11
  17610. 11777 014c FB68 ldr r3, [r7, #12]
  17611. 11778 014e 1B68 ldr r3, [r3]
  17612. 11779 0150 5B68 ldr r3, [r3, #4]
  17613. 11780 0152 03F00073 and r3, r3, #33554432
  17614. 11781 .loc 1 5480 10
  17615. 11782 0156 B3F1007F cmp r3, #33554432
  17616. 11783 015a 03D0 beq .L560
  17617. 5481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17618. 5482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
  17619. 5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
  17620. 11784 .loc 1 5483 9
  17621. 11785 015c F868 ldr r0, [r7, #12]
  17622. 11786 015e FFF7FEFF bl I2C_ITMasterSeqCplt
  17623. 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17624. 11787 .loc 1 5429 8
  17625. 11788 0162 46E0 b .L550
  17626. 11789 .L560:
  17627. 5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17628. 5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17629. 5486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17630. 5487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
  17631. 5488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  17632. 5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
  17633. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 305
  17634. 11790 .loc 1 5489 9
  17635. 11791 0164 4021 movs r1, #64
  17636. 11792 0166 F868 ldr r0, [r7, #12]
  17637. 11793 0168 FFF7FEFF bl I2C_ITError
  17638. 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17639. 11794 .loc 1 5429 8
  17640. 11795 016c 41E0 b .L550
  17641. 11796 .L551:
  17642. 5490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17643. 5491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17644. 5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17645. 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
  17646. 11797 .loc 1 5493 13
  17647. 11798 016e BB68 ldr r3, [r7, #8]
  17648. 11799 0170 9B09 lsrs r3, r3, #6
  17649. 11800 0172 03F00103 and r3, r3, #1
  17650. 11801 .loc 1 5493 11
  17651. 11802 0176 002B cmp r3, #0
  17652. 11803 0178 29D0 beq .L561
  17653. 5494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  17654. 11804 .loc 1 5494 13 discriminator 1
  17655. 11805 017a 7B68 ldr r3, [r7, #4]
  17656. 11806 017c 9B09 lsrs r3, r3, #6
  17657. 11807 017e 03F00103 and r3, r3, #1
  17658. 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  17659. 11808 .loc 1 5493 60 discriminator 1
  17660. 11809 0182 002B cmp r3, #0
  17661. 11810 0184 23D0 beq .L561
  17662. 5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17663. 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
  17664. 11811 .loc 1 5496 13
  17665. 11812 0186 FB68 ldr r3, [r7, #12]
  17666. 11813 0188 5B8D ldrh r3, [r3, #42] @ movhi
  17667. 11814 018a 9BB2 uxth r3, r3
  17668. 11815 .loc 1 5496 8
  17669. 11816 018c 002B cmp r3, #0
  17670. 11817 018e 19D1 bne .L562
  17671. 5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17672. 5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
  17673. 11818 .loc 1 5498 11
  17674. 11819 0190 FB68 ldr r3, [r7, #12]
  17675. 11820 0192 1B68 ldr r3, [r3]
  17676. 11821 0194 5B68 ldr r3, [r3, #4]
  17677. 11822 0196 03F00073 and r3, r3, #33554432
  17678. 11823 .loc 1 5498 10
  17679. 11824 019a B3F1007F cmp r3, #33554432
  17680. 11825 019e 27D0 beq .L565
  17681. 5499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17682. 5500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
  17683. 5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
  17684. 11826 .loc 1 5501 17
  17685. 11827 01a0 FB68 ldr r3, [r7, #12]
  17686. 11828 01a2 DB6A ldr r3, [r3, #44]
  17687. 11829 .loc 1 5501 12
  17688. 11830 01a4 13F5803F cmn r3, #65536
  17689. 11831 01a8 08D1 bne .L564
  17690. 5502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17691. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 306
  17692. 5503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
  17693. 5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
  17694. 11832 .loc 1 5504 15
  17695. 11833 01aa FB68 ldr r3, [r7, #12]
  17696. 11834 01ac 1B68 ldr r3, [r3]
  17697. 11835 .loc 1 5504 31
  17698. 11836 01ae 5A68 ldr r2, [r3, #4]
  17699. 11837 .loc 1 5504 15
  17700. 11838 01b0 FB68 ldr r3, [r7, #12]
  17701. 11839 01b2 1B68 ldr r3, [r3]
  17702. 11840 .loc 1 5504 31
  17703. 11841 01b4 42F48042 orr r2, r2, #16384
  17704. 11842 01b8 5A60 str r2, [r3, #4]
  17705. 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17706. 11843 .loc 1 5496 8
  17707. 11844 01ba 19E0 b .L565
  17708. 11845 .L564:
  17709. 5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17710. 5506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17711. 5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17712. 5508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
  17713. 5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
  17714. 11846 .loc 1 5509 11
  17715. 11847 01bc F868 ldr r0, [r7, #12]
  17716. 11848 01be FFF7FEFF bl I2C_ITMasterSeqCplt
  17717. 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17718. 11849 .loc 1 5496 8
  17719. 11850 01c2 15E0 b .L565
  17720. 11851 .L562:
  17721. 5510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17722. 5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17723. 5512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17724. 5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17725. 5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17726. 5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
  17727. 5516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  17728. 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
  17729. 11852 .loc 1 5517 7
  17730. 11853 01c4 4021 movs r1, #64
  17731. 11854 01c6 F868 ldr r0, [r7, #12]
  17732. 11855 01c8 FFF7FEFF bl I2C_ITError
  17733. 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17734. 11856 .loc 1 5496 8
  17735. 11857 01cc 10E0 b .L565
  17736. 11858 .L561:
  17737. 5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17738. 5519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17739. 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
  17740. 11859 .loc 1 5520 13
  17741. 11860 01ce BB68 ldr r3, [r7, #8]
  17742. 11861 01d0 5B09 lsrs r3, r3, #5
  17743. 11862 01d2 03F00103 and r3, r3, #1
  17744. 11863 .loc 1 5520 11
  17745. 11864 01d6 002B cmp r3, #0
  17746. 11865 01d8 0BD0 beq .L550
  17747. 5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  17748. 11866 .loc 1 5521 13 discriminator 1
  17749. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 307
  17750. 11867 01da 7B68 ldr r3, [r7, #4]
  17751. 11868 01dc 5B09 lsrs r3, r3, #5
  17752. 11869 01de 03F00103 and r3, r3, #1
  17753. 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  17754. 11870 .loc 1 5520 63 discriminator 1
  17755. 11871 01e2 002B cmp r3, #0
  17756. 11872 01e4 05D0 beq .L550
  17757. 5522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17758. 5523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
  17759. 5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
  17760. 11873 .loc 1 5524 5
  17761. 11874 01e6 B968 ldr r1, [r7, #8]
  17762. 11875 01e8 F868 ldr r0, [r7, #12]
  17763. 11876 01ea FFF7FEFF bl I2C_ITMasterCplt
  17764. 11877 01ee 00E0 b .L550
  17765. 11878 .L565:
  17766. 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17767. 11879 .loc 1 5496 8
  17768. 11880 01f0 00BF nop
  17769. 11881 .L550:
  17770. 5525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17771. 5526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  17772. 5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17773. 5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  17774. 5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17775. 5530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17776. 5531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  17777. 5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  17778. 11882 .loc 1 5532 3
  17779. 11883 01f2 FB68 ldr r3, [r7, #12]
  17780. 11884 01f4 0022 movs r2, #0
  17781. 11885 01f6 83F84020 strb r2, [r3, #64]
  17782. 5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17783. 5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  17784. 11886 .loc 1 5534 10
  17785. 11887 01fa 0023 movs r3, #0
  17786. 11888 .L548:
  17787. 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17788. 11889 .loc 1 5535 1
  17789. 11890 01fc 1846 mov r0, r3
  17790. 11891 01fe 1837 adds r7, r7, #24
  17791. 11892 .LCFI278:
  17792. 11893 .cfi_def_cfa_offset 8
  17793. 11894 0200 BD46 mov sp, r7
  17794. 11895 .LCFI279:
  17795. 11896 .cfi_def_cfa_register 13
  17796. 11897 @ sp needed
  17797. 11898 0202 80BD pop {r7, pc}
  17798. 11899 .cfi_endproc
  17799. 11900 .LFE182:
  17800. 11902 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits
  17801. 11903 .align 1
  17802. 11904 .syntax unified
  17803. 11905 .thumb
  17804. 11906 .thumb_func
  17805. 11908 I2C_Mem_ISR_DMA:
  17806. 11909 .LFB183:
  17807. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 308
  17808. 5536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17809. 5537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  17810. 5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA.
  17811. 5539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  17812. 5540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  17813. 5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  17814. 5542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
  17815. 5543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  17816. 5544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  17817. 5545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  17818. 5546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
  17819. 5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17820. 11910 .loc 1 5547 1
  17821. 11911 .cfi_startproc
  17822. 11912 @ args = 0, pretend = 0, frame = 24
  17823. 11913 @ frame_needed = 1, uses_anonymous_args = 0
  17824. 11914 0000 80B5 push {r7, lr}
  17825. 11915 .LCFI280:
  17826. 11916 .cfi_def_cfa_offset 8
  17827. 11917 .cfi_offset 7, -8
  17828. 11918 .cfi_offset 14, -4
  17829. 11919 0002 88B0 sub sp, sp, #32
  17830. 11920 .LCFI281:
  17831. 11921 .cfi_def_cfa_offset 40
  17832. 11922 0004 02AF add r7, sp, #8
  17833. 11923 .LCFI282:
  17834. 11924 .cfi_def_cfa 7, 32
  17835. 11925 0006 F860 str r0, [r7, #12]
  17836. 11926 0008 B960 str r1, [r7, #8]
  17837. 11927 000a 7A60 str r2, [r7, #4]
  17838. 5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
  17839. 11928 .loc 1 5548 12
  17840. 11929 000c 944B ldr r3, .L588
  17841. 11930 000e 7B61 str r3, [r7, #20]
  17842. 5549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17843. 5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
  17844. 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  17845. 11931 .loc 1 5551 3
  17846. 11932 0010 FB68 ldr r3, [r7, #12]
  17847. 11933 0012 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  17848. 11934 0016 012B cmp r3, #1
  17849. 11935 0018 01D1 bne .L567
  17850. 11936 .loc 1 5551 3 is_stmt 0 discriminator 1
  17851. 11937 001a 0223 movs r3, #2
  17852. 11938 001c 39E1 b .L568
  17853. 11939 .L567:
  17854. 11940 .loc 1 5551 3 discriminator 2
  17855. 11941 001e FB68 ldr r3, [r7, #12]
  17856. 11942 0020 0122 movs r2, #1
  17857. 11943 0022 83F84020 strb r2, [r3, #64]
  17858. 5552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17859. 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
  17860. 11944 .loc 1 5553 8 is_stmt 1 discriminator 2
  17861. 11945 0026 BB68 ldr r3, [r7, #8]
  17862. 11946 0028 1B09 lsrs r3, r3, #4
  17863. 11947 002a 03F00103 and r3, r3, #1
  17864. 11948 .loc 1 5553 6 discriminator 2
  17865. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 309
  17866. 11949 002e 002B cmp r3, #0
  17867. 11950 0030 17D0 beq .L569
  17868. 5554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  17869. 11951 .loc 1 5554 8 discriminator 1
  17870. 11952 0032 7B68 ldr r3, [r7, #4]
  17871. 11953 0034 1B09 lsrs r3, r3, #4
  17872. 11954 0036 03F00103 and r3, r3, #1
  17873. 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  17874. 11955 .loc 1 5553 55 discriminator 1
  17875. 11956 003a 002B cmp r3, #0
  17876. 11957 003c 11D0 beq .L569
  17877. 5555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17878. 5556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  17879. 5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  17880. 11958 .loc 1 5557 5
  17881. 11959 003e FB68 ldr r3, [r7, #12]
  17882. 11960 0040 1B68 ldr r3, [r3]
  17883. 11961 0042 1022 movs r2, #16
  17884. 11962 0044 DA61 str r2, [r3, #28]
  17885. 5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17886. 5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
  17887. 5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  17888. 11963 .loc 1 5560 21
  17889. 11964 0046 FB68 ldr r3, [r7, #12]
  17890. 11965 0048 5B6C ldr r3, [r3, #68]
  17891. 11966 004a 43F00402 orr r2, r3, #4
  17892. 11967 004e FB68 ldr r3, [r7, #12]
  17893. 11968 0050 5A64 str r2, [r3, #68]
  17894. 5561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17895. 5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
  17896. 5563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
  17897. 5564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
  17898. 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
  17899. 11969 .loc 1 5565 5
  17900. 11970 0052 2021 movs r1, #32
  17901. 11971 0054 F868 ldr r0, [r7, #12]
  17902. 11972 0056 FFF7FEFF bl I2C_Enable_IRQ
  17903. 5566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17904. 5567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  17905. 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  17906. 11973 .loc 1 5568 5
  17907. 11974 005a F868 ldr r0, [r7, #12]
  17908. 11975 005c FFF7FEFF bl I2C_Flush_TXDR
  17909. 11976 0060 12E1 b .L570
  17910. 11977 .L569:
  17911. 5569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17912. 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \
  17913. 11978 .loc 1 5570 13
  17914. 11979 0062 BB68 ldr r3, [r7, #8]
  17915. 11980 0064 5B08 lsrs r3, r3, #1
  17916. 11981 0066 03F00103 and r3, r3, #1
  17917. 11982 .loc 1 5570 11
  17918. 11983 006a 002B cmp r3, #0
  17919. 11984 006c 0FD0 beq .L571
  17920. 5571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
  17921. 11985 .loc 1 5571 13 discriminator 1
  17922. 11986 006e 7B68 ldr r3, [r7, #4]
  17923. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 310
  17924. 11987 0070 5B08 lsrs r3, r3, #1
  17925. 11988 0072 03F00103 and r3, r3, #1
  17926. 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
  17927. 11989 .loc 1 5570 62 discriminator 1
  17928. 11990 0076 002B cmp r3, #0
  17929. 11991 0078 09D0 beq .L571
  17930. 5572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17931. 5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
  17932. 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
  17933. 11992 .loc 1 5574 9
  17934. 11993 007a FB68 ldr r3, [r7, #12]
  17935. 11994 007c 1B68 ldr r3, [r3]
  17936. 11995 .loc 1 5574 32
  17937. 11996 007e FA68 ldr r2, [r7, #12]
  17938. 11997 0080 126D ldr r2, [r2, #80]
  17939. 11998 .loc 1 5574 26
  17940. 11999 0082 9A62 str r2, [r3, #40]
  17941. 5575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17942. 5576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
  17943. 5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
  17944. 12000 .loc 1 5577 22
  17945. 12001 0084 FB68 ldr r3, [r7, #12]
  17946. 12002 0086 4FF0FF32 mov r2, #-1
  17947. 12003 008a 1A65 str r2, [r3, #80]
  17948. 12004 008c FCE0 b .L570
  17949. 12005 .L571:
  17950. 5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  17951. 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
  17952. 12006 .loc 1 5579 13
  17953. 12007 008e BB68 ldr r3, [r7, #8]
  17954. 12008 0090 DB09 lsrs r3, r3, #7
  17955. 12009 0092 03F00103 and r3, r3, #1
  17956. 12010 .loc 1 5579 11
  17957. 12011 0096 002B cmp r3, #0
  17958. 12012 0098 6ED0 beq .L572
  17959. 5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  17960. 12013 .loc 1 5580 13 discriminator 1
  17961. 12014 009a 7B68 ldr r3, [r7, #4]
  17962. 12015 009c 9B09 lsrs r3, r3, #6
  17963. 12016 009e 03F00103 and r3, r3, #1
  17964. 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  17965. 12017 .loc 1 5579 61 discriminator 1
  17966. 12018 00a2 002B cmp r3, #0
  17967. 12019 00a4 68D0 beq .L572
  17968. 5581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17969. 5582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
  17970. 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  17971. 12020 .loc 1 5583 5
  17972. 12021 00a6 0121 movs r1, #1
  17973. 12022 00a8 F868 ldr r0, [r7, #12]
  17974. 12023 00aa FFF7FEFF bl I2C_Disable_IRQ
  17975. 5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17976. 5585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error interrupt */
  17977. 5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
  17978. 12024 .loc 1 5586 5
  17979. 12025 00ae 1021 movs r1, #16
  17980. 12026 00b0 F868 ldr r0, [r7, #12]
  17981. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 311
  17982. 12027 00b2 FFF7FEFF bl I2C_Enable_IRQ
  17983. 5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  17984. 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
  17985. 12028 .loc 1 5588 13
  17986. 12029 00b6 FB68 ldr r3, [r7, #12]
  17987. 12030 00b8 5B8D ldrh r3, [r3, #42] @ movhi
  17988. 12031 00ba 9BB2 uxth r3, r3
  17989. 12032 .loc 1 5588 8
  17990. 12033 00bc 002B cmp r3, #0
  17991. 12034 00be 56D0 beq .L573
  17992. 5589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  17993. 5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
  17994. 5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  17995. 12035 .loc 1 5591 15
  17996. 12036 00c0 FB68 ldr r3, [r7, #12]
  17997. 12037 00c2 5B8D ldrh r3, [r3, #42] @ movhi
  17998. 12038 00c4 9BB2 uxth r3, r3
  17999. 12039 .loc 1 5591 10
  18000. 12040 00c6 FF2B cmp r3, #255
  18001. 12041 00c8 1ED9 bls .L574
  18002. 5592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18003. 5593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
  18004. 5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
  18005. 12042 .loc 1 5594 13
  18006. 12043 00ca FB68 ldr r3, [r7, #12]
  18007. 12044 00cc 1B68 ldr r3, [r3]
  18008. 12045 00ce 9B69 ldr r3, [r3, #24]
  18009. 12046 00d0 1B0C lsrs r3, r3, #16
  18010. 12047 00d2 DBB2 uxtb r3, r3
  18011. 12048 00d4 03F00103 and r3, r3, #1
  18012. 12049 00d8 DBB2 uxtb r3, r3
  18013. 12050 .loc 1 5594 12
  18014. 12051 00da 012B cmp r3, #1
  18015. 12052 00dc 03D1 bne .L575
  18016. 5595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18017. 5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  18018. 12053 .loc 1 5596 26
  18019. 12054 00de FB68 ldr r3, [r7, #12]
  18020. 12055 00e0 0122 movs r2, #1
  18021. 12056 00e2 1A85 strh r2, [r3, #40] @ movhi
  18022. 12057 00e4 02E0 b .L576
  18023. 12058 .L575:
  18024. 5597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18025. 5598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18026. 5599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18027. 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  18028. 12059 .loc 1 5600 26
  18029. 12060 00e6 FB68 ldr r3, [r7, #12]
  18030. 12061 00e8 FF22 movs r2, #255
  18031. 12062 00ea 1A85 strh r2, [r3, #40] @ movhi
  18032. 12063 .L576:
  18033. 5601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18034. 5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  18035. 12064 .loc 1 5602 48
  18036. 12065 00ec FB68 ldr r3, [r7, #12]
  18037. 12066 00ee DB6C ldr r3, [r3, #76]
  18038. 12067 .loc 1 5602 9
  18039. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 312
  18040. 12068 00f0 99B2 uxth r1, r3
  18041. 12069 .loc 1 5602 75
  18042. 12070 00f2 FB68 ldr r3, [r7, #12]
  18043. 12071 00f4 1B8D ldrh r3, [r3, #40]
  18044. 12072 .loc 1 5602 9
  18045. 12073 00f6 DAB2 uxtb r2, r3
  18046. 12074 00f8 0023 movs r3, #0
  18047. 12075 00fa 0093 str r3, [sp]
  18048. 12076 00fc 4FF08073 mov r3, #16777216
  18049. 12077 0100 F868 ldr r0, [r7, #12]
  18050. 12078 0102 FFF7FEFF bl I2C_TransferConfig
  18051. 12079 0106 11E0 b .L577
  18052. 12080 .L574:
  18053. 5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
  18054. 5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18055. 5605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18056. 5606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18057. 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  18058. 12081 .loc 1 5607 30
  18059. 12082 0108 FB68 ldr r3, [r7, #12]
  18060. 12083 010a 5B8D ldrh r3, [r3, #42] @ movhi
  18061. 12084 010c 9AB2 uxth r2, r3
  18062. 12085 .loc 1 5607 24
  18063. 12086 010e FB68 ldr r3, [r7, #12]
  18064. 12087 0110 1A85 strh r2, [r3, #40] @ movhi
  18065. 5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  18066. 12088 .loc 1 5608 48
  18067. 12089 0112 FB68 ldr r3, [r7, #12]
  18068. 12090 0114 DB6C ldr r3, [r3, #76]
  18069. 12091 .loc 1 5608 9
  18070. 12092 0116 99B2 uxth r1, r3
  18071. 12093 .loc 1 5608 75
  18072. 12094 0118 FB68 ldr r3, [r7, #12]
  18073. 12095 011a 1B8D ldrh r3, [r3, #40]
  18074. 12096 .loc 1 5608 9
  18075. 12097 011c DAB2 uxtb r2, r3
  18076. 12098 011e 0023 movs r3, #0
  18077. 12099 0120 0093 str r3, [sp]
  18078. 12100 0122 4FF00073 mov r3, #33554432
  18079. 12101 0126 F868 ldr r0, [r7, #12]
  18080. 12102 0128 FFF7FEFF bl I2C_TransferConfig
  18081. 12103 .L577:
  18082. 5609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
  18083. 5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18084. 5611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18085. 5612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  18086. 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  18087. 12104 .loc 1 5613 23
  18088. 12105 012c FB68 ldr r3, [r7, #12]
  18089. 12106 012e 5B8D ldrh r3, [r3, #42] @ movhi
  18090. 12107 0130 9AB2 uxth r2, r3
  18091. 12108 .loc 1 5613 30
  18092. 12109 0132 FB68 ldr r3, [r7, #12]
  18093. 12110 0134 1B8D ldrh r3, [r3, #40]
  18094. 12111 .loc 1 5613 23
  18095. 12112 0136 D31A subs r3, r2, r3
  18096. 12113 0138 9AB2 uxth r2, r3
  18097. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 313
  18098. 12114 013a FB68 ldr r3, [r7, #12]
  18099. 12115 013c 5A85 strh r2, [r3, #42] @ movhi
  18100. 5614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18101. 5615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  18102. 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  18103. 12116 .loc 1 5616 15
  18104. 12117 013e FB68 ldr r3, [r7, #12]
  18105. 12118 0140 93F84130 ldrb r3, [r3, #65]
  18106. 12119 0144 DBB2 uxtb r3, r3
  18107. 12120 .loc 1 5616 10
  18108. 12121 0146 222B cmp r3, #34
  18109. 12122 0148 08D1 bne .L578
  18110. 5617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18111. 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
  18112. 12123 .loc 1 5618 13
  18113. 12124 014a FB68 ldr r3, [r7, #12]
  18114. 12125 014c 1B68 ldr r3, [r3]
  18115. 12126 .loc 1 5618 29
  18116. 12127 014e 1A68 ldr r2, [r3]
  18117. 12128 .loc 1 5618 13
  18118. 12129 0150 FB68 ldr r3, [r7, #12]
  18119. 12130 0152 1B68 ldr r3, [r3]
  18120. 12131 .loc 1 5618 29
  18121. 12132 0154 42F40042 orr r2, r2, #32768
  18122. 12133 0158 1A60 str r2, [r3]
  18123. 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18124. 12134 .loc 1 5588 8
  18125. 12135 015a 95E0 b .L570
  18126. 12136 .L578:
  18127. 5619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18128. 5620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18129. 5621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18130. 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
  18131. 12137 .loc 1 5622 13
  18132. 12138 015c FB68 ldr r3, [r7, #12]
  18133. 12139 015e 1B68 ldr r3, [r3]
  18134. 12140 .loc 1 5622 29
  18135. 12141 0160 1A68 ldr r2, [r3]
  18136. 12142 .loc 1 5622 13
  18137. 12143 0162 FB68 ldr r3, [r7, #12]
  18138. 12144 0164 1B68 ldr r3, [r3]
  18139. 12145 .loc 1 5622 29
  18140. 12146 0166 42F48042 orr r2, r2, #16384
  18141. 12147 016a 1A60 str r2, [r3]
  18142. 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18143. 12148 .loc 1 5588 8
  18144. 12149 016c 8CE0 b .L570
  18145. 12150 .L573:
  18146. 5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18147. 5624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18148. 5625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18149. 5626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18150. 5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
  18151. 5628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  18152. 5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
  18153. 12151 .loc 1 5629 7
  18154. 12152 016e 4021 movs r1, #64
  18155. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 314
  18156. 12153 0170 F868 ldr r0, [r7, #12]
  18157. 12154 0172 FFF7FEFF bl I2C_ITError
  18158. 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18159. 12155 .loc 1 5588 8
  18160. 12156 0176 87E0 b .L570
  18161. 12157 .L572:
  18162. 5630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18163. 5631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18164. 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
  18165. 12158 .loc 1 5632 13
  18166. 12159 0178 BB68 ldr r3, [r7, #8]
  18167. 12160 017a 9B09 lsrs r3, r3, #6
  18168. 12161 017c 03F00103 and r3, r3, #1
  18169. 12162 .loc 1 5632 11
  18170. 12163 0180 002B cmp r3, #0
  18171. 12164 0182 71D0 beq .L580
  18172. 5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  18173. 12165 .loc 1 5633 13 discriminator 1
  18174. 12166 0184 7B68 ldr r3, [r7, #4]
  18175. 12167 0186 9B09 lsrs r3, r3, #6
  18176. 12168 0188 03F00103 and r3, r3, #1
  18177. 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
  18178. 12169 .loc 1 5632 60 discriminator 1
  18179. 12170 018c 002B cmp r3, #0
  18180. 12171 018e 6BD0 beq .L580
  18181. 5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18182. 5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
  18183. 5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  18184. 12172 .loc 1 5636 5
  18185. 12173 0190 0121 movs r1, #1
  18186. 12174 0192 F868 ldr r0, [r7, #12]
  18187. 12175 0194 FFF7FEFF bl I2C_Disable_IRQ
  18188. 5637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18189. 5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */
  18190. 5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
  18191. 12176 .loc 1 5639 5
  18192. 12177 0198 1021 movs r1, #16
  18193. 12178 019a F868 ldr r0, [r7, #12]
  18194. 12179 019c FFF7FEFF bl I2C_Enable_IRQ
  18195. 5640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18196. 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  18197. 12180 .loc 1 5641 13
  18198. 12181 01a0 FB68 ldr r3, [r7, #12]
  18199. 12182 01a2 93F84130 ldrb r3, [r3, #65]
  18200. 12183 01a6 DBB2 uxtb r3, r3
  18201. 12184 .loc 1 5641 8
  18202. 12185 01a8 222B cmp r3, #34
  18203. 12186 01aa 01D1 bne .L581
  18204. 5642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18205. 5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
  18206. 12187 .loc 1 5643 17
  18207. 12188 01ac 2D4B ldr r3, .L588+4
  18208. 12189 01ae 7B61 str r3, [r7, #20]
  18209. 12190 .L581:
  18210. 5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18211. 5645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18212. 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  18213. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 315
  18214. 12191 .loc 1 5646 13
  18215. 12192 01b0 FB68 ldr r3, [r7, #12]
  18216. 12193 01b2 5B8D ldrh r3, [r3, #42] @ movhi
  18217. 12194 01b4 9BB2 uxth r3, r3
  18218. 12195 .loc 1 5646 8
  18219. 12196 01b6 FF2B cmp r3, #255
  18220. 12197 01b8 1ED9 bls .L582
  18221. 5647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18222. 5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
  18223. 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
  18224. 12198 .loc 1 5649 11
  18225. 12199 01ba FB68 ldr r3, [r7, #12]
  18226. 12200 01bc 1B68 ldr r3, [r3]
  18227. 12201 01be 9B69 ldr r3, [r3, #24]
  18228. 12202 01c0 1B0C lsrs r3, r3, #16
  18229. 12203 01c2 DBB2 uxtb r3, r3
  18230. 12204 01c4 03F00103 and r3, r3, #1
  18231. 12205 01c8 DBB2 uxtb r3, r3
  18232. 12206 .loc 1 5649 10
  18233. 12207 01ca 012B cmp r3, #1
  18234. 12208 01cc 03D1 bne .L583
  18235. 5650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18236. 5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  18237. 12209 .loc 1 5651 24
  18238. 12210 01ce FB68 ldr r3, [r7, #12]
  18239. 12211 01d0 0122 movs r2, #1
  18240. 12212 01d2 1A85 strh r2, [r3, #40] @ movhi
  18241. 12213 01d4 02E0 b .L584
  18242. 12214 .L583:
  18243. 5652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18244. 5653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18245. 5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18246. 5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  18247. 12215 .loc 1 5655 24
  18248. 12216 01d6 FB68 ldr r3, [r7, #12]
  18249. 12217 01d8 FF22 movs r2, #255
  18250. 12218 01da 1A85 strh r2, [r3, #40] @ movhi
  18251. 12219 .L584:
  18252. 5656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18253. 5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18254. 5658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
  18255. 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  18256. 12220 .loc 1 5659 46
  18257. 12221 01dc FB68 ldr r3, [r7, #12]
  18258. 12222 01de DB6C ldr r3, [r3, #76]
  18259. 12223 .loc 1 5659 7
  18260. 12224 01e0 99B2 uxth r1, r3
  18261. 12225 .loc 1 5659 73
  18262. 12226 01e2 FB68 ldr r3, [r7, #12]
  18263. 12227 01e4 1B8D ldrh r3, [r3, #40]
  18264. 12228 .loc 1 5659 7
  18265. 12229 01e6 DAB2 uxtb r2, r3
  18266. 12230 01e8 7B69 ldr r3, [r7, #20]
  18267. 12231 01ea 0093 str r3, [sp]
  18268. 12232 01ec 4FF08073 mov r3, #16777216
  18269. 12233 01f0 F868 ldr r0, [r7, #12]
  18270. 12234 01f2 FFF7FEFF bl I2C_TransferConfig
  18271. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 316
  18272. 12235 01f6 11E0 b .L585
  18273. 12236 .L582:
  18274. 5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
  18275. 5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18276. 5662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18277. 5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18278. 5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  18279. 12237 .loc 1 5664 28
  18280. 12238 01f8 FB68 ldr r3, [r7, #12]
  18281. 12239 01fa 5B8D ldrh r3, [r3, #42] @ movhi
  18282. 12240 01fc 9AB2 uxth r2, r3
  18283. 12241 .loc 1 5664 22
  18284. 12242 01fe FB68 ldr r3, [r7, #12]
  18285. 12243 0200 1A85 strh r2, [r3, #40] @ movhi
  18286. 5665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18287. 5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
  18288. 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
  18289. 12244 .loc 1 5667 46
  18290. 12245 0202 FB68 ldr r3, [r7, #12]
  18291. 12246 0204 DB6C ldr r3, [r3, #76]
  18292. 12247 .loc 1 5667 7
  18293. 12248 0206 99B2 uxth r1, r3
  18294. 12249 .loc 1 5667 73
  18295. 12250 0208 FB68 ldr r3, [r7, #12]
  18296. 12251 020a 1B8D ldrh r3, [r3, #40]
  18297. 12252 .loc 1 5667 7
  18298. 12253 020c DAB2 uxtb r2, r3
  18299. 12254 020e 7B69 ldr r3, [r7, #20]
  18300. 12255 0210 0093 str r3, [sp]
  18301. 12256 0212 4FF00073 mov r3, #33554432
  18302. 12257 0216 F868 ldr r0, [r7, #12]
  18303. 12258 0218 FFF7FEFF bl I2C_TransferConfig
  18304. 12259 .L585:
  18305. 5668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
  18306. 5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18307. 5670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18308. 5671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
  18309. 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
  18310. 12260 .loc 1 5672 21
  18311. 12261 021c FB68 ldr r3, [r7, #12]
  18312. 12262 021e 5B8D ldrh r3, [r3, #42] @ movhi
  18313. 12263 0220 9AB2 uxth r2, r3
  18314. 12264 .loc 1 5672 28
  18315. 12265 0222 FB68 ldr r3, [r7, #12]
  18316. 12266 0224 1B8D ldrh r3, [r3, #40]
  18317. 12267 .loc 1 5672 21
  18318. 12268 0226 D31A subs r3, r2, r3
  18319. 12269 0228 9AB2 uxth r2, r3
  18320. 12270 022a FB68 ldr r3, [r7, #12]
  18321. 12271 022c 5A85 strh r2, [r3, #42] @ movhi
  18322. 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18323. 5674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
  18324. 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  18325. 12272 .loc 1 5675 13
  18326. 12273 022e FB68 ldr r3, [r7, #12]
  18327. 12274 0230 93F84130 ldrb r3, [r3, #65]
  18328. 12275 0234 DBB2 uxtb r3, r3
  18329. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 317
  18330. 12276 .loc 1 5675 8
  18331. 12277 0236 222B cmp r3, #34
  18332. 12278 0238 08D1 bne .L586
  18333. 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18334. 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
  18335. 12279 .loc 1 5677 11
  18336. 12280 023a FB68 ldr r3, [r7, #12]
  18337. 12281 023c 1B68 ldr r3, [r3]
  18338. 12282 .loc 1 5677 27
  18339. 12283 023e 1A68 ldr r2, [r3]
  18340. 12284 .loc 1 5677 11
  18341. 12285 0240 FB68 ldr r3, [r7, #12]
  18342. 12286 0242 1B68 ldr r3, [r3]
  18343. 12287 .loc 1 5677 27
  18344. 12288 0244 42F40042 orr r2, r2, #32768
  18345. 12289 0248 1A60 str r2, [r3]
  18346. 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18347. 12290 .loc 1 5675 8
  18348. 12291 024a 1DE0 b .L570
  18349. 12292 .L586:
  18350. 5678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18351. 5679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18352. 5680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18353. 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
  18354. 12293 .loc 1 5681 11
  18355. 12294 024c FB68 ldr r3, [r7, #12]
  18356. 12295 024e 1B68 ldr r3, [r3]
  18357. 12296 .loc 1 5681 27
  18358. 12297 0250 1A68 ldr r2, [r3]
  18359. 12298 .loc 1 5681 11
  18360. 12299 0252 FB68 ldr r3, [r7, #12]
  18361. 12300 0254 1B68 ldr r3, [r3]
  18362. 12301 .loc 1 5681 27
  18363. 12302 0256 42F48042 orr r2, r2, #16384
  18364. 12303 025a 1A60 str r2, [r3]
  18365. 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18366. 12304 .loc 1 5675 8
  18367. 12305 025c 14E0 b .L570
  18368. 12306 .L589:
  18369. 12307 025e 00BF .align 2
  18370. 12308 .L588:
  18371. 12309 0260 00200080 .word -2147475456
  18372. 12310 0264 00240080 .word -2147474432
  18373. 12311 .L580:
  18374. 5682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18375. 5683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18376. 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
  18377. 12312 .loc 1 5684 13
  18378. 12313 0268 BB68 ldr r3, [r7, #8]
  18379. 12314 026a 5B09 lsrs r3, r3, #5
  18380. 12315 026c 03F00103 and r3, r3, #1
  18381. 12316 .loc 1 5684 11
  18382. 12317 0270 002B cmp r3, #0
  18383. 12318 0272 09D0 beq .L570
  18384. 5685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  18385. 12319 .loc 1 5685 13 discriminator 1
  18386. 12320 0274 7B68 ldr r3, [r7, #4]
  18387. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 318
  18388. 12321 0276 5B09 lsrs r3, r3, #5
  18389. 12322 0278 03F00103 and r3, r3, #1
  18390. 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  18391. 12323 .loc 1 5684 63 discriminator 1
  18392. 12324 027c 002B cmp r3, #0
  18393. 12325 027e 03D0 beq .L570
  18394. 5686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18395. 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
  18396. 5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
  18397. 12326 .loc 1 5688 5
  18398. 12327 0280 B968 ldr r1, [r7, #8]
  18399. 12328 0282 F868 ldr r0, [r7, #12]
  18400. 12329 0284 FFF7FEFF bl I2C_ITMasterCplt
  18401. 12330 .L570:
  18402. 5689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18403. 5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18404. 5691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18405. 5692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  18406. 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18407. 5694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18408. 5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  18409. 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  18410. 12331 .loc 1 5696 3
  18411. 12332 0288 FB68 ldr r3, [r7, #12]
  18412. 12333 028a 0022 movs r2, #0
  18413. 12334 028c 83F84020 strb r2, [r3, #64]
  18414. 5697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18415. 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  18416. 12335 .loc 1 5698 10
  18417. 12336 0290 0023 movs r3, #0
  18418. 12337 .L568:
  18419. 5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18420. 12338 .loc 1 5699 1
  18421. 12339 0292 1846 mov r0, r3
  18422. 12340 0294 1837 adds r7, r7, #24
  18423. 12341 .LCFI283:
  18424. 12342 .cfi_def_cfa_offset 8
  18425. 12343 0296 BD46 mov sp, r7
  18426. 12344 .LCFI284:
  18427. 12345 .cfi_def_cfa_register 13
  18428. 12346 @ sp needed
  18429. 12347 0298 80BD pop {r7, pc}
  18430. 12348 .cfi_endproc
  18431. 12349 .LFE183:
  18432. 12351 029a 00BF .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
  18433. 12352 .align 1
  18434. 12353 .syntax unified
  18435. 12354 .thumb
  18436. 12355 .thumb_func
  18437. 12357 I2C_Slave_ISR_DMA:
  18438. 12358 .LFB184:
  18439. 5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18440. 5701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  18441. 5702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
  18442. 5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  18443. 5704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  18444. 5705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  18445. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 319
  18446. 5706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
  18447. 5707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  18448. 5708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  18449. 5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
  18450. 5710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
  18451. 5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18452. 12359 .loc 1 5711 1
  18453. 12360 .cfi_startproc
  18454. 12361 @ args = 0, pretend = 0, frame = 32
  18455. 12362 @ frame_needed = 1, uses_anonymous_args = 0
  18456. 12363 0000 80B5 push {r7, lr}
  18457. 12364 .LCFI285:
  18458. 12365 .cfi_def_cfa_offset 8
  18459. 12366 .cfi_offset 7, -8
  18460. 12367 .cfi_offset 14, -4
  18461. 12368 0002 88B0 sub sp, sp, #32
  18462. 12369 .LCFI286:
  18463. 12370 .cfi_def_cfa_offset 40
  18464. 12371 0004 00AF add r7, sp, #0
  18465. 12372 .LCFI287:
  18466. 12373 .cfi_def_cfa_register 7
  18467. 12374 0006 F860 str r0, [r7, #12]
  18468. 12375 0008 B960 str r1, [r7, #8]
  18469. 12376 000a 7A60 str r2, [r7, #4]
  18470. 5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
  18471. 12377 .loc 1 5712 12
  18472. 12378 000c FB68 ldr r3, [r7, #12]
  18473. 12379 000e DB6A ldr r3, [r3, #44]
  18474. 12380 0010 BB61 str r3, [r7, #24]
  18475. 5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
  18476. 12381 .loc 1 5713 12
  18477. 12382 0012 0023 movs r3, #0
  18478. 12383 0014 FB61 str r3, [r7, #28]
  18479. 5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
  18480. 5715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18481. 5716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
  18482. 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
  18483. 12384 .loc 1 5717 3
  18484. 12385 0016 FB68 ldr r3, [r7, #12]
  18485. 12386 0018 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
  18486. 12387 001c 012B cmp r3, #1
  18487. 12388 001e 01D1 bne .L591
  18488. 12389 .loc 1 5717 3 is_stmt 0 discriminator 1
  18489. 12390 0020 0223 movs r3, #2
  18490. 12391 0022 CAE0 b .L592
  18491. 12392 .L591:
  18492. 12393 .loc 1 5717 3 discriminator 2
  18493. 12394 0024 FB68 ldr r3, [r7, #12]
  18494. 12395 0026 0122 movs r2, #1
  18495. 12396 0028 83F84020 strb r2, [r3, #64]
  18496. 5718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18497. 5719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
  18498. 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
  18499. 12397 .loc 1 5720 8 is_stmt 1 discriminator 2
  18500. 12398 002c BB68 ldr r3, [r7, #8]
  18501. 12399 002e 5B09 lsrs r3, r3, #5
  18502. 12400 0030 03F00103 and r3, r3, #1
  18503. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 320
  18504. 12401 .loc 1 5720 6 discriminator 2
  18505. 12402 0034 002B cmp r3, #0
  18506. 12403 0036 0AD0 beq .L593
  18507. 5721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  18508. 12404 .loc 1 5721 8 discriminator 1
  18509. 12405 0038 7B68 ldr r3, [r7, #4]
  18510. 12406 003a 5B09 lsrs r3, r3, #5
  18511. 12407 003c 03F00103 and r3, r3, #1
  18512. 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
  18513. 12408 .loc 1 5720 58 discriminator 1
  18514. 12409 0040 002B cmp r3, #0
  18515. 12410 0042 04D0 beq .L593
  18516. 5722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18517. 5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
  18518. 5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
  18519. 12411 .loc 1 5724 5
  18520. 12412 0044 B968 ldr r1, [r7, #8]
  18521. 12413 0046 F868 ldr r0, [r7, #12]
  18522. 12414 0048 FFF7FEFF bl I2C_ITSlaveCplt
  18523. 12415 004c B0E0 b .L594
  18524. 12416 .L593:
  18525. 5725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18526. 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
  18527. 12417 .loc 1 5726 13
  18528. 12418 004e BB68 ldr r3, [r7, #8]
  18529. 12419 0050 1B09 lsrs r3, r3, #4
  18530. 12420 0052 03F00103 and r3, r3, #1
  18531. 12421 .loc 1 5726 11
  18532. 12422 0056 002B cmp r3, #0
  18533. 12423 0058 00F09A80 beq .L595
  18534. 5727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  18535. 12424 .loc 1 5727 13 discriminator 1
  18536. 12425 005c 7B68 ldr r3, [r7, #4]
  18537. 12426 005e 1B09 lsrs r3, r3, #4
  18538. 12427 0060 03F00103 and r3, r3, #1
  18539. 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
  18540. 12428 .loc 1 5726 60 discriminator 1
  18541. 12429 0064 002B cmp r3, #0
  18542. 12430 0066 00F09380 beq .L595
  18543. 5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18544. 5729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
  18545. 5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
  18546. 5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
  18547. 5732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
  18548. 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
  18549. 12431 .loc 1 5733 10
  18550. 12432 006a 7B68 ldr r3, [r7, #4]
  18551. 12433 006c 9B0B lsrs r3, r3, #14
  18552. 12434 006e 03F00103 and r3, r3, #1
  18553. 12435 .loc 1 5733 8
  18554. 12436 0072 002B cmp r3, #0
  18555. 12437 0074 05D1 bne .L596
  18556. 5734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
  18557. 12438 .loc 1 5734 10 discriminator 1
  18558. 12439 0076 7B68 ldr r3, [r7, #4]
  18559. 12440 0078 DB0B lsrs r3, r3, #15
  18560. 12441 007a 03F00103 and r3, r3, #1
  18561. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 321
  18562. 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
  18563. 12442 .loc 1 5733 68 discriminator 1
  18564. 12443 007e 002B cmp r3, #0
  18565. 12444 0080 7FD0 beq .L597
  18566. 12445 .L596:
  18567. 5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18568. 5736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
  18569. 5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  18570. 12446 .loc 1 5737 15
  18571. 12447 0082 FB68 ldr r3, [r7, #12]
  18572. 12448 0084 DB6B ldr r3, [r3, #60]
  18573. 12449 .loc 1 5737 10
  18574. 12450 0086 002B cmp r3, #0
  18575. 12451 0088 0DD0 beq .L598
  18576. 5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18577. 5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
  18578. 12452 .loc 1 5739 13
  18579. 12453 008a 7B68 ldr r3, [r7, #4]
  18580. 12454 008c DB0B lsrs r3, r3, #15
  18581. 12455 008e 03F00103 and r3, r3, #1
  18582. 12456 .loc 1 5739 12
  18583. 12457 0092 002B cmp r3, #0
  18584. 12458 0094 07D0 beq .L598
  18585. 5740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18586. 5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
  18587. 12459 .loc 1 5741 15
  18588. 12460 0096 FB68 ldr r3, [r7, #12]
  18589. 12461 0098 DB6B ldr r3, [r3, #60]
  18590. 12462 009a 1B68 ldr r3, [r3]
  18591. 12463 009c 5B68 ldr r3, [r3, #4]
  18592. 12464 .loc 1 5741 14
  18593. 12465 009e 002B cmp r3, #0
  18594. 12466 00a0 01D1 bne .L598
  18595. 5742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18596. 5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
  18597. 12467 .loc 1 5743 26
  18598. 12468 00a2 0123 movs r3, #1
  18599. 12469 00a4 FB61 str r3, [r7, #28]
  18600. 12470 .L598:
  18601. 5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18602. 5745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18603. 5746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18604. 5747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18605. 5748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
  18606. 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  18607. 12471 .loc 1 5749 15
  18608. 12472 00a6 FB68 ldr r3, [r7, #12]
  18609. 12473 00a8 9B6B ldr r3, [r3, #56]
  18610. 12474 .loc 1 5749 10
  18611. 12475 00aa 002B cmp r3, #0
  18612. 12476 00ac 0DD0 beq .L599
  18613. 5750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18614. 5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
  18615. 12477 .loc 1 5751 13
  18616. 12478 00ae 7B68 ldr r3, [r7, #4]
  18617. 12479 00b0 9B0B lsrs r3, r3, #14
  18618. 12480 00b2 03F00103 and r3, r3, #1
  18619. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 322
  18620. 12481 .loc 1 5751 12
  18621. 12482 00b6 002B cmp r3, #0
  18622. 12483 00b8 07D0 beq .L599
  18623. 5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18624. 5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
  18625. 12484 .loc 1 5753 15
  18626. 12485 00ba FB68 ldr r3, [r7, #12]
  18627. 12486 00bc 9B6B ldr r3, [r3, #56]
  18628. 12487 00be 1B68 ldr r3, [r3]
  18629. 12488 00c0 5B68 ldr r3, [r3, #4]
  18630. 12489 .loc 1 5753 14
  18631. 12490 00c2 002B cmp r3, #0
  18632. 12491 00c4 01D1 bne .L599
  18633. 5754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18634. 5755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
  18635. 12492 .loc 1 5755 26
  18636. 12493 00c6 0123 movs r3, #1
  18637. 12494 00c8 FB61 str r3, [r7, #28]
  18638. 12495 .L599:
  18639. 5756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18640. 5757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18641. 5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18642. 5759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18643. 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (treatdmanack == 1U)
  18644. 12496 .loc 1 5760 10
  18645. 12497 00ca FB69 ldr r3, [r7, #28]
  18646. 12498 00cc 012B cmp r3, #1
  18647. 12499 00ce 28D1 bne .L600
  18648. 5761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18649. 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
  18650. 12500 .loc 1 5762 18
  18651. 12501 00d0 FB68 ldr r3, [r7, #12]
  18652. 12502 00d2 93F84130 ldrb r3, [r3, #65]
  18653. 12503 00d6 DBB2 uxtb r3, r3
  18654. 12504 .loc 1 5762 12
  18655. 12505 00d8 282B cmp r3, #40
  18656. 12506 00da 08D1 bne .L601
  18657. 12507 .loc 1 5762 51 discriminator 1
  18658. 12508 00dc BB69 ldr r3, [r7, #24]
  18659. 12509 00de B3F1007F cmp r3, #33554432
  18660. 12510 00e2 04D1 bne .L601
  18661. 5763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
  18662. 5764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
  18663. 5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18664. 5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
  18665. 5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
  18666. 12511 .loc 1 5767 11
  18667. 12512 00e4 B968 ldr r1, [r7, #8]
  18668. 12513 00e6 F868 ldr r0, [r7, #12]
  18669. 12514 00e8 FFF7FEFF bl I2C_ITListenCplt
  18670. 12515 00ec 48E0 b .L604
  18671. 12516 .L601:
  18672. 5768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18673. 5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
  18674. 12517 .loc 1 5769 23
  18675. 12518 00ee FB68 ldr r3, [r7, #12]
  18676. 12519 00f0 93F84130 ldrb r3, [r3, #65]
  18677. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 323
  18678. 12520 00f4 DBB2 uxtb r3, r3
  18679. 12521 .loc 1 5769 17
  18680. 12522 00f6 292B cmp r3, #41
  18681. 12523 00f8 0ED1 bne .L603
  18682. 12524 .loc 1 5769 64 discriminator 1
  18683. 12525 00fa BB69 ldr r3, [r7, #24]
  18684. 12526 00fc 13F5803F cmn r3, #65536
  18685. 12527 0100 0AD0 beq .L603
  18686. 5770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18687. 5771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  18688. 5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  18689. 12528 .loc 1 5772 11
  18690. 12529 0102 FB68 ldr r3, [r7, #12]
  18691. 12530 0104 1B68 ldr r3, [r3]
  18692. 12531 0106 1022 movs r2, #16
  18693. 12532 0108 DA61 str r2, [r3, #28]
  18694. 5773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18695. 5774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  18696. 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  18697. 12533 .loc 1 5775 11
  18698. 12534 010a F868 ldr r0, [r7, #12]
  18699. 12535 010c FFF7FEFF bl I2C_Flush_TXDR
  18700. 5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18701. 5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
  18702. 5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
  18703. 5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  18704. 12536 .loc 1 5779 11
  18705. 12537 0110 F868 ldr r0, [r7, #12]
  18706. 12538 0112 FFF7FEFF bl I2C_ITSlaveSeqCplt
  18707. 12539 0116 33E0 b .L604
  18708. 12540 .L603:
  18709. 5780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18710. 5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18711. 5782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18712. 5783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  18713. 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  18714. 12541 .loc 1 5784 11
  18715. 12542 0118 FB68 ldr r3, [r7, #12]
  18716. 12543 011a 1B68 ldr r3, [r3]
  18717. 12544 011c 1022 movs r2, #16
  18718. 12545 011e DA61 str r2, [r3, #28]
  18719. 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18720. 12546 .loc 1 5760 10
  18721. 12547 0120 34E0 b .L611
  18722. 12548 .L600:
  18723. 5785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18724. 5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18725. 5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18726. 5788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18727. 5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
  18728. 5790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  18729. 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  18730. 12549 .loc 1 5791 9
  18731. 12550 0122 FB68 ldr r3, [r7, #12]
  18732. 12551 0124 1B68 ldr r3, [r3]
  18733. 12552 0126 1022 movs r2, #16
  18734. 12553 0128 DA61 str r2, [r3, #28]
  18735. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 324
  18736. 5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18737. 5793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
  18738. 5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  18739. 12554 .loc 1 5794 25
  18740. 12555 012a FB68 ldr r3, [r7, #12]
  18741. 12556 012c 5B6C ldr r3, [r3, #68]
  18742. 12557 012e 43F00402 orr r2, r3, #4
  18743. 12558 0132 FB68 ldr r3, [r7, #12]
  18744. 12559 0134 5A64 str r2, [r3, #68]
  18745. 5795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18746. 5796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
  18747. 5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpstate = hi2c->State;
  18748. 12560 .loc 1 5797 18
  18749. 12561 0136 FB68 ldr r3, [r7, #12]
  18750. 12562 0138 93F84130 ldrb r3, [r3, #65]
  18751. 12563 013c FB75 strb r3, [r7, #23]
  18752. 5798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18753. 5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
  18754. 12564 .loc 1 5799 12
  18755. 12565 013e BB69 ldr r3, [r7, #24]
  18756. 12566 0140 002B cmp r3, #0
  18757. 12567 0142 03D0 beq .L605
  18758. 12568 .loc 1 5799 45 discriminator 1
  18759. 12569 0144 BB69 ldr r3, [r7, #24]
  18760. 12570 0146 B3F1807F cmp r3, #16777216
  18761. 12571 014a 1FD1 bne .L611
  18762. 12572 .L605:
  18763. 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18764. 5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
  18765. 12573 .loc 1 5801 14
  18766. 12574 014c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  18767. 12575 014e 212B cmp r3, #33
  18768. 12576 0150 02D0 beq .L606
  18769. 12577 .loc 1 5801 51 discriminator 1
  18770. 12578 0152 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  18771. 12579 0154 292B cmp r3, #41
  18772. 12580 0156 03D1 bne .L607
  18773. 12581 .L606:
  18774. 5802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18775. 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
  18776. 12582 .loc 1 5803 33
  18777. 12583 0158 FB68 ldr r3, [r7, #12]
  18778. 12584 015a 2122 movs r2, #33
  18779. 12585 015c 1A63 str r2, [r3, #48]
  18780. 12586 015e 08E0 b .L608
  18781. 12587 .L607:
  18782. 5804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18783. 5805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN
  18784. 12588 .loc 1 5805 19
  18785. 12589 0160 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  18786. 12590 0162 222B cmp r3, #34
  18787. 12591 0164 02D0 beq .L609
  18788. 12592 .loc 1 5805 56 discriminator 1
  18789. 12593 0166 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  18790. 12594 0168 2A2B cmp r3, #42
  18791. 12595 016a 02D1 bne .L608
  18792. 12596 .L609:
  18793. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 325
  18794. 5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18795. 5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
  18796. 12597 .loc 1 5807 33
  18797. 12598 016c FB68 ldr r3, [r7, #12]
  18798. 12599 016e 2222 movs r2, #34
  18799. 12600 0170 1A63 str r2, [r3, #48]
  18800. 12601 .L608:
  18801. 5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18802. 5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18803. 5810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18804. 5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
  18805. 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18806. 5813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18807. 5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  18808. 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
  18809. 12602 .loc 1 5815 11
  18810. 12603 0172 FB68 ldr r3, [r7, #12]
  18811. 12604 0174 5B6C ldr r3, [r3, #68]
  18812. 12605 0176 1946 mov r1, r3
  18813. 12606 0178 F868 ldr r0, [r7, #12]
  18814. 12607 017a FFF7FEFF bl I2C_ITError
  18815. 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18816. 12608 .loc 1 5760 10
  18817. 12609 017e 05E0 b .L611
  18818. 12610 .L604:
  18819. 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18820. 12611 .loc 1 5760 10 is_stmt 0 discriminator 1
  18821. 12612 0180 04E0 b .L611
  18822. 12613 .L597:
  18823. 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18824. 5817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18825. 5818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18826. 5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18827. 5820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18828. 5821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
  18829. 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  18830. 12614 .loc 1 5822 7 is_stmt 1
  18831. 12615 0182 FB68 ldr r3, [r7, #12]
  18832. 12616 0184 1B68 ldr r3, [r3]
  18833. 12617 0186 1022 movs r2, #16
  18834. 12618 0188 DA61 str r2, [r3, #28]
  18835. 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
  18836. 12619 .loc 1 5733 8
  18837. 12620 018a 11E0 b .L594
  18838. 12621 .L611:
  18839. 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18840. 12622 .loc 1 5760 10
  18841. 12623 018c 00BF nop
  18842. 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
  18843. 12624 .loc 1 5733 8
  18844. 12625 018e 0FE0 b .L594
  18845. 12626 .L595:
  18846. 5823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18847. 5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18848. 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \
  18849. 12627 .loc 1 5825 13
  18850. 12628 0190 BB68 ldr r3, [r7, #8]
  18851. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 326
  18852. 12629 0192 DB08 lsrs r3, r3, #3
  18853. 12630 0194 03F00103 and r3, r3, #1
  18854. 12631 .loc 1 5825 11
  18855. 12632 0198 002B cmp r3, #0
  18856. 12633 019a 09D0 beq .L594
  18857. 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
  18858. 12634 .loc 1 5826 13 discriminator 1
  18859. 12635 019c 7B68 ldr r3, [r7, #4]
  18860. 12636 019e DB08 lsrs r3, r3, #3
  18861. 12637 01a0 03F00103 and r3, r3, #1
  18862. 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
  18863. 12638 .loc 1 5825 62 discriminator 1
  18864. 12639 01a4 002B cmp r3, #0
  18865. 12640 01a6 03D0 beq .L594
  18866. 5827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18867. 5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
  18868. 12641 .loc 1 5828 5
  18869. 12642 01a8 B968 ldr r1, [r7, #8]
  18870. 12643 01aa F868 ldr r0, [r7, #12]
  18871. 12644 01ac FFF7FEFF bl I2C_ITAddrCplt
  18872. 12645 .L594:
  18873. 5829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18874. 5830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  18875. 5831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18876. 5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  18877. 5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18878. 5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18879. 5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  18880. 5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  18881. 12646 .loc 1 5836 3
  18882. 12647 01b0 FB68 ldr r3, [r7, #12]
  18883. 12648 01b2 0022 movs r2, #0
  18884. 12649 01b4 83F84020 strb r2, [r3, #64]
  18885. 5837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18886. 5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  18887. 12650 .loc 1 5838 10
  18888. 12651 01b8 0023 movs r3, #0
  18889. 12652 .L592:
  18890. 5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18891. 12653 .loc 1 5839 1
  18892. 12654 01ba 1846 mov r0, r3
  18893. 12655 01bc 2037 adds r7, r7, #32
  18894. 12656 .LCFI288:
  18895. 12657 .cfi_def_cfa_offset 8
  18896. 12658 01be BD46 mov sp, r7
  18897. 12659 .LCFI289:
  18898. 12660 .cfi_def_cfa_register 13
  18899. 12661 @ sp needed
  18900. 12662 01c0 80BD pop {r7, pc}
  18901. 12663 .cfi_endproc
  18902. 12664 .LFE184:
  18903. 12666 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
  18904. 12667 .align 1
  18905. 12668 .syntax unified
  18906. 12669 .thumb
  18907. 12670 .thumb_func
  18908. 12672 I2C_RequestMemoryWrite:
  18909. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 327
  18910. 12673 .LFB185:
  18911. 5840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18912. 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  18913. 5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
  18914. 5843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  18915. 5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  18916. 5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  18917. 5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  18918. 5847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  18919. 5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  18920. 5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  18921. 5850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
  18922. 5851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  18923. 5852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  18924. 5853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
  18925. 5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
  18926. 5855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
  18927. 5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18928. 12674 .loc 1 5856 1
  18929. 12675 .cfi_startproc
  18930. 12676 @ args = 8, pretend = 0, frame = 16
  18931. 12677 @ frame_needed = 1, uses_anonymous_args = 0
  18932. 12678 0000 80B5 push {r7, lr}
  18933. 12679 .LCFI290:
  18934. 12680 .cfi_def_cfa_offset 8
  18935. 12681 .cfi_offset 7, -8
  18936. 12682 .cfi_offset 14, -4
  18937. 12683 0002 86B0 sub sp, sp, #24
  18938. 12684 .LCFI291:
  18939. 12685 .cfi_def_cfa_offset 32
  18940. 12686 0004 02AF add r7, sp, #8
  18941. 12687 .LCFI292:
  18942. 12688 .cfi_def_cfa 7, 24
  18943. 12689 0006 F860 str r0, [r7, #12]
  18944. 12690 0008 0846 mov r0, r1
  18945. 12691 000a 1146 mov r1, r2
  18946. 12692 000c 1A46 mov r2, r3
  18947. 12693 000e 0346 mov r3, r0 @ movhi
  18948. 12694 0010 7B81 strh r3, [r7, #10] @ movhi
  18949. 12695 0012 0B46 mov r3, r1 @ movhi
  18950. 12696 0014 3B81 strh r3, [r7, #8] @ movhi
  18951. 12697 0016 1346 mov r3, r2 @ movhi
  18952. 12698 0018 FB80 strh r3, [r7, #6] @ movhi
  18953. 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
  18954. 12699 .loc 1 5857 3
  18955. 12700 001a FB88 ldrh r3, [r7, #6] @ movhi
  18956. 12701 001c DAB2 uxtb r2, r3
  18957. 12702 001e 7989 ldrh r1, [r7, #10]
  18958. 12703 0020 204B ldr r3, .L619
  18959. 12704 0022 0093 str r3, [sp]
  18960. 12705 0024 4FF08073 mov r3, #16777216
  18961. 12706 0028 F868 ldr r0, [r7, #12]
  18962. 12707 002a FFF7FEFF bl I2C_TransferConfig
  18963. 5858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18964. 5859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
  18965. 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
  18966. 12708 .loc 1 5860 7
  18967. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 328
  18968. 12709 002e FA69 ldr r2, [r7, #28]
  18969. 12710 0030 B969 ldr r1, [r7, #24]
  18970. 12711 0032 F868 ldr r0, [r7, #12]
  18971. 12712 0034 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
  18972. 12713 0038 0346 mov r3, r0
  18973. 12714 .loc 1 5860 6
  18974. 12715 003a 002B cmp r3, #0
  18975. 12716 003c 01D0 beq .L613
  18976. 5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18977. 5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  18978. 12717 .loc 1 5862 12
  18979. 12718 003e 0123 movs r3, #1
  18980. 12719 0040 2CE0 b .L614
  18981. 12720 .L613:
  18982. 5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  18983. 5864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  18984. 5865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
  18985. 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
  18986. 12721 .loc 1 5866 6
  18987. 12722 0042 FB88 ldrh r3, [r7, #6]
  18988. 12723 0044 012B cmp r3, #1
  18989. 12724 0046 05D1 bne .L615
  18990. 5867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  18991. 5868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
  18992. 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  18993. 12725 .loc 1 5869 28
  18994. 12726 0048 3B89 ldrh r3, [r7, #8] @ movhi
  18995. 12727 004a DAB2 uxtb r2, r3
  18996. 12728 .loc 1 5869 9
  18997. 12729 004c FB68 ldr r3, [r7, #12]
  18998. 12730 004e 1B68 ldr r3, [r3]
  18999. 12731 .loc 1 5869 26
  19000. 12732 0050 9A62 str r2, [r3, #40]
  19001. 12733 0052 15E0 b .L616
  19002. 12734 .L615:
  19003. 5870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19004. 5871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
  19005. 5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19006. 5873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19007. 5874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
  19008. 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
  19009. 12735 .loc 1 5875 28
  19010. 12736 0054 3B89 ldrh r3, [r7, #8]
  19011. 12737 0056 1B0A lsrs r3, r3, #8
  19012. 12738 0058 9BB2 uxth r3, r3
  19013. 12739 005a DAB2 uxtb r2, r3
  19014. 12740 .loc 1 5875 9
  19015. 12741 005c FB68 ldr r3, [r7, #12]
  19016. 12742 005e 1B68 ldr r3, [r3]
  19017. 12743 .loc 1 5875 26
  19018. 12744 0060 9A62 str r2, [r3, #40]
  19019. 5876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19020. 5877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
  19021. 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
  19022. 12745 .loc 1 5878 9
  19023. 12746 0062 FA69 ldr r2, [r7, #28]
  19024. 12747 0064 B969 ldr r1, [r7, #24]
  19025. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 329
  19026. 12748 0066 F868 ldr r0, [r7, #12]
  19027. 12749 0068 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
  19028. 12750 006c 0346 mov r3, r0
  19029. 12751 .loc 1 5878 8
  19030. 12752 006e 002B cmp r3, #0
  19031. 12753 0070 01D0 beq .L617
  19032. 5879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19033. 5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  19034. 12754 .loc 1 5880 14
  19035. 12755 0072 0123 movs r3, #1
  19036. 12756 0074 12E0 b .L614
  19037. 12757 .L617:
  19038. 5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19039. 5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19040. 5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
  19041. 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  19042. 12758 .loc 1 5884 28
  19043. 12759 0076 3B89 ldrh r3, [r7, #8] @ movhi
  19044. 12760 0078 DAB2 uxtb r2, r3
  19045. 12761 .loc 1 5884 9
  19046. 12762 007a FB68 ldr r3, [r7, #12]
  19047. 12763 007c 1B68 ldr r3, [r3]
  19048. 12764 .loc 1 5884 26
  19049. 12765 007e 9A62 str r2, [r3, #40]
  19050. 12766 .L616:
  19051. 5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19052. 5886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19053. 5887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
  19054. 5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
  19055. 12767 .loc 1 5888 7
  19056. 12768 0080 FB69 ldr r3, [r7, #28]
  19057. 12769 0082 0093 str r3, [sp]
  19058. 12770 0084 BB69 ldr r3, [r7, #24]
  19059. 12771 0086 0022 movs r2, #0
  19060. 12772 0088 8021 movs r1, #128
  19061. 12773 008a F868 ldr r0, [r7, #12]
  19062. 12774 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  19063. 12775 0090 0346 mov r3, r0
  19064. 12776 .loc 1 5888 6
  19065. 12777 0092 002B cmp r3, #0
  19066. 12778 0094 01D0 beq .L618
  19067. 5889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19068. 5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  19069. 12779 .loc 1 5890 12
  19070. 12780 0096 0123 movs r3, #1
  19071. 12781 0098 00E0 b .L614
  19072. 12782 .L618:
  19073. 5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19074. 5892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19075. 5893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  19076. 12783 .loc 1 5893 10
  19077. 12784 009a 0023 movs r3, #0
  19078. 12785 .L614:
  19079. 5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19080. 12786 .loc 1 5894 1
  19081. 12787 009c 1846 mov r0, r3
  19082. 12788 009e 1037 adds r7, r7, #16
  19083. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 330
  19084. 12789 .LCFI293:
  19085. 12790 .cfi_def_cfa_offset 8
  19086. 12791 00a0 BD46 mov sp, r7
  19087. 12792 .LCFI294:
  19088. 12793 .cfi_def_cfa_register 13
  19089. 12794 @ sp needed
  19090. 12795 00a2 80BD pop {r7, pc}
  19091. 12796 .L620:
  19092. 12797 .align 2
  19093. 12798 .L619:
  19094. 12799 00a4 00200080 .word -2147475456
  19095. 12800 .cfi_endproc
  19096. 12801 .LFE185:
  19097. 12803 .section .text.I2C_RequestMemoryRead,"ax",%progbits
  19098. 12804 .align 1
  19099. 12805 .syntax unified
  19100. 12806 .thumb
  19101. 12807 .thumb_func
  19102. 12809 I2C_RequestMemoryRead:
  19103. 12810 .LFB186:
  19104. 5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19105. 5896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  19106. 5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
  19107. 5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  19108. 5899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  19109. 5900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
  19110. 5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
  19111. 5902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
  19112. 5903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
  19113. 5904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  19114. 5905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
  19115. 5906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  19116. 5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  19117. 5908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
  19118. 5909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
  19119. 5910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
  19120. 5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19121. 12811 .loc 1 5911 1
  19122. 12812 .cfi_startproc
  19123. 12813 @ args = 8, pretend = 0, frame = 16
  19124. 12814 @ frame_needed = 1, uses_anonymous_args = 0
  19125. 12815 0000 80B5 push {r7, lr}
  19126. 12816 .LCFI295:
  19127. 12817 .cfi_def_cfa_offset 8
  19128. 12818 .cfi_offset 7, -8
  19129. 12819 .cfi_offset 14, -4
  19130. 12820 0002 86B0 sub sp, sp, #24
  19131. 12821 .LCFI296:
  19132. 12822 .cfi_def_cfa_offset 32
  19133. 12823 0004 02AF add r7, sp, #8
  19134. 12824 .LCFI297:
  19135. 12825 .cfi_def_cfa 7, 24
  19136. 12826 0006 F860 str r0, [r7, #12]
  19137. 12827 0008 0846 mov r0, r1
  19138. 12828 000a 1146 mov r1, r2
  19139. 12829 000c 1A46 mov r2, r3
  19140. 12830 000e 0346 mov r3, r0 @ movhi
  19141. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 331
  19142. 12831 0010 7B81 strh r3, [r7, #10] @ movhi
  19143. 12832 0012 0B46 mov r3, r1 @ movhi
  19144. 12833 0014 3B81 strh r3, [r7, #8] @ movhi
  19145. 12834 0016 1346 mov r3, r2 @ movhi
  19146. 12835 0018 FB80 strh r3, [r7, #6] @ movhi
  19147. 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
  19148. 12836 .loc 1 5912 3
  19149. 12837 001a FB88 ldrh r3, [r7, #6] @ movhi
  19150. 12838 001c DAB2 uxtb r2, r3
  19151. 12839 001e 7989 ldrh r1, [r7, #10]
  19152. 12840 0020 204B ldr r3, .L628
  19153. 12841 0022 0093 str r3, [sp]
  19154. 12842 0024 0023 movs r3, #0
  19155. 12843 0026 F868 ldr r0, [r7, #12]
  19156. 12844 0028 FFF7FEFF bl I2C_TransferConfig
  19157. 5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19158. 5914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
  19159. 5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
  19160. 12845 .loc 1 5915 7
  19161. 12846 002c FA69 ldr r2, [r7, #28]
  19162. 12847 002e B969 ldr r1, [r7, #24]
  19163. 12848 0030 F868 ldr r0, [r7, #12]
  19164. 12849 0032 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
  19165. 12850 0036 0346 mov r3, r0
  19166. 12851 .loc 1 5915 6
  19167. 12852 0038 002B cmp r3, #0
  19168. 12853 003a 01D0 beq .L622
  19169. 5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19170. 5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  19171. 12854 .loc 1 5917 12
  19172. 12855 003c 0123 movs r3, #1
  19173. 12856 003e 2CE0 b .L623
  19174. 12857 .L622:
  19175. 5918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19176. 5919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19177. 5920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
  19178. 5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
  19179. 12858 .loc 1 5921 6
  19180. 12859 0040 FB88 ldrh r3, [r7, #6]
  19181. 12860 0042 012B cmp r3, #1
  19182. 12861 0044 05D1 bne .L624
  19183. 5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19184. 5923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
  19185. 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  19186. 12862 .loc 1 5924 28
  19187. 12863 0046 3B89 ldrh r3, [r7, #8] @ movhi
  19188. 12864 0048 DAB2 uxtb r2, r3
  19189. 12865 .loc 1 5924 9
  19190. 12866 004a FB68 ldr r3, [r7, #12]
  19191. 12867 004c 1B68 ldr r3, [r3]
  19192. 12868 .loc 1 5924 26
  19193. 12869 004e 9A62 str r2, [r3, #40]
  19194. 12870 0050 15E0 b .L625
  19195. 12871 .L624:
  19196. 5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19197. 5926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
  19198. 5927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19199. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 332
  19200. 5928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19201. 5929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
  19202. 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
  19203. 12872 .loc 1 5930 28
  19204. 12873 0052 3B89 ldrh r3, [r7, #8]
  19205. 12874 0054 1B0A lsrs r3, r3, #8
  19206. 12875 0056 9BB2 uxth r3, r3
  19207. 12876 0058 DAB2 uxtb r2, r3
  19208. 12877 .loc 1 5930 9
  19209. 12878 005a FB68 ldr r3, [r7, #12]
  19210. 12879 005c 1B68 ldr r3, [r3]
  19211. 12880 .loc 1 5930 26
  19212. 12881 005e 9A62 str r2, [r3, #40]
  19213. 5931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19214. 5932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
  19215. 5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
  19216. 12882 .loc 1 5933 9
  19217. 12883 0060 FA69 ldr r2, [r7, #28]
  19218. 12884 0062 B969 ldr r1, [r7, #24]
  19219. 12885 0064 F868 ldr r0, [r7, #12]
  19220. 12886 0066 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
  19221. 12887 006a 0346 mov r3, r0
  19222. 12888 .loc 1 5933 8
  19223. 12889 006c 002B cmp r3, #0
  19224. 12890 006e 01D0 beq .L626
  19225. 5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19226. 5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  19227. 12891 .loc 1 5935 14
  19228. 12892 0070 0123 movs r3, #1
  19229. 12893 0072 12E0 b .L623
  19230. 12894 .L626:
  19231. 5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19232. 5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19233. 5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
  19234. 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
  19235. 12895 .loc 1 5939 28
  19236. 12896 0074 3B89 ldrh r3, [r7, #8] @ movhi
  19237. 12897 0076 DAB2 uxtb r2, r3
  19238. 12898 .loc 1 5939 9
  19239. 12899 0078 FB68 ldr r3, [r7, #12]
  19240. 12900 007a 1B68 ldr r3, [r3]
  19241. 12901 .loc 1 5939 26
  19242. 12902 007c 9A62 str r2, [r3, #40]
  19243. 12903 .L625:
  19244. 5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19245. 5941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19246. 5942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TC flag is set */
  19247. 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
  19248. 12904 .loc 1 5943 7
  19249. 12905 007e FB69 ldr r3, [r7, #28]
  19250. 12906 0080 0093 str r3, [sp]
  19251. 12907 0082 BB69 ldr r3, [r7, #24]
  19252. 12908 0084 0022 movs r2, #0
  19253. 12909 0086 4021 movs r1, #64
  19254. 12910 0088 F868 ldr r0, [r7, #12]
  19255. 12911 008a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
  19256. 12912 008e 0346 mov r3, r0
  19257. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 333
  19258. 12913 .loc 1 5943 6
  19259. 12914 0090 002B cmp r3, #0
  19260. 12915 0092 01D0 beq .L627
  19261. 5944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19262. 5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  19263. 12916 .loc 1 5945 12
  19264. 12917 0094 0123 movs r3, #1
  19265. 12918 0096 00E0 b .L623
  19266. 12919 .L627:
  19267. 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19268. 5947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19269. 5948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  19270. 12920 .loc 1 5948 10
  19271. 12921 0098 0023 movs r3, #0
  19272. 12922 .L623:
  19273. 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19274. 12923 .loc 1 5949 1
  19275. 12924 009a 1846 mov r0, r3
  19276. 12925 009c 1037 adds r7, r7, #16
  19277. 12926 .LCFI298:
  19278. 12927 .cfi_def_cfa_offset 8
  19279. 12928 009e BD46 mov sp, r7
  19280. 12929 .LCFI299:
  19281. 12930 .cfi_def_cfa_register 13
  19282. 12931 @ sp needed
  19283. 12932 00a0 80BD pop {r7, pc}
  19284. 12933 .L629:
  19285. 12934 00a2 00BF .align 2
  19286. 12935 .L628:
  19287. 12936 00a4 00200080 .word -2147475456
  19288. 12937 .cfi_endproc
  19289. 12938 .LFE186:
  19290. 12940 .section .text.I2C_ITAddrCplt,"ax",%progbits
  19291. 12941 .align 1
  19292. 12942 .syntax unified
  19293. 12943 .thumb
  19294. 12944 .thumb_func
  19295. 12946 I2C_ITAddrCplt:
  19296. 12947 .LFB187:
  19297. 5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19298. 5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  19299. 5952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Address complete process callback.
  19300. 5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  19301. 5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  19302. 5955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  19303. 5956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  19304. 5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
  19305. 5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19306. 12948 .loc 1 5958 1
  19307. 12949 .cfi_startproc
  19308. 12950 @ args = 0, pretend = 0, frame = 16
  19309. 12951 @ frame_needed = 1, uses_anonymous_args = 0
  19310. 12952 0000 80B5 push {r7, lr}
  19311. 12953 .LCFI300:
  19312. 12954 .cfi_def_cfa_offset 8
  19313. 12955 .cfi_offset 7, -8
  19314. 12956 .cfi_offset 14, -4
  19315. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 334
  19316. 12957 0002 84B0 sub sp, sp, #16
  19317. 12958 .LCFI301:
  19318. 12959 .cfi_def_cfa_offset 24
  19319. 12960 0004 00AF add r7, sp, #0
  19320. 12961 .LCFI302:
  19321. 12962 .cfi_def_cfa_register 7
  19322. 12963 0006 7860 str r0, [r7, #4]
  19323. 12964 0008 3960 str r1, [r7]
  19324. 5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
  19325. 5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode;
  19326. 5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code;
  19327. 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code;
  19328. 5963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19329. 5964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
  19330. 5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(ITFlags);
  19331. 5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19332. 5967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
  19333. 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
  19334. 12965 .loc 1 5968 22
  19335. 12966 000a 7B68 ldr r3, [r7, #4]
  19336. 12967 000c 93F84130 ldrb r3, [r3, #65]
  19337. 12968 0010 DBB2 uxtb r3, r3
  19338. 12969 .loc 1 5968 30
  19339. 12970 0012 03F02803 and r3, r3, #40
  19340. 12971 .loc 1 5968 6
  19341. 12972 0016 282B cmp r3, #40
  19342. 12973 0018 6AD1 bne .L631
  19343. 5969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19344. 5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
  19345. 12974 .loc 1 5970 25
  19346. 12975 001a 7B68 ldr r3, [r7, #4]
  19347. 12976 001c 1B68 ldr r3, [r3]
  19348. 12977 001e 9B69 ldr r3, [r3, #24]
  19349. 12978 0020 1B0C lsrs r3, r3, #16
  19350. 12979 0022 DBB2 uxtb r3, r3
  19351. 12980 .loc 1 5970 23
  19352. 12981 0024 03F00103 and r3, r3, #1
  19353. 12982 0028 FB73 strb r3, [r7, #15]
  19354. 5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
  19355. 12983 .loc 1 5971 25
  19356. 12984 002a 7B68 ldr r3, [r7, #4]
  19357. 12985 002c 1B68 ldr r3, [r3]
  19358. 12986 002e 9B69 ldr r3, [r3, #24]
  19359. 12987 0030 1B0C lsrs r3, r3, #16
  19360. 12988 0032 9BB2 uxth r3, r3
  19361. 12989 .loc 1 5971 23
  19362. 12990 0034 03F0FE03 and r3, r3, #254
  19363. 12991 0038 BB81 strh r3, [r7, #12] @ movhi
  19364. 5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
  19365. 12992 .loc 1 5972 25
  19366. 12993 003a 7B68 ldr r3, [r7, #4]
  19367. 12994 003c 1B68 ldr r3, [r3]
  19368. 12995 003e 9B68 ldr r3, [r3, #8]
  19369. 12996 0040 9BB2 uxth r3, r3
  19370. 12997 .loc 1 5972 23
  19371. 12998 0042 C3F30903 ubfx r3, r3, #0, #10
  19372. 12999 0046 7B81 strh r3, [r7, #10] @ movhi
  19373. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 335
  19374. 5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
  19375. 13000 .loc 1 5973 25
  19376. 13001 0048 7B68 ldr r3, [r7, #4]
  19377. 13002 004a 1B68 ldr r3, [r3]
  19378. 13003 004c DB68 ldr r3, [r3, #12]
  19379. 13004 004e 9BB2 uxth r3, r3
  19380. 13005 .loc 1 5973 23
  19381. 13006 0050 03F0FE03 and r3, r3, #254
  19382. 13007 0054 3B81 strh r3, [r7, #8] @ movhi
  19383. 5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19384. 5975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
  19385. 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
  19386. 13008 .loc 1 5976 19
  19387. 13009 0056 7B68 ldr r3, [r7, #4]
  19388. 13010 0058 DB68 ldr r3, [r3, #12]
  19389. 13011 .loc 1 5976 8
  19390. 13012 005a 022B cmp r3, #2
  19391. 13013 005c 38D1 bne .L632
  19392. 5977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19393. 5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK))
  19394. 13014 .loc 1 5978 44
  19395. 13015 005e 7B89 ldrh r3, [r7, #10]
  19396. 13016 0060 DB09 lsrs r3, r3, #7
  19397. 13017 0062 9AB2 uxth r2, r3
  19398. 13018 0064 BB89 ldrh r3, [r7, #12] @ movhi
  19399. 13019 0066 5340 eors r3, r3, r2
  19400. 13020 0068 9BB2 uxth r3, r3
  19401. 13021 006a 03F00603 and r3, r3, #6
  19402. 13022 .loc 1 5978 10
  19403. 13023 006e 002B cmp r3, #0
  19404. 13024 0070 1CD1 bne .L633
  19405. 5979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19406. 5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
  19407. 13025 .loc 1 5980 23
  19408. 13026 0072 7B89 ldrh r3, [r7, #10] @ movhi
  19409. 13027 0074 BB81 strh r3, [r7, #12] @ movhi
  19410. 5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++;
  19411. 13028 .loc 1 5981 13
  19412. 13029 0076 7B68 ldr r3, [r7, #4]
  19413. 13030 0078 9B6C ldr r3, [r3, #72]
  19414. 13031 .loc 1 5981 29
  19415. 13032 007a 5A1C adds r2, r3, #1
  19416. 13033 007c 7B68 ldr r3, [r7, #4]
  19417. 13034 007e 9A64 str r2, [r3, #72]
  19418. 5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
  19419. 13035 .loc 1 5982 17
  19420. 13036 0080 7B68 ldr r3, [r7, #4]
  19421. 13037 0082 9B6C ldr r3, [r3, #72]
  19422. 13038 .loc 1 5982 12
  19423. 13039 0084 022B cmp r3, #2
  19424. 13040 0086 3BD1 bne .L635
  19425. 5983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19426. 5984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Address Event counter */
  19427. 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
  19428. 13041 .loc 1 5985 32
  19429. 13042 0088 7B68 ldr r3, [r7, #4]
  19430. 13043 008a 0022 movs r2, #0
  19431. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 336
  19432. 13044 008c 9A64 str r2, [r3, #72]
  19433. 5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19434. 5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
  19435. 5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  19436. 13045 .loc 1 5988 11
  19437. 13046 008e 7B68 ldr r3, [r7, #4]
  19438. 13047 0090 1B68 ldr r3, [r3]
  19439. 13048 0092 0822 movs r2, #8
  19440. 13049 0094 DA61 str r2, [r3, #28]
  19441. 5989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19442. 5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19443. 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19444. 13050 .loc 1 5991 11
  19445. 13051 0096 7B68 ldr r3, [r7, #4]
  19446. 13052 0098 0022 movs r2, #0
  19447. 13053 009a 83F84020 strb r2, [r3, #64]
  19448. 5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19449. 5993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
  19450. 5994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  19451. 5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
  19452. 5996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  19453. 5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
  19454. 13054 .loc 1 5997 11
  19455. 13055 009e BA89 ldrh r2, [r7, #12]
  19456. 13056 00a0 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  19457. 13057 00a2 1946 mov r1, r3
  19458. 13058 00a4 7868 ldr r0, [r7, #4]
  19459. 13059 00a6 FFF7FEFF bl HAL_I2C_AddrCallback
  19460. 5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19461. 5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19462. 6000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19463. 6001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19464. 6002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19465. 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
  19466. 6004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19467. 6005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
  19468. 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  19469. 6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19470. 6008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19471. 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19472. 6010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19473. 6011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
  19474. 6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  19475. 6013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
  19476. 6014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  19477. 6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
  19478. 6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19479. 6017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19480. 6018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19481. 6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
  19482. 6020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19483. 6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19484. 6022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
  19485. 6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
  19486. 6024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19487. 6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19488. 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19489. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 337
  19490. 6027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19491. 6028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
  19492. 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  19493. 6030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
  19494. 6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  19495. 6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
  19496. 6033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19497. 6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19498. 6035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19499. 6036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Else clear address flag only */
  19500. 6037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19501. 6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19502. 6039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
  19503. 6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
  19504. 6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19505. 6042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19506. 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19507. 6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19508. 6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19509. 13060 .loc 1 6045 1
  19510. 13061 00aa 29E0 b .L635
  19511. 13062 .L633:
  19512. 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19513. 13063 .loc 1 6003 23
  19514. 13064 00ac 3B89 ldrh r3, [r7, #8] @ movhi
  19515. 13065 00ae BB81 strh r3, [r7, #12] @ movhi
  19516. 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19517. 13066 .loc 1 6006 9
  19518. 13067 00b0 4FF40041 mov r1, #32768
  19519. 13068 00b4 7868 ldr r0, [r7, #4]
  19520. 13069 00b6 FFF7FEFF bl I2C_Disable_IRQ
  19521. 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19522. 13070 .loc 1 6009 9
  19523. 13071 00ba 7B68 ldr r3, [r7, #4]
  19524. 13072 00bc 0022 movs r2, #0
  19525. 13073 00be 83F84020 strb r2, [r3, #64]
  19526. 6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19527. 13074 .loc 1 6015 9
  19528. 13075 00c2 BA89 ldrh r2, [r7, #12]
  19529. 13076 00c4 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  19530. 13077 00c6 1946 mov r1, r3
  19531. 13078 00c8 7868 ldr r0, [r7, #4]
  19532. 13079 00ca FFF7FEFF bl HAL_I2C_AddrCallback
  19533. 13080 .loc 1 6045 1
  19534. 13081 00ce 17E0 b .L635
  19535. 13082 .L632:
  19536. 6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19537. 13083 .loc 1 6023 7
  19538. 13084 00d0 4FF40041 mov r1, #32768
  19539. 13085 00d4 7868 ldr r0, [r7, #4]
  19540. 13086 00d6 FFF7FEFF bl I2C_Disable_IRQ
  19541. 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19542. 13087 .loc 1 6026 7
  19543. 13088 00da 7B68 ldr r3, [r7, #4]
  19544. 13089 00dc 0022 movs r2, #0
  19545. 13090 00de 83F84020 strb r2, [r3, #64]
  19546. 6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19547. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 338
  19548. 13091 .loc 1 6032 7
  19549. 13092 00e2 BA89 ldrh r2, [r7, #12]
  19550. 13093 00e4 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  19551. 13094 00e6 1946 mov r1, r3
  19552. 13095 00e8 7868 ldr r0, [r7, #4]
  19553. 13096 00ea FFF7FEFF bl HAL_I2C_AddrCallback
  19554. 13097 .loc 1 6045 1
  19555. 13098 00ee 07E0 b .L635
  19556. 13099 .L631:
  19557. 6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19558. 13100 .loc 1 6040 5
  19559. 13101 00f0 7B68 ldr r3, [r7, #4]
  19560. 13102 00f2 1B68 ldr r3, [r3]
  19561. 13103 00f4 0822 movs r2, #8
  19562. 13104 00f6 DA61 str r2, [r3, #28]
  19563. 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19564. 13105 .loc 1 6043 5
  19565. 13106 00f8 7B68 ldr r3, [r7, #4]
  19566. 13107 00fa 0022 movs r2, #0
  19567. 13108 00fc 83F84020 strb r2, [r3, #64]
  19568. 13109 .L635:
  19569. 13110 .loc 1 6045 1
  19570. 13111 0100 00BF nop
  19571. 13112 0102 1037 adds r7, r7, #16
  19572. 13113 .LCFI303:
  19573. 13114 .cfi_def_cfa_offset 8
  19574. 13115 0104 BD46 mov sp, r7
  19575. 13116 .LCFI304:
  19576. 13117 .cfi_def_cfa_register 13
  19577. 13118 @ sp needed
  19578. 13119 0106 80BD pop {r7, pc}
  19579. 13120 .cfi_endproc
  19580. 13121 .LFE187:
  19581. 13123 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
  19582. 13124 .align 1
  19583. 13125 .syntax unified
  19584. 13126 .thumb
  19585. 13127 .thumb_func
  19586. 13129 I2C_ITMasterSeqCplt:
  19587. 13130 .LFB188:
  19588. 6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19589. 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  19590. 6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
  19591. 6049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  19592. 6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  19593. 6051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  19594. 6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
  19595. 6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19596. 13131 .loc 1 6053 1
  19597. 13132 .cfi_startproc
  19598. 13133 @ args = 0, pretend = 0, frame = 8
  19599. 13134 @ frame_needed = 1, uses_anonymous_args = 0
  19600. 13135 0000 80B5 push {r7, lr}
  19601. 13136 .LCFI305:
  19602. 13137 .cfi_def_cfa_offset 8
  19603. 13138 .cfi_offset 7, -8
  19604. 13139 .cfi_offset 14, -4
  19605. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 339
  19606. 13140 0002 82B0 sub sp, sp, #8
  19607. 13141 .LCFI306:
  19608. 13142 .cfi_def_cfa_offset 16
  19609. 13143 0004 00AF add r7, sp, #0
  19610. 13144 .LCFI307:
  19611. 13145 .cfi_def_cfa_register 7
  19612. 13146 0006 7860 str r0, [r7, #4]
  19613. 6054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
  19614. 6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  19615. 13147 .loc 1 6055 14
  19616. 13148 0008 7B68 ldr r3, [r7, #4]
  19617. 13149 000a 0022 movs r2, #0
  19618. 13150 000c 83F84220 strb r2, [r3, #66]
  19619. 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19620. 6057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
  19621. 6058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
  19622. 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
  19623. 13151 .loc 1 6059 11
  19624. 13152 0010 7B68 ldr r3, [r7, #4]
  19625. 13153 0012 93F84130 ldrb r3, [r3, #65]
  19626. 13154 0016 DBB2 uxtb r3, r3
  19627. 13155 .loc 1 6059 6
  19628. 13156 0018 212B cmp r3, #33
  19629. 13157 001a 15D1 bne .L637
  19630. 6060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19631. 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  19632. 13158 .loc 1 6061 25
  19633. 13159 001c 7B68 ldr r3, [r7, #4]
  19634. 13160 001e 2022 movs r2, #32
  19635. 13161 0020 83F84120 strb r2, [r3, #65]
  19636. 6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
  19637. 13162 .loc 1 6062 25
  19638. 13163 0024 7B68 ldr r3, [r7, #4]
  19639. 13164 0026 1122 movs r2, #17
  19640. 13165 0028 1A63 str r2, [r3, #48]
  19641. 6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  19642. 13166 .loc 1 6063 25
  19643. 13167 002a 7B68 ldr r3, [r7, #4]
  19644. 13168 002c 0022 movs r2, #0
  19645. 13169 002e 5A63 str r2, [r3, #52]
  19646. 6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19647. 6065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
  19648. 6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  19649. 13170 .loc 1 6066 5
  19650. 13171 0030 0121 movs r1, #1
  19651. 13172 0032 7868 ldr r0, [r7, #4]
  19652. 13173 0034 FFF7FEFF bl I2C_Disable_IRQ
  19653. 6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19654. 6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19655. 6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19656. 13174 .loc 1 6069 5
  19657. 13175 0038 7B68 ldr r3, [r7, #4]
  19658. 13176 003a 0022 movs r2, #0
  19659. 13177 003c 83F84020 strb r2, [r3, #64]
  19660. 6070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19661. 6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  19662. 6072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  19663. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 340
  19664. 6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
  19665. 6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  19666. 6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
  19667. 13178 .loc 1 6075 5
  19668. 13179 0040 7868 ldr r0, [r7, #4]
  19669. 13180 0042 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
  19670. 6076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19671. 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19672. 6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
  19673. 6079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19674. 6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19675. 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  19676. 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
  19677. 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  19678. 6084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19679. 6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
  19680. 6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
  19681. 6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19682. 6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19683. 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19684. 6090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19685. 6091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  19686. 6092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  19687. 6093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
  19688. 6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  19689. 6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
  19690. 6096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19691. 6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19692. 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19693. 13181 .loc 1 6098 1
  19694. 13182 0046 14E0 b .L639
  19695. 13183 .L637:
  19696. 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
  19697. 13184 .loc 1 6081 25
  19698. 13185 0048 7B68 ldr r3, [r7, #4]
  19699. 13186 004a 2022 movs r2, #32
  19700. 13187 004c 83F84120 strb r2, [r3, #65]
  19701. 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  19702. 13188 .loc 1 6082 25
  19703. 13189 0050 7B68 ldr r3, [r7, #4]
  19704. 13190 0052 1222 movs r2, #18
  19705. 13191 0054 1A63 str r2, [r3, #48]
  19706. 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19707. 13192 .loc 1 6083 25
  19708. 13193 0056 7B68 ldr r3, [r7, #4]
  19709. 13194 0058 0022 movs r2, #0
  19710. 13195 005a 5A63 str r2, [r3, #52]
  19711. 6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19712. 13196 .loc 1 6086 5
  19713. 13197 005c 0221 movs r1, #2
  19714. 13198 005e 7868 ldr r0, [r7, #4]
  19715. 13199 0060 FFF7FEFF bl I2C_Disable_IRQ
  19716. 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19717. 13200 .loc 1 6089 5
  19718. 13201 0064 7B68 ldr r3, [r7, #4]
  19719. 13202 0066 0022 movs r2, #0
  19720. 13203 0068 83F84020 strb r2, [r3, #64]
  19721. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 341
  19722. 6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19723. 13204 .loc 1 6095 5
  19724. 13205 006c 7868 ldr r0, [r7, #4]
  19725. 13206 006e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
  19726. 13207 .L639:
  19727. 13208 .loc 1 6098 1
  19728. 13209 0072 00BF nop
  19729. 13210 0074 0837 adds r7, r7, #8
  19730. 13211 .LCFI308:
  19731. 13212 .cfi_def_cfa_offset 8
  19732. 13213 0076 BD46 mov sp, r7
  19733. 13214 .LCFI309:
  19734. 13215 .cfi_def_cfa_register 13
  19735. 13216 @ sp needed
  19736. 13217 0078 80BD pop {r7, pc}
  19737. 13218 .cfi_endproc
  19738. 13219 .LFE188:
  19739. 13221 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
  19740. 13222 .align 1
  19741. 13223 .syntax unified
  19742. 13224 .thumb
  19743. 13225 .thumb_func
  19744. 13227 I2C_ITSlaveSeqCplt:
  19745. 13228 .LFB189:
  19746. 6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19747. 6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  19748. 6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
  19749. 6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  19750. 6103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  19751. 6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  19752. 6105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
  19753. 6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19754. 13229 .loc 1 6106 1
  19755. 13230 .cfi_startproc
  19756. 13231 @ args = 0, pretend = 0, frame = 16
  19757. 13232 @ frame_needed = 1, uses_anonymous_args = 0
  19758. 13233 0000 80B5 push {r7, lr}
  19759. 13234 .LCFI310:
  19760. 13235 .cfi_def_cfa_offset 8
  19761. 13236 .cfi_offset 7, -8
  19762. 13237 .cfi_offset 14, -4
  19763. 13238 0002 84B0 sub sp, sp, #16
  19764. 13239 .LCFI311:
  19765. 13240 .cfi_def_cfa_offset 24
  19766. 13241 0004 00AF add r7, sp, #0
  19767. 13242 .LCFI312:
  19768. 13243 .cfi_def_cfa_register 7
  19769. 13244 0006 7860 str r0, [r7, #4]
  19770. 6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
  19771. 13245 .loc 1 6107 26
  19772. 13246 0008 7B68 ldr r3, [r7, #4]
  19773. 13247 000a 1B68 ldr r3, [r3]
  19774. 13248 .loc 1 6107 12
  19775. 13249 000c 1B68 ldr r3, [r3]
  19776. 13250 000e FB60 str r3, [r7, #12]
  19777. 6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19778. 6109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
  19779. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 342
  19780. 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  19781. 13251 .loc 1 6110 14
  19782. 13252 0010 7B68 ldr r3, [r7, #4]
  19783. 13253 0012 0022 movs r2, #0
  19784. 13254 0014 83F84220 strb r2, [r3, #66]
  19785. 6111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19786. 6112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
  19787. 6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
  19788. 13255 .loc 1 6113 7
  19789. 13256 0018 FB68 ldr r3, [r7, #12]
  19790. 13257 001a 9B0B lsrs r3, r3, #14
  19791. 13258 001c 03F00103 and r3, r3, #1
  19792. 13259 .loc 1 6113 6
  19793. 13260 0020 002B cmp r3, #0
  19794. 13261 0022 08D0 beq .L641
  19795. 6114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19796. 6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  19797. 6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  19798. 13262 .loc 1 6116 9
  19799. 13263 0024 7B68 ldr r3, [r7, #4]
  19800. 13264 0026 1B68 ldr r3, [r3]
  19801. 13265 .loc 1 6116 25
  19802. 13266 0028 1A68 ldr r2, [r3]
  19803. 13267 .loc 1 6116 9
  19804. 13268 002a 7B68 ldr r3, [r7, #4]
  19805. 13269 002c 1B68 ldr r3, [r3]
  19806. 13270 .loc 1 6116 25
  19807. 13271 002e 22F48042 bic r2, r2, #16384
  19808. 13272 0032 1A60 str r2, [r3]
  19809. 13273 0034 0DE0 b .L642
  19810. 13274 .L641:
  19811. 6117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19812. 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
  19813. 13275 .loc 1 6118 12
  19814. 13276 0036 FB68 ldr r3, [r7, #12]
  19815. 13277 0038 DB0B lsrs r3, r3, #15
  19816. 13278 003a 03F00103 and r3, r3, #1
  19817. 13279 .loc 1 6118 11
  19818. 13280 003e 002B cmp r3, #0
  19819. 13281 0040 07D0 beq .L642
  19820. 6119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19821. 6120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  19822. 6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  19823. 13282 .loc 1 6121 9
  19824. 13283 0042 7B68 ldr r3, [r7, #4]
  19825. 13284 0044 1B68 ldr r3, [r3]
  19826. 13285 .loc 1 6121 25
  19827. 13286 0046 1A68 ldr r2, [r3]
  19828. 13287 .loc 1 6121 9
  19829. 13288 0048 7B68 ldr r3, [r7, #4]
  19830. 13289 004a 1B68 ldr r3, [r3]
  19831. 13290 .loc 1 6121 25
  19832. 13291 004c 22F40042 bic r2, r2, #32768
  19833. 13292 0050 1A60 str r2, [r3]
  19834. 13293 .L642:
  19835. 6122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19836. 6123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19837. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 343
  19838. 6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19839. 6125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
  19840. 6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19841. 6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19842. 6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
  19843. 13294 .loc 1 6128 11
  19844. 13295 0052 7B68 ldr r3, [r7, #4]
  19845. 13296 0054 93F84130 ldrb r3, [r3, #65]
  19846. 13297 0058 DBB2 uxtb r3, r3
  19847. 13298 .loc 1 6128 6
  19848. 13299 005a 292B cmp r3, #41
  19849. 13300 005c 12D1 bne .L643
  19850. 6129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19851. 6130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
  19852. 6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  19853. 13301 .loc 1 6131 25
  19854. 13302 005e 7B68 ldr r3, [r7, #4]
  19855. 13303 0060 2822 movs r2, #40
  19856. 13304 0062 83F84120 strb r2, [r3, #65]
  19857. 6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
  19858. 13305 .loc 1 6132 25
  19859. 13306 0066 7B68 ldr r3, [r7, #4]
  19860. 13307 0068 2122 movs r2, #33
  19861. 13308 006a 1A63 str r2, [r3, #48]
  19862. 6133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19863. 6134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
  19864. 6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  19865. 13309 .loc 1 6135 5
  19866. 13310 006c 0121 movs r1, #1
  19867. 13311 006e 7868 ldr r0, [r7, #4]
  19868. 13312 0070 FFF7FEFF bl I2C_Disable_IRQ
  19869. 6136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19870. 6137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19871. 6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19872. 13313 .loc 1 6138 5
  19873. 13314 0074 7B68 ldr r3, [r7, #4]
  19874. 13315 0076 0022 movs r2, #0
  19875. 13316 0078 83F84020 strb r2, [r3, #64]
  19876. 6139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19877. 6140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  19878. 6141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  19879. 6142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
  19880. 6143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  19881. 6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
  19882. 13317 .loc 1 6144 5
  19883. 13318 007c 7868 ldr r0, [r7, #4]
  19884. 13319 007e FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
  19885. 6145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19886. 6146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19887. 6147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19888. 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
  19889. 6149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19890. 6150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
  19891. 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  19892. 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
  19893. 6153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19894. 6154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
  19895. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 344
  19896. 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
  19897. 6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19898. 6157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  19899. 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  19900. 6159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19901. 6160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  19902. 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  19903. 6162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
  19904. 6163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  19905. 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
  19906. 6165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19907. 6166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19908. 6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  19909. 6168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19910. 6169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  19911. 6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19912. 6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  19913. 13320 .loc 1 6171 1
  19914. 13321 0082 17E0 b .L645
  19915. 13322 .L643:
  19916. 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19917. 13323 .loc 1 6148 16
  19918. 13324 0084 7B68 ldr r3, [r7, #4]
  19919. 13325 0086 93F84130 ldrb r3, [r3, #65]
  19920. 13326 008a DBB2 uxtb r3, r3
  19921. 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19922. 13327 .loc 1 6148 11
  19923. 13328 008c 2A2B cmp r3, #42
  19924. 13329 008e 11D1 bne .L645
  19925. 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
  19926. 13330 .loc 1 6151 25
  19927. 13331 0090 7B68 ldr r3, [r7, #4]
  19928. 13332 0092 2822 movs r2, #40
  19929. 13333 0094 83F84120 strb r2, [r3, #65]
  19930. 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19931. 13334 .loc 1 6152 25
  19932. 13335 0098 7B68 ldr r3, [r7, #4]
  19933. 13336 009a 2222 movs r2, #34
  19934. 13337 009c 1A63 str r2, [r3, #48]
  19935. 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19936. 13338 .loc 1 6155 5
  19937. 13339 009e 0221 movs r1, #2
  19938. 13340 00a0 7868 ldr r0, [r7, #4]
  19939. 13341 00a2 FFF7FEFF bl I2C_Disable_IRQ
  19940. 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19941. 13342 .loc 1 6158 5
  19942. 13343 00a6 7B68 ldr r3, [r7, #4]
  19943. 13344 00a8 0022 movs r2, #0
  19944. 13345 00aa 83F84020 strb r2, [r3, #64]
  19945. 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  19946. 13346 .loc 1 6164 5
  19947. 13347 00ae 7868 ldr r0, [r7, #4]
  19948. 13348 00b0 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
  19949. 13349 .L645:
  19950. 13350 .loc 1 6171 1
  19951. 13351 00b4 00BF nop
  19952. 13352 00b6 1037 adds r7, r7, #16
  19953. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 345
  19954. 13353 .LCFI313:
  19955. 13354 .cfi_def_cfa_offset 8
  19956. 13355 00b8 BD46 mov sp, r7
  19957. 13356 .LCFI314:
  19958. 13357 .cfi_def_cfa_register 13
  19959. 13358 @ sp needed
  19960. 13359 00ba 80BD pop {r7, pc}
  19961. 13360 .cfi_endproc
  19962. 13361 .LFE189:
  19963. 13363 .section .text.I2C_ITMasterCplt,"ax",%progbits
  19964. 13364 .align 1
  19965. 13365 .syntax unified
  19966. 13366 .thumb
  19967. 13367 .thumb_func
  19968. 13369 I2C_ITMasterCplt:
  19969. 13370 .LFB190:
  19970. 6172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  19971. 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  19972. 6174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master complete process.
  19973. 6175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  19974. 6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  19975. 6177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  19976. 6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  19977. 6179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
  19978. 6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  19979. 13371 .loc 1 6180 1
  19980. 13372 .cfi_startproc
  19981. 13373 @ args = 0, pretend = 0, frame = 24
  19982. 13374 @ frame_needed = 1, uses_anonymous_args = 0
  19983. 13375 0000 80B5 push {r7, lr}
  19984. 13376 .LCFI315:
  19985. 13377 .cfi_def_cfa_offset 8
  19986. 13378 .cfi_offset 7, -8
  19987. 13379 .cfi_offset 14, -4
  19988. 13380 0002 86B0 sub sp, sp, #24
  19989. 13381 .LCFI316:
  19990. 13382 .cfi_def_cfa_offset 32
  19991. 13383 0004 00AF add r7, sp, #0
  19992. 13384 .LCFI317:
  19993. 13385 .cfi_def_cfa_register 7
  19994. 13386 0006 7860 str r0, [r7, #4]
  19995. 13387 0008 3960 str r1, [r7]
  19996. 6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
  19997. 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
  19998. 13388 .loc 1 6182 12
  19999. 13389 000a 3B68 ldr r3, [r7]
  20000. 13390 000c 7B61 str r3, [r7, #20]
  20001. 6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg;
  20002. 6184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20003. 6185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  20004. 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  20005. 13391 .loc 1 6186 3
  20006. 13392 000e 7B68 ldr r3, [r7, #4]
  20007. 13393 0010 1B68 ldr r3, [r3]
  20008. 13394 0012 2022 movs r2, #32
  20009. 13395 0014 DA61 str r2, [r3, #28]
  20010. 6187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20011. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 346
  20012. 6188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
  20013. 6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
  20014. 13396 .loc 1 6189 11
  20015. 13397 0016 7B68 ldr r3, [r7, #4]
  20016. 13398 0018 93F84130 ldrb r3, [r3, #65]
  20017. 13399 001c DBB2 uxtb r3, r3
  20018. 13400 .loc 1 6189 6
  20019. 13401 001e 212B cmp r3, #33
  20020. 13402 0020 07D1 bne .L647
  20021. 6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20022. 6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
  20023. 13403 .loc 1 6191 5
  20024. 13404 0022 0121 movs r1, #1
  20025. 13405 0024 7868 ldr r0, [r7, #4]
  20026. 13406 0026 FFF7FEFF bl I2C_Disable_IRQ
  20027. 6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
  20028. 13407 .loc 1 6192 25
  20029. 13408 002a 7B68 ldr r3, [r7, #4]
  20030. 13409 002c 1122 movs r2, #17
  20031. 13410 002e 1A63 str r2, [r3, #48]
  20032. 13411 0030 0CE0 b .L648
  20033. 13412 .L647:
  20034. 6193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20035. 6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  20036. 13413 .loc 1 6194 16
  20037. 13414 0032 7B68 ldr r3, [r7, #4]
  20038. 13415 0034 93F84130 ldrb r3, [r3, #65]
  20039. 13416 0038 DBB2 uxtb r3, r3
  20040. 13417 .loc 1 6194 11
  20041. 13418 003a 222B cmp r3, #34
  20042. 13419 003c 06D1 bne .L648
  20043. 6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20044. 6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
  20045. 13420 .loc 1 6196 5
  20046. 13421 003e 0221 movs r1, #2
  20047. 13422 0040 7868 ldr r0, [r7, #4]
  20048. 13423 0042 FFF7FEFF bl I2C_Disable_IRQ
  20049. 6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
  20050. 13424 .loc 1 6197 25
  20051. 13425 0046 7B68 ldr r3, [r7, #4]
  20052. 13426 0048 1222 movs r2, #18
  20053. 13427 004a 1A63 str r2, [r3, #48]
  20054. 13428 .L648:
  20055. 6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20056. 6199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20057. 6200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20058. 6201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
  20059. 6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20060. 6203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20061. 6204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  20062. 6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  20063. 13429 .loc 1 6205 3
  20064. 13430 004c 7B68 ldr r3, [r7, #4]
  20065. 13431 004e 1B68 ldr r3, [r3]
  20066. 13432 0050 5968 ldr r1, [r3, #4]
  20067. 13433 0052 7B68 ldr r3, [r7, #4]
  20068. 13434 0054 1A68 ldr r2, [r3]
  20069. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 347
  20070. 13435 0056 4D4B ldr r3, .L658
  20071. 13436 0058 0B40 ands r3, r3, r1
  20072. 13437 005a 5360 str r3, [r2, #4]
  20073. 6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20074. 6207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
  20075. 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  20076. 13438 .loc 1 6208 23
  20077. 13439 005c 7B68 ldr r3, [r7, #4]
  20078. 13440 005e 0022 movs r2, #0
  20079. 13441 0060 5A63 str r2, [r3, #52]
  20080. 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  20081. 13442 .loc 1 6209 23
  20082. 13443 0062 7B68 ldr r3, [r7, #4]
  20083. 13444 0064 4A4A ldr r2, .L658+4
  20084. 13445 0066 DA62 str r2, [r3, #44]
  20085. 6210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20086. 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
  20087. 13446 .loc 1 6211 7
  20088. 13447 0068 7B69 ldr r3, [r7, #20]
  20089. 13448 006a 1B09 lsrs r3, r3, #4
  20090. 13449 006c 03F00103 and r3, r3, #1
  20091. 13450 .loc 1 6211 6
  20092. 13451 0070 002B cmp r3, #0
  20093. 13452 0072 09D0 beq .L649
  20094. 6212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20095. 6213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  20096. 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  20097. 13453 .loc 1 6214 5
  20098. 13454 0074 7B68 ldr r3, [r7, #4]
  20099. 13455 0076 1B68 ldr r3, [r3]
  20100. 13456 0078 1022 movs r2, #16
  20101. 13457 007a DA61 str r2, [r3, #28]
  20102. 6215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20103. 6216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set acknowledge error code */
  20104. 6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  20105. 13458 .loc 1 6217 21
  20106. 13459 007c 7B68 ldr r3, [r7, #4]
  20107. 13460 007e 5B6C ldr r3, [r3, #68]
  20108. 13461 0080 43F00402 orr r2, r3, #4
  20109. 13462 0084 7B68 ldr r3, [r7, #4]
  20110. 13463 0086 5A64 str r2, [r3, #68]
  20111. 13464 .L649:
  20112. 6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20113. 6219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20114. 6220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Fetch Last receive data if any */
  20115. 6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET))
  20116. 13465 .loc 1 6221 12
  20117. 13466 0088 7B68 ldr r3, [r7, #4]
  20118. 13467 008a 93F84130 ldrb r3, [r3, #65]
  20119. 13468 008e DBB2 uxtb r3, r3
  20120. 13469 .loc 1 6221 6
  20121. 13470 0090 602B cmp r3, #96
  20122. 13471 0092 0BD1 bne .L650
  20123. 13472 .loc 1 6221 48 discriminator 1
  20124. 13473 0094 7B69 ldr r3, [r7, #20]
  20125. 13474 0096 9B08 lsrs r3, r3, #2
  20126. 13475 0098 03F00103 and r3, r3, #1
  20127. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 348
  20128. 13476 .loc 1 6221 44 discriminator 1
  20129. 13477 009c 002B cmp r3, #0
  20130. 13478 009e 05D0 beq .L650
  20131. 6222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20132. 6223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  20133. 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
  20134. 13479 .loc 1 6224 27
  20135. 13480 00a0 7B68 ldr r3, [r7, #4]
  20136. 13481 00a2 1B68 ldr r3, [r3]
  20137. 13482 .loc 1 6224 37
  20138. 13483 00a4 5B6A ldr r3, [r3, #36]
  20139. 13484 .loc 1 6224 14
  20140. 13485 00a6 DBB2 uxtb r3, r3
  20141. 13486 .loc 1 6224 12
  20142. 13487 00a8 FB60 str r3, [r7, #12]
  20143. 6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
  20144. 13488 .loc 1 6225 5
  20145. 13489 00aa FB68 ldr r3, [r7, #12]
  20146. 13490 .L650:
  20147. 6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20148. 6227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20149. 6228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  20150. 6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  20151. 13491 .loc 1 6229 3
  20152. 13492 00ac 7868 ldr r0, [r7, #4]
  20153. 13493 00ae FFF7FEFF bl I2C_Flush_TXDR
  20154. 6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20155. 6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
  20156. 6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
  20157. 13494 .loc 1 6232 12
  20158. 13495 00b2 7B68 ldr r3, [r7, #4]
  20159. 13496 00b4 5B6C ldr r3, [r3, #68]
  20160. 13497 00b6 3B61 str r3, [r7, #16]
  20161. 6233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20162. 6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20163. 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
  20164. 13498 .loc 1 6235 12
  20165. 13499 00b8 7B68 ldr r3, [r7, #4]
  20166. 13500 00ba 93F84130 ldrb r3, [r3, #65]
  20167. 13501 00be DBB2 uxtb r3, r3
  20168. 13502 .loc 1 6235 6
  20169. 13503 00c0 602B cmp r3, #96
  20170. 13504 00c2 02D0 beq .L651
  20171. 13505 .loc 1 6235 44 discriminator 1
  20172. 13506 00c4 3B69 ldr r3, [r7, #16]
  20173. 13507 00c6 002B cmp r3, #0
  20174. 13508 00c8 06D0 beq .L652
  20175. 13509 .L651:
  20176. 6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20177. 6237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20178. 6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
  20179. 13510 .loc 1 6238 5
  20180. 13511 00ca 7B68 ldr r3, [r7, #4]
  20181. 13512 00cc 5B6C ldr r3, [r3, #68]
  20182. 13513 00ce 1946 mov r1, r3
  20183. 13514 00d0 7868 ldr r0, [r7, #4]
  20184. 13515 00d2 FFF7FEFF bl I2C_ITError
  20185. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 349
  20186. 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20187. 6240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
  20188. 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
  20189. 6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20190. 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  20191. 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  20192. 6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20193. 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
  20194. 6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20195. 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  20196. 6249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20197. 6250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  20198. 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  20199. 6252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20200. 6253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20201. 6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  20202. 6255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
  20203. 6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  20204. 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
  20205. 6258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20206. 6259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20207. 6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20208. 6261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20209. 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  20210. 6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20211. 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  20212. 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  20213. 6266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20214. 6267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20215. 6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  20216. 6269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
  20217. 6270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  20218. 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
  20219. 6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20220. 6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20221. 6274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20222. 6275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
  20223. 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  20224. 6277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20225. 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  20226. 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  20227. 6280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20228. 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
  20229. 6282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20230. 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  20231. 6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20232. 6285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  20233. 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  20234. 6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20235. 6288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20236. 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  20237. 6290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
  20238. 6291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  20239. 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
  20240. 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20241. 6294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20242. 6295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20243. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 350
  20244. 6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20245. 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  20246. 6298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20247. 6299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  20248. 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  20249. 6301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20250. 6302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20251. 6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  20252. 6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
  20253. 6305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  20254. 6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
  20255. 6307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20256. 6308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20257. 6309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20258. 6310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20259. 6311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20260. 6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  20261. 6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20262. 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20263. 13516 .loc 1 6314 1
  20264. 13517 00d6 54E0 b .L657
  20265. 13518 .L652:
  20266. 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20267. 13519 .loc 1 6241 16
  20268. 13520 00d8 7B68 ldr r3, [r7, #4]
  20269. 13521 00da 93F84130 ldrb r3, [r3, #65]
  20270. 13522 00de DBB2 uxtb r3, r3
  20271. 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20272. 13523 .loc 1 6241 11
  20273. 13524 00e0 212B cmp r3, #33
  20274. 13525 00e2 24D1 bne .L654
  20275. 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  20276. 13526 .loc 1 6243 17
  20277. 13527 00e4 7B68 ldr r3, [r7, #4]
  20278. 13528 00e6 2022 movs r2, #32
  20279. 13529 00e8 83F84120 strb r2, [r3, #65]
  20280. 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20281. 13530 .loc 1 6244 25
  20282. 13531 00ec 7B68 ldr r3, [r7, #4]
  20283. 13532 00ee 0022 movs r2, #0
  20284. 13533 00f0 1A63 str r2, [r3, #48]
  20285. 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20286. 13534 .loc 1 6246 13
  20287. 13535 00f2 7B68 ldr r3, [r7, #4]
  20288. 13536 00f4 93F84230 ldrb r3, [r3, #66]
  20289. 13537 00f8 DBB2 uxtb r3, r3
  20290. 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20291. 13538 .loc 1 6246 8
  20292. 13539 00fa 402B cmp r3, #64
  20293. 13540 00fc 0BD1 bne .L655
  20294. 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20295. 13541 .loc 1 6248 18
  20296. 13542 00fe 7B68 ldr r3, [r7, #4]
  20297. 13543 0100 0022 movs r2, #0
  20298. 13544 0102 83F84220 strb r2, [r3, #66]
  20299. 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20300. 13545 .loc 1 6251 7
  20301. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 351
  20302. 13546 0106 7B68 ldr r3, [r7, #4]
  20303. 13547 0108 0022 movs r2, #0
  20304. 13548 010a 83F84020 strb r2, [r3, #64]
  20305. 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20306. 13549 .loc 1 6257 7
  20307. 13550 010e 7868 ldr r0, [r7, #4]
  20308. 13551 0110 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
  20309. 13552 .loc 1 6314 1
  20310. 13553 0114 35E0 b .L657
  20311. 13554 .L655:
  20312. 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20313. 13555 .loc 1 6262 18
  20314. 13556 0116 7B68 ldr r3, [r7, #4]
  20315. 13557 0118 0022 movs r2, #0
  20316. 13558 011a 83F84220 strb r2, [r3, #66]
  20317. 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20318. 13559 .loc 1 6265 7
  20319. 13560 011e 7B68 ldr r3, [r7, #4]
  20320. 13561 0120 0022 movs r2, #0
  20321. 13562 0122 83F84020 strb r2, [r3, #64]
  20322. 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20323. 13563 .loc 1 6271 7
  20324. 13564 0126 7868 ldr r0, [r7, #4]
  20325. 13565 0128 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
  20326. 13566 .loc 1 6314 1
  20327. 13567 012c 29E0 b .L657
  20328. 13568 .L654:
  20329. 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20330. 13569 .loc 1 6276 16
  20331. 13570 012e 7B68 ldr r3, [r7, #4]
  20332. 13571 0130 93F84130 ldrb r3, [r3, #65]
  20333. 13572 0134 DBB2 uxtb r3, r3
  20334. 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20335. 13573 .loc 1 6276 11
  20336. 13574 0136 222B cmp r3, #34
  20337. 13575 0138 23D1 bne .L657
  20338. 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  20339. 13576 .loc 1 6278 17
  20340. 13577 013a 7B68 ldr r3, [r7, #4]
  20341. 13578 013c 2022 movs r2, #32
  20342. 13579 013e 83F84120 strb r2, [r3, #65]
  20343. 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20344. 13580 .loc 1 6279 25
  20345. 13581 0142 7B68 ldr r3, [r7, #4]
  20346. 13582 0144 0022 movs r2, #0
  20347. 13583 0146 1A63 str r2, [r3, #48]
  20348. 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20349. 13584 .loc 1 6281 13
  20350. 13585 0148 7B68 ldr r3, [r7, #4]
  20351. 13586 014a 93F84230 ldrb r3, [r3, #66]
  20352. 13587 014e DBB2 uxtb r3, r3
  20353. 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20354. 13588 .loc 1 6281 8
  20355. 13589 0150 402B cmp r3, #64
  20356. 13590 0152 0BD1 bne .L656
  20357. 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20358. 13591 .loc 1 6283 18
  20359. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 352
  20360. 13592 0154 7B68 ldr r3, [r7, #4]
  20361. 13593 0156 0022 movs r2, #0
  20362. 13594 0158 83F84220 strb r2, [r3, #66]
  20363. 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20364. 13595 .loc 1 6286 7
  20365. 13596 015c 7B68 ldr r3, [r7, #4]
  20366. 13597 015e 0022 movs r2, #0
  20367. 13598 0160 83F84020 strb r2, [r3, #64]
  20368. 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20369. 13599 .loc 1 6292 7
  20370. 13600 0164 7868 ldr r0, [r7, #4]
  20371. 13601 0166 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
  20372. 13602 .loc 1 6314 1
  20373. 13603 016a 0AE0 b .L657
  20374. 13604 .L656:
  20375. 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20376. 13605 .loc 1 6297 18
  20377. 13606 016c 7B68 ldr r3, [r7, #4]
  20378. 13607 016e 0022 movs r2, #0
  20379. 13608 0170 83F84220 strb r2, [r3, #66]
  20380. 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20381. 13609 .loc 1 6300 7
  20382. 13610 0174 7B68 ldr r3, [r7, #4]
  20383. 13611 0176 0022 movs r2, #0
  20384. 13612 0178 83F84020 strb r2, [r3, #64]
  20385. 6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20386. 13613 .loc 1 6306 7
  20387. 13614 017c 7868 ldr r0, [r7, #4]
  20388. 13615 017e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
  20389. 13616 .L657:
  20390. 13617 .loc 1 6314 1
  20391. 13618 0182 00BF nop
  20392. 13619 0184 1837 adds r7, r7, #24
  20393. 13620 .LCFI318:
  20394. 13621 .cfi_def_cfa_offset 8
  20395. 13622 0186 BD46 mov sp, r7
  20396. 13623 .LCFI319:
  20397. 13624 .cfi_def_cfa_register 13
  20398. 13625 @ sp needed
  20399. 13626 0188 80BD pop {r7, pc}
  20400. 13627 .L659:
  20401. 13628 018a 00BF .align 2
  20402. 13629 .L658:
  20403. 13630 018c 00E800FE .word -33495040
  20404. 13631 0190 0000FFFF .word -65536
  20405. 13632 .cfi_endproc
  20406. 13633 .LFE190:
  20407. 13635 .section .text.I2C_ITSlaveCplt,"ax",%progbits
  20408. 13636 .align 1
  20409. 13637 .syntax unified
  20410. 13638 .thumb
  20411. 13639 .thumb_func
  20412. 13641 I2C_ITSlaveCplt:
  20413. 13642 .LFB191:
  20414. 6315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20415. 6316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  20416. 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave complete process.
  20417. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 353
  20418. 6318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  20419. 6319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  20420. 6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  20421. 6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  20422. 6322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
  20423. 6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20424. 13643 .loc 1 6323 1
  20425. 13644 .cfi_startproc
  20426. 13645 @ args = 0, pretend = 0, frame = 24
  20427. 13646 @ frame_needed = 1, uses_anonymous_args = 0
  20428. 13647 0000 80B5 push {r7, lr}
  20429. 13648 .LCFI320:
  20430. 13649 .cfi_def_cfa_offset 8
  20431. 13650 .cfi_offset 7, -8
  20432. 13651 .cfi_offset 14, -4
  20433. 13652 0002 86B0 sub sp, sp, #24
  20434. 13653 .LCFI321:
  20435. 13654 .cfi_def_cfa_offset 32
  20436. 13655 0004 00AF add r7, sp, #0
  20437. 13656 .LCFI322:
  20438. 13657 .cfi_def_cfa_register 7
  20439. 13658 0006 7860 str r0, [r7, #4]
  20440. 13659 0008 3960 str r1, [r7]
  20441. 6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
  20442. 13660 .loc 1 6324 26
  20443. 13661 000a 7B68 ldr r3, [r7, #4]
  20444. 13662 000c 1B68 ldr r3, [r3]
  20445. 13663 .loc 1 6324 12
  20446. 13664 000e 1B68 ldr r3, [r3]
  20447. 13665 0010 3B61 str r3, [r7, #16]
  20448. 6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
  20449. 13666 .loc 1 6325 12
  20450. 13667 0012 3B68 ldr r3, [r7]
  20451. 13668 0014 7B61 str r3, [r7, #20]
  20452. 6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
  20453. 13669 .loc 1 6326 12
  20454. 13670 0016 7B68 ldr r3, [r7, #4]
  20455. 13671 0018 DB6A ldr r3, [r3, #44]
  20456. 13672 001a FB60 str r3, [r7, #12]
  20457. 6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
  20458. 13673 .loc 1 6327 24
  20459. 13674 001c 7B68 ldr r3, [r7, #4]
  20460. 13675 001e 93F84130 ldrb r3, [r3, #65]
  20461. 13676 0022 FB72 strb r3, [r7, #11]
  20462. 6328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20463. 6329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  20464. 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  20465. 13677 .loc 1 6330 3
  20466. 13678 0024 7B68 ldr r3, [r7, #4]
  20467. 13679 0026 1B68 ldr r3, [r3]
  20468. 13680 0028 2022 movs r2, #32
  20469. 13681 002a DA61 str r2, [r3, #28]
  20470. 6331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20471. 6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
  20472. 6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
  20473. 13682 .loc 1 6333 6
  20474. 13683 002c FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
  20475. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 354
  20476. 13684 002e 212B cmp r3, #33
  20477. 13685 0030 02D0 beq .L661
  20478. 13686 .loc 1 6333 43 discriminator 1
  20479. 13687 0032 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
  20480. 13688 0034 292B cmp r3, #41
  20481. 13689 0036 08D1 bne .L662
  20482. 13690 .L661:
  20483. 6334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20484. 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
  20485. 13691 .loc 1 6335 5
  20486. 13692 0038 48F20101 movw r1, #32769
  20487. 13693 003c 7868 ldr r0, [r7, #4]
  20488. 13694 003e FFF7FEFF bl I2C_Disable_IRQ
  20489. 6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
  20490. 13695 .loc 1 6336 25
  20491. 13696 0042 7B68 ldr r3, [r7, #4]
  20492. 13697 0044 2122 movs r2, #33
  20493. 13698 0046 1A63 str r2, [r3, #48]
  20494. 13699 0048 19E0 b .L663
  20495. 13700 .L662:
  20496. 6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20497. 6338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
  20498. 13701 .loc 1 6338 11
  20499. 13702 004a FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
  20500. 13703 004c 222B cmp r3, #34
  20501. 13704 004e 02D0 beq .L664
  20502. 13705 .loc 1 6338 48 discriminator 1
  20503. 13706 0050 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
  20504. 13707 0052 2A2B cmp r3, #42
  20505. 13708 0054 08D1 bne .L665
  20506. 13709 .L664:
  20507. 6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20508. 6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
  20509. 13710 .loc 1 6340 5
  20510. 13711 0056 48F20201 movw r1, #32770
  20511. 13712 005a 7868 ldr r0, [r7, #4]
  20512. 13713 005c FFF7FEFF bl I2C_Disable_IRQ
  20513. 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
  20514. 13714 .loc 1 6341 25
  20515. 13715 0060 7B68 ldr r3, [r7, #4]
  20516. 13716 0062 2222 movs r2, #34
  20517. 13717 0064 1A63 str r2, [r3, #48]
  20518. 13718 0066 0AE0 b .L663
  20519. 13719 .L665:
  20520. 6342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20521. 6343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN)
  20522. 13720 .loc 1 6343 11
  20523. 13721 0068 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
  20524. 13722 006a 282B cmp r3, #40
  20525. 13723 006c 07D1 bne .L663
  20526. 6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20527. 6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT);
  20528. 13724 .loc 1 6345 5
  20529. 13725 006e 48F20301 movw r1, #32771
  20530. 13726 0072 7868 ldr r0, [r7, #4]
  20531. 13727 0074 FFF7FEFF bl I2C_Disable_IRQ
  20532. 6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  20533. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 355
  20534. 13728 .loc 1 6346 25
  20535. 13729 0078 7B68 ldr r3, [r7, #4]
  20536. 13730 007a 0022 movs r2, #0
  20537. 13731 007c 1A63 str r2, [r3, #48]
  20538. 13732 .L663:
  20539. 6347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20540. 6348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20541. 6349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20542. 6350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
  20543. 6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20544. 6352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20545. 6353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
  20546. 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  20547. 13733 .loc 1 6354 7
  20548. 13734 007e 7B68 ldr r3, [r7, #4]
  20549. 13735 0080 1B68 ldr r3, [r3]
  20550. 13736 .loc 1 6354 23
  20551. 13737 0082 5A68 ldr r2, [r3, #4]
  20552. 13738 .loc 1 6354 7
  20553. 13739 0084 7B68 ldr r3, [r7, #4]
  20554. 13740 0086 1B68 ldr r3, [r3]
  20555. 13741 .loc 1 6354 23
  20556. 13742 0088 42F40042 orr r2, r2, #32768
  20557. 13743 008c 5A60 str r2, [r3, #4]
  20558. 6355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20559. 6356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  20560. 6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  20561. 13744 .loc 1 6357 3
  20562. 13745 008e 7B68 ldr r3, [r7, #4]
  20563. 13746 0090 1B68 ldr r3, [r3]
  20564. 13747 0092 5968 ldr r1, [r3, #4]
  20565. 13748 0094 7B68 ldr r3, [r7, #4]
  20566. 13749 0096 1A68 ldr r2, [r3]
  20567. 13750 0098 8C4B ldr r3, .L681
  20568. 13751 009a 0B40 ands r3, r3, r1
  20569. 13752 009c 5360 str r3, [r2, #4]
  20570. 6358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20571. 6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  20572. 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  20573. 13753 .loc 1 6360 3
  20574. 13754 009e 7868 ldr r0, [r7, #4]
  20575. 13755 00a0 FFF7FEFF bl I2C_Flush_TXDR
  20576. 6361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20577. 6362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
  20578. 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
  20579. 13756 .loc 1 6363 7
  20580. 13757 00a4 3B69 ldr r3, [r7, #16]
  20581. 13758 00a6 9B0B lsrs r3, r3, #14
  20582. 13759 00a8 03F00103 and r3, r3, #1
  20583. 13760 .loc 1 6363 6
  20584. 13761 00ac 002B cmp r3, #0
  20585. 13762 00ae 13D0 beq .L666
  20586. 6364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20587. 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  20588. 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  20589. 13763 .loc 1 6366 9
  20590. 13764 00b0 7B68 ldr r3, [r7, #4]
  20591. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 356
  20592. 13765 00b2 1B68 ldr r3, [r3]
  20593. 13766 .loc 1 6366 25
  20594. 13767 00b4 1A68 ldr r2, [r3]
  20595. 13768 .loc 1 6366 9
  20596. 13769 00b6 7B68 ldr r3, [r7, #4]
  20597. 13770 00b8 1B68 ldr r3, [r3]
  20598. 13771 .loc 1 6366 25
  20599. 13772 00ba 22F48042 bic r2, r2, #16384
  20600. 13773 00be 1A60 str r2, [r3]
  20601. 6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20602. 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  20603. 13774 .loc 1 6368 13
  20604. 13775 00c0 7B68 ldr r3, [r7, #4]
  20605. 13776 00c2 9B6B ldr r3, [r3, #56]
  20606. 13777 .loc 1 6368 8
  20607. 13778 00c4 002B cmp r3, #0
  20608. 13779 00c6 20D0 beq .L667
  20609. 6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20610. 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx);
  20611. 13780 .loc 1 6370 35
  20612. 13781 00c8 7B68 ldr r3, [r7, #4]
  20613. 13782 00ca 9B6B ldr r3, [r3, #56]
  20614. 13783 00cc 1B68 ldr r3, [r3]
  20615. 13784 00ce 5B68 ldr r3, [r3, #4]
  20616. 13785 .loc 1 6370 25
  20617. 13786 00d0 9AB2 uxth r2, r3
  20618. 13787 .loc 1 6370 23
  20619. 13788 00d2 7B68 ldr r3, [r7, #4]
  20620. 13789 00d4 5A85 strh r2, [r3, #42] @ movhi
  20621. 13790 00d6 18E0 b .L667
  20622. 13791 .L666:
  20623. 6371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20624. 6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20625. 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
  20626. 13792 .loc 1 6373 12
  20627. 13793 00d8 3B69 ldr r3, [r7, #16]
  20628. 13794 00da DB0B lsrs r3, r3, #15
  20629. 13795 00dc 03F00103 and r3, r3, #1
  20630. 13796 .loc 1 6373 11
  20631. 13797 00e0 002B cmp r3, #0
  20632. 13798 00e2 12D0 beq .L667
  20633. 6374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20634. 6375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  20635. 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  20636. 13799 .loc 1 6376 9
  20637. 13800 00e4 7B68 ldr r3, [r7, #4]
  20638. 13801 00e6 1B68 ldr r3, [r3]
  20639. 13802 .loc 1 6376 25
  20640. 13803 00e8 1A68 ldr r2, [r3]
  20641. 13804 .loc 1 6376 9
  20642. 13805 00ea 7B68 ldr r3, [r7, #4]
  20643. 13806 00ec 1B68 ldr r3, [r3]
  20644. 13807 .loc 1 6376 25
  20645. 13808 00ee 22F40042 bic r2, r2, #32768
  20646. 13809 00f2 1A60 str r2, [r3]
  20647. 6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20648. 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  20649. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 357
  20650. 13810 .loc 1 6378 13
  20651. 13811 00f4 7B68 ldr r3, [r7, #4]
  20652. 13812 00f6 DB6B ldr r3, [r3, #60]
  20653. 13813 .loc 1 6378 8
  20654. 13814 00f8 002B cmp r3, #0
  20655. 13815 00fa 06D0 beq .L667
  20656. 6379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20657. 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx);
  20658. 13816 .loc 1 6380 35
  20659. 13817 00fc 7B68 ldr r3, [r7, #4]
  20660. 13818 00fe DB6B ldr r3, [r3, #60]
  20661. 13819 0100 1B68 ldr r3, [r3]
  20662. 13820 0102 5B68 ldr r3, [r3, #4]
  20663. 13821 .loc 1 6380 25
  20664. 13822 0104 9AB2 uxth r2, r3
  20665. 13823 .loc 1 6380 23
  20666. 13824 0106 7B68 ldr r3, [r7, #4]
  20667. 13825 0108 5A85 strh r2, [r3, #42] @ movhi
  20668. 13826 .L667:
  20669. 6381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20670. 6382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20671. 6383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20672. 6384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20673. 6385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
  20674. 6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20675. 6387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20676. 6388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
  20677. 6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
  20678. 13827 .loc 1 6389 7
  20679. 13828 010a 7B69 ldr r3, [r7, #20]
  20680. 13829 010c 9B08 lsrs r3, r3, #2
  20681. 13830 010e 03F00103 and r3, r3, #1
  20682. 13831 .loc 1 6389 6
  20683. 13832 0112 002B cmp r3, #0
  20684. 13833 0114 20D0 beq .L668
  20685. 6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20686. 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
  20687. 6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
  20688. 13834 .loc 1 6392 16
  20689. 13835 0116 7B69 ldr r3, [r7, #20]
  20690. 13836 0118 23F00403 bic r3, r3, #4
  20691. 13837 011c 7B61 str r3, [r7, #20]
  20692. 6393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20693. 6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  20694. 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  20695. 13838 .loc 1 6395 36
  20696. 13839 011e 7B68 ldr r3, [r7, #4]
  20697. 13840 0120 1B68 ldr r3, [r3]
  20698. 13841 .loc 1 6395 46
  20699. 13842 0122 5A6A ldr r2, [r3, #36]
  20700. 13843 .loc 1 6395 10
  20701. 13844 0124 7B68 ldr r3, [r7, #4]
  20702. 13845 0126 5B6A ldr r3, [r3, #36]
  20703. 13846 .loc 1 6395 23
  20704. 13847 0128 D2B2 uxtb r2, r2
  20705. 13848 .loc 1 6395 21
  20706. 13849 012a 1A70 strb r2, [r3]
  20707. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 358
  20708. 6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20709. 6397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  20710. 6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  20711. 13850 .loc 1 6398 9
  20712. 13851 012c 7B68 ldr r3, [r7, #4]
  20713. 13852 012e 5B6A ldr r3, [r3, #36]
  20714. 13853 .loc 1 6398 19
  20715. 13854 0130 5A1C adds r2, r3, #1
  20716. 13855 0132 7B68 ldr r3, [r7, #4]
  20717. 13856 0134 5A62 str r2, [r3, #36]
  20718. 6399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20719. 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
  20720. 13857 .loc 1 6400 14
  20721. 13858 0136 7B68 ldr r3, [r7, #4]
  20722. 13859 0138 1B8D ldrh r3, [r3, #40]
  20723. 13860 .loc 1 6400 8
  20724. 13861 013a 002B cmp r3, #0
  20725. 13862 013c 0CD0 beq .L668
  20726. 6401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20727. 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  20728. 13863 .loc 1 6402 11
  20729. 13864 013e 7B68 ldr r3, [r7, #4]
  20730. 13865 0140 1B8D ldrh r3, [r3, #40]
  20731. 13866 .loc 1 6402 21
  20732. 13867 0142 013B subs r3, r3, #1
  20733. 13868 0144 9AB2 uxth r2, r3
  20734. 13869 0146 7B68 ldr r3, [r7, #4]
  20735. 13870 0148 1A85 strh r2, [r3, #40] @ movhi
  20736. 6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  20737. 13871 .loc 1 6403 11
  20738. 13872 014a 7B68 ldr r3, [r7, #4]
  20739. 13873 014c 5B8D ldrh r3, [r3, #42] @ movhi
  20740. 13874 014e 9BB2 uxth r3, r3
  20741. 13875 .loc 1 6403 22
  20742. 13876 0150 013B subs r3, r3, #1
  20743. 13877 0152 9AB2 uxth r2, r3
  20744. 13878 0154 7B68 ldr r3, [r7, #4]
  20745. 13879 0156 5A85 strh r2, [r3, #42] @ movhi
  20746. 13880 .L668:
  20747. 6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20748. 6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20749. 6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20750. 6407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
  20751. 6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
  20752. 13881 .loc 1 6408 11
  20753. 13882 0158 7B68 ldr r3, [r7, #4]
  20754. 13883 015a 5B8D ldrh r3, [r3, #42] @ movhi
  20755. 13884 015c 9BB2 uxth r3, r3
  20756. 13885 .loc 1 6408 6
  20757. 13886 015e 002B cmp r3, #0
  20758. 13887 0160 05D0 beq .L669
  20759. 6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20760. 6410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
  20761. 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  20762. 13888 .loc 1 6411 21
  20763. 13889 0162 7B68 ldr r3, [r7, #4]
  20764. 13890 0164 5B6C ldr r3, [r3, #68]
  20765. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 359
  20766. 13891 0166 43F00402 orr r2, r3, #4
  20767. 13892 016a 7B68 ldr r3, [r7, #4]
  20768. 13893 016c 5A64 str r2, [r3, #68]
  20769. 13894 .L669:
  20770. 6412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20771. 6413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20772. 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
  20773. 13895 .loc 1 6414 8
  20774. 13896 016e 7B69 ldr r3, [r7, #20]
  20775. 13897 0170 1B09 lsrs r3, r3, #4
  20776. 13898 0172 03F00103 and r3, r3, #1
  20777. 13899 .loc 1 6414 6
  20778. 13900 0176 002B cmp r3, #0
  20779. 13901 0178 4AD0 beq .L670
  20780. 6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
  20781. 13902 .loc 1 6415 8 discriminator 1
  20782. 13903 017a 3B69 ldr r3, [r7, #16]
  20783. 13904 017c 1B09 lsrs r3, r3, #4
  20784. 13905 017e 03F00103 and r3, r3, #1
  20785. 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
  20786. 13906 .loc 1 6414 58 discriminator 1
  20787. 13907 0182 002B cmp r3, #0
  20788. 13908 0184 44D0 beq .L670
  20789. 6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20790. 6417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
  20791. 6418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
  20792. 6419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
  20793. 6420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
  20794. 6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
  20795. 13909 .loc 1 6421 13
  20796. 13910 0186 7B68 ldr r3, [r7, #4]
  20797. 13911 0188 5B8D ldrh r3, [r3, #42] @ movhi
  20798. 13912 018a 9BB2 uxth r3, r3
  20799. 13913 .loc 1 6421 8
  20800. 13914 018c 002B cmp r3, #0
  20801. 13915 018e 28D1 bne .L671
  20802. 6422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20803. 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
  20804. 13916 .loc 1 6423 16
  20805. 13917 0190 7B68 ldr r3, [r7, #4]
  20806. 13918 0192 93F84130 ldrb r3, [r3, #65]
  20807. 13919 0196 DBB2 uxtb r3, r3
  20808. 13920 .loc 1 6423 10
  20809. 13921 0198 282B cmp r3, #40
  20810. 13922 019a 08D1 bne .L672
  20811. 13923 .loc 1 6423 49 discriminator 1
  20812. 13924 019c FB68 ldr r3, [r7, #12]
  20813. 13925 019e B3F1007F cmp r3, #33554432
  20814. 13926 01a2 04D1 bne .L672
  20815. 6424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
  20816. 6425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
  20817. 6426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20818. 6427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
  20819. 6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
  20820. 13927 .loc 1 6428 9
  20821. 13928 01a4 7969 ldr r1, [r7, #20]
  20822. 13929 01a6 7868 ldr r0, [r7, #4]
  20823. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 360
  20824. 13930 01a8 FFF7FEFF bl I2C_ITListenCplt
  20825. 13931 01ac 30E0 b .L670
  20826. 13932 .L672:
  20827. 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20828. 6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
  20829. 13933 .loc 1 6430 21
  20830. 13934 01ae 7B68 ldr r3, [r7, #4]
  20831. 13935 01b0 93F84130 ldrb r3, [r3, #65]
  20832. 13936 01b4 DBB2 uxtb r3, r3
  20833. 13937 .loc 1 6430 15
  20834. 13938 01b6 292B cmp r3, #41
  20835. 13939 01b8 0ED1 bne .L674
  20836. 13940 .loc 1 6430 62 discriminator 1
  20837. 13941 01ba FB68 ldr r3, [r7, #12]
  20838. 13942 01bc 13F5803F cmn r3, #65536
  20839. 13943 01c0 0AD0 beq .L674
  20840. 6431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20841. 6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  20842. 6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  20843. 13944 .loc 1 6433 9
  20844. 13945 01c2 7B68 ldr r3, [r7, #4]
  20845. 13946 01c4 1B68 ldr r3, [r3]
  20846. 13947 01c6 1022 movs r2, #16
  20847. 13948 01c8 DA61 str r2, [r3, #28]
  20848. 6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20849. 6435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  20850. 6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  20851. 13949 .loc 1 6436 9
  20852. 13950 01ca 7868 ldr r0, [r7, #4]
  20853. 13951 01cc FFF7FEFF bl I2C_Flush_TXDR
  20854. 6437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20855. 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
  20856. 6439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
  20857. 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  20858. 13952 .loc 1 6440 9
  20859. 13953 01d0 7868 ldr r0, [r7, #4]
  20860. 13954 01d2 FFF7FEFF bl I2C_ITSlaveSeqCplt
  20861. 13955 01d6 1BE0 b .L670
  20862. 13956 .L674:
  20863. 6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20864. 6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20865. 6443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20866. 6444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  20867. 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  20868. 13957 .loc 1 6445 9
  20869. 13958 01d8 7B68 ldr r3, [r7, #4]
  20870. 13959 01da 1B68 ldr r3, [r3]
  20871. 13960 01dc 1022 movs r2, #16
  20872. 13961 01de DA61 str r2, [r3, #28]
  20873. 13962 01e0 16E0 b .L670
  20874. 13963 .L671:
  20875. 6446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20876. 6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20877. 6448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  20878. 6449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20879. 6450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
  20880. 6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  20881. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 361
  20882. 6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  20883. 13964 .loc 1 6452 7
  20884. 13965 01e2 7B68 ldr r3, [r7, #4]
  20885. 13966 01e4 1B68 ldr r3, [r3]
  20886. 13967 01e6 1022 movs r2, #16
  20887. 13968 01e8 DA61 str r2, [r3, #28]
  20888. 6453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20889. 6454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
  20890. 6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  20891. 13969 .loc 1 6455 23
  20892. 13970 01ea 7B68 ldr r3, [r7, #4]
  20893. 13971 01ec 5B6C ldr r3, [r3, #68]
  20894. 13972 01ee 43F00402 orr r2, r3, #4
  20895. 13973 01f2 7B68 ldr r3, [r7, #4]
  20896. 13974 01f4 5A64 str r2, [r3, #68]
  20897. 6456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20898. 6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
  20899. 13975 .loc 1 6457 10
  20900. 13976 01f6 FB68 ldr r3, [r7, #12]
  20901. 13977 01f8 002B cmp r3, #0
  20902. 13978 01fa 03D0 beq .L675
  20903. 13979 .loc 1 6457 43 discriminator 1
  20904. 13980 01fc FB68 ldr r3, [r7, #12]
  20905. 13981 01fe B3F1807F cmp r3, #16777216
  20906. 13982 0202 05D1 bne .L670
  20907. 13983 .L675:
  20908. 6458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20909. 6459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20910. 6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
  20911. 13984 .loc 1 6460 9
  20912. 13985 0204 7B68 ldr r3, [r7, #4]
  20913. 13986 0206 5B6C ldr r3, [r3, #68]
  20914. 13987 0208 1946 mov r1, r3
  20915. 13988 020a 7868 ldr r0, [r7, #4]
  20916. 13989 020c FFF7FEFF bl I2C_ITError
  20917. 13990 .L670:
  20918. 6461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20919. 6462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20920. 6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20921. 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20922. 6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  20923. 13991 .loc 1 6465 14
  20924. 13992 0210 7B68 ldr r3, [r7, #4]
  20925. 13993 0212 0022 movs r2, #0
  20926. 13994 0214 83F84220 strb r2, [r3, #66]
  20927. 6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  20928. 13995 .loc 1 6466 17
  20929. 13996 0218 7B68 ldr r3, [r7, #4]
  20930. 13997 021a 0022 movs r2, #0
  20931. 13998 021c 5A63 str r2, [r3, #52]
  20932. 6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20933. 6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
  20934. 13999 .loc 1 6468 11
  20935. 14000 021e 7B68 ldr r3, [r7, #4]
  20936. 14001 0220 5B6C ldr r3, [r3, #68]
  20937. 14002 .loc 1 6468 6
  20938. 14003 0222 002B cmp r3, #0
  20939. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 362
  20940. 14004 0224 10D0 beq .L676
  20941. 6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20942. 6470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20943. 6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
  20944. 14005 .loc 1 6471 5
  20945. 14006 0226 7B68 ldr r3, [r7, #4]
  20946. 14007 0228 5B6C ldr r3, [r3, #68]
  20947. 14008 022a 1946 mov r1, r3
  20948. 14009 022c 7868 ldr r0, [r7, #4]
  20949. 14010 022e FFF7FEFF bl I2C_ITError
  20950. 6472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20951. 6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
  20952. 6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
  20953. 14011 .loc 1 6474 13
  20954. 14012 0232 7B68 ldr r3, [r7, #4]
  20955. 14013 0234 93F84130 ldrb r3, [r3, #65]
  20956. 14014 0238 DBB2 uxtb r3, r3
  20957. 14015 .loc 1 6474 8
  20958. 14016 023a 282B cmp r3, #40
  20959. 14017 023c 41D1 bne .L680
  20960. 6475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20961. 6476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
  20962. 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
  20963. 14018 .loc 1 6477 7
  20964. 14019 023e 7969 ldr r1, [r7, #20]
  20965. 14020 0240 7868 ldr r0, [r7, #4]
  20966. 14021 0242 FFF7FEFF bl I2C_ITListenCplt
  20967. 6478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20968. 6479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20969. 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
  20970. 6481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20971. 6482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */
  20972. 6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  20973. 6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20974. 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  20975. 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  20976. 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  20977. 6488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20978. 6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  20979. 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  20980. 6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20981. 6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
  20982. 6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  20983. 6494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
  20984. 6495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  20985. 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
  20986. 6497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  20987. 6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  20988. 6499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20989. 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
  20990. 6501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  20991. 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  20992. 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  20993. 6504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20994. 6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  20995. 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  20996. 6507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  20997. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 363
  20998. 6508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  20999. 6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  21000. 6510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
  21001. 6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  21002. 6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
  21003. 6513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21004. 6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21005. 6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  21006. 6516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21007. 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  21008. 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  21009. 6519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21010. 6520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  21011. 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  21012. 6522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21013. 6523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  21014. 6524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  21015. 6525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
  21016. 6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  21017. 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
  21018. 6528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21019. 6529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21020. 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21021. 14022 .loc 1 6530 1
  21022. 14023 0246 3CE0 b .L680
  21023. 14024 .L676:
  21024. 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21025. 14025 .loc 1 6480 16
  21026. 14026 0248 7B68 ldr r3, [r7, #4]
  21027. 14027 024a DB6A ldr r3, [r3, #44]
  21028. 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21029. 14028 .loc 1 6480 11
  21030. 14029 024c 13F5803F cmn r3, #65536
  21031. 14030 0250 14D0 beq .L678
  21032. 6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21033. 14031 .loc 1 6483 5
  21034. 14032 0252 7868 ldr r0, [r7, #4]
  21035. 14033 0254 FFF7FEFF bl I2C_ITSlaveSeqCplt
  21036. 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  21037. 14034 .loc 1 6485 23
  21038. 14035 0258 7B68 ldr r3, [r7, #4]
  21039. 14036 025a 1D4A ldr r2, .L681+4
  21040. 14037 025c DA62 str r2, [r3, #44]
  21041. 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  21042. 14038 .loc 1 6486 17
  21043. 14039 025e 7B68 ldr r3, [r7, #4]
  21044. 14040 0260 2022 movs r2, #32
  21045. 14041 0262 83F84120 strb r2, [r3, #65]
  21046. 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21047. 14042 .loc 1 6487 25
  21048. 14043 0266 7B68 ldr r3, [r7, #4]
  21049. 14044 0268 0022 movs r2, #0
  21050. 14045 026a 1A63 str r2, [r3, #48]
  21051. 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21052. 14046 .loc 1 6490 5
  21053. 14047 026c 7B68 ldr r3, [r7, #4]
  21054. 14048 026e 0022 movs r2, #0
  21055. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 364
  21056. 14049 0270 83F84020 strb r2, [r3, #64]
  21057. 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21058. 14050 .loc 1 6496 5
  21059. 14051 0274 7868 ldr r0, [r7, #4]
  21060. 14052 0276 FFF7FEFF bl HAL_I2C_ListenCpltCallback
  21061. 14053 .loc 1 6530 1
  21062. 14054 027a 22E0 b .L680
  21063. 14055 .L678:
  21064. 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21065. 14056 .loc 1 6500 16
  21066. 14057 027c 7B68 ldr r3, [r7, #4]
  21067. 14058 027e 93F84130 ldrb r3, [r3, #65]
  21068. 14059 0282 DBB2 uxtb r3, r3
  21069. 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21070. 14060 .loc 1 6500 11
  21071. 14061 0284 222B cmp r3, #34
  21072. 14062 0286 0ED1 bne .L679
  21073. 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  21074. 14063 .loc 1 6502 17
  21075. 14064 0288 7B68 ldr r3, [r7, #4]
  21076. 14065 028a 2022 movs r2, #32
  21077. 14066 028c 83F84120 strb r2, [r3, #65]
  21078. 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21079. 14067 .loc 1 6503 25
  21080. 14068 0290 7B68 ldr r3, [r7, #4]
  21081. 14069 0292 0022 movs r2, #0
  21082. 14070 0294 1A63 str r2, [r3, #48]
  21083. 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21084. 14071 .loc 1 6506 5
  21085. 14072 0296 7B68 ldr r3, [r7, #4]
  21086. 14073 0298 0022 movs r2, #0
  21087. 14074 029a 83F84020 strb r2, [r3, #64]
  21088. 6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21089. 14075 .loc 1 6512 5
  21090. 14076 029e 7868 ldr r0, [r7, #4]
  21091. 14077 02a0 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
  21092. 14078 .loc 1 6530 1
  21093. 14079 02a4 0DE0 b .L680
  21094. 14080 .L679:
  21095. 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  21096. 14081 .loc 1 6517 17
  21097. 14082 02a6 7B68 ldr r3, [r7, #4]
  21098. 14083 02a8 2022 movs r2, #32
  21099. 14084 02aa 83F84120 strb r2, [r3, #65]
  21100. 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21101. 14085 .loc 1 6518 25
  21102. 14086 02ae 7B68 ldr r3, [r7, #4]
  21103. 14087 02b0 0022 movs r2, #0
  21104. 14088 02b2 1A63 str r2, [r3, #48]
  21105. 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21106. 14089 .loc 1 6521 5
  21107. 14090 02b4 7B68 ldr r3, [r7, #4]
  21108. 14091 02b6 0022 movs r2, #0
  21109. 14092 02b8 83F84020 strb r2, [r3, #64]
  21110. 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21111. 14093 .loc 1 6527 5
  21112. 14094 02bc 7868 ldr r0, [r7, #4]
  21113. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 365
  21114. 14095 02be FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
  21115. 14096 .L680:
  21116. 14097 .loc 1 6530 1
  21117. 14098 02c2 00BF nop
  21118. 14099 02c4 1837 adds r7, r7, #24
  21119. 14100 .LCFI323:
  21120. 14101 .cfi_def_cfa_offset 8
  21121. 14102 02c6 BD46 mov sp, r7
  21122. 14103 .LCFI324:
  21123. 14104 .cfi_def_cfa_register 13
  21124. 14105 @ sp needed
  21125. 14106 02c8 80BD pop {r7, pc}
  21126. 14107 .L682:
  21127. 14108 02ca 00BF .align 2
  21128. 14109 .L681:
  21129. 14110 02cc 00E800FE .word -33495040
  21130. 14111 02d0 0000FFFF .word -65536
  21131. 14112 .cfi_endproc
  21132. 14113 .LFE191:
  21133. 14115 .section .text.I2C_ITListenCplt,"ax",%progbits
  21134. 14116 .align 1
  21135. 14117 .syntax unified
  21136. 14118 .thumb
  21137. 14119 .thumb_func
  21138. 14121 I2C_ITListenCplt:
  21139. 14122 .LFB192:
  21140. 6531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21141. 6532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  21142. 6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Listen complete process.
  21143. 6534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  21144. 6535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
  21145. 6536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  21146. 6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  21147. 6538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
  21148. 6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21149. 14123 .loc 1 6539 1
  21150. 14124 .cfi_startproc
  21151. 14125 @ args = 0, pretend = 0, frame = 8
  21152. 14126 @ frame_needed = 1, uses_anonymous_args = 0
  21153. 14127 0000 80B5 push {r7, lr}
  21154. 14128 .LCFI325:
  21155. 14129 .cfi_def_cfa_offset 8
  21156. 14130 .cfi_offset 7, -8
  21157. 14131 .cfi_offset 14, -4
  21158. 14132 0002 82B0 sub sp, sp, #8
  21159. 14133 .LCFI326:
  21160. 14134 .cfi_def_cfa_offset 16
  21161. 14135 0004 00AF add r7, sp, #0
  21162. 14136 .LCFI327:
  21163. 14137 .cfi_def_cfa_register 7
  21164. 14138 0006 7860 str r0, [r7, #4]
  21165. 14139 0008 3960 str r1, [r7]
  21166. 6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
  21167. 6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  21168. 14140 .loc 1 6541 21
  21169. 14141 000a 7B68 ldr r3, [r7, #4]
  21170. 14142 000c 264A ldr r2, .L685
  21171. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 366
  21172. 14143 000e DA62 str r2, [r3, #44]
  21173. 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  21174. 14144 .loc 1 6542 23
  21175. 14145 0010 7B68 ldr r3, [r7, #4]
  21176. 14146 0012 0022 movs r2, #0
  21177. 14147 0014 1A63 str r2, [r3, #48]
  21178. 6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  21179. 14148 .loc 1 6543 15
  21180. 14149 0016 7B68 ldr r3, [r7, #4]
  21181. 14150 0018 2022 movs r2, #32
  21182. 14151 001a 83F84120 strb r2, [r3, #65]
  21183. 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  21184. 14152 .loc 1 6544 14
  21185. 14153 001e 7B68 ldr r3, [r7, #4]
  21186. 14154 0020 0022 movs r2, #0
  21187. 14155 0022 83F84220 strb r2, [r3, #66]
  21188. 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  21189. 14156 .loc 1 6545 17
  21190. 14157 0026 7B68 ldr r3, [r7, #4]
  21191. 14158 0028 0022 movs r2, #0
  21192. 14159 002a 5A63 str r2, [r3, #52]
  21193. 6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21194. 6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
  21195. 6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
  21196. 14160 .loc 1 6548 7
  21197. 14161 002c 3B68 ldr r3, [r7]
  21198. 14162 002e 9B08 lsrs r3, r3, #2
  21199. 14163 0030 03F00103 and r3, r3, #1
  21200. 14164 .loc 1 6548 6
  21201. 14165 0034 002B cmp r3, #0
  21202. 14166 0036 22D0 beq .L684
  21203. 6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21204. 6550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
  21205. 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
  21206. 14167 .loc 1 6551 36
  21207. 14168 0038 7B68 ldr r3, [r7, #4]
  21208. 14169 003a 1B68 ldr r3, [r3]
  21209. 14170 .loc 1 6551 46
  21210. 14171 003c 5A6A ldr r2, [r3, #36]
  21211. 14172 .loc 1 6551 10
  21212. 14173 003e 7B68 ldr r3, [r7, #4]
  21213. 14174 0040 5B6A ldr r3, [r3, #36]
  21214. 14175 .loc 1 6551 23
  21215. 14176 0042 D2B2 uxtb r2, r2
  21216. 14177 .loc 1 6551 21
  21217. 14178 0044 1A70 strb r2, [r3]
  21218. 6552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21219. 6553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
  21220. 6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
  21221. 14179 .loc 1 6554 9
  21222. 14180 0046 7B68 ldr r3, [r7, #4]
  21223. 14181 0048 5B6A ldr r3, [r3, #36]
  21224. 14182 .loc 1 6554 19
  21225. 14183 004a 5A1C adds r2, r3, #1
  21226. 14184 004c 7B68 ldr r3, [r7, #4]
  21227. 14185 004e 5A62 str r2, [r3, #36]
  21228. 6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21229. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 367
  21230. 6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
  21231. 14186 .loc 1 6556 14
  21232. 14187 0050 7B68 ldr r3, [r7, #4]
  21233. 14188 0052 1B8D ldrh r3, [r3, #40]
  21234. 14189 .loc 1 6556 8
  21235. 14190 0054 002B cmp r3, #0
  21236. 14191 0056 12D0 beq .L684
  21237. 6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21238. 6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
  21239. 14192 .loc 1 6558 11
  21240. 14193 0058 7B68 ldr r3, [r7, #4]
  21241. 14194 005a 1B8D ldrh r3, [r3, #40]
  21242. 14195 .loc 1 6558 21
  21243. 14196 005c 013B subs r3, r3, #1
  21244. 14197 005e 9AB2 uxth r2, r3
  21245. 14198 0060 7B68 ldr r3, [r7, #4]
  21246. 14199 0062 1A85 strh r2, [r3, #40] @ movhi
  21247. 6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
  21248. 14200 .loc 1 6559 11
  21249. 14201 0064 7B68 ldr r3, [r7, #4]
  21250. 14202 0066 5B8D ldrh r3, [r3, #42] @ movhi
  21251. 14203 0068 9BB2 uxth r3, r3
  21252. 14204 .loc 1 6559 22
  21253. 14205 006a 013B subs r3, r3, #1
  21254. 14206 006c 9AB2 uxth r2, r3
  21255. 14207 006e 7B68 ldr r3, [r7, #4]
  21256. 14208 0070 5A85 strh r2, [r3, #42] @ movhi
  21257. 6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21258. 6561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
  21259. 6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  21260. 14209 .loc 1 6562 23
  21261. 14210 0072 7B68 ldr r3, [r7, #4]
  21262. 14211 0074 5B6C ldr r3, [r3, #68]
  21263. 14212 0076 43F00402 orr r2, r3, #4
  21264. 14213 007a 7B68 ldr r3, [r7, #4]
  21265. 14214 007c 5A64 str r2, [r3, #68]
  21266. 14215 .L684:
  21267. 6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21268. 6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21269. 6565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21270. 6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all Interrupts*/
  21271. 6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
  21272. 14216 .loc 1 6567 3
  21273. 14217 007e 48F20301 movw r1, #32771
  21274. 14218 0082 7868 ldr r0, [r7, #4]
  21275. 14219 0084 FFF7FEFF bl I2C_Disable_IRQ
  21276. 6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21277. 6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
  21278. 6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  21279. 14220 .loc 1 6570 3
  21280. 14221 0088 7B68 ldr r3, [r7, #4]
  21281. 14222 008a 1B68 ldr r3, [r3]
  21282. 14223 008c 1022 movs r2, #16
  21283. 14224 008e DA61 str r2, [r3, #28]
  21284. 6571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21285. 6572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  21286. 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  21287. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 368
  21288. 14225 .loc 1 6573 3
  21289. 14226 0090 7B68 ldr r3, [r7, #4]
  21290. 14227 0092 0022 movs r2, #0
  21291. 14228 0094 83F84020 strb r2, [r3, #64]
  21292. 6574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21293. 6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
  21294. 6576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  21295. 6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
  21296. 6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  21297. 6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
  21298. 14229 .loc 1 6579 3
  21299. 14230 0098 7868 ldr r0, [r7, #4]
  21300. 14231 009a FFF7FEFF bl HAL_I2C_ListenCpltCallback
  21301. 6580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21302. 6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21303. 14232 .loc 1 6581 1
  21304. 14233 009e 00BF nop
  21305. 14234 00a0 0837 adds r7, r7, #8
  21306. 14235 .LCFI328:
  21307. 14236 .cfi_def_cfa_offset 8
  21308. 14237 00a2 BD46 mov sp, r7
  21309. 14238 .LCFI329:
  21310. 14239 .cfi_def_cfa_register 13
  21311. 14240 @ sp needed
  21312. 14241 00a4 80BD pop {r7, pc}
  21313. 14242 .L686:
  21314. 14243 00a6 00BF .align 2
  21315. 14244 .L685:
  21316. 14245 00a8 0000FFFF .word -65536
  21317. 14246 .cfi_endproc
  21318. 14247 .LFE192:
  21319. 14249 .section .text.I2C_ITError,"ax",%progbits
  21320. 14250 .align 1
  21321. 14251 .syntax unified
  21322. 14252 .thumb
  21323. 14253 .thumb_func
  21324. 14255 I2C_ITError:
  21325. 14256 .LFB193:
  21326. 6582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21327. 6583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  21328. 6584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C interrupts error process.
  21329. 6585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  21330. 6586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
  21331. 6587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  21332. 6588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  21333. 6589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
  21334. 6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21335. 14257 .loc 1 6590 1
  21336. 14258 .cfi_startproc
  21337. 14259 @ args = 0, pretend = 0, frame = 16
  21338. 14260 @ frame_needed = 1, uses_anonymous_args = 0
  21339. 14261 0000 80B5 push {r7, lr}
  21340. 14262 .LCFI330:
  21341. 14263 .cfi_def_cfa_offset 8
  21342. 14264 .cfi_offset 7, -8
  21343. 14265 .cfi_offset 14, -4
  21344. 14266 0002 84B0 sub sp, sp, #16
  21345. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 369
  21346. 14267 .LCFI331:
  21347. 14268 .cfi_def_cfa_offset 24
  21348. 14269 0004 00AF add r7, sp, #0
  21349. 14270 .LCFI332:
  21350. 14271 .cfi_def_cfa_register 7
  21351. 14272 0006 7860 str r0, [r7, #4]
  21352. 14273 0008 3960 str r1, [r7]
  21353. 6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
  21354. 14274 .loc 1 6591 24
  21355. 14275 000a 7B68 ldr r3, [r7, #4]
  21356. 14276 000c 93F84130 ldrb r3, [r3, #65]
  21357. 14277 0010 FB73 strb r3, [r7, #15]
  21358. 6592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21359. 6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate;
  21360. 6594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21361. 6595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
  21362. 6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  21363. 14278 .loc 1 6596 23
  21364. 14279 0012 7B68 ldr r3, [r7, #4]
  21365. 14280 0014 0022 movs r2, #0
  21366. 14281 0016 83F84220 strb r2, [r3, #66]
  21367. 6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
  21368. 14282 .loc 1 6597 23
  21369. 14283 001a 7B68 ldr r3, [r7, #4]
  21370. 14284 001c 6D4A ldr r2, .L707
  21371. 14285 001e DA62 str r2, [r3, #44]
  21372. 6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
  21373. 14286 .loc 1 6598 23
  21374. 14287 0020 7B68 ldr r3, [r7, #4]
  21375. 14288 0022 0022 movs r2, #0
  21376. 14289 0024 5A85 strh r2, [r3, #42] @ movhi
  21377. 6599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21378. 6600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set new error code */
  21379. 6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
  21380. 14290 .loc 1 6601 19
  21381. 14291 0026 7B68 ldr r3, [r7, #4]
  21382. 14292 0028 5A6C ldr r2, [r3, #68]
  21383. 14293 002a 3B68 ldr r3, [r7]
  21384. 14294 002c 1A43 orrs r2, r2, r3
  21385. 14295 002e 7B68 ldr r3, [r7, #4]
  21386. 14296 0030 5A64 str r2, [r3, #68]
  21387. 6602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21388. 6603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
  21389. 6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
  21390. 14297 .loc 1 6604 6
  21391. 14298 0032 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  21392. 14299 0034 282B cmp r3, #40
  21393. 14300 0036 05D0 beq .L688
  21394. 14301 .loc 1 6604 50 discriminator 1
  21395. 14302 0038 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  21396. 14303 003a 292B cmp r3, #41
  21397. 14304 003c 02D0 beq .L688
  21398. 6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
  21399. 14305 .loc 1 6605 50
  21400. 14306 003e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
  21401. 14307 0040 2A2B cmp r3, #42
  21402. 14308 0042 0BD1 bne .L689
  21403. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 370
  21404. 14309 .L688:
  21405. 6606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
  21406. 6607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21407. 6608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
  21408. 6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
  21409. 14310 .loc 1 6609 5
  21410. 14311 0044 0321 movs r1, #3
  21411. 14312 0046 7868 ldr r0, [r7, #4]
  21412. 14313 0048 FFF7FEFF bl I2C_Disable_IRQ
  21413. 6610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21414. 6611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
  21415. 6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
  21416. 14314 .loc 1 6612 25
  21417. 14315 004c 7B68 ldr r3, [r7, #4]
  21418. 14316 004e 2822 movs r2, #40
  21419. 14317 0050 83F84120 strb r2, [r3, #65]
  21420. 6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
  21421. 14318 .loc 1 6613 25
  21422. 14319 0054 7B68 ldr r3, [r7, #4]
  21423. 14320 0056 604A ldr r2, .L707+4
  21424. 14321 0058 5A63 str r2, [r3, #52]
  21425. 14322 005a 30E0 b .L690
  21426. 14323 .L689:
  21427. 6614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21428. 6615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  21429. 6616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21430. 6617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts */
  21431. 6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
  21432. 14324 .loc 1 6618 5
  21433. 14325 005c 48F20301 movw r1, #32771
  21434. 14326 0060 7868 ldr r0, [r7, #4]
  21435. 14327 0062 FFF7FEFF bl I2C_Disable_IRQ
  21436. 6619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21437. 6620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  21438. 6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  21439. 14328 .loc 1 6621 5
  21440. 14329 0066 7868 ldr r0, [r7, #4]
  21441. 14330 0068 FFF7FEFF bl I2C_Flush_TXDR
  21442. 6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21443. 6623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */
  21444. 6624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This change will be do later */
  21445. 6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
  21446. 14331 .loc 1 6625 13
  21447. 14332 006c 7B68 ldr r3, [r7, #4]
  21448. 14333 006e 93F84130 ldrb r3, [r3, #65]
  21449. 14334 0072 DBB2 uxtb r3, r3
  21450. 14335 .loc 1 6625 8
  21451. 14336 0074 602B cmp r3, #96
  21452. 14337 0076 1FD0 beq .L691
  21453. 6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21454. 6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
  21455. 6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  21456. 14338 .loc 1 6628 27
  21457. 14339 0078 7B68 ldr r3, [r7, #4]
  21458. 14340 007a 2022 movs r2, #32
  21459. 14341 007c 83F84120 strb r2, [r3, #65]
  21460. 6629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21461. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 371
  21462. 6630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
  21463. 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
  21464. 14342 .loc 1 6631 11
  21465. 14343 0080 7B68 ldr r3, [r7, #4]
  21466. 14344 0082 1B68 ldr r3, [r3]
  21467. 14345 0084 9B69 ldr r3, [r3, #24]
  21468. 14346 0086 03F02003 and r3, r3, #32
  21469. 14347 .loc 1 6631 10
  21470. 14348 008a 202B cmp r3, #32
  21471. 14349 008c 14D1 bne .L691
  21472. 6632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21473. 6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
  21474. 14350 .loc 1 6633 13
  21475. 14351 008e 7B68 ldr r3, [r7, #4]
  21476. 14352 0090 1B68 ldr r3, [r3]
  21477. 14353 0092 9B69 ldr r3, [r3, #24]
  21478. 14354 0094 03F01003 and r3, r3, #16
  21479. 14355 .loc 1 6633 12
  21480. 14356 0098 102B cmp r3, #16
  21481. 14357 009a 09D1 bne .L692
  21482. 6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21483. 6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  21484. 14358 .loc 1 6635 11
  21485. 14359 009c 7B68 ldr r3, [r7, #4]
  21486. 14360 009e 1B68 ldr r3, [r3]
  21487. 14361 00a0 1022 movs r2, #16
  21488. 14362 00a2 DA61 str r2, [r3, #28]
  21489. 6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
  21490. 14363 .loc 1 6636 27
  21491. 14364 00a4 7B68 ldr r3, [r7, #4]
  21492. 14365 00a6 5B6C ldr r3, [r3, #68]
  21493. 14366 00a8 43F00402 orr r2, r3, #4
  21494. 14367 00ac 7B68 ldr r3, [r7, #4]
  21495. 14368 00ae 5A64 str r2, [r3, #68]
  21496. 14369 .L692:
  21497. 6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21498. 6638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21499. 6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  21500. 6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  21501. 14370 .loc 1 6640 9
  21502. 14371 00b0 7B68 ldr r3, [r7, #4]
  21503. 14372 00b2 1B68 ldr r3, [r3]
  21504. 14373 00b4 2022 movs r2, #32
  21505. 14374 00b6 DA61 str r2, [r3, #28]
  21506. 14375 .L691:
  21507. 6641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21508. 6642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21509. 6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21510. 6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
  21511. 14376 .loc 1 6644 25
  21512. 14377 00b8 7B68 ldr r3, [r7, #4]
  21513. 14378 00ba 0022 movs r2, #0
  21514. 14379 00bc 5A63 str r2, [r3, #52]
  21515. 14380 .L690:
  21516. 6645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21517. 6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21518. 6647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
  21519. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 372
  21520. 6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
  21521. 14381 .loc 1 6648 20
  21522. 14382 00be 7B68 ldr r3, [r7, #4]
  21523. 14383 00c0 1B6B ldr r3, [r3, #48]
  21524. 14384 00c2 BB60 str r3, [r7, #8]
  21525. 6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21526. 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
  21527. 14385 .loc 1 6650 12
  21528. 14386 00c4 7B68 ldr r3, [r7, #4]
  21529. 14387 00c6 9B6B ldr r3, [r3, #56]
  21530. 14388 .loc 1 6650 6
  21531. 14389 00c8 002B cmp r3, #0
  21532. 14390 00ca 39D0 beq .L693
  21533. 14391 .loc 1 6650 30 discriminator 1
  21534. 14392 00cc BB68 ldr r3, [r7, #8]
  21535. 14393 00ce 112B cmp r3, #17
  21536. 14394 00d0 02D0 beq .L694
  21537. 14395 .loc 1 6650 81 discriminator 2
  21538. 14396 00d2 BB68 ldr r3, [r7, #8]
  21539. 14397 00d4 212B cmp r3, #33
  21540. 14398 00d6 33D1 bne .L693
  21541. 14399 .L694:
  21542. 6651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
  21543. 6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21544. 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
  21545. 14400 .loc 1 6653 14
  21546. 14401 00d8 7B68 ldr r3, [r7, #4]
  21547. 14402 00da 1B68 ldr r3, [r3]
  21548. 14403 .loc 1 6653 24
  21549. 14404 00dc 1B68 ldr r3, [r3]
  21550. 14405 .loc 1 6653 30
  21551. 14406 00de 03F48043 and r3, r3, #16384
  21552. 14407 .loc 1 6653 8
  21553. 14408 00e2 B3F5804F cmp r3, #16384
  21554. 14409 00e6 07D1 bne .L695
  21555. 6654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21556. 6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  21557. 14410 .loc 1 6655 11
  21558. 14411 00e8 7B68 ldr r3, [r7, #4]
  21559. 14412 00ea 1B68 ldr r3, [r3]
  21560. 14413 .loc 1 6655 27
  21561. 14414 00ec 1A68 ldr r2, [r3]
  21562. 14415 .loc 1 6655 11
  21563. 14416 00ee 7B68 ldr r3, [r7, #4]
  21564. 14417 00f0 1B68 ldr r3, [r3]
  21565. 14418 .loc 1 6655 27
  21566. 14419 00f2 22F48042 bic r2, r2, #16384
  21567. 14420 00f6 1A60 str r2, [r3]
  21568. 14421 .L695:
  21569. 6656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21570. 6657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21571. 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
  21572. 14422 .loc 1 6658 9
  21573. 14423 00f8 7B68 ldr r3, [r7, #4]
  21574. 14424 00fa 9B6B ldr r3, [r3, #56]
  21575. 14425 00fc 1846 mov r0, r3
  21576. 14426 00fe FFF7FEFF bl HAL_DMA_GetState
  21577. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 373
  21578. 14427 0102 0346 mov r3, r0
  21579. 14428 .loc 1 6658 8
  21580. 14429 0104 012B cmp r3, #1
  21581. 14430 0106 17D0 beq .L696
  21582. 6659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21583. 6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  21584. 6661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  21585. 6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
  21586. 14431 .loc 1 6662 11
  21587. 14432 0108 7B68 ldr r3, [r7, #4]
  21588. 14433 010a 9B6B ldr r3, [r3, #56]
  21589. 14434 .loc 1 6662 39
  21590. 14435 010c 334A ldr r2, .L707+8
  21591. 14436 010e 5A63 str r2, [r3, #52]
  21592. 6663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21593. 6664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  21594. 6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  21595. 14437 .loc 1 6665 7
  21596. 14438 0110 7B68 ldr r3, [r7, #4]
  21597. 14439 0112 0022 movs r2, #0
  21598. 14440 0114 83F84020 strb r2, [r3, #64]
  21599. 6666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21600. 6667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
  21601. 6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
  21602. 14441 .loc 1 6668 11
  21603. 14442 0118 7B68 ldr r3, [r7, #4]
  21604. 14443 011a 9B6B ldr r3, [r3, #56]
  21605. 14444 011c 1846 mov r0, r3
  21606. 14445 011e FFF7FEFF bl HAL_DMA_Abort_IT
  21607. 14446 0122 0346 mov r3, r0
  21608. 14447 .loc 1 6668 10
  21609. 14448 0124 002B cmp r3, #0
  21610. 14449 0126 4DD0 beq .L704
  21611. 6669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21612. 6670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
  21613. 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
  21614. 14450 .loc 1 6671 13
  21615. 14451 0128 7B68 ldr r3, [r7, #4]
  21616. 14452 012a 9B6B ldr r3, [r3, #56]
  21617. 14453 .loc 1 6671 21
  21618. 14454 012c 5B6B ldr r3, [r3, #52]
  21619. 14455 .loc 1 6671 45
  21620. 14456 012e 7A68 ldr r2, [r7, #4]
  21621. 14457 0130 926B ldr r2, [r2, #56]
  21622. 14458 .loc 1 6671 9
  21623. 14459 0132 1046 mov r0, r2
  21624. 14460 0134 9847 blx r3
  21625. 14461 .LVL7:
  21626. 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21627. 14462 .loc 1 6658 8
  21628. 14463 0136 45E0 b .L704
  21629. 14464 .L696:
  21630. 6672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21631. 6673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21632. 6674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  21633. 6675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21634. 6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
  21635. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 374
  21636. 14465 .loc 1 6676 7
  21637. 14466 0138 7868 ldr r0, [r7, #4]
  21638. 14467 013a FFF7FEFF bl I2C_TreatErrorCallback
  21639. 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21640. 14468 .loc 1 6658 8
  21641. 14469 013e 41E0 b .L704
  21642. 14470 .L693:
  21643. 6677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21644. 6678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21645. 6679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
  21646. 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \
  21647. 14471 .loc 1 6680 17
  21648. 14472 0140 7B68 ldr r3, [r7, #4]
  21649. 14473 0142 DB6B ldr r3, [r3, #60]
  21650. 14474 .loc 1 6680 11
  21651. 14475 0144 002B cmp r3, #0
  21652. 14476 0146 39D0 beq .L699
  21653. 14477 .loc 1 6680 35 discriminator 1
  21654. 14478 0148 BB68 ldr r3, [r7, #8]
  21655. 14479 014a 122B cmp r3, #18
  21656. 14480 014c 02D0 beq .L700
  21657. 14481 .loc 1 6680 86 discriminator 2
  21658. 14482 014e BB68 ldr r3, [r7, #8]
  21659. 14483 0150 222B cmp r3, #34
  21660. 14484 0152 33D1 bne .L699
  21661. 14485 .L700:
  21662. 6681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
  21663. 6682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21664. 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
  21665. 14486 .loc 1 6683 14
  21666. 14487 0154 7B68 ldr r3, [r7, #4]
  21667. 14488 0156 1B68 ldr r3, [r3]
  21668. 14489 .loc 1 6683 24
  21669. 14490 0158 1B68 ldr r3, [r3]
  21670. 14491 .loc 1 6683 30
  21671. 14492 015a 03F40043 and r3, r3, #32768
  21672. 14493 .loc 1 6683 8
  21673. 14494 015e B3F5004F cmp r3, #32768
  21674. 14495 0162 07D1 bne .L701
  21675. 6684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21676. 6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  21677. 14496 .loc 1 6685 11
  21678. 14497 0164 7B68 ldr r3, [r7, #4]
  21679. 14498 0166 1B68 ldr r3, [r3]
  21680. 14499 .loc 1 6685 27
  21681. 14500 0168 1A68 ldr r2, [r3]
  21682. 14501 .loc 1 6685 11
  21683. 14502 016a 7B68 ldr r3, [r7, #4]
  21684. 14503 016c 1B68 ldr r3, [r3]
  21685. 14504 .loc 1 6685 27
  21686. 14505 016e 22F40042 bic r2, r2, #32768
  21687. 14506 0172 1A60 str r2, [r3]
  21688. 14507 .L701:
  21689. 6686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21690. 6687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21691. 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
  21692. 14508 .loc 1 6688 9
  21693. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 375
  21694. 14509 0174 7B68 ldr r3, [r7, #4]
  21695. 14510 0176 DB6B ldr r3, [r3, #60]
  21696. 14511 0178 1846 mov r0, r3
  21697. 14512 017a FFF7FEFF bl HAL_DMA_GetState
  21698. 14513 017e 0346 mov r3, r0
  21699. 14514 .loc 1 6688 8
  21700. 14515 0180 012B cmp r3, #1
  21701. 14516 0182 17D0 beq .L702
  21702. 6689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21703. 6690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
  21704. 6691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
  21705. 6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
  21706. 14517 .loc 1 6692 11
  21707. 14518 0184 7B68 ldr r3, [r7, #4]
  21708. 14519 0186 DB6B ldr r3, [r3, #60]
  21709. 14520 .loc 1 6692 39
  21710. 14521 0188 144A ldr r2, .L707+8
  21711. 14522 018a 5A63 str r2, [r3, #52]
  21712. 6693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21713. 6694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  21714. 6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  21715. 14523 .loc 1 6695 7
  21716. 14524 018c 7B68 ldr r3, [r7, #4]
  21717. 14525 018e 0022 movs r2, #0
  21718. 14526 0190 83F84020 strb r2, [r3, #64]
  21719. 6696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21720. 6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
  21721. 6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
  21722. 14527 .loc 1 6698 11
  21723. 14528 0194 7B68 ldr r3, [r7, #4]
  21724. 14529 0196 DB6B ldr r3, [r3, #60]
  21725. 14530 0198 1846 mov r0, r3
  21726. 14531 019a FFF7FEFF bl HAL_DMA_Abort_IT
  21727. 14532 019e 0346 mov r3, r0
  21728. 14533 .loc 1 6698 10
  21729. 14534 01a0 002B cmp r3, #0
  21730. 14535 01a2 11D0 beq .L705
  21731. 6699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21732. 6700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
  21733. 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
  21734. 14536 .loc 1 6701 13
  21735. 14537 01a4 7B68 ldr r3, [r7, #4]
  21736. 14538 01a6 DB6B ldr r3, [r3, #60]
  21737. 14539 .loc 1 6701 21
  21738. 14540 01a8 5B6B ldr r3, [r3, #52]
  21739. 14541 .loc 1 6701 45
  21740. 14542 01aa 7A68 ldr r2, [r7, #4]
  21741. 14543 01ac D26B ldr r2, [r2, #60]
  21742. 14544 .loc 1 6701 9
  21743. 14545 01ae 1046 mov r0, r2
  21744. 14546 01b0 9847 blx r3
  21745. 14547 .LVL8:
  21746. 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21747. 14548 .loc 1 6688 8
  21748. 14549 01b2 09E0 b .L705
  21749. 14550 .L702:
  21750. 6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21751. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 376
  21752. 6703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21753. 6704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  21754. 6705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21755. 6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
  21756. 14551 .loc 1 6706 7
  21757. 14552 01b4 7868 ldr r0, [r7, #4]
  21758. 14553 01b6 FFF7FEFF bl I2C_TreatErrorCallback
  21759. 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21760. 14554 .loc 1 6688 8
  21761. 14555 01ba 05E0 b .L705
  21762. 14556 .L699:
  21763. 6707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21764. 6708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21765. 6709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  21766. 6710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21767. 6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
  21768. 14557 .loc 1 6711 5
  21769. 14558 01bc 7868 ldr r0, [r7, #4]
  21770. 14559 01be FFF7FEFF bl I2C_TreatErrorCallback
  21771. 6712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21772. 6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21773. 14560 .loc 1 6713 1
  21774. 14561 01c2 02E0 b .L706
  21775. 14562 .L704:
  21776. 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21777. 14563 .loc 1 6658 8
  21778. 14564 01c4 00BF nop
  21779. 14565 01c6 00E0 b .L706
  21780. 14566 .L705:
  21781. 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21782. 14567 .loc 1 6688 8
  21783. 14568 01c8 00BF nop
  21784. 14569 .L706:
  21785. 14570 .loc 1 6713 1
  21786. 14571 01ca 00BF nop
  21787. 14572 01cc 1037 adds r7, r7, #16
  21788. 14573 .LCFI333:
  21789. 14574 .cfi_def_cfa_offset 8
  21790. 14575 01ce BD46 mov sp, r7
  21791. 14576 .LCFI334:
  21792. 14577 .cfi_def_cfa_register 13
  21793. 14578 @ sp needed
  21794. 14579 01d0 80BD pop {r7, pc}
  21795. 14580 .L708:
  21796. 14581 01d2 00BF .align 2
  21797. 14582 .L707:
  21798. 14583 01d4 0000FFFF .word -65536
  21799. 14584 01d8 00000000 .word I2C_Slave_ISR_IT
  21800. 14585 01dc 00000000 .word I2C_DMAAbort
  21801. 14586 .cfi_endproc
  21802. 14587 .LFE193:
  21803. 14589 .section .text.I2C_TreatErrorCallback,"ax",%progbits
  21804. 14590 .align 1
  21805. 14591 .syntax unified
  21806. 14592 .thumb
  21807. 14593 .thumb_func
  21808. 14595 I2C_TreatErrorCallback:
  21809. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 377
  21810. 14596 .LFB194:
  21811. 6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21812. 6715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  21813. 6716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Error callback treatment.
  21814. 6717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  21815. 6718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  21816. 6719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  21817. 6720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
  21818. 6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21819. 14597 .loc 1 6721 1
  21820. 14598 .cfi_startproc
  21821. 14599 @ args = 0, pretend = 0, frame = 8
  21822. 14600 @ frame_needed = 1, uses_anonymous_args = 0
  21823. 14601 0000 80B5 push {r7, lr}
  21824. 14602 .LCFI335:
  21825. 14603 .cfi_def_cfa_offset 8
  21826. 14604 .cfi_offset 7, -8
  21827. 14605 .cfi_offset 14, -4
  21828. 14606 0002 82B0 sub sp, sp, #8
  21829. 14607 .LCFI336:
  21830. 14608 .cfi_def_cfa_offset 16
  21831. 14609 0004 00AF add r7, sp, #0
  21832. 14610 .LCFI337:
  21833. 14611 .cfi_def_cfa_register 7
  21834. 14612 0006 7860 str r0, [r7, #4]
  21835. 6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
  21836. 14613 .loc 1 6722 11
  21837. 14614 0008 7B68 ldr r3, [r7, #4]
  21838. 14615 000a 93F84130 ldrb r3, [r3, #65]
  21839. 14616 000e DBB2 uxtb r3, r3
  21840. 14617 .loc 1 6722 6
  21841. 14618 0010 602B cmp r3, #96
  21842. 14619 0012 0ED1 bne .L710
  21843. 6723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21844. 6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  21845. 14620 .loc 1 6724 17
  21846. 14621 0014 7B68 ldr r3, [r7, #4]
  21847. 14622 0016 2022 movs r2, #32
  21848. 14623 0018 83F84120 strb r2, [r3, #65]
  21849. 6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  21850. 14624 .loc 1 6725 25
  21851. 14625 001c 7B68 ldr r3, [r7, #4]
  21852. 14626 001e 0022 movs r2, #0
  21853. 14627 0020 1A63 str r2, [r3, #48]
  21854. 6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21855. 6727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  21856. 6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  21857. 14628 .loc 1 6728 5
  21858. 14629 0022 7B68 ldr r3, [r7, #4]
  21859. 14630 0024 0022 movs r2, #0
  21860. 14631 0026 83F84020 strb r2, [r3, #64]
  21861. 6729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21862. 6730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  21863. 6731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  21864. 6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
  21865. 6733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  21866. 6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
  21867. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 378
  21868. 14632 .loc 1 6734 5
  21869. 14633 002a 7868 ldr r0, [r7, #4]
  21870. 14634 002c FFF7FEFF bl HAL_I2C_AbortCpltCallback
  21871. 6735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21872. 6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21873. 6737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  21874. 6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21875. 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
  21876. 6740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21877. 6741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  21878. 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  21879. 6743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21880. 6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  21881. 6745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
  21882. 6746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
  21883. 6747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
  21884. 6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
  21885. 6749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21886. 6750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21887. 6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21888. 14635 .loc 1 6751 1
  21889. 14636 0030 09E0 b .L712
  21890. 14637 .L710:
  21891. 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21892. 14638 .loc 1 6739 25
  21893. 14639 0032 7B68 ldr r3, [r7, #4]
  21894. 14640 0034 0022 movs r2, #0
  21895. 14641 0036 1A63 str r2, [r3, #48]
  21896. 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21897. 14642 .loc 1 6742 5
  21898. 14643 0038 7B68 ldr r3, [r7, #4]
  21899. 14644 003a 0022 movs r2, #0
  21900. 14645 003c 83F84020 strb r2, [r3, #64]
  21901. 6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
  21902. 14646 .loc 1 6748 5
  21903. 14647 0040 7868 ldr r0, [r7, #4]
  21904. 14648 0042 FFF7FEFF bl HAL_I2C_ErrorCallback
  21905. 14649 .L712:
  21906. 14650 .loc 1 6751 1
  21907. 14651 0046 00BF nop
  21908. 14652 0048 0837 adds r7, r7, #8
  21909. 14653 .LCFI338:
  21910. 14654 .cfi_def_cfa_offset 8
  21911. 14655 004a BD46 mov sp, r7
  21912. 14656 .LCFI339:
  21913. 14657 .cfi_def_cfa_register 13
  21914. 14658 @ sp needed
  21915. 14659 004c 80BD pop {r7, pc}
  21916. 14660 .cfi_endproc
  21917. 14661 .LFE194:
  21918. 14663 .section .text.I2C_Flush_TXDR,"ax",%progbits
  21919. 14664 .align 1
  21920. 14665 .syntax unified
  21921. 14666 .thumb
  21922. 14667 .thumb_func
  21923. 14669 I2C_Flush_TXDR:
  21924. 14670 .LFB195:
  21925. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 379
  21926. 6752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21927. 6753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  21928. 6754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
  21929. 6755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  21930. 6756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  21931. 6757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  21932. 6758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
  21933. 6759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21934. 14671 .loc 1 6759 1
  21935. 14672 .cfi_startproc
  21936. 14673 @ args = 0, pretend = 0, frame = 8
  21937. 14674 @ frame_needed = 1, uses_anonymous_args = 0
  21938. 14675 @ link register save eliminated.
  21939. 14676 0000 80B4 push {r7}
  21940. 14677 .LCFI340:
  21941. 14678 .cfi_def_cfa_offset 4
  21942. 14679 .cfi_offset 7, -4
  21943. 14680 0002 83B0 sub sp, sp, #12
  21944. 14681 .LCFI341:
  21945. 14682 .cfi_def_cfa_offset 16
  21946. 14683 0004 00AF add r7, sp, #0
  21947. 14684 .LCFI342:
  21948. 14685 .cfi_def_cfa_register 7
  21949. 14686 0006 7860 str r0, [r7, #4]
  21950. 6760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a pending TXIS flag is set */
  21951. 6761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
  21952. 6762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
  21953. 14687 .loc 1 6762 7
  21954. 14688 0008 7B68 ldr r3, [r7, #4]
  21955. 14689 000a 1B68 ldr r3, [r3]
  21956. 14690 000c 9B69 ldr r3, [r3, #24]
  21957. 14691 000e 03F00203 and r3, r3, #2
  21958. 14692 .loc 1 6762 6
  21959. 14693 0012 022B cmp r3, #2
  21960. 14694 0014 03D1 bne .L714
  21961. 6763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21962. 6764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
  21963. 14695 .loc 1 6764 9
  21964. 14696 0016 7B68 ldr r3, [r7, #4]
  21965. 14697 0018 1B68 ldr r3, [r3]
  21966. 14698 .loc 1 6764 26
  21967. 14699 001a 0022 movs r2, #0
  21968. 14700 001c 9A62 str r2, [r3, #40]
  21969. 14701 .L714:
  21970. 6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21971. 6766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  21972. 6767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register if not empty */
  21973. 6768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
  21974. 14702 .loc 1 6768 7
  21975. 14703 001e 7B68 ldr r3, [r7, #4]
  21976. 14704 0020 1B68 ldr r3, [r3]
  21977. 14705 0022 9B69 ldr r3, [r3, #24]
  21978. 14706 0024 03F00103 and r3, r3, #1
  21979. 14707 .loc 1 6768 6
  21980. 14708 0028 012B cmp r3, #1
  21981. 14709 002a 07D0 beq .L716
  21982. 6769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  21983. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 380
  21984. 6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
  21985. 14710 .loc 1 6770 5
  21986. 14711 002c 7B68 ldr r3, [r7, #4]
  21987. 14712 002e 1B68 ldr r3, [r3]
  21988. 14713 0030 9A69 ldr r2, [r3, #24]
  21989. 14714 0032 7B68 ldr r3, [r7, #4]
  21990. 14715 0034 1B68 ldr r3, [r3]
  21991. 14716 0036 42F00102 orr r2, r2, #1
  21992. 14717 003a 9A61 str r2, [r3, #24]
  21993. 14718 .L716:
  21994. 6771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21995. 6772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  21996. 14719 .loc 1 6772 1
  21997. 14720 003c 00BF nop
  21998. 14721 003e 0C37 adds r7, r7, #12
  21999. 14722 .LCFI343:
  22000. 14723 .cfi_def_cfa_offset 4
  22001. 14724 0040 BD46 mov sp, r7
  22002. 14725 .LCFI344:
  22003. 14726 .cfi_def_cfa_register 13
  22004. 14727 @ sp needed
  22005. 14728 0042 5DF8047B ldr r7, [sp], #4
  22006. 14729 .LCFI345:
  22007. 14730 .cfi_restore 7
  22008. 14731 .cfi_def_cfa_offset 0
  22009. 14732 0046 7047 bx lr
  22010. 14733 .cfi_endproc
  22011. 14734 .LFE195:
  22012. 14736 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
  22013. 14737 .align 1
  22014. 14738 .syntax unified
  22015. 14739 .thumb
  22016. 14740 .thumb_func
  22017. 14742 I2C_DMAMasterTransmitCplt:
  22018. 14743 .LFB196:
  22019. 6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22020. 6774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  22021. 6775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
  22022. 6776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
  22023. 6777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  22024. 6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  22025. 6779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
  22026. 6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22027. 14744 .loc 1 6780 1
  22028. 14745 .cfi_startproc
  22029. 14746 @ args = 0, pretend = 0, frame = 16
  22030. 14747 @ frame_needed = 1, uses_anonymous_args = 0
  22031. 14748 0000 80B5 push {r7, lr}
  22032. 14749 .LCFI346:
  22033. 14750 .cfi_def_cfa_offset 8
  22034. 14751 .cfi_offset 7, -8
  22035. 14752 .cfi_offset 14, -4
  22036. 14753 0002 84B0 sub sp, sp, #16
  22037. 14754 .LCFI347:
  22038. 14755 .cfi_def_cfa_offset 24
  22039. 14756 0004 00AF add r7, sp, #0
  22040. 14757 .LCFI348:
  22041. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 381
  22042. 14758 .cfi_def_cfa_register 7
  22043. 14759 0006 7860 str r0, [r7, #4]
  22044. 6781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
  22045. 6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
  22046. 14760 .loc 1 6782 22
  22047. 14761 0008 7B68 ldr r3, [r7, #4]
  22048. 14762 000a 5B6A ldr r3, [r3, #36]
  22049. 14763 000c FB60 str r3, [r7, #12]
  22050. 6783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22051. 6784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  22052. 6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  22053. 14764 .loc 1 6785 7
  22054. 14765 000e FB68 ldr r3, [r7, #12]
  22055. 14766 0010 1B68 ldr r3, [r3]
  22056. 14767 .loc 1 6785 23
  22057. 14768 0012 1A68 ldr r2, [r3]
  22058. 14769 .loc 1 6785 7
  22059. 14770 0014 FB68 ldr r3, [r7, #12]
  22060. 14771 0016 1B68 ldr r3, [r3]
  22061. 14772 .loc 1 6785 23
  22062. 14773 0018 22F48042 bic r2, r2, #16384
  22063. 14774 001c 1A60 str r2, [r3]
  22064. 6786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22065. 6787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
  22066. 6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
  22067. 14775 .loc 1 6788 11
  22068. 14776 001e FB68 ldr r3, [r7, #12]
  22069. 14777 0020 5B8D ldrh r3, [r3, #42] @ movhi
  22070. 14778 0022 9BB2 uxth r3, r3
  22071. 14779 .loc 1 6788 6
  22072. 14780 0024 002B cmp r3, #0
  22073. 14781 0026 04D1 bne .L718
  22074. 6789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22075. 6790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
  22076. 6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
  22077. 14782 .loc 1 6791 5
  22078. 14783 0028 2021 movs r1, #32
  22079. 14784 002a F868 ldr r0, [r7, #12]
  22080. 14785 002c FFF7FEFF bl I2C_Enable_IRQ
  22081. 6792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22082. 6793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
  22083. 6794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22084. 6795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22085. 6796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
  22086. 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
  22087. 6798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22088. 6799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
  22089. 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  22090. 6801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22091. 6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  22092. 6803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22093. 6804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22094. 6805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22095. 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  22096. 6807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22097. 6808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22098. 6809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  22099. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 382
  22100. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
  22101. 6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22102. 6812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22103. 6813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  22104. 6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
  22105. 6815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22106. 6816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22107. 6817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22108. 6818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
  22109. 6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
  22110. 6820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22111. 6821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22112. 6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22113. 14786 .loc 1 6822 1
  22114. 14787 0030 2DE0 b .L723
  22115. 14788 .L718:
  22116. 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22117. 14789 .loc 1 6797 20
  22118. 14790 0032 FB68 ldr r3, [r7, #12]
  22119. 14791 0034 5B6A ldr r3, [r3, #36]
  22120. 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22121. 14792 .loc 1 6797 27
  22122. 14793 0036 FA68 ldr r2, [r7, #12]
  22123. 14794 0038 128D ldrh r2, [r2, #40]
  22124. 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22125. 14795 .loc 1 6797 20
  22126. 14796 003a 1A44 add r2, r2, r3
  22127. 14797 003c FB68 ldr r3, [r7, #12]
  22128. 14798 003e 5A62 str r2, [r3, #36]
  22129. 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22130. 14799 .loc 1 6800 13
  22131. 14800 0040 FB68 ldr r3, [r7, #12]
  22132. 14801 0042 5B8D ldrh r3, [r3, #42] @ movhi
  22133. 14802 0044 9BB2 uxth r3, r3
  22134. 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22135. 14803 .loc 1 6800 8
  22136. 14804 0046 FF2B cmp r3, #255
  22137. 14805 0048 03D9 bls .L720
  22138. 6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22139. 14806 .loc 1 6802 22
  22140. 14807 004a FB68 ldr r3, [r7, #12]
  22141. 14808 004c FF22 movs r2, #255
  22142. 14809 004e 1A85 strh r2, [r3, #40] @ movhi
  22143. 14810 0050 04E0 b .L721
  22144. 14811 .L720:
  22145. 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22146. 14812 .loc 1 6806 28
  22147. 14813 0052 FB68 ldr r3, [r7, #12]
  22148. 14814 0054 5B8D ldrh r3, [r3, #42] @ movhi
  22149. 14815 0056 9AB2 uxth r2, r3
  22150. 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22151. 14816 .loc 1 6806 22
  22152. 14817 0058 FB68 ldr r3, [r7, #12]
  22153. 14818 005a 1A85 strh r2, [r3, #40] @ movhi
  22154. 14819 .L721:
  22155. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22156. 14820 .loc 1 6810 9
  22157. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 383
  22158. 14821 005c FB68 ldr r3, [r7, #12]
  22159. 14822 005e 986B ldr r0, [r3, #56]
  22160. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22161. 14823 .loc 1 6810 54
  22162. 14824 0060 FB68 ldr r3, [r7, #12]
  22163. 14825 0062 5B6A ldr r3, [r3, #36]
  22164. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22165. 14826 .loc 1 6810 9
  22166. 14827 0064 1946 mov r1, r3
  22167. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22168. 14828 .loc 1 6810 81
  22169. 14829 0066 FB68 ldr r3, [r7, #12]
  22170. 14830 0068 1B68 ldr r3, [r3]
  22171. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22172. 14831 .loc 1 6810 76
  22173. 14832 006a 2833 adds r3, r3, #40
  22174. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22175. 14833 .loc 1 6810 9
  22176. 14834 006c 1A46 mov r2, r3
  22177. 6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22178. 14835 .loc 1 6811 30
  22179. 14836 006e FB68 ldr r3, [r7, #12]
  22180. 14837 0070 1B8D ldrh r3, [r3, #40]
  22181. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22182. 14838 .loc 1 6810 9
  22183. 14839 0072 FFF7FEFF bl HAL_DMA_Start_IT
  22184. 14840 0076 0346 mov r3, r0
  22185. 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22186. 14841 .loc 1 6810 8
  22187. 14842 0078 002B cmp r3, #0
  22188. 14843 007a 04D0 beq .L722
  22189. 6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22190. 14844 .loc 1 6814 7
  22191. 14845 007c 1021 movs r1, #16
  22192. 14846 007e F868 ldr r0, [r7, #12]
  22193. 14847 0080 FFF7FEFF bl I2C_ITError
  22194. 14848 .loc 1 6822 1
  22195. 14849 0084 03E0 b .L723
  22196. 14850 .L722:
  22197. 6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22198. 14851 .loc 1 6819 7
  22199. 14852 0086 4021 movs r1, #64
  22200. 14853 0088 F868 ldr r0, [r7, #12]
  22201. 14854 008a FFF7FEFF bl I2C_Enable_IRQ
  22202. 14855 .L723:
  22203. 14856 .loc 1 6822 1
  22204. 14857 008e 00BF nop
  22205. 14858 0090 1037 adds r7, r7, #16
  22206. 14859 .LCFI349:
  22207. 14860 .cfi_def_cfa_offset 8
  22208. 14861 0092 BD46 mov sp, r7
  22209. 14862 .LCFI350:
  22210. 14863 .cfi_def_cfa_register 13
  22211. 14864 @ sp needed
  22212. 14865 0094 80BD pop {r7, pc}
  22213. 14866 .cfi_endproc
  22214. 14867 .LFE196:
  22215. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 384
  22216. 14869 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
  22217. 14870 .align 1
  22218. 14871 .syntax unified
  22219. 14872 .thumb
  22220. 14873 .thumb_func
  22221. 14875 I2C_DMASlaveTransmitCplt:
  22222. 14876 .LFB197:
  22223. 6823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22224. 6824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22225. 6825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  22226. 6826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
  22227. 6827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
  22228. 6828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  22229. 6829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  22230. 6830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
  22231. 6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22232. 14877 .loc 1 6831 1
  22233. 14878 .cfi_startproc
  22234. 14879 @ args = 0, pretend = 0, frame = 16
  22235. 14880 @ frame_needed = 1, uses_anonymous_args = 0
  22236. 14881 0000 80B5 push {r7, lr}
  22237. 14882 .LCFI351:
  22238. 14883 .cfi_def_cfa_offset 8
  22239. 14884 .cfi_offset 7, -8
  22240. 14885 .cfi_offset 14, -4
  22241. 14886 0002 84B0 sub sp, sp, #16
  22242. 14887 .LCFI352:
  22243. 14888 .cfi_def_cfa_offset 24
  22244. 14889 0004 00AF add r7, sp, #0
  22245. 14890 .LCFI353:
  22246. 14891 .cfi_def_cfa_register 7
  22247. 14892 0006 7860 str r0, [r7, #4]
  22248. 6832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
  22249. 6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
  22250. 14893 .loc 1 6833 22
  22251. 14894 0008 7B68 ldr r3, [r7, #4]
  22252. 14895 000a 5B6A ldr r3, [r3, #36]
  22253. 14896 000c FB60 str r3, [r7, #12]
  22254. 6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
  22255. 14897 .loc 1 6834 12
  22256. 14898 000e FB68 ldr r3, [r7, #12]
  22257. 14899 0010 DB6A ldr r3, [r3, #44]
  22258. 14900 0012 BB60 str r3, [r7, #8]
  22259. 6835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22260. 6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
  22261. 14901 .loc 1 6836 6
  22262. 14902 0014 BB68 ldr r3, [r7, #8]
  22263. 14903 0016 B3F1807F cmp r3, #16777216
  22264. 14904 001a 02D0 beq .L725
  22265. 14905 .loc 1 6836 38 discriminator 1
  22266. 14906 001c BB68 ldr r3, [r7, #8]
  22267. 14907 001e 002B cmp r3, #0
  22268. 14908 0020 0AD1 bne .L727
  22269. 14909 .L725:
  22270. 6837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22271. 6838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  22272. 6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
  22273. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 385
  22274. 14910 .loc 1 6839 9
  22275. 14911 0022 FB68 ldr r3, [r7, #12]
  22276. 14912 0024 1B68 ldr r3, [r3]
  22277. 14913 .loc 1 6839 25
  22278. 14914 0026 1A68 ldr r2, [r3]
  22279. 14915 .loc 1 6839 9
  22280. 14916 0028 FB68 ldr r3, [r7, #12]
  22281. 14917 002a 1B68 ldr r3, [r3]
  22282. 14918 .loc 1 6839 25
  22283. 14919 002c 22F48042 bic r2, r2, #16384
  22284. 14920 0030 1A60 str r2, [r3]
  22285. 6840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22286. 6841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
  22287. 6842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
  22288. 6843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  22289. 14921 .loc 1 6843 5
  22290. 14922 0032 F868 ldr r0, [r7, #12]
  22291. 14923 0034 FFF7FEFF bl I2C_ITSlaveSeqCplt
  22292. 14924 .L727:
  22293. 6844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22294. 6845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22295. 6846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22296. 6847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
  22297. 6848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
  22298. 6849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
  22299. 6850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22300. 6851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22301. 14925 .loc 1 6851 1
  22302. 14926 0038 00BF nop
  22303. 14927 003a 1037 adds r7, r7, #16
  22304. 14928 .LCFI354:
  22305. 14929 .cfi_def_cfa_offset 8
  22306. 14930 003c BD46 mov sp, r7
  22307. 14931 .LCFI355:
  22308. 14932 .cfi_def_cfa_register 13
  22309. 14933 @ sp needed
  22310. 14934 003e 80BD pop {r7, pc}
  22311. 14935 .cfi_endproc
  22312. 14936 .LFE197:
  22313. 14938 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
  22314. 14939 .align 1
  22315. 14940 .syntax unified
  22316. 14941 .thumb
  22317. 14942 .thumb_func
  22318. 14944 I2C_DMAMasterReceiveCplt:
  22319. 14945 .LFB198:
  22320. 6852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22321. 6853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22322. 6854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  22323. 6855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
  22324. 6856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
  22325. 6857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  22326. 6858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  22327. 6859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
  22328. 6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22329. 14946 .loc 1 6860 1
  22330. 14947 .cfi_startproc
  22331. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 386
  22332. 14948 @ args = 0, pretend = 0, frame = 16
  22333. 14949 @ frame_needed = 1, uses_anonymous_args = 0
  22334. 14950 0000 80B5 push {r7, lr}
  22335. 14951 .LCFI356:
  22336. 14952 .cfi_def_cfa_offset 8
  22337. 14953 .cfi_offset 7, -8
  22338. 14954 .cfi_offset 14, -4
  22339. 14955 0002 84B0 sub sp, sp, #16
  22340. 14956 .LCFI357:
  22341. 14957 .cfi_def_cfa_offset 24
  22342. 14958 0004 00AF add r7, sp, #0
  22343. 14959 .LCFI358:
  22344. 14960 .cfi_def_cfa_register 7
  22345. 14961 0006 7860 str r0, [r7, #4]
  22346. 6861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
  22347. 6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
  22348. 14962 .loc 1 6862 22
  22349. 14963 0008 7B68 ldr r3, [r7, #4]
  22350. 14964 000a 5B6A ldr r3, [r3, #36]
  22351. 14965 000c FB60 str r3, [r7, #12]
  22352. 6863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22353. 6864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  22354. 6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  22355. 14966 .loc 1 6865 7
  22356. 14967 000e FB68 ldr r3, [r7, #12]
  22357. 14968 0010 1B68 ldr r3, [r3]
  22358. 14969 .loc 1 6865 23
  22359. 14970 0012 1A68 ldr r2, [r3]
  22360. 14971 .loc 1 6865 7
  22361. 14972 0014 FB68 ldr r3, [r7, #12]
  22362. 14973 0016 1B68 ldr r3, [r3]
  22363. 14974 .loc 1 6865 23
  22364. 14975 0018 22F40042 bic r2, r2, #32768
  22365. 14976 001c 1A60 str r2, [r3]
  22366. 6866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22367. 6867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
  22368. 6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
  22369. 14977 .loc 1 6868 11
  22370. 14978 001e FB68 ldr r3, [r7, #12]
  22371. 14979 0020 5B8D ldrh r3, [r3, #42] @ movhi
  22372. 14980 0022 9BB2 uxth r3, r3
  22373. 14981 .loc 1 6868 6
  22374. 14982 0024 002B cmp r3, #0
  22375. 14983 0026 04D1 bne .L729
  22376. 6869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22377. 6870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
  22378. 6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
  22379. 14984 .loc 1 6871 5
  22380. 14985 0028 2021 movs r1, #32
  22381. 14986 002a F868 ldr r0, [r7, #12]
  22382. 14987 002c FFF7FEFF bl I2C_Enable_IRQ
  22383. 6872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22384. 6873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
  22385. 6874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22386. 6875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22387. 6876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
  22388. 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
  22389. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 387
  22390. 6878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22391. 6879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
  22392. 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
  22393. 6881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22394. 6882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
  22395. 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
  22396. 6884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22397. 6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
  22398. 6886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22399. 6887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22400. 6888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22401. 6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
  22402. 6890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22403. 6891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22404. 6892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22405. 6893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22406. 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
  22407. 6895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22408. 6896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22409. 6897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
  22410. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr,
  22411. 6899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22412. 6900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22413. 6901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  22414. 6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
  22415. 6903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22416. 6904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22417. 6905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22418. 6906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
  22419. 6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
  22420. 6908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22421. 6909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22422. 6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22423. 14988 .loc 1 6910 1
  22424. 14989 0030 3BE0 b .L735
  22425. 14990 .L729:
  22426. 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22427. 14991 .loc 1 6877 20
  22428. 14992 0032 FB68 ldr r3, [r7, #12]
  22429. 14993 0034 5B6A ldr r3, [r3, #36]
  22430. 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22431. 14994 .loc 1 6877 27
  22432. 14995 0036 FA68 ldr r2, [r7, #12]
  22433. 14996 0038 128D ldrh r2, [r2, #40]
  22434. 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22435. 14997 .loc 1 6877 20
  22436. 14998 003a 1A44 add r2, r2, r3
  22437. 14999 003c FB68 ldr r3, [r7, #12]
  22438. 15000 003e 5A62 str r2, [r3, #36]
  22439. 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22440. 15001 .loc 1 6880 13
  22441. 15002 0040 FB68 ldr r3, [r7, #12]
  22442. 15003 0042 5B8D ldrh r3, [r3, #42] @ movhi
  22443. 15004 0044 9BB2 uxth r3, r3
  22444. 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22445. 15005 .loc 1 6880 8
  22446. 15006 0046 FF2B cmp r3, #255
  22447. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 388
  22448. 15007 0048 11D9 bls .L731
  22449. 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22450. 15008 .loc 1 6883 11
  22451. 15009 004a FB68 ldr r3, [r7, #12]
  22452. 15010 004c 1B68 ldr r3, [r3]
  22453. 15011 004e 9B69 ldr r3, [r3, #24]
  22454. 15012 0050 1B0C lsrs r3, r3, #16
  22455. 15013 0052 DBB2 uxtb r3, r3
  22456. 15014 0054 03F00103 and r3, r3, #1
  22457. 15015 0058 DBB2 uxtb r3, r3
  22458. 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22459. 15016 .loc 1 6883 10
  22460. 15017 005a 012B cmp r3, #1
  22461. 15018 005c 03D1 bne .L732
  22462. 6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22463. 15019 .loc 1 6885 24
  22464. 15020 005e FB68 ldr r3, [r7, #12]
  22465. 15021 0060 0122 movs r2, #1
  22466. 15022 0062 1A85 strh r2, [r3, #40] @ movhi
  22467. 15023 0064 08E0 b .L733
  22468. 15024 .L732:
  22469. 6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22470. 15025 .loc 1 6889 24
  22471. 15026 0066 FB68 ldr r3, [r7, #12]
  22472. 15027 0068 FF22 movs r2, #255
  22473. 15028 006a 1A85 strh r2, [r3, #40] @ movhi
  22474. 15029 006c 04E0 b .L733
  22475. 15030 .L731:
  22476. 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22477. 15031 .loc 1 6894 28
  22478. 15032 006e FB68 ldr r3, [r7, #12]
  22479. 15033 0070 5B8D ldrh r3, [r3, #42] @ movhi
  22480. 15034 0072 9AB2 uxth r2, r3
  22481. 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22482. 15035 .loc 1 6894 22
  22483. 15036 0074 FB68 ldr r3, [r7, #12]
  22484. 15037 0076 1A85 strh r2, [r3, #40] @ movhi
  22485. 15038 .L733:
  22486. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22487. 15039 .loc 1 6898 9
  22488. 15040 0078 FB68 ldr r3, [r7, #12]
  22489. 15041 007a D86B ldr r0, [r3, #60]
  22490. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22491. 15042 .loc 1 6898 55
  22492. 15043 007c FB68 ldr r3, [r7, #12]
  22493. 15044 007e 1B68 ldr r3, [r3]
  22494. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22495. 15045 .loc 1 6898 50
  22496. 15046 0080 2433 adds r3, r3, #36
  22497. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22498. 15047 .loc 1 6898 9
  22499. 15048 0082 1946 mov r1, r3
  22500. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22501. 15049 .loc 1 6898 87
  22502. 15050 0084 FB68 ldr r3, [r7, #12]
  22503. 15051 0086 5B6A ldr r3, [r3, #36]
  22504. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22505. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 389
  22506. 15052 .loc 1 6898 9
  22507. 15053 0088 1A46 mov r2, r3
  22508. 6899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22509. 15054 .loc 1 6899 30
  22510. 15055 008a FB68 ldr r3, [r7, #12]
  22511. 15056 008c 1B8D ldrh r3, [r3, #40]
  22512. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22513. 15057 .loc 1 6898 9
  22514. 15058 008e FFF7FEFF bl HAL_DMA_Start_IT
  22515. 15059 0092 0346 mov r3, r0
  22516. 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
  22517. 15060 .loc 1 6898 8
  22518. 15061 0094 002B cmp r3, #0
  22519. 15062 0096 04D0 beq .L734
  22520. 6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22521. 15063 .loc 1 6902 7
  22522. 15064 0098 1021 movs r1, #16
  22523. 15065 009a F868 ldr r0, [r7, #12]
  22524. 15066 009c FFF7FEFF bl I2C_ITError
  22525. 15067 .loc 1 6910 1
  22526. 15068 00a0 03E0 b .L735
  22527. 15069 .L734:
  22528. 6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22529. 15070 .loc 1 6907 7
  22530. 15071 00a2 4021 movs r1, #64
  22531. 15072 00a4 F868 ldr r0, [r7, #12]
  22532. 15073 00a6 FFF7FEFF bl I2C_Enable_IRQ
  22533. 15074 .L735:
  22534. 15075 .loc 1 6910 1
  22535. 15076 00aa 00BF nop
  22536. 15077 00ac 1037 adds r7, r7, #16
  22537. 15078 .LCFI359:
  22538. 15079 .cfi_def_cfa_offset 8
  22539. 15080 00ae BD46 mov sp, r7
  22540. 15081 .LCFI360:
  22541. 15082 .cfi_def_cfa_register 13
  22542. 15083 @ sp needed
  22543. 15084 00b0 80BD pop {r7, pc}
  22544. 15085 .cfi_endproc
  22545. 15086 .LFE198:
  22546. 15088 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
  22547. 15089 .align 1
  22548. 15090 .syntax unified
  22549. 15091 .thumb
  22550. 15092 .thumb_func
  22551. 15094 I2C_DMASlaveReceiveCplt:
  22552. 15095 .LFB199:
  22553. 6911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22554. 6912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22555. 6913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  22556. 6914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
  22557. 6915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
  22558. 6916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  22559. 6917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  22560. 6918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
  22561. 6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22562. 15096 .loc 1 6919 1
  22563. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 390
  22564. 15097 .cfi_startproc
  22565. 15098 @ args = 0, pretend = 0, frame = 16
  22566. 15099 @ frame_needed = 1, uses_anonymous_args = 0
  22567. 15100 0000 80B5 push {r7, lr}
  22568. 15101 .LCFI361:
  22569. 15102 .cfi_def_cfa_offset 8
  22570. 15103 .cfi_offset 7, -8
  22571. 15104 .cfi_offset 14, -4
  22572. 15105 0002 84B0 sub sp, sp, #16
  22573. 15106 .LCFI362:
  22574. 15107 .cfi_def_cfa_offset 24
  22575. 15108 0004 00AF add r7, sp, #0
  22576. 15109 .LCFI363:
  22577. 15110 .cfi_def_cfa_register 7
  22578. 15111 0006 7860 str r0, [r7, #4]
  22579. 6920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
  22580. 6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
  22581. 15112 .loc 1 6921 22
  22582. 15113 0008 7B68 ldr r3, [r7, #4]
  22583. 15114 000a 5B6A ldr r3, [r3, #36]
  22584. 15115 000c FB60 str r3, [r7, #12]
  22585. 6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
  22586. 15116 .loc 1 6922 12
  22587. 15117 000e FB68 ldr r3, [r7, #12]
  22588. 15118 0010 DB6A ldr r3, [r3, #44]
  22589. 15119 0012 BB60 str r3, [r7, #8]
  22590. 6923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22591. 6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \
  22592. 15120 .loc 1 6924 8
  22593. 15121 0014 FB68 ldr r3, [r7, #12]
  22594. 15122 0016 DB6B ldr r3, [r3, #60]
  22595. 15123 0018 1B68 ldr r3, [r3]
  22596. 15124 001a 5B68 ldr r3, [r3, #4]
  22597. 15125 .loc 1 6924 6
  22598. 15126 001c 002B cmp r3, #0
  22599. 15127 001e 0ED1 bne .L738
  22600. 15128 .loc 1 6924 53 discriminator 1
  22601. 15129 0020 BB68 ldr r3, [r7, #8]
  22602. 15130 0022 13F5803F cmn r3, #65536
  22603. 15131 0026 0AD0 beq .L738
  22604. 6925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
  22605. 6926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22606. 6927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
  22607. 6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
  22608. 15132 .loc 1 6928 9
  22609. 15133 0028 FB68 ldr r3, [r7, #12]
  22610. 15134 002a 1B68 ldr r3, [r3]
  22611. 15135 .loc 1 6928 25
  22612. 15136 002c 1A68 ldr r2, [r3]
  22613. 15137 .loc 1 6928 9
  22614. 15138 002e FB68 ldr r3, [r7, #12]
  22615. 15139 0030 1B68 ldr r3, [r3]
  22616. 15140 .loc 1 6928 25
  22617. 15141 0032 22F40042 bic r2, r2, #32768
  22618. 15142 0036 1A60 str r2, [r3]
  22619. 6929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22620. 6930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
  22621. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 391
  22622. 6931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
  22623. 15143 .loc 1 6931 5
  22624. 15144 0038 F868 ldr r0, [r7, #12]
  22625. 15145 003a FFF7FEFF bl I2C_ITSlaveSeqCplt
  22626. 15146 .L738:
  22627. 6932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22628. 6933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  22629. 6934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22630. 6935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
  22631. 6936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
  22632. 6937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
  22633. 6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22634. 6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22635. 15147 .loc 1 6939 1
  22636. 15148 003e 00BF nop
  22637. 15149 0040 1037 adds r7, r7, #16
  22638. 15150 .LCFI364:
  22639. 15151 .cfi_def_cfa_offset 8
  22640. 15152 0042 BD46 mov sp, r7
  22641. 15153 .LCFI365:
  22642. 15154 .cfi_def_cfa_register 13
  22643. 15155 @ sp needed
  22644. 15156 0044 80BD pop {r7, pc}
  22645. 15157 .cfi_endproc
  22646. 15158 .LFE199:
  22647. 15160 .section .text.I2C_DMAError,"ax",%progbits
  22648. 15161 .align 1
  22649. 15162 .syntax unified
  22650. 15163 .thumb
  22651. 15164 .thumb_func
  22652. 15166 I2C_DMAError:
  22653. 15167 .LFB200:
  22654. 6940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22655. 6941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22656. 6942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  22657. 6943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
  22658. 6944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
  22659. 6945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  22660. 6946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  22661. 6947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
  22662. 6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22663. 15168 .loc 1 6948 1
  22664. 15169 .cfi_startproc
  22665. 15170 @ args = 0, pretend = 0, frame = 16
  22666. 15171 @ frame_needed = 1, uses_anonymous_args = 0
  22667. 15172 0000 80B5 push {r7, lr}
  22668. 15173 .LCFI366:
  22669. 15174 .cfi_def_cfa_offset 8
  22670. 15175 .cfi_offset 7, -8
  22671. 15176 .cfi_offset 14, -4
  22672. 15177 0002 84B0 sub sp, sp, #16
  22673. 15178 .LCFI367:
  22674. 15179 .cfi_def_cfa_offset 24
  22675. 15180 0004 00AF add r7, sp, #0
  22676. 15181 .LCFI368:
  22677. 15182 .cfi_def_cfa_register 7
  22678. 15183 0006 7860 str r0, [r7, #4]
  22679. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 392
  22680. 6949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
  22681. 6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
  22682. 15184 .loc 1 6950 22
  22683. 15185 0008 7B68 ldr r3, [r7, #4]
  22684. 15186 000a 5B6A ldr r3, [r3, #36]
  22685. 15187 000c FB60 str r3, [r7, #12]
  22686. 6951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22687. 6952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Acknowledge */
  22688. 6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
  22689. 15188 .loc 1 6953 7
  22690. 15189 000e FB68 ldr r3, [r7, #12]
  22691. 15190 0010 1B68 ldr r3, [r3]
  22692. 15191 .loc 1 6953 23
  22693. 15192 0012 5A68 ldr r2, [r3, #4]
  22694. 15193 .loc 1 6953 7
  22695. 15194 0014 FB68 ldr r3, [r7, #12]
  22696. 15195 0016 1B68 ldr r3, [r3]
  22697. 15196 .loc 1 6953 23
  22698. 15197 0018 42F40042 orr r2, r2, #32768
  22699. 15198 001c 5A60 str r2, [r3, #4]
  22700. 6954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22701. 6955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
  22702. 6956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
  22703. 15199 .loc 1 6956 3
  22704. 15200 001e 1021 movs r1, #16
  22705. 15201 0020 F868 ldr r0, [r7, #12]
  22706. 15202 0022 FFF7FEFF bl I2C_ITError
  22707. 6957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22708. 15203 .loc 1 6957 1
  22709. 15204 0026 00BF nop
  22710. 15205 0028 1037 adds r7, r7, #16
  22711. 15206 .LCFI369:
  22712. 15207 .cfi_def_cfa_offset 8
  22713. 15208 002a BD46 mov sp, r7
  22714. 15209 .LCFI370:
  22715. 15210 .cfi_def_cfa_register 13
  22716. 15211 @ sp needed
  22717. 15212 002c 80BD pop {r7, pc}
  22718. 15213 .cfi_endproc
  22719. 15214 .LFE200:
  22720. 15216 .section .text.I2C_DMAAbort,"ax",%progbits
  22721. 15217 .align 1
  22722. 15218 .syntax unified
  22723. 15219 .thumb
  22724. 15220 .thumb_func
  22725. 15222 I2C_DMAAbort:
  22726. 15223 .LFB201:
  22727. 6958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22728. 6959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22729. 6960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  22730. 6961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
  22731. 6962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
  22732. 6963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle.
  22733. 6964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  22734. 6965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  22735. 6966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
  22736. 6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22737. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 393
  22738. 15224 .loc 1 6967 1
  22739. 15225 .cfi_startproc
  22740. 15226 @ args = 0, pretend = 0, frame = 16
  22741. 15227 @ frame_needed = 1, uses_anonymous_args = 0
  22742. 15228 0000 80B5 push {r7, lr}
  22743. 15229 .LCFI371:
  22744. 15230 .cfi_def_cfa_offset 8
  22745. 15231 .cfi_offset 7, -8
  22746. 15232 .cfi_offset 14, -4
  22747. 15233 0002 84B0 sub sp, sp, #16
  22748. 15234 .LCFI372:
  22749. 15235 .cfi_def_cfa_offset 24
  22750. 15236 0004 00AF add r7, sp, #0
  22751. 15237 .LCFI373:
  22752. 15238 .cfi_def_cfa_register 7
  22753. 15239 0006 7860 str r0, [r7, #4]
  22754. 6968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
  22755. 6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
  22756. 15240 .loc 1 6969 22
  22757. 15241 0008 7B68 ldr r3, [r7, #4]
  22758. 15242 000a 5B6A ldr r3, [r3, #36]
  22759. 15243 000c FB60 str r3, [r7, #12]
  22760. 6970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22761. 6971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset AbortCpltCallback */
  22762. 6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
  22763. 15244 .loc 1 6972 11
  22764. 15245 000e FB68 ldr r3, [r7, #12]
  22765. 15246 0010 9B6B ldr r3, [r3, #56]
  22766. 15247 .loc 1 6972 6
  22767. 15248 0012 002B cmp r3, #0
  22768. 15249 0014 03D0 beq .L741
  22769. 6973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22770. 6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
  22771. 15250 .loc 1 6974 9
  22772. 15251 0016 FB68 ldr r3, [r7, #12]
  22773. 15252 0018 9B6B ldr r3, [r3, #56]
  22774. 15253 .loc 1 6974 37
  22775. 15254 001a 0022 movs r2, #0
  22776. 15255 001c 5A63 str r2, [r3, #52]
  22777. 15256 .L741:
  22778. 6975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22779. 6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
  22780. 15257 .loc 1 6976 11
  22781. 15258 001e FB68 ldr r3, [r7, #12]
  22782. 15259 0020 DB6B ldr r3, [r3, #60]
  22783. 15260 .loc 1 6976 6
  22784. 15261 0022 002B cmp r3, #0
  22785. 15262 0024 03D0 beq .L742
  22786. 6977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22787. 6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
  22788. 15263 .loc 1 6978 9
  22789. 15264 0026 FB68 ldr r3, [r7, #12]
  22790. 15265 0028 DB6B ldr r3, [r3, #60]
  22791. 15266 .loc 1 6978 37
  22792. 15267 002a 0022 movs r2, #0
  22793. 15268 002c 5A63 str r2, [r3, #52]
  22794. 15269 .L742:
  22795. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 394
  22796. 6979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22797. 6980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22798. 6981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
  22799. 15270 .loc 1 6981 3
  22800. 15271 002e F868 ldr r0, [r7, #12]
  22801. 15272 0030 FFF7FEFF bl I2C_TreatErrorCallback
  22802. 6982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22803. 15273 .loc 1 6982 1
  22804. 15274 0034 00BF nop
  22805. 15275 0036 1037 adds r7, r7, #16
  22806. 15276 .LCFI374:
  22807. 15277 .cfi_def_cfa_offset 8
  22808. 15278 0038 BD46 mov sp, r7
  22809. 15279 .LCFI375:
  22810. 15280 .cfi_def_cfa_register 13
  22811. 15281 @ sp needed
  22812. 15282 003a 80BD pop {r7, pc}
  22813. 15283 .cfi_endproc
  22814. 15284 .LFE201:
  22815. 15286 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
  22816. 15287 .align 1
  22817. 15288 .syntax unified
  22818. 15289 .thumb
  22819. 15290 .thumb_func
  22820. 15292 I2C_WaitOnFlagUntilTimeout:
  22821. 15293 .LFB202:
  22822. 6983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22823. 6984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22824. 6985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  22825. 6986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits
  22826. 6987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * until a flag is no longer in the specified status.
  22827. 6988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  22828. 6989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  22829. 6990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
  22830. 6991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET).
  22831. 6992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  22832. 6993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
  22833. 6994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  22834. 6995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  22835. 6996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
  22836. 6997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart)
  22837. 6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22838. 15294 .loc 1 6998 1
  22839. 15295 .cfi_startproc
  22840. 15296 @ args = 4, pretend = 0, frame = 16
  22841. 15297 @ frame_needed = 1, uses_anonymous_args = 0
  22842. 15298 0000 80B5 push {r7, lr}
  22843. 15299 .LCFI376:
  22844. 15300 .cfi_def_cfa_offset 8
  22845. 15301 .cfi_offset 7, -8
  22846. 15302 .cfi_offset 14, -4
  22847. 15303 0002 84B0 sub sp, sp, #16
  22848. 15304 .LCFI377:
  22849. 15305 .cfi_def_cfa_offset 24
  22850. 15306 0004 00AF add r7, sp, #0
  22851. 15307 .LCFI378:
  22852. 15308 .cfi_def_cfa_register 7
  22853. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 395
  22854. 15309 0006 F860 str r0, [r7, #12]
  22855. 15310 0008 B960 str r1, [r7, #8]
  22856. 15311 000a 3B60 str r3, [r7]
  22857. 15312 000c 1346 mov r3, r2
  22858. 15313 000e FB71 strb r3, [r7, #7]
  22859. 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
  22860. 15314 .loc 1 6999 9
  22861. 15315 0010 3BE0 b .L744
  22862. 15316 .L748:
  22863. 7000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22864. 7001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
  22865. 7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
  22866. 15317 .loc 1 7002 9
  22867. 15318 0012 BA69 ldr r2, [r7, #24]
  22868. 15319 0014 3968 ldr r1, [r7]
  22869. 15320 0016 F868 ldr r0, [r7, #12]
  22870. 15321 0018 FFF7FEFF bl I2C_IsErrorOccurred
  22871. 15322 001c 0346 mov r3, r0
  22872. 15323 .loc 1 7002 8
  22873. 15324 001e 002B cmp r3, #0
  22874. 15325 0020 01D0 beq .L745
  22875. 7003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22876. 7004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  22877. 15326 .loc 1 7004 14
  22878. 15327 0022 0123 movs r3, #1
  22879. 15328 0024 41E0 b .L746
  22880. 15329 .L745:
  22881. 7005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22882. 7006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22883. 7007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
  22884. 7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
  22885. 15330 .loc 1 7008 8
  22886. 15331 0026 3B68 ldr r3, [r7]
  22887. 15332 0028 B3F1FF3F cmp r3, #-1
  22888. 15333 002c 2DD0 beq .L744
  22889. 7009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22890. 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
  22891. 15334 .loc 1 7010 13
  22892. 15335 002e FFF7FEFF bl HAL_GetTick
  22893. 15336 0032 0246 mov r2, r0
  22894. 15337 .loc 1 7010 27
  22895. 15338 0034 BB69 ldr r3, [r7, #24]
  22896. 15339 0036 D31A subs r3, r2, r3
  22897. 15340 .loc 1 7010 10
  22898. 15341 0038 3A68 ldr r2, [r7]
  22899. 15342 003a 9A42 cmp r2, r3
  22900. 15343 003c 02D3 bcc .L747
  22901. 15344 .loc 1 7010 51 discriminator 1
  22902. 15345 003e 3B68 ldr r3, [r7]
  22903. 15346 0040 002B cmp r3, #0
  22904. 15347 0042 22D1 bne .L744
  22905. 15348 .L747:
  22906. 7011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22907. 7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status))
  22908. 15349 .loc 1 7012 14
  22909. 15350 0044 FB68 ldr r3, [r7, #12]
  22910. 15351 0046 1B68 ldr r3, [r3]
  22911. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 396
  22912. 15352 0048 9A69 ldr r2, [r3, #24]
  22913. 15353 004a BB68 ldr r3, [r7, #8]
  22914. 15354 004c 1340 ands r3, r3, r2
  22915. 15355 004e BA68 ldr r2, [r7, #8]
  22916. 15356 0050 9A42 cmp r2, r3
  22917. 15357 0052 0CBF ite eq
  22918. 15358 0054 0123 moveq r3, #1
  22919. 15359 0056 0023 movne r3, #0
  22920. 15360 0058 DBB2 uxtb r3, r3
  22921. 15361 005a 1A46 mov r2, r3
  22922. 15362 .loc 1 7012 45
  22923. 15363 005c FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  22924. 15364 .loc 1 7012 12
  22925. 15365 005e 9A42 cmp r2, r3
  22926. 15366 0060 13D1 bne .L744
  22927. 7013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22928. 7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
  22929. 15367 .loc 1 7014 27
  22930. 15368 0062 FB68 ldr r3, [r7, #12]
  22931. 15369 0064 5B6C ldr r3, [r3, #68]
  22932. 15370 0066 43F02002 orr r2, r3, #32
  22933. 15371 006a FB68 ldr r3, [r7, #12]
  22934. 15372 006c 5A64 str r2, [r3, #68]
  22935. 7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  22936. 15373 .loc 1 7015 23
  22937. 15374 006e FB68 ldr r3, [r7, #12]
  22938. 15375 0070 2022 movs r2, #32
  22939. 15376 0072 83F84120 strb r2, [r3, #65]
  22940. 7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  22941. 15377 .loc 1 7016 22
  22942. 15378 0076 FB68 ldr r3, [r7, #12]
  22943. 15379 0078 0022 movs r2, #0
  22944. 15380 007a 83F84220 strb r2, [r3, #66]
  22945. 7017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  22946. 7018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  22947. 7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  22948. 15381 .loc 1 7019 11
  22949. 15382 007e FB68 ldr r3, [r7, #12]
  22950. 15383 0080 0022 movs r2, #0
  22951. 15384 0082 83F84020 strb r2, [r3, #64]
  22952. 7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  22953. 15385 .loc 1 7020 18
  22954. 15386 0086 0123 movs r3, #1
  22955. 15387 0088 0FE0 b .L746
  22956. 15388 .L744:
  22957. 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22958. 15389 .loc 1 6999 10
  22959. 15390 008a FB68 ldr r3, [r7, #12]
  22960. 15391 008c 1B68 ldr r3, [r3]
  22961. 15392 008e 9A69 ldr r2, [r3, #24]
  22962. 15393 0090 BB68 ldr r3, [r7, #8]
  22963. 15394 0092 1340 ands r3, r3, r2
  22964. 15395 0094 BA68 ldr r2, [r7, #8]
  22965. 15396 0096 9A42 cmp r2, r3
  22966. 15397 0098 0CBF ite eq
  22967. 15398 009a 0123 moveq r3, #1
  22968. 15399 009c 0023 movne r3, #0
  22969. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 397
  22970. 15400 009e DBB2 uxtb r3, r3
  22971. 15401 00a0 1A46 mov r2, r3
  22972. 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22973. 15402 .loc 1 6999 41
  22974. 15403 00a2 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
  22975. 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  22976. 15404 .loc 1 6999 9
  22977. 15405 00a4 9A42 cmp r2, r3
  22978. 15406 00a6 B4D0 beq .L748
  22979. 7021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22980. 7022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22981. 7023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22982. 7024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22983. 7025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  22984. 15407 .loc 1 7025 10
  22985. 15408 00a8 0023 movs r3, #0
  22986. 15409 .L746:
  22987. 7026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  22988. 15410 .loc 1 7026 1
  22989. 15411 00aa 1846 mov r0, r3
  22990. 15412 00ac 1037 adds r7, r7, #16
  22991. 15413 .LCFI379:
  22992. 15414 .cfi_def_cfa_offset 8
  22993. 15415 00ae BD46 mov sp, r7
  22994. 15416 .LCFI380:
  22995. 15417 .cfi_def_cfa_register 13
  22996. 15418 @ sp needed
  22997. 15419 00b0 80BD pop {r7, pc}
  22998. 15420 .cfi_endproc
  22999. 15421 .LFE202:
  23000. 15423 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
  23001. 15424 .align 1
  23002. 15425 .syntax unified
  23003. 15426 .thumb
  23004. 15427 .thumb_func
  23005. 15429 I2C_WaitOnTXISFlagUntilTimeout:
  23006. 15430 .LFB203:
  23007. 7027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23008. 7028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  23009. 7029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
  23010. 7030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  23011. 7031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  23012. 7032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  23013. 7033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
  23014. 7034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  23015. 7035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  23016. 7036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
  23017. 7037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
  23018. 7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23019. 15431 .loc 1 7038 1
  23020. 15432 .cfi_startproc
  23021. 15433 @ args = 0, pretend = 0, frame = 16
  23022. 15434 @ frame_needed = 1, uses_anonymous_args = 0
  23023. 15435 0000 80B5 push {r7, lr}
  23024. 15436 .LCFI381:
  23025. 15437 .cfi_def_cfa_offset 8
  23026. 15438 .cfi_offset 7, -8
  23027. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 398
  23028. 15439 .cfi_offset 14, -4
  23029. 15440 0002 84B0 sub sp, sp, #16
  23030. 15441 .LCFI382:
  23031. 15442 .cfi_def_cfa_offset 24
  23032. 15443 0004 00AF add r7, sp, #0
  23033. 15444 .LCFI383:
  23034. 15445 .cfi_def_cfa_register 7
  23035. 15446 0006 F860 str r0, [r7, #12]
  23036. 15447 0008 B960 str r1, [r7, #8]
  23037. 15448 000a 7A60 str r2, [r7, #4]
  23038. 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
  23039. 15449 .loc 1 7039 9
  23040. 15450 000c 33E0 b .L750
  23041. 15451 .L754:
  23042. 7040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23043. 7041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
  23044. 7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
  23045. 15452 .loc 1 7042 9
  23046. 15453 000e 7A68 ldr r2, [r7, #4]
  23047. 15454 0010 B968 ldr r1, [r7, #8]
  23048. 15455 0012 F868 ldr r0, [r7, #12]
  23049. 15456 0014 FFF7FEFF bl I2C_IsErrorOccurred
  23050. 15457 0018 0346 mov r3, r0
  23051. 15458 .loc 1 7042 8
  23052. 15459 001a 002B cmp r3, #0
  23053. 15460 001c 01D0 beq .L751
  23054. 7043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23055. 7044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  23056. 15461 .loc 1 7044 14
  23057. 15462 001e 0123 movs r3, #1
  23058. 15463 0020 31E0 b .L752
  23059. 15464 .L751:
  23060. 7045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23061. 7046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23062. 7047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
  23063. 7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
  23064. 15465 .loc 1 7048 8
  23065. 15466 0022 BB68 ldr r3, [r7, #8]
  23066. 15467 0024 B3F1FF3F cmp r3, #-1
  23067. 15468 0028 25D0 beq .L750
  23068. 7049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23069. 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
  23070. 15469 .loc 1 7050 13
  23071. 15470 002a FFF7FEFF bl HAL_GetTick
  23072. 15471 002e 0246 mov r2, r0
  23073. 15472 .loc 1 7050 27
  23074. 15473 0030 7B68 ldr r3, [r7, #4]
  23075. 15474 0032 D31A subs r3, r2, r3
  23076. 15475 .loc 1 7050 10
  23077. 15476 0034 BA68 ldr r2, [r7, #8]
  23078. 15477 0036 9A42 cmp r2, r3
  23079. 15478 0038 02D3 bcc .L753
  23080. 15479 .loc 1 7050 51 discriminator 1
  23081. 15480 003a BB68 ldr r3, [r7, #8]
  23082. 15481 003c 002B cmp r3, #0
  23083. 15482 003e 1AD1 bne .L750
  23084. 15483 .L753:
  23085. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 399
  23086. 7051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23087. 7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET))
  23088. 15484 .loc 1 7052 14
  23089. 15485 0040 FB68 ldr r3, [r7, #12]
  23090. 15486 0042 1B68 ldr r3, [r3]
  23091. 15487 0044 9B69 ldr r3, [r3, #24]
  23092. 15488 0046 03F00203 and r3, r3, #2
  23093. 15489 .loc 1 7052 12
  23094. 15490 004a 022B cmp r3, #2
  23095. 15491 004c 13D0 beq .L750
  23096. 7053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23097. 7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
  23098. 15492 .loc 1 7054 27
  23099. 15493 004e FB68 ldr r3, [r7, #12]
  23100. 15494 0050 5B6C ldr r3, [r3, #68]
  23101. 15495 0052 43F02002 orr r2, r3, #32
  23102. 15496 0056 FB68 ldr r3, [r7, #12]
  23103. 15497 0058 5A64 str r2, [r3, #68]
  23104. 7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  23105. 15498 .loc 1 7055 23
  23106. 15499 005a FB68 ldr r3, [r7, #12]
  23107. 15500 005c 2022 movs r2, #32
  23108. 15501 005e 83F84120 strb r2, [r3, #65]
  23109. 7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  23110. 15502 .loc 1 7056 22
  23111. 15503 0062 FB68 ldr r3, [r7, #12]
  23112. 15504 0064 0022 movs r2, #0
  23113. 15505 0066 83F84220 strb r2, [r3, #66]
  23114. 7057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23115. 7058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  23116. 7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  23117. 15506 .loc 1 7059 11
  23118. 15507 006a FB68 ldr r3, [r7, #12]
  23119. 15508 006c 0022 movs r2, #0
  23120. 15509 006e 83F84020 strb r2, [r3, #64]
  23121. 7060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23122. 7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  23123. 15510 .loc 1 7061 18
  23124. 15511 0072 0123 movs r3, #1
  23125. 15512 0074 07E0 b .L752
  23126. 15513 .L750:
  23127. 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23128. 15514 .loc 1 7039 10
  23129. 15515 0076 FB68 ldr r3, [r7, #12]
  23130. 15516 0078 1B68 ldr r3, [r3]
  23131. 15517 007a 9B69 ldr r3, [r3, #24]
  23132. 15518 007c 03F00203 and r3, r3, #2
  23133. 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23134. 15519 .loc 1 7039 9
  23135. 15520 0080 022B cmp r3, #2
  23136. 15521 0082 C4D1 bne .L754
  23137. 7062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23138. 7063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23139. 7064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23140. 7065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23141. 7066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  23142. 15522 .loc 1 7066 10
  23143. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 400
  23144. 15523 0084 0023 movs r3, #0
  23145. 15524 .L752:
  23146. 7067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23147. 15525 .loc 1 7067 1
  23148. 15526 0086 1846 mov r0, r3
  23149. 15527 0088 1037 adds r7, r7, #16
  23150. 15528 .LCFI384:
  23151. 15529 .cfi_def_cfa_offset 8
  23152. 15530 008a BD46 mov sp, r7
  23153. 15531 .LCFI385:
  23154. 15532 .cfi_def_cfa_register 13
  23155. 15533 @ sp needed
  23156. 15534 008c 80BD pop {r7, pc}
  23157. 15535 .cfi_endproc
  23158. 15536 .LFE203:
  23159. 15538 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
  23160. 15539 .align 1
  23161. 15540 .syntax unified
  23162. 15541 .thumb
  23163. 15542 .thumb_func
  23164. 15544 I2C_WaitOnSTOPFlagUntilTimeout:
  23165. 15545 .LFB204:
  23166. 7068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23167. 7069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  23168. 7070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
  23169. 7071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  23170. 7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  23171. 7073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  23172. 7074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
  23173. 7075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  23174. 7076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  23175. 7077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
  23176. 7078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
  23177. 7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23178. 15546 .loc 1 7079 1
  23179. 15547 .cfi_startproc
  23180. 15548 @ args = 0, pretend = 0, frame = 16
  23181. 15549 @ frame_needed = 1, uses_anonymous_args = 0
  23182. 15550 0000 80B5 push {r7, lr}
  23183. 15551 .LCFI386:
  23184. 15552 .cfi_def_cfa_offset 8
  23185. 15553 .cfi_offset 7, -8
  23186. 15554 .cfi_offset 14, -4
  23187. 15555 0002 84B0 sub sp, sp, #16
  23188. 15556 .LCFI387:
  23189. 15557 .cfi_def_cfa_offset 24
  23190. 15558 0004 00AF add r7, sp, #0
  23191. 15559 .LCFI388:
  23192. 15560 .cfi_def_cfa_register 7
  23193. 15561 0006 F860 str r0, [r7, #12]
  23194. 15562 0008 B960 str r1, [r7, #8]
  23195. 15563 000a 7A60 str r2, [r7, #4]
  23196. 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
  23197. 15564 .loc 1 7080 9
  23198. 15565 000c 2FE0 b .L756
  23199. 15566 .L760:
  23200. 7081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23201. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 401
  23202. 7082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
  23203. 7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
  23204. 15567 .loc 1 7083 9
  23205. 15568 000e 7A68 ldr r2, [r7, #4]
  23206. 15569 0010 B968 ldr r1, [r7, #8]
  23207. 15570 0012 F868 ldr r0, [r7, #12]
  23208. 15571 0014 FFF7FEFF bl I2C_IsErrorOccurred
  23209. 15572 0018 0346 mov r3, r0
  23210. 15573 .loc 1 7083 8
  23211. 15574 001a 002B cmp r3, #0
  23212. 15575 001c 01D0 beq .L757
  23213. 7084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23214. 7085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  23215. 15576 .loc 1 7085 14
  23216. 15577 001e 0123 movs r3, #1
  23217. 15578 0020 2DE0 b .L758
  23218. 15579 .L757:
  23219. 7086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23220. 7087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23221. 7088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
  23222. 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
  23223. 15580 .loc 1 7089 11
  23224. 15581 0022 FFF7FEFF bl HAL_GetTick
  23225. 15582 0026 0246 mov r2, r0
  23226. 15583 .loc 1 7089 25
  23227. 15584 0028 7B68 ldr r3, [r7, #4]
  23228. 15585 002a D31A subs r3, r2, r3
  23229. 15586 .loc 1 7089 8
  23230. 15587 002c BA68 ldr r2, [r7, #8]
  23231. 15588 002e 9A42 cmp r2, r3
  23232. 15589 0030 02D3 bcc .L759
  23233. 15590 .loc 1 7089 49 discriminator 1
  23234. 15591 0032 BB68 ldr r3, [r7, #8]
  23235. 15592 0034 002B cmp r3, #0
  23236. 15593 0036 1AD1 bne .L756
  23237. 15594 .L759:
  23238. 7090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23239. 7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET))
  23240. 15595 .loc 1 7091 12
  23241. 15596 0038 FB68 ldr r3, [r7, #12]
  23242. 15597 003a 1B68 ldr r3, [r3]
  23243. 15598 003c 9B69 ldr r3, [r3, #24]
  23244. 15599 003e 03F02003 and r3, r3, #32
  23245. 15600 .loc 1 7091 10
  23246. 15601 0042 202B cmp r3, #32
  23247. 15602 0044 13D0 beq .L756
  23248. 7092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23249. 7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
  23250. 15603 .loc 1 7093 25
  23251. 15604 0046 FB68 ldr r3, [r7, #12]
  23252. 15605 0048 5B6C ldr r3, [r3, #68]
  23253. 15606 004a 43F02002 orr r2, r3, #32
  23254. 15607 004e FB68 ldr r3, [r7, #12]
  23255. 15608 0050 5A64 str r2, [r3, #68]
  23256. 7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  23257. 15609 .loc 1 7094 21
  23258. 15610 0052 FB68 ldr r3, [r7, #12]
  23259. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 402
  23260. 15611 0054 2022 movs r2, #32
  23261. 15612 0056 83F84120 strb r2, [r3, #65]
  23262. 7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  23263. 15613 .loc 1 7095 20
  23264. 15614 005a FB68 ldr r3, [r7, #12]
  23265. 15615 005c 0022 movs r2, #0
  23266. 15616 005e 83F84220 strb r2, [r3, #66]
  23267. 7096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23268. 7097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  23269. 7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  23270. 15617 .loc 1 7098 9
  23271. 15618 0062 FB68 ldr r3, [r7, #12]
  23272. 15619 0064 0022 movs r2, #0
  23273. 15620 0066 83F84020 strb r2, [r3, #64]
  23274. 7099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23275. 7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
  23276. 15621 .loc 1 7100 16
  23277. 15622 006a 0123 movs r3, #1
  23278. 15623 006c 07E0 b .L758
  23279. 15624 .L756:
  23280. 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23281. 15625 .loc 1 7080 10
  23282. 15626 006e FB68 ldr r3, [r7, #12]
  23283. 15627 0070 1B68 ldr r3, [r3]
  23284. 15628 0072 9B69 ldr r3, [r3, #24]
  23285. 15629 0074 03F02003 and r3, r3, #32
  23286. 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23287. 15630 .loc 1 7080 9
  23288. 15631 0078 202B cmp r3, #32
  23289. 15632 007a C8D1 bne .L760
  23290. 7101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23291. 7102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23292. 7103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23293. 7104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
  23294. 15633 .loc 1 7104 10
  23295. 15634 007c 0023 movs r3, #0
  23296. 15635 .L758:
  23297. 7105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23298. 15636 .loc 1 7105 1
  23299. 15637 007e 1846 mov r0, r3
  23300. 15638 0080 1037 adds r7, r7, #16
  23301. 15639 .LCFI389:
  23302. 15640 .cfi_def_cfa_offset 8
  23303. 15641 0082 BD46 mov sp, r7
  23304. 15642 .LCFI390:
  23305. 15643 .cfi_def_cfa_register 13
  23306. 15644 @ sp needed
  23307. 15645 0084 80BD pop {r7, pc}
  23308. 15646 .cfi_endproc
  23309. 15647 .LFE204:
  23310. 15649 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
  23311. 15650 .align 1
  23312. 15651 .syntax unified
  23313. 15652 .thumb
  23314. 15653 .thumb_func
  23315. 15655 I2C_WaitOnRXNEFlagUntilTimeout:
  23316. 15656 .LFB205:
  23317. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 403
  23318. 7106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23319. 7107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  23320. 7108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
  23321. 7109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  23322. 7110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  23323. 7111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  23324. 7112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
  23325. 7113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  23326. 7114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  23327. 7115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
  23328. 7116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
  23329. 7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23330. 15657 .loc 1 7117 1
  23331. 15658 .cfi_startproc
  23332. 15659 @ args = 0, pretend = 0, frame = 24
  23333. 15660 @ frame_needed = 1, uses_anonymous_args = 0
  23334. 15661 0000 80B5 push {r7, lr}
  23335. 15662 .LCFI391:
  23336. 15663 .cfi_def_cfa_offset 8
  23337. 15664 .cfi_offset 7, -8
  23338. 15665 .cfi_offset 14, -4
  23339. 15666 0002 86B0 sub sp, sp, #24
  23340. 15667 .LCFI392:
  23341. 15668 .cfi_def_cfa_offset 32
  23342. 15669 0004 00AF add r7, sp, #0
  23343. 15670 .LCFI393:
  23344. 15671 .cfi_def_cfa_register 7
  23345. 15672 0006 F860 str r0, [r7, #12]
  23346. 15673 0008 B960 str r1, [r7, #8]
  23347. 15674 000a 7A60 str r2, [r7, #4]
  23348. 7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
  23349. 15675 .loc 1 7118 21
  23350. 15676 000c 0023 movs r3, #0
  23351. 15677 000e FB75 strb r3, [r7, #23]
  23352. 7119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23353. 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK))
  23354. 15678 .loc 1 7120 9
  23355. 15679 0010 71E0 b .L762
  23356. 15680 .L769:
  23357. 7121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23358. 7122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
  23359. 7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
  23360. 15681 .loc 1 7123 9
  23361. 15682 0012 7A68 ldr r2, [r7, #4]
  23362. 15683 0014 B968 ldr r1, [r7, #8]
  23363. 15684 0016 F868 ldr r0, [r7, #12]
  23364. 15685 0018 FFF7FEFF bl I2C_IsErrorOccurred
  23365. 15686 001c 0346 mov r3, r0
  23366. 15687 .loc 1 7123 8
  23367. 15688 001e 002B cmp r3, #0
  23368. 15689 0020 01D0 beq .L763
  23369. 7124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23370. 7125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23371. 15690 .loc 1 7125 14
  23372. 15691 0022 0123 movs r3, #1
  23373. 15692 0024 FB75 strb r3, [r7, #23]
  23374. 15693 .L763:
  23375. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 404
  23376. 7126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23377. 7127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23378. 7128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
  23379. 7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK))
  23380. 15694 .loc 1 7129 10
  23381. 15695 0026 FB68 ldr r3, [r7, #12]
  23382. 15696 0028 1B68 ldr r3, [r3]
  23383. 15697 002a 9B69 ldr r3, [r3, #24]
  23384. 15698 002c 03F02003 and r3, r3, #32
  23385. 15699 .loc 1 7129 8
  23386. 15700 0030 202B cmp r3, #32
  23387. 15701 0032 3BD1 bne .L764
  23388. 15702 .loc 1 7129 59 discriminator 1
  23389. 15703 0034 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  23390. 15704 0036 002B cmp r3, #0
  23391. 15705 0038 38D1 bne .L764
  23392. 7130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23393. 7131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an RXNE is pending */
  23394. 7132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
  23395. 7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
  23396. 15706 .loc 1 7133 12
  23397. 15707 003a FB68 ldr r3, [r7, #12]
  23398. 15708 003c 1B68 ldr r3, [r3]
  23399. 15709 003e 9B69 ldr r3, [r3, #24]
  23400. 15710 0040 03F00403 and r3, r3, #4
  23401. 15711 .loc 1 7133 10
  23402. 15712 0044 042B cmp r3, #4
  23403. 15713 0046 05D1 bne .L765
  23404. 15714 .loc 1 7133 68 discriminator 1
  23405. 15715 0048 FB68 ldr r3, [r7, #12]
  23406. 15716 004a 1B8D ldrh r3, [r3, #40]
  23407. 15717 .loc 1 7133 60 discriminator 1
  23408. 15718 004c 002B cmp r3, #0
  23409. 15719 004e 01D0 beq .L765
  23410. 7134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23411. 7135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return HAL_OK */
  23412. 7136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
  23413. 7137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_OK;
  23414. 15720 .loc 1 7137 16
  23415. 15721 0050 0023 movs r3, #0
  23416. 15722 0052 FB75 strb r3, [r7, #23]
  23417. 15723 .L765:
  23418. 7138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23419. 7139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23420. 7140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */
  23421. 7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
  23422. 15724 .loc 1 7141 11
  23423. 15725 0054 FB68 ldr r3, [r7, #12]
  23424. 15726 0056 1B68 ldr r3, [r3]
  23425. 15727 0058 9B69 ldr r3, [r3, #24]
  23426. 15728 005a 03F01003 and r3, r3, #16
  23427. 15729 .loc 1 7141 10
  23428. 15730 005e 102B cmp r3, #16
  23429. 15731 0060 21D1 bne .L766
  23430. 7142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23431. 7143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  23432. 15732 .loc 1 7143 9
  23433. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 405
  23434. 15733 0062 FB68 ldr r3, [r7, #12]
  23435. 15734 0064 1B68 ldr r3, [r3]
  23436. 15735 0066 1022 movs r2, #16
  23437. 15736 0068 DA61 str r2, [r3, #28]
  23438. 7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
  23439. 15737 .loc 1 7144 25
  23440. 15738 006a FB68 ldr r3, [r7, #12]
  23441. 15739 006c 0422 movs r2, #4
  23442. 15740 006e 5A64 str r2, [r3, #68]
  23443. 7145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23444. 7146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  23445. 7147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  23446. 15741 .loc 1 7147 9
  23447. 15742 0070 FB68 ldr r3, [r7, #12]
  23448. 15743 0072 1B68 ldr r3, [r3]
  23449. 15744 0074 2022 movs r2, #32
  23450. 15745 0076 DA61 str r2, [r3, #28]
  23451. 7148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23452. 7149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  23453. 7150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  23454. 15746 .loc 1 7150 9
  23455. 15747 0078 FB68 ldr r3, [r7, #12]
  23456. 15748 007a 1B68 ldr r3, [r3]
  23457. 15749 007c 5968 ldr r1, [r3, #4]
  23458. 15750 007e FB68 ldr r3, [r7, #12]
  23459. 15751 0080 1A68 ldr r2, [r3]
  23460. 15752 0082 244B ldr r3, .L771
  23461. 15753 0084 0B40 ands r3, r3, r1
  23462. 15754 0086 5360 str r3, [r2, #4]
  23463. 7151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23464. 7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  23465. 15755 .loc 1 7152 21
  23466. 15756 0088 FB68 ldr r3, [r7, #12]
  23467. 15757 008a 2022 movs r2, #32
  23468. 15758 008c 83F84120 strb r2, [r3, #65]
  23469. 7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  23470. 15759 .loc 1 7153 20
  23471. 15760 0090 FB68 ldr r3, [r7, #12]
  23472. 15761 0092 0022 movs r2, #0
  23473. 15762 0094 83F84220 strb r2, [r3, #66]
  23474. 7154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23475. 7155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  23476. 7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  23477. 15763 .loc 1 7156 9
  23478. 15764 0098 FB68 ldr r3, [r7, #12]
  23479. 15765 009a 0022 movs r2, #0
  23480. 15766 009c 83F84020 strb r2, [r3, #64]
  23481. 7157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23482. 7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23483. 15767 .loc 1 7158 16
  23484. 15768 00a0 0123 movs r3, #1
  23485. 15769 00a2 FB75 strb r3, [r7, #23]
  23486. 15770 00a4 02E0 b .L764
  23487. 15771 .L766:
  23488. 7159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23489. 7160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  23490. 7161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23491. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 406
  23492. 7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
  23493. 15772 .loc 1 7162 25
  23494. 15773 00a6 FB68 ldr r3, [r7, #12]
  23495. 15774 00a8 0022 movs r2, #0
  23496. 15775 00aa 5A64 str r2, [r3, #68]
  23497. 15776 .L764:
  23498. 7163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23499. 7164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23500. 7165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23501. 7166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
  23502. 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK))
  23503. 15777 .loc 1 7167 12
  23504. 15778 00ac FFF7FEFF bl HAL_GetTick
  23505. 15779 00b0 0246 mov r2, r0
  23506. 15780 .loc 1 7167 26
  23507. 15781 00b2 7B68 ldr r3, [r7, #4]
  23508. 15782 00b4 D31A subs r3, r2, r3
  23509. 15783 .loc 1 7167 8
  23510. 15784 00b6 BA68 ldr r2, [r7, #8]
  23511. 15785 00b8 9A42 cmp r2, r3
  23512. 15786 00ba 02D3 bcc .L767
  23513. 15787 .loc 1 7167 50 discriminator 2
  23514. 15788 00bc BB68 ldr r3, [r7, #8]
  23515. 15789 00be 002B cmp r3, #0
  23516. 15790 00c0 19D1 bne .L762
  23517. 15791 .L767:
  23518. 15792 .loc 1 7167 70 discriminator 3
  23519. 15793 00c2 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  23520. 15794 00c4 002B cmp r3, #0
  23521. 15795 00c6 16D1 bne .L762
  23522. 7168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23523. 7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET))
  23524. 15796 .loc 1 7169 12
  23525. 15797 00c8 FB68 ldr r3, [r7, #12]
  23526. 15798 00ca 1B68 ldr r3, [r3]
  23527. 15799 00cc 9B69 ldr r3, [r3, #24]
  23528. 15800 00ce 03F00403 and r3, r3, #4
  23529. 15801 .loc 1 7169 10
  23530. 15802 00d2 042B cmp r3, #4
  23531. 15803 00d4 0FD0 beq .L762
  23532. 7170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23533. 7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
  23534. 15804 .loc 1 7171 25
  23535. 15805 00d6 FB68 ldr r3, [r7, #12]
  23536. 15806 00d8 5B6C ldr r3, [r3, #68]
  23537. 15807 00da 43F02002 orr r2, r3, #32
  23538. 15808 00de FB68 ldr r3, [r7, #12]
  23539. 15809 00e0 5A64 str r2, [r3, #68]
  23540. 7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  23541. 15810 .loc 1 7172 21
  23542. 15811 00e2 FB68 ldr r3, [r7, #12]
  23543. 15812 00e4 2022 movs r2, #32
  23544. 15813 00e6 83F84120 strb r2, [r3, #65]
  23545. 7173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23546. 7174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  23547. 7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  23548. 15814 .loc 1 7175 9
  23549. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 407
  23550. 15815 00ea FB68 ldr r3, [r7, #12]
  23551. 15816 00ec 0022 movs r2, #0
  23552. 15817 00ee 83F84020 strb r2, [r3, #64]
  23553. 7176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23554. 7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23555. 15818 .loc 1 7177 16
  23556. 15819 00f2 0123 movs r3, #1
  23557. 15820 00f4 FB75 strb r3, [r7, #23]
  23558. 15821 .L762:
  23559. 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23560. 15822 .loc 1 7120 11
  23561. 15823 00f6 FB68 ldr r3, [r7, #12]
  23562. 15824 00f8 1B68 ldr r3, [r3]
  23563. 15825 00fa 9B69 ldr r3, [r3, #24]
  23564. 15826 00fc 03F00403 and r3, r3, #4
  23565. 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23566. 15827 .loc 1 7120 9
  23567. 15828 0100 042B cmp r3, #4
  23568. 15829 0102 02D0 beq .L768
  23569. 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23570. 15830 .loc 1 7120 61 discriminator 1
  23571. 15831 0104 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  23572. 15832 0106 002B cmp r3, #0
  23573. 15833 0108 83D0 beq .L769
  23574. 15834 .L768:
  23575. 7178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23576. 7179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23577. 7180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23578. 7181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
  23579. 15835 .loc 1 7181 10
  23580. 15836 010a FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  23581. 7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23582. 15837 .loc 1 7182 1
  23583. 15838 010c 1846 mov r0, r3
  23584. 15839 010e 1837 adds r7, r7, #24
  23585. 15840 .LCFI394:
  23586. 15841 .cfi_def_cfa_offset 8
  23587. 15842 0110 BD46 mov sp, r7
  23588. 15843 .LCFI395:
  23589. 15844 .cfi_def_cfa_register 13
  23590. 15845 @ sp needed
  23591. 15846 0112 80BD pop {r7, pc}
  23592. 15847 .L772:
  23593. 15848 .align 2
  23594. 15849 .L771:
  23595. 15850 0114 00E800FE .word -33495040
  23596. 15851 .cfi_endproc
  23597. 15852 .LFE205:
  23598. 15854 .section .text.I2C_IsErrorOccurred,"ax",%progbits
  23599. 15855 .align 1
  23600. 15856 .syntax unified
  23601. 15857 .thumb
  23602. 15858 .thumb_func
  23603. 15860 I2C_IsErrorOccurred:
  23604. 15861 .LFB206:
  23605. 7183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23606. 7184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  23607. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 408
  23608. 7185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication.
  23609. 7186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  23610. 7187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  23611. 7188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
  23612. 7189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
  23613. 7190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
  23614. 7191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  23615. 7192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti
  23616. 7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23617. 15862 .loc 1 7193 1
  23618. 15863 .cfi_startproc
  23619. 15864 @ args = 0, pretend = 0, frame = 40
  23620. 15865 @ frame_needed = 1, uses_anonymous_args = 0
  23621. 15866 0000 80B5 push {r7, lr}
  23622. 15867 .LCFI396:
  23623. 15868 .cfi_def_cfa_offset 8
  23624. 15869 .cfi_offset 7, -8
  23625. 15870 .cfi_offset 14, -4
  23626. 15871 0002 8AB0 sub sp, sp, #40
  23627. 15872 .LCFI397:
  23628. 15873 .cfi_def_cfa_offset 48
  23629. 15874 0004 00AF add r7, sp, #0
  23630. 15875 .LCFI398:
  23631. 15876 .cfi_def_cfa_register 7
  23632. 15877 0006 F860 str r0, [r7, #12]
  23633. 15878 0008 B960 str r1, [r7, #8]
  23634. 15879 000a 7A60 str r2, [r7, #4]
  23635. 7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
  23636. 15880 .loc 1 7194 21
  23637. 15881 000c 0023 movs r3, #0
  23638. 15882 000e 87F82730 strb r3, [r7, #39]
  23639. 7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
  23640. 15883 .loc 1 7195 27
  23641. 15884 0012 FB68 ldr r3, [r7, #12]
  23642. 15885 0014 1B68 ldr r3, [r3]
  23643. 15886 .loc 1 7195 12
  23644. 15887 0016 9B69 ldr r3, [r3, #24]
  23645. 15888 0018 BB61 str r3, [r7, #24]
  23646. 7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0;
  23647. 15889 .loc 1 7196 12
  23648. 15890 001a 0023 movs r3, #0
  23649. 15891 001c 3B62 str r3, [r7, #32]
  23650. 7197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
  23651. 15892 .loc 1 7197 12
  23652. 15893 001e 7B68 ldr r3, [r7, #4]
  23653. 15894 0020 FB61 str r3, [r7, #28]
  23654. 7198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp1;
  23655. 7199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
  23656. 7200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23657. 7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF))
  23658. 15895 .loc 1 7201 7
  23659. 15896 0022 BB69 ldr r3, [r7, #24]
  23660. 15897 0024 03F01003 and r3, r3, #16
  23661. 15898 .loc 1 7201 6
  23662. 15899 0028 002B cmp r3, #0
  23663. 15900 002a 68D0 beq .L774
  23664. 7202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23665. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 409
  23666. 7203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACKF Flag */
  23667. 7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
  23668. 15901 .loc 1 7204 5
  23669. 15902 002c FB68 ldr r3, [r7, #12]
  23670. 15903 002e 1B68 ldr r3, [r3]
  23671. 15904 0030 1022 movs r2, #16
  23672. 15905 0032 DA61 str r2, [r3, #28]
  23673. 7205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23674. 7206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */
  23675. 7207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
  23676. 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
  23677. 15906 .loc 1 7208 11
  23678. 15907 0034 49E0 b .L775
  23679. 15908 .L781:
  23680. 7209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23681. 7210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
  23682. 7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
  23683. 15909 .loc 1 7211 10
  23684. 15910 0036 BB68 ldr r3, [r7, #8]
  23685. 15911 0038 B3F1FF3F cmp r3, #-1
  23686. 15912 003c 45D0 beq .L775
  23687. 7212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23688. 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
  23689. 15913 .loc 1 7213 15
  23690. 15914 003e FFF7FEFF bl HAL_GetTick
  23691. 15915 0042 0246 mov r2, r0
  23692. 15916 .loc 1 7213 29
  23693. 15917 0044 FB69 ldr r3, [r7, #28]
  23694. 15918 0046 D31A subs r3, r2, r3
  23695. 15919 .loc 1 7213 12
  23696. 15920 0048 BA68 ldr r2, [r7, #8]
  23697. 15921 004a 9A42 cmp r2, r3
  23698. 15922 004c 02D3 bcc .L776
  23699. 15923 .loc 1 7213 53 discriminator 1
  23700. 15924 004e BB68 ldr r3, [r7, #8]
  23701. 15925 0050 002B cmp r3, #0
  23702. 15926 0052 3AD1 bne .L775
  23703. 15927 .L776:
  23704. 7214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23705. 7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP);
  23706. 15928 .loc 1 7215 33
  23707. 15929 0054 FB68 ldr r3, [r7, #12]
  23708. 15930 0056 1B68 ldr r3, [r3]
  23709. 15931 .loc 1 7215 43
  23710. 15932 0058 5B68 ldr r3, [r3, #4]
  23711. 15933 .loc 1 7215 16
  23712. 15934 005a 03F48043 and r3, r3, #16384
  23713. 15935 005e 7B61 str r3, [r7, #20]
  23714. 7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
  23715. 15936 .loc 1 7216 16
  23716. 15937 0060 FB68 ldr r3, [r7, #12]
  23717. 15938 0062 93F84230 ldrb r3, [r3, #66]
  23718. 15939 0066 FB74 strb r3, [r7, #19]
  23719. 7217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23720. 7218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */
  23721. 7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \
  23722. 15940 .loc 1 7219 16
  23723. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 410
  23724. 15941 0068 FB68 ldr r3, [r7, #12]
  23725. 15942 006a 1B68 ldr r3, [r3]
  23726. 15943 006c 9B69 ldr r3, [r3, #24]
  23727. 15944 006e 03F40043 and r3, r3, #32768
  23728. 15945 .loc 1 7219 14
  23729. 15946 0072 B3F5004F cmp r3, #32768
  23730. 15947 0076 21D1 bne .L778
  23731. 15948 .loc 1 7219 66 discriminator 1
  23732. 15949 0078 7B69 ldr r3, [r7, #20]
  23733. 15950 007a B3F5804F cmp r3, #16384
  23734. 15951 007e 1DD0 beq .L778
  23735. 7220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
  23736. 15952 .loc 1 7220 38
  23737. 15953 0080 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
  23738. 15954 0082 202B cmp r3, #32
  23739. 15955 0084 1AD0 beq .L778
  23740. 7221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
  23741. 7222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23742. 7223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
  23743. 7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
  23744. 15956 .loc 1 7224 17
  23745. 15957 0086 FB68 ldr r3, [r7, #12]
  23746. 15958 0088 1B68 ldr r3, [r3]
  23747. 15959 .loc 1 7224 33
  23748. 15960 008a 5A68 ldr r2, [r3, #4]
  23749. 15961 .loc 1 7224 17
  23750. 15962 008c FB68 ldr r3, [r7, #12]
  23751. 15963 008e 1B68 ldr r3, [r3]
  23752. 15964 .loc 1 7224 33
  23753. 15965 0090 42F48042 orr r2, r2, #16384
  23754. 15966 0094 5A60 str r2, [r3, #4]
  23755. 7225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23756. 7226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Tick with new reference */
  23757. 7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
  23758. 15967 .loc 1 7227 25
  23759. 15968 0096 FFF7FEFF bl HAL_GetTick
  23760. 15969 009a F861 str r0, [r7, #28]
  23761. 7228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23762. 7229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23763. 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
  23764. 15970 .loc 1 7230 17
  23765. 15971 009c 0EE0 b .L778
  23766. 15972 .L779:
  23767. 7231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23768. 7232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
  23769. 7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF)
  23770. 15973 .loc 1 7233 18
  23771. 15974 009e FFF7FEFF bl HAL_GetTick
  23772. 15975 00a2 0246 mov r2, r0
  23773. 15976 .loc 1 7233 32
  23774. 15977 00a4 FB69 ldr r3, [r7, #28]
  23775. 15978 00a6 D31A subs r3, r2, r3
  23776. 15979 .loc 1 7233 16
  23777. 15980 00a8 192B cmp r3, #25
  23778. 15981 00aa 07D9 bls .L778
  23779. 7234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23780. 7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT;
  23781. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 411
  23782. 15982 .loc 1 7235 26
  23783. 15983 00ac 3B6A ldr r3, [r7, #32]
  23784. 15984 00ae 43F02003 orr r3, r3, #32
  23785. 15985 00b2 3B62 str r3, [r7, #32]
  23786. 7236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23787. 7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23788. 15986 .loc 1 7237 22
  23789. 15987 00b4 0123 movs r3, #1
  23790. 15988 00b6 87F82730 strb r3, [r7, #39]
  23791. 7238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23792. 7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
  23793. 15989 .loc 1 7239 15
  23794. 15990 00ba 06E0 b .L775
  23795. 15991 .L778:
  23796. 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23797. 15992 .loc 1 7230 18
  23798. 15993 00bc FB68 ldr r3, [r7, #12]
  23799. 15994 00be 1B68 ldr r3, [r3]
  23800. 15995 00c0 9B69 ldr r3, [r3, #24]
  23801. 15996 00c2 03F02003 and r3, r3, #32
  23802. 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23803. 15997 .loc 1 7230 17
  23804. 15998 00c6 202B cmp r3, #32
  23805. 15999 00c8 E9D1 bne .L779
  23806. 16000 .L775:
  23807. 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23808. 16001 .loc 1 7208 13
  23809. 16002 00ca FB68 ldr r3, [r7, #12]
  23810. 16003 00cc 1B68 ldr r3, [r3]
  23811. 16004 00ce 9B69 ldr r3, [r3, #24]
  23812. 16005 00d0 03F02003 and r3, r3, #32
  23813. 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23814. 16006 .loc 1 7208 11
  23815. 16007 00d4 202B cmp r3, #32
  23816. 16008 00d6 03D0 beq .L780
  23817. 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23818. 16009 .loc 1 7208 64 discriminator 1
  23819. 16010 00d8 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
  23820. 16011 00dc 002B cmp r3, #0
  23821. 16012 00de AAD0 beq .L781
  23822. 16013 .L780:
  23823. 7240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23824. 7241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23825. 7242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23826. 7243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23827. 7244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23828. 7245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23829. 7246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */
  23830. 7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status == HAL_OK)
  23831. 16014 .loc 1 7247 8
  23832. 16015 00e0 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
  23833. 16016 00e4 002B cmp r3, #0
  23834. 16017 00e6 03D1 bne .L782
  23835. 7248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23836. 7249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
  23837. 7250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
  23838. 16018 .loc 1 7250 7
  23839. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 412
  23840. 16019 00e8 FB68 ldr r3, [r7, #12]
  23841. 16020 00ea 1B68 ldr r3, [r3]
  23842. 16021 00ec 2022 movs r2, #32
  23843. 16022 00ee DA61 str r2, [r3, #28]
  23844. 16023 .L782:
  23845. 7251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23846. 7252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23847. 7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF;
  23848. 16024 .loc 1 7253 16
  23849. 16025 00f0 3B6A ldr r3, [r7, #32]
  23850. 16026 00f2 43F00403 orr r3, r3, #4
  23851. 16027 00f6 3B62 str r3, [r7, #32]
  23852. 7254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23853. 7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23854. 16028 .loc 1 7255 12
  23855. 16029 00f8 0123 movs r3, #1
  23856. 16030 00fa 87F82730 strb r3, [r7, #39]
  23857. 16031 .L774:
  23858. 7256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23859. 7257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23860. 7258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Refresh Content of Status register */
  23861. 7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** itflag = hi2c->Instance->ISR;
  23862. 16032 .loc 1 7259 16
  23863. 16033 00fe FB68 ldr r3, [r7, #12]
  23864. 16034 0100 1B68 ldr r3, [r3]
  23865. 16035 .loc 1 7259 10
  23866. 16036 0102 9B69 ldr r3, [r3, #24]
  23867. 16037 0104 BB61 str r3, [r7, #24]
  23868. 7260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23869. 7261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Then verify if an additional errors occurs */
  23870. 7262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a Bus error occurred */
  23871. 7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR))
  23872. 16038 .loc 1 7263 7
  23873. 16039 0106 BB69 ldr r3, [r7, #24]
  23874. 16040 0108 03F48073 and r3, r3, #256
  23875. 16041 .loc 1 7263 6
  23876. 16042 010c 002B cmp r3, #0
  23877. 16043 010e 0BD0 beq .L783
  23878. 7264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23879. 7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR;
  23880. 16044 .loc 1 7265 16
  23881. 16045 0110 3B6A ldr r3, [r7, #32]
  23882. 16046 0112 43F00103 orr r3, r3, #1
  23883. 16047 0116 3B62 str r3, [r7, #32]
  23884. 7266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23885. 7267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
  23886. 7268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
  23887. 16048 .loc 1 7268 5
  23888. 16049 0118 FB68 ldr r3, [r7, #12]
  23889. 16050 011a 1B68 ldr r3, [r3]
  23890. 16051 011c 4FF48072 mov r2, #256
  23891. 16052 0120 DA61 str r2, [r3, #28]
  23892. 7269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23893. 7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23894. 16053 .loc 1 7270 12
  23895. 16054 0122 0123 movs r3, #1
  23896. 16055 0124 87F82730 strb r3, [r7, #39]
  23897. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 413
  23898. 16056 .L783:
  23899. 7271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23900. 7272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23901. 7273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */
  23902. 7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR))
  23903. 16057 .loc 1 7274 7
  23904. 16058 0128 BB69 ldr r3, [r7, #24]
  23905. 16059 012a 03F48063 and r3, r3, #1024
  23906. 16060 .loc 1 7274 6
  23907. 16061 012e 002B cmp r3, #0
  23908. 16062 0130 0BD0 beq .L784
  23909. 7275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23910. 7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR;
  23911. 16063 .loc 1 7276 16
  23912. 16064 0132 3B6A ldr r3, [r7, #32]
  23913. 16065 0134 43F00803 orr r3, r3, #8
  23914. 16066 0138 3B62 str r3, [r7, #32]
  23915. 7277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23916. 7278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
  23917. 7279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
  23918. 16067 .loc 1 7279 5
  23919. 16068 013a FB68 ldr r3, [r7, #12]
  23920. 16069 013c 1B68 ldr r3, [r3]
  23921. 16070 013e 4FF48062 mov r2, #1024
  23922. 16071 0142 DA61 str r2, [r3, #28]
  23923. 7280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23924. 7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23925. 16072 .loc 1 7281 12
  23926. 16073 0144 0123 movs r3, #1
  23927. 16074 0146 87F82730 strb r3, [r7, #39]
  23928. 16075 .L784:
  23929. 7282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23930. 7283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23931. 7284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */
  23932. 7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO))
  23933. 16076 .loc 1 7285 7
  23934. 16077 014a BB69 ldr r3, [r7, #24]
  23935. 16078 014c 03F40073 and r3, r3, #512
  23936. 16079 .loc 1 7285 6
  23937. 16080 0150 002B cmp r3, #0
  23938. 16081 0152 0BD0 beq .L785
  23939. 7286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23940. 7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO;
  23941. 16082 .loc 1 7287 16
  23942. 16083 0154 3B6A ldr r3, [r7, #32]
  23943. 16084 0156 43F00203 orr r3, r3, #2
  23944. 16085 015a 3B62 str r3, [r7, #32]
  23945. 7288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23946. 7289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
  23947. 7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
  23948. 16086 .loc 1 7290 5
  23949. 16087 015c FB68 ldr r3, [r7, #12]
  23950. 16088 015e 1B68 ldr r3, [r3]
  23951. 16089 0160 4FF40072 mov r2, #512
  23952. 16090 0164 DA61 str r2, [r3, #28]
  23953. 7291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23954. 7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
  23955. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 414
  23956. 16091 .loc 1 7292 12
  23957. 16092 0166 0123 movs r3, #1
  23958. 16093 0168 87F82730 strb r3, [r7, #39]
  23959. 16094 .L785:
  23960. 7293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  23961. 7294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23962. 7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status != HAL_OK)
  23963. 16095 .loc 1 7295 6
  23964. 16096 016c 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
  23965. 16097 0170 002B cmp r3, #0
  23966. 16098 0172 1CD0 beq .L786
  23967. 7296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  23968. 7297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
  23969. 7298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
  23970. 16099 .loc 1 7298 5
  23971. 16100 0174 F868 ldr r0, [r7, #12]
  23972. 16101 0176 FFF7FEFF bl I2C_Flush_TXDR
  23973. 7299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23974. 7300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
  23975. 7301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
  23976. 16102 .loc 1 7301 5
  23977. 16103 017a FB68 ldr r3, [r7, #12]
  23978. 16104 017c 1B68 ldr r3, [r3]
  23979. 16105 017e 5968 ldr r1, [r3, #4]
  23980. 16106 0180 FB68 ldr r3, [r7, #12]
  23981. 16107 0182 1A68 ldr r2, [r3]
  23982. 16108 0184 0D4B ldr r3, .L788
  23983. 16109 0186 0B40 ands r3, r3, r1
  23984. 16110 0188 5360 str r3, [r2, #4]
  23985. 7302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  23986. 7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= error_code;
  23987. 16111 .loc 1 7303 21
  23988. 16112 018a FB68 ldr r3, [r7, #12]
  23989. 16113 018c 5A6C ldr r2, [r3, #68]
  23990. 16114 018e 3B6A ldr r3, [r7, #32]
  23991. 16115 0190 1A43 orrs r2, r2, r3
  23992. 16116 0192 FB68 ldr r3, [r7, #12]
  23993. 16117 0194 5A64 str r2, [r3, #68]
  23994. 7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
  23995. 16118 .loc 1 7304 17
  23996. 16119 0196 FB68 ldr r3, [r7, #12]
  23997. 16120 0198 2022 movs r2, #32
  23998. 16121 019a 83F84120 strb r2, [r3, #65]
  23999. 7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
  24000. 16122 .loc 1 7305 16
  24001. 16123 019e FB68 ldr r3, [r7, #12]
  24002. 16124 01a0 0022 movs r2, #0
  24003. 16125 01a2 83F84220 strb r2, [r3, #66]
  24004. 7306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24005. 7307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
  24006. 7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
  24007. 16126 .loc 1 7308 5
  24008. 16127 01a6 FB68 ldr r3, [r7, #12]
  24009. 16128 01a8 0022 movs r2, #0
  24010. 16129 01aa 83F84020 strb r2, [r3, #64]
  24011. 16130 .L786:
  24012. 7309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24013. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 415
  24014. 7310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24015. 7311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
  24016. 16131 .loc 1 7311 10
  24017. 16132 01ae 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
  24018. 7312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24019. 16133 .loc 1 7312 1
  24020. 16134 01b2 1846 mov r0, r3
  24021. 16135 01b4 2837 adds r7, r7, #40
  24022. 16136 .LCFI399:
  24023. 16137 .cfi_def_cfa_offset 8
  24024. 16138 01b6 BD46 mov sp, r7
  24025. 16139 .LCFI400:
  24026. 16140 .cfi_def_cfa_register 13
  24027. 16141 @ sp needed
  24028. 16142 01b8 80BD pop {r7, pc}
  24029. 16143 .L789:
  24030. 16144 01ba 00BF .align 2
  24031. 16145 .L788:
  24032. 16146 01bc 00E800FE .word -33495040
  24033. 16147 .cfi_endproc
  24034. 16148 .LFE206:
  24035. 16150 .section .text.I2C_TransferConfig,"ax",%progbits
  24036. 16151 .align 1
  24037. 16152 .syntax unified
  24038. 16153 .thumb
  24039. 16154 .thumb_func
  24040. 16156 I2C_TransferConfig:
  24041. 16157 .LFB207:
  24042. 7313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24043. 7314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  24044. 7315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
  24045. 7316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  24046. 7317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
  24047. 7318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
  24048. 7319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
  24049. 7320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
  24050. 7321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
  24051. 7322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
  24052. 7323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
  24053. 7324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
  24054. 7325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
  24055. 7326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
  24056. 7327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
  24057. 7328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
  24058. 7329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
  24059. 7330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
  24060. 7331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  24061. 7332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  24062. 7333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
  24063. 7334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request)
  24064. 7335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24065. 16158 .loc 1 7335 1
  24066. 16159 .cfi_startproc
  24067. 16160 @ args = 4, pretend = 0, frame = 24
  24068. 16161 @ frame_needed = 1, uses_anonymous_args = 0
  24069. 16162 0000 80B5 push {r7, lr}
  24070. 16163 .LCFI401:
  24071. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 416
  24072. 16164 .cfi_def_cfa_offset 8
  24073. 16165 .cfi_offset 7, -8
  24074. 16166 .cfi_offset 14, -4
  24075. 16167 0002 86B0 sub sp, sp, #24
  24076. 16168 .LCFI402:
  24077. 16169 .cfi_def_cfa_offset 32
  24078. 16170 0004 00AF add r7, sp, #0
  24079. 16171 .LCFI403:
  24080. 16172 .cfi_def_cfa_register 7
  24081. 16173 0006 F860 str r0, [r7, #12]
  24082. 16174 0008 7B60 str r3, [r7, #4]
  24083. 16175 000a 0B46 mov r3, r1 @ movhi
  24084. 16176 000c 7B81 strh r3, [r7, #10] @ movhi
  24085. 16177 000e 1346 mov r3, r2
  24086. 16178 0010 7B72 strb r3, [r7, #9]
  24087. 7336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
  24088. 7337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
  24089. 16179 .loc 1 7337 3
  24090. 16180 0012 FB68 ldr r3, [r7, #12]
  24091. 16181 0014 1B68 ldr r3, [r3]
  24092. 16182 0016 2A4A ldr r2, .L794
  24093. 16183 0018 9342 cmp r3, r2
  24094. 16184 001a 09D0 beq .L791
  24095. 16185 .loc 1 7337 3 is_stmt 0 discriminator 1
  24096. 16186 001c FB68 ldr r3, [r7, #12]
  24097. 16187 001e 1B68 ldr r3, [r3]
  24098. 16188 0020 284A ldr r2, .L794+4
  24099. 16189 0022 9342 cmp r3, r2
  24100. 16190 0024 04D0 beq .L791
  24101. 16191 .loc 1 7337 3 discriminator 2
  24102. 16192 0026 41F6A941 movw r1, #7337
  24103. 16193 002a 2748 ldr r0, .L794+8
  24104. 16194 002c FFF7FEFF bl assert_failed
  24105. 16195 .L791:
  24106. 7338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
  24107. 16196 .loc 1 7338 3 is_stmt 1
  24108. 16197 0030 7B68 ldr r3, [r7, #4]
  24109. 16198 0032 B3F1807F cmp r3, #16777216
  24110. 16199 0036 0BD0 beq .L792
  24111. 16200 .loc 1 7338 3 is_stmt 0 discriminator 1
  24112. 16201 0038 7B68 ldr r3, [r7, #4]
  24113. 16202 003a B3F1007F cmp r3, #33554432
  24114. 16203 003e 07D0 beq .L792
  24115. 16204 .loc 1 7338 3 discriminator 2
  24116. 16205 0040 7B68 ldr r3, [r7, #4]
  24117. 16206 0042 002B cmp r3, #0
  24118. 16207 0044 04D0 beq .L792
  24119. 16208 .loc 1 7338 3 discriminator 3
  24120. 16209 0046 41F6AA41 movw r1, #7338
  24121. 16210 004a 1F48 ldr r0, .L794+8
  24122. 16211 004c FFF7FEFF bl assert_failed
  24123. 16212 .L792:
  24124. 7339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
  24125. 16213 .loc 1 7339 3 is_stmt 1
  24126. 16214 0050 3B6A ldr r3, [r7, #32]
  24127. 16215 0052 1E4A ldr r2, .L794+12
  24128. 16216 0054 9342 cmp r3, r2
  24129. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 417
  24130. 16217 0056 0FD0 beq .L793
  24131. 16218 .loc 1 7339 3 is_stmt 0 discriminator 1
  24132. 16219 0058 3B6A ldr r3, [r7, #32]
  24133. 16220 005a 1D4A ldr r2, .L794+16
  24134. 16221 005c 9342 cmp r3, r2
  24135. 16222 005e 0BD0 beq .L793
  24136. 16223 .loc 1 7339 3 discriminator 2
  24137. 16224 0060 3B6A ldr r3, [r7, #32]
  24138. 16225 0062 1C4A ldr r2, .L794+20
  24139. 16226 0064 9342 cmp r3, r2
  24140. 16227 0066 07D0 beq .L793
  24141. 16228 .loc 1 7339 3 discriminator 3
  24142. 16229 0068 3B6A ldr r3, [r7, #32]
  24143. 16230 006a 002B cmp r3, #0
  24144. 16231 006c 04D0 beq .L793
  24145. 16232 .loc 1 7339 3 discriminator 4
  24146. 16233 006e 41F6AB41 movw r1, #7339
  24147. 16234 0072 1548 ldr r0, .L794+8
  24148. 16235 0074 FFF7FEFF bl assert_failed
  24149. 16236 .L793:
  24150. 7340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24151. 7341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
  24152. 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
  24153. 16237 .loc 1 7342 52 is_stmt 1
  24154. 16238 0078 7B89 ldrh r3, [r7, #10]
  24155. 16239 007a C3F30902 ubfx r2, r3, #0, #10
  24156. 7343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
  24157. 16240 .loc 1 7343 32
  24158. 16241 007e 7B7A ldrb r3, [r7, #9] @ zero_extendqisi2
  24159. 16242 .loc 1 7343 47
  24160. 16243 0080 1B04 lsls r3, r3, #16
  24161. 16244 .loc 1 7343 70
  24162. 16245 0082 03F47F03 and r3, r3, #16711680
  24163. 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
  24164. 16246 .loc 1 7342 68
  24165. 16247 0086 1A43 orrs r2, r2, r3
  24166. 16248 .loc 1 7343 88
  24167. 16249 0088 7B68 ldr r3, [r7, #4]
  24168. 16250 008a 1A43 orrs r2, r2, r3
  24169. 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
  24170. 16251 .loc 1 7342 19
  24171. 16252 008c 3B6A ldr r3, [r7, #32]
  24172. 16253 008e 1343 orrs r3, r3, r2
  24173. 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
  24174. 16254 .loc 1 7342 12
  24175. 16255 0090 23F00043 bic r3, r3, #-2147483648
  24176. 16256 0094 7B61 str r3, [r7, #20]
  24177. 7344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
  24178. 7345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24179. 7346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* update CR2 register */
  24180. 7347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \
  24181. 16257 .loc 1 7347 3
  24182. 16258 0096 FB68 ldr r3, [r7, #12]
  24183. 16259 0098 1B68 ldr r3, [r3]
  24184. 16260 009a 5A68 ldr r2, [r3, #4]
  24185. 16261 009c 3B6A ldr r3, [r7, #32]
  24186. 16262 009e 5B0D lsrs r3, r3, #21
  24187. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 418
  24188. 16263 00a0 03F48061 and r1, r3, #1024
  24189. 16264 00a4 0C4B ldr r3, .L794+24
  24190. 16265 00a6 0B43 orrs r3, r3, r1
  24191. 16266 00a8 DB43 mvns r3, r3
  24192. 16267 00aa 02EA0301 and r1, r2, r3
  24193. 16268 00ae FB68 ldr r3, [r7, #12]
  24194. 16269 00b0 1B68 ldr r3, [r3]
  24195. 16270 00b2 7A69 ldr r2, [r7, #20]
  24196. 16271 00b4 0A43 orrs r2, r2, r1
  24197. 16272 00b6 5A60 str r2, [r3, #4]
  24198. 7348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
  24199. 7349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
  24200. 7350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp);
  24201. 7351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24202. 16273 .loc 1 7351 1
  24203. 16274 00b8 00BF nop
  24204. 16275 00ba 1837 adds r7, r7, #24
  24205. 16276 .LCFI404:
  24206. 16277 .cfi_def_cfa_offset 8
  24207. 16278 00bc BD46 mov sp, r7
  24208. 16279 .LCFI405:
  24209. 16280 .cfi_def_cfa_register 13
  24210. 16281 @ sp needed
  24211. 16282 00be 80BD pop {r7, pc}
  24212. 16283 .L795:
  24213. 16284 .align 2
  24214. 16285 .L794:
  24215. 16286 00c0 00540040 .word 1073763328
  24216. 16287 00c4 00580040 .word 1073764352
  24217. 16288 00c8 00000000 .word .LC0
  24218. 16289 00cc 00400080 .word -2147467264
  24219. 16290 00d0 00240080 .word -2147474432
  24220. 16291 00d4 00200080 .word -2147475456
  24221. 16292 00d8 FF63FF03 .word 67068927
  24222. 16293 .cfi_endproc
  24223. 16294 .LFE207:
  24224. 16296 .section .text.I2C_Enable_IRQ,"ax",%progbits
  24225. 16297 .align 1
  24226. 16298 .syntax unified
  24227. 16299 .thumb
  24228. 16300 .thumb_func
  24229. 16302 I2C_Enable_IRQ:
  24230. 16303 .LFB208:
  24231. 7352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24232. 7353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  24233. 7354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
  24234. 7355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  24235. 7356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  24236. 7357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
  24237. 7358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  24238. 7359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  24239. 7360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
  24240. 7361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24241. 16304 .loc 1 7361 1
  24242. 16305 .cfi_startproc
  24243. 16306 @ args = 0, pretend = 0, frame = 16
  24244. 16307 @ frame_needed = 1, uses_anonymous_args = 0
  24245. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 419
  24246. 16308 @ link register save eliminated.
  24247. 16309 0000 80B4 push {r7}
  24248. 16310 .LCFI406:
  24249. 16311 .cfi_def_cfa_offset 4
  24250. 16312 .cfi_offset 7, -4
  24251. 16313 0002 85B0 sub sp, sp, #20
  24252. 16314 .LCFI407:
  24253. 16315 .cfi_def_cfa_offset 24
  24254. 16316 0004 00AF add r7, sp, #0
  24255. 16317 .LCFI408:
  24256. 16318 .cfi_def_cfa_register 7
  24257. 16319 0006 7860 str r0, [r7, #4]
  24258. 16320 0008 0B46 mov r3, r1
  24259. 16321 000a 7B80 strh r3, [r7, #2] @ movhi
  24260. 7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
  24261. 16322 .loc 1 7362 12
  24262. 16323 000c 0023 movs r3, #0
  24263. 16324 000e FB60 str r3, [r7, #12]
  24264. 7363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24265. 7364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \
  24266. 16325 .loc 1 7364 12
  24267. 16326 0010 7B68 ldr r3, [r7, #4]
  24268. 16327 0012 5B6B ldr r3, [r3, #52]
  24269. 16328 .loc 1 7364 6
  24270. 16329 0014 394A ldr r2, .L809
  24271. 16330 0016 9342 cmp r3, r2
  24272. 16331 0018 32D0 beq .L797
  24273. 7365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
  24274. 16332 .loc 1 7365 12 discriminator 1
  24275. 16333 001a 7B68 ldr r3, [r7, #4]
  24276. 16334 001c 5B6B ldr r3, [r3, #52]
  24277. 7364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
  24278. 16335 .loc 1 7364 45 discriminator 1
  24279. 16336 001e 384A ldr r2, .L809+4
  24280. 16337 0020 9342 cmp r3, r2
  24281. 16338 0022 2DD0 beq .L797
  24282. 7366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA))
  24283. 16339 .loc 1 7366 12
  24284. 16340 0024 7B68 ldr r3, [r7, #4]
  24285. 16341 0026 5B6B ldr r3, [r3, #52]
  24286. 7365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
  24287. 16342 .loc 1 7365 44
  24288. 16343 0028 364A ldr r2, .L809+8
  24289. 16344 002a 9342 cmp r3, r2
  24290. 16345 002c 28D0 beq .L797
  24291. 7367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24292. 7368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
  24293. 16346 .loc 1 7368 49
  24294. 16347 002e B7F90230 ldrsh r3, [r7, #2]
  24295. 16348 .loc 1 7368 8
  24296. 16349 0032 002B cmp r3, #0
  24297. 16350 0034 03DA bge .L798
  24298. 7369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24299. 7370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
  24300. 7371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
  24301. 16351 .loc 1 7371 14
  24302. 16352 0036 FB68 ldr r3, [r7, #12]
  24303. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 420
  24304. 16353 0038 43F0B803 orr r3, r3, #184
  24305. 16354 003c FB60 str r3, [r7, #12]
  24306. 16355 .L798:
  24307. 7372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24308. 7373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24309. 7374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
  24310. 16356 .loc 1 7374 27
  24311. 16357 003e 7B88 ldrh r3, [r7, #2]
  24312. 16358 0040 03F00103 and r3, r3, #1
  24313. 16359 .loc 1 7374 8
  24314. 16360 0044 002B cmp r3, #0
  24315. 16361 0046 03D0 beq .L799
  24316. 7375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24317. 7376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
  24318. 7377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
  24319. 16362 .loc 1 7377 14
  24320. 16363 0048 FB68 ldr r3, [r7, #12]
  24321. 16364 004a 43F0F203 orr r3, r3, #242
  24322. 16365 004e FB60 str r3, [r7, #12]
  24323. 16366 .L799:
  24324. 7378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24325. 7379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24326. 7380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
  24327. 16367 .loc 1 7380 27
  24328. 16368 0050 7B88 ldrh r3, [r7, #2]
  24329. 16369 0052 03F00203 and r3, r3, #2
  24330. 16370 .loc 1 7380 8
  24331. 16371 0056 002B cmp r3, #0
  24332. 16372 0058 03D0 beq .L800
  24333. 7381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24334. 7382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
  24335. 7383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
  24336. 16373 .loc 1 7383 14
  24337. 16374 005a FB68 ldr r3, [r7, #12]
  24338. 16375 005c 43F0F403 orr r3, r3, #244
  24339. 16376 0060 FB60 str r3, [r7, #12]
  24340. 16377 .L800:
  24341. 7384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24342. 7385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24343. 7386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
  24344. 16378 .loc 1 7386 8
  24345. 16379 0062 7B88 ldrh r3, [r7, #2]
  24346. 16380 0064 102B cmp r3, #16
  24347. 16381 0066 03D1 bne .L801
  24348. 7387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24349. 7388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
  24350. 7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
  24351. 16382 .loc 1 7389 14
  24352. 16383 0068 FB68 ldr r3, [r7, #12]
  24353. 16384 006a 43F09003 orr r3, r3, #144
  24354. 16385 006e FB60 str r3, [r7, #12]
  24355. 16386 .L801:
  24356. 7390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24357. 7391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24358. 7392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
  24359. 16387 .loc 1 7392 8
  24360. 16388 0070 7B88 ldrh r3, [r7, #2]
  24361. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 421
  24362. 16389 0072 202B cmp r3, #32
  24363. 16390 0074 33D1 bne .L803
  24364. 7393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24365. 7394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
  24366. 7395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
  24367. 16391 .loc 1 7395 14
  24368. 16392 0076 FB68 ldr r3, [r7, #12]
  24369. 16393 0078 43F02003 orr r3, r3, #32
  24370. 16394 007c FB60 str r3, [r7, #12]
  24371. 7392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24372. 16395 .loc 1 7392 8
  24373. 16396 007e 2EE0 b .L803
  24374. 16397 .L797:
  24375. 7396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24376. 7397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24377. 7398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24378. 7399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  24379. 7400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24380. 7401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
  24381. 16398 .loc 1 7401 49
  24382. 16399 0080 B7F90230 ldrsh r3, [r7, #2]
  24383. 16400 .loc 1 7401 8
  24384. 16401 0084 002B cmp r3, #0
  24385. 16402 0086 03DA bge .L804
  24386. 7402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24387. 7403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
  24388. 7404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
  24389. 16403 .loc 1 7404 14
  24390. 16404 0088 FB68 ldr r3, [r7, #12]
  24391. 16405 008a 43F0B803 orr r3, r3, #184
  24392. 16406 008e FB60 str r3, [r7, #12]
  24393. 16407 .L804:
  24394. 7405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24395. 7406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24396. 7407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
  24397. 16408 .loc 1 7407 27
  24398. 16409 0090 7B88 ldrh r3, [r7, #2]
  24399. 16410 0092 03F00103 and r3, r3, #1
  24400. 16411 .loc 1 7407 8
  24401. 16412 0096 002B cmp r3, #0
  24402. 16413 0098 03D0 beq .L805
  24403. 7408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24404. 7409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
  24405. 7410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
  24406. 16414 .loc 1 7410 14
  24407. 16415 009a FB68 ldr r3, [r7, #12]
  24408. 16416 009c 43F0F203 orr r3, r3, #242
  24409. 16417 00a0 FB60 str r3, [r7, #12]
  24410. 16418 .L805:
  24411. 7411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24412. 7412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24413. 7413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
  24414. 16419 .loc 1 7413 27
  24415. 16420 00a2 7B88 ldrh r3, [r7, #2]
  24416. 16421 00a4 03F00203 and r3, r3, #2
  24417. 16422 .loc 1 7413 8
  24418. 16423 00a8 002B cmp r3, #0
  24419. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 422
  24420. 16424 00aa 03D0 beq .L806
  24421. 7414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24422. 7415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
  24423. 7416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
  24424. 16425 .loc 1 7416 14
  24425. 16426 00ac FB68 ldr r3, [r7, #12]
  24426. 16427 00ae 43F0F403 orr r3, r3, #244
  24427. 16428 00b2 FB60 str r3, [r7, #12]
  24428. 16429 .L806:
  24429. 7417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24430. 7418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24431. 7419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
  24432. 16430 .loc 1 7419 8
  24433. 16431 00b4 7B88 ldrh r3, [r7, #2]
  24434. 16432 00b6 102B cmp r3, #16
  24435. 16433 00b8 03D1 bne .L807
  24436. 7420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24437. 7421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
  24438. 7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
  24439. 16434 .loc 1 7422 14
  24440. 16435 00ba FB68 ldr r3, [r7, #12]
  24441. 16436 00bc 43F09003 orr r3, r3, #144
  24442. 16437 00c0 FB60 str r3, [r7, #12]
  24443. 16438 .L807:
  24444. 7423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24445. 7424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24446. 7425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
  24447. 16439 .loc 1 7425 8
  24448. 16440 00c2 7B88 ldrh r3, [r7, #2]
  24449. 16441 00c4 202B cmp r3, #32
  24450. 16442 00c6 03D1 bne .L808
  24451. 7426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24452. 7427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
  24453. 7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
  24454. 16443 .loc 1 7428 14
  24455. 16444 00c8 FB68 ldr r3, [r7, #12]
  24456. 16445 00ca 43F06003 orr r3, r3, #96
  24457. 16446 00ce FB60 str r3, [r7, #12]
  24458. 16447 .L808:
  24459. 7429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24460. 7430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24461. 7431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
  24462. 16448 .loc 1 7431 8
  24463. 16449 00d0 7B88 ldrh r3, [r7, #2]
  24464. 16450 00d2 402B cmp r3, #64
  24465. 16451 00d4 03D1 bne .L803
  24466. 7432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24467. 7433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
  24468. 7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
  24469. 16452 .loc 1 7434 14
  24470. 16453 00d6 FB68 ldr r3, [r7, #12]
  24471. 16454 00d8 43F04003 orr r3, r3, #64
  24472. 16455 00dc FB60 str r3, [r7, #12]
  24473. 16456 .L803:
  24474. 7435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24475. 7436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24476. 7437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24477. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 423
  24478. 7438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable interrupts only at the end */
  24479. 7439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
  24480. 7440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all interrupts requested done */
  24481. 7441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
  24482. 16457 .loc 1 7441 3
  24483. 16458 00de 7B68 ldr r3, [r7, #4]
  24484. 16459 00e0 1B68 ldr r3, [r3]
  24485. 16460 00e2 1968 ldr r1, [r3]
  24486. 16461 00e4 7B68 ldr r3, [r7, #4]
  24487. 16462 00e6 1B68 ldr r3, [r3]
  24488. 16463 00e8 FA68 ldr r2, [r7, #12]
  24489. 16464 00ea 0A43 orrs r2, r2, r1
  24490. 16465 00ec 1A60 str r2, [r3]
  24491. 7442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24492. 16466 .loc 1 7442 1
  24493. 16467 00ee 00BF nop
  24494. 16468 00f0 1437 adds r7, r7, #20
  24495. 16469 .LCFI409:
  24496. 16470 .cfi_def_cfa_offset 4
  24497. 16471 00f2 BD46 mov sp, r7
  24498. 16472 .LCFI410:
  24499. 16473 .cfi_def_cfa_register 13
  24500. 16474 @ sp needed
  24501. 16475 00f4 5DF8047B ldr r7, [sp], #4
  24502. 16476 .LCFI411:
  24503. 16477 .cfi_restore 7
  24504. 16478 .cfi_def_cfa_offset 0
  24505. 16479 00f8 7047 bx lr
  24506. 16480 .L810:
  24507. 16481 00fa 00BF .align 2
  24508. 16482 .L809:
  24509. 16483 00fc 00000000 .word I2C_Master_ISR_DMA
  24510. 16484 0100 00000000 .word I2C_Slave_ISR_DMA
  24511. 16485 0104 00000000 .word I2C_Mem_ISR_DMA
  24512. 16486 .cfi_endproc
  24513. 16487 .LFE208:
  24514. 16489 .section .text.I2C_Disable_IRQ,"ax",%progbits
  24515. 16490 .align 1
  24516. 16491 .syntax unified
  24517. 16492 .thumb
  24518. 16493 .thumb_func
  24519. 16495 I2C_Disable_IRQ:
  24520. 16496 .LFB209:
  24521. 7443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24522. 7444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  24523. 7445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
  24524. 7446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
  24525. 7447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
  24526. 7448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
  24527. 7449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  24528. 7450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  24529. 7451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
  24530. 7452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24531. 16497 .loc 1 7452 1
  24532. 16498 .cfi_startproc
  24533. 16499 @ args = 0, pretend = 0, frame = 16
  24534. 16500 @ frame_needed = 1, uses_anonymous_args = 0
  24535. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 424
  24536. 16501 @ link register save eliminated.
  24537. 16502 0000 80B4 push {r7}
  24538. 16503 .LCFI412:
  24539. 16504 .cfi_def_cfa_offset 4
  24540. 16505 .cfi_offset 7, -4
  24541. 16506 0002 85B0 sub sp, sp, #20
  24542. 16507 .LCFI413:
  24543. 16508 .cfi_def_cfa_offset 24
  24544. 16509 0004 00AF add r7, sp, #0
  24545. 16510 .LCFI414:
  24546. 16511 .cfi_def_cfa_register 7
  24547. 16512 0006 7860 str r0, [r7, #4]
  24548. 16513 0008 0B46 mov r3, r1
  24549. 16514 000a 7B80 strh r3, [r7, #2] @ movhi
  24550. 7453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
  24551. 16515 .loc 1 7453 12
  24552. 16516 000c 0023 movs r3, #0
  24553. 16517 000e FB60 str r3, [r7, #12]
  24554. 7454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24555. 7455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
  24556. 16518 .loc 1 7455 25
  24557. 16519 0010 7B88 ldrh r3, [r7, #2]
  24558. 16520 0012 03F00103 and r3, r3, #1
  24559. 16521 .loc 1 7455 6
  24560. 16522 0016 002B cmp r3, #0
  24561. 16523 0018 0FD0 beq .L812
  24562. 7456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24563. 7457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
  24564. 7458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
  24565. 16524 .loc 1 7458 12
  24566. 16525 001a FB68 ldr r3, [r7, #12]
  24567. 16526 001c 43F04203 orr r3, r3, #66
  24568. 16527 0020 FB60 str r3, [r7, #12]
  24569. 7459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24570. 7460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
  24571. 16528 .loc 1 7460 24
  24572. 16529 0022 7B68 ldr r3, [r7, #4]
  24573. 16530 0024 93F84130 ldrb r3, [r3, #65]
  24574. 16531 0028 DBB2 uxtb r3, r3
  24575. 16532 .loc 1 7460 32
  24576. 16533 002a 03F02803 and r3, r3, #40
  24577. 16534 .loc 1 7460 8
  24578. 16535 002e 282B cmp r3, #40
  24579. 16536 0030 03D0 beq .L812
  24580. 7461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24581. 7462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
  24582. 7463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
  24583. 16537 .loc 1 7463 14
  24584. 16538 0032 FB68 ldr r3, [r7, #12]
  24585. 16539 0034 43F0B003 orr r3, r3, #176
  24586. 16540 0038 FB60 str r3, [r7, #12]
  24587. 16541 .L812:
  24588. 7464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24589. 7465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24590. 7466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24591. 7467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
  24592. 16542 .loc 1 7467 25
  24593. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 425
  24594. 16543 003a 7B88 ldrh r3, [r7, #2]
  24595. 16544 003c 03F00203 and r3, r3, #2
  24596. 16545 .loc 1 7467 6
  24597. 16546 0040 002B cmp r3, #0
  24598. 16547 0042 0FD0 beq .L813
  24599. 7468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24600. 7469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
  24601. 7470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
  24602. 16548 .loc 1 7470 12
  24603. 16549 0044 FB68 ldr r3, [r7, #12]
  24604. 16550 0046 43F04403 orr r3, r3, #68
  24605. 16551 004a FB60 str r3, [r7, #12]
  24606. 7471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24607. 7472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
  24608. 16552 .loc 1 7472 24
  24609. 16553 004c 7B68 ldr r3, [r7, #4]
  24610. 16554 004e 93F84130 ldrb r3, [r3, #65]
  24611. 16555 0052 DBB2 uxtb r3, r3
  24612. 16556 .loc 1 7472 32
  24613. 16557 0054 03F02803 and r3, r3, #40
  24614. 16558 .loc 1 7472 8
  24615. 16559 0058 282B cmp r3, #40
  24616. 16560 005a 03D0 beq .L813
  24617. 7473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24618. 7474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
  24619. 7475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
  24620. 16561 .loc 1 7475 14
  24621. 16562 005c FB68 ldr r3, [r7, #12]
  24622. 16563 005e 43F0B003 orr r3, r3, #176
  24623. 16564 0062 FB60 str r3, [r7, #12]
  24624. 16565 .L813:
  24625. 7476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24626. 7477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24627. 7478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24628. 7479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
  24629. 16566 .loc 1 7479 47
  24630. 16567 0064 B7F90230 ldrsh r3, [r7, #2]
  24631. 16568 .loc 1 7479 6
  24632. 16569 0068 002B cmp r3, #0
  24633. 16570 006a 03DA bge .L814
  24634. 7480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24635. 7481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
  24636. 7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
  24637. 16571 .loc 1 7482 12
  24638. 16572 006c FB68 ldr r3, [r7, #12]
  24639. 16573 006e 43F0B803 orr r3, r3, #184
  24640. 16574 0072 FB60 str r3, [r7, #12]
  24641. 16575 .L814:
  24642. 7483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24643. 7484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24644. 7485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
  24645. 16576 .loc 1 7485 6
  24646. 16577 0074 7B88 ldrh r3, [r7, #2]
  24647. 16578 0076 102B cmp r3, #16
  24648. 16579 0078 03D1 bne .L815
  24649. 7486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24650. 7487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
  24651. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 426
  24652. 7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
  24653. 16580 .loc 1 7488 12
  24654. 16581 007a FB68 ldr r3, [r7, #12]
  24655. 16582 007c 43F09003 orr r3, r3, #144
  24656. 16583 0080 FB60 str r3, [r7, #12]
  24657. 16584 .L815:
  24658. 7489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24659. 7490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24660. 7491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
  24661. 16585 .loc 1 7491 6
  24662. 16586 0082 7B88 ldrh r3, [r7, #2]
  24663. 16587 0084 202B cmp r3, #32
  24664. 16588 0086 03D1 bne .L816
  24665. 7492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24666. 7493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
  24667. 7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
  24668. 16589 .loc 1 7494 12
  24669. 16590 0088 FB68 ldr r3, [r7, #12]
  24670. 16591 008a 43F02003 orr r3, r3, #32
  24671. 16592 008e FB60 str r3, [r7, #12]
  24672. 16593 .L816:
  24673. 7495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24674. 7496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24675. 7497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
  24676. 16594 .loc 1 7497 6
  24677. 16595 0090 7B88 ldrh r3, [r7, #2]
  24678. 16596 0092 402B cmp r3, #64
  24679. 16597 0094 03D1 bne .L817
  24680. 7498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24681. 7499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
  24682. 7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
  24683. 16598 .loc 1 7500 12
  24684. 16599 0096 FB68 ldr r3, [r7, #12]
  24685. 16600 0098 43F04003 orr r3, r3, #64
  24686. 16601 009c FB60 str r3, [r7, #12]
  24687. 16602 .L817:
  24688. 7501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24689. 7502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24690. 7503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable interrupts only at the end */
  24691. 7504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
  24692. 7505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all disable interrupts request are not done */
  24693. 7506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
  24694. 16603 .loc 1 7506 3
  24695. 16604 009e 7B68 ldr r3, [r7, #4]
  24696. 16605 00a0 1B68 ldr r3, [r3]
  24697. 16606 00a2 1968 ldr r1, [r3]
  24698. 16607 00a4 FB68 ldr r3, [r7, #12]
  24699. 16608 00a6 DA43 mvns r2, r3
  24700. 16609 00a8 7B68 ldr r3, [r7, #4]
  24701. 16610 00aa 1B68 ldr r3, [r3]
  24702. 16611 00ac 0A40 ands r2, r2, r1
  24703. 16612 00ae 1A60 str r2, [r3]
  24704. 7507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24705. 16613 .loc 1 7507 1
  24706. 16614 00b0 00BF nop
  24707. 16615 00b2 1437 adds r7, r7, #20
  24708. 16616 .LCFI415:
  24709. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 427
  24710. 16617 .cfi_def_cfa_offset 4
  24711. 16618 00b4 BD46 mov sp, r7
  24712. 16619 .LCFI416:
  24713. 16620 .cfi_def_cfa_register 13
  24714. 16621 @ sp needed
  24715. 16622 00b6 5DF8047B ldr r7, [sp], #4
  24716. 16623 .LCFI417:
  24717. 16624 .cfi_restore 7
  24718. 16625 .cfi_def_cfa_offset 0
  24719. 16626 00ba 7047 bx lr
  24720. 16627 .cfi_endproc
  24721. 16628 .LFE209:
  24722. 16630 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
  24723. 16631 .align 1
  24724. 16632 .syntax unified
  24725. 16633 .thumb
  24726. 16634 .thumb_func
  24727. 16636 I2C_ConvertOtherXferOptions:
  24728. 16637 .LFB210:
  24729. 7508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
  24730. 7509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
  24731. 7510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions.
  24732. 7511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
  24733. 7512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
  24734. 7513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
  24735. 7514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
  24736. 7515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24737. 16638 .loc 1 7515 1
  24738. 16639 .cfi_startproc
  24739. 16640 @ args = 0, pretend = 0, frame = 8
  24740. 16641 @ frame_needed = 1, uses_anonymous_args = 0
  24741. 16642 @ link register save eliminated.
  24742. 16643 0000 80B4 push {r7}
  24743. 16644 .LCFI418:
  24744. 16645 .cfi_def_cfa_offset 4
  24745. 16646 .cfi_offset 7, -4
  24746. 16647 0002 83B0 sub sp, sp, #12
  24747. 16648 .LCFI419:
  24748. 16649 .cfi_def_cfa_offset 16
  24749. 16650 0004 00AF add r7, sp, #0
  24750. 16651 .LCFI420:
  24751. 16652 .cfi_def_cfa_register 7
  24752. 16653 0006 7860 str r0, [r7, #4]
  24753. 7516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
  24754. 7517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
  24755. 7518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
  24756. 7519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
  24757. 16654 .loc 1 7519 11
  24758. 16655 0008 7B68 ldr r3, [r7, #4]
  24759. 16656 000a DB6A ldr r3, [r3, #44]
  24760. 16657 .loc 1 7519 6
  24761. 16658 000c AA2B cmp r3, #170
  24762. 16659 000e 03D1 bne .L819
  24763. 7520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24764. 7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
  24765. 16660 .loc 1 7521 23
  24766. 16661 0010 7B68 ldr r3, [r7, #4]
  24767. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 428
  24768. 16662 0012 0022 movs r2, #0
  24769. 16663 0014 DA62 str r2, [r3, #44]
  24770. 7522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24771. 7523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
  24772. 7524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
  24773. 7525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
  24774. 7526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
  24775. 7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
  24776. 7528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24777. 7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
  24778. 7530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24779. 7531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
  24780. 7532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24781. 7533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
  24782. 7534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24783. 7535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24784. 16664 .loc 1 7535 1
  24785. 16665 0016 08E0 b .L821
  24786. 16666 .L819:
  24787. 7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24788. 16667 .loc 1 7527 16
  24789. 16668 0018 7B68 ldr r3, [r7, #4]
  24790. 16669 001a DB6A ldr r3, [r3, #44]
  24791. 7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
  24792. 16670 .loc 1 7527 11
  24793. 16671 001c B3F52A4F cmp r3, #43520
  24794. 16672 0020 03D1 bne .L821
  24795. 7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
  24796. 16673 .loc 1 7529 23
  24797. 16674 0022 7B68 ldr r3, [r7, #4]
  24798. 16675 0024 4FF00072 mov r2, #33554432
  24799. 16676 0028 DA62 str r2, [r3, #44]
  24800. 16677 .L821:
  24801. 16678 .loc 1 7535 1
  24802. 16679 002a 00BF nop
  24803. 16680 002c 0C37 adds r7, r7, #12
  24804. 16681 .LCFI421:
  24805. 16682 .cfi_def_cfa_offset 4
  24806. 16683 002e BD46 mov sp, r7
  24807. 16684 .LCFI422:
  24808. 16685 .cfi_def_cfa_register 13
  24809. 16686 @ sp needed
  24810. 16687 0030 5DF8047B ldr r7, [sp], #4
  24811. 16688 .LCFI423:
  24812. 16689 .cfi_restore 7
  24813. 16690 .cfi_def_cfa_offset 0
  24814. 16691 0034 7047 bx lr
  24815. 16692 .cfi_endproc
  24816. 16693 .LFE210:
  24817. 16695 .text
  24818. 16696 .Letext0:
  24819. 16697 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  24820. 16698 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  24821. 16699 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
  24822. 16700 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
  24823. 16701 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
  24824. 16702 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
  24825. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 429
  24826. 16703 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h"
  24827. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 430
  24828. DEFINED SYMBOLS
  24829. *ABS*:00000000 stm32f3xx_hal_i2c.c
  24830. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:20 .rodata:00000000 $d
  24831. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:25 .text.HAL_I2C_Init:00000000 $t
  24832. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:31 .text.HAL_I2C_Init:00000000 HAL_I2C_Init
  24833. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:518 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit
  24834. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:398 .text.HAL_I2C_Init:00000234 $d
  24835. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:405 .text.HAL_I2C_DeInit:00000000 $t
  24836. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:411 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit
  24837. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:560 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit
  24838. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:505 .text.HAL_I2C_DeInit:0000007c $d
  24839. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:512 .text.HAL_I2C_MspInit:00000000 $t
  24840. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:554 .text.HAL_I2C_MspDeInit:00000000 $t
  24841. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:596 .text.HAL_I2C_Master_Transmit:00000000 $t
  24842. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:602 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit
  24843. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15292 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout
  24844. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16156 .text.I2C_TransferConfig:00000000 I2C_TransferConfig
  24845. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15429 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout
  24846. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15544 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout
  24847. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:970 .text.HAL_I2C_Master_Transmit:00000228 $d
  24848. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:976 .text.HAL_I2C_Master_Receive:00000000 $t
  24849. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:982 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive
  24850. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15655 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout
  24851. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1301 .text.HAL_I2C_Master_Receive:000001e4 $d
  24852. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1307 .text.HAL_I2C_Slave_Transmit:00000000 $t
  24853. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1313 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit
  24854. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14669 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR
  24855. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1766 .text.HAL_I2C_Slave_Receive:00000000 $t
  24856. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1772 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive
  24857. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2148 .text.HAL_I2C_Master_Transmit_IT:00000000 $t
  24858. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2154 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT
  24859. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16302 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ
  24860. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2360 .text.HAL_I2C_Master_Transmit_IT:00000124 $d
  24861. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10300 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT
  24862. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2367 .text.HAL_I2C_Master_Receive_IT:00000000 $t
  24863. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2373 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT
  24864. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2523 .text.HAL_I2C_Master_Receive_IT:000000d4 $d
  24865. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2530 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t
  24866. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2536 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT
  24867. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2692 .text.HAL_I2C_Slave_Transmit_IT:000000d4 $d
  24868. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11194 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT
  24869. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2698 .text.HAL_I2C_Slave_Receive_IT:00000000 $t
  24870. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2704 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT
  24871. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2819 .text.HAL_I2C_Slave_Receive_IT:00000098 $d
  24872. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2825 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t
  24873. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2831 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA
  24874. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3187 .text.HAL_I2C_Master_Transmit_DMA:00000210 $d
  24875. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11555 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA
  24876. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14742 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt
  24877. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15166 .text.I2C_DMAError:00000000 I2C_DMAError
  24878. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3197 .text.HAL_I2C_Master_Receive_DMA:00000000 $t
  24879. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3203 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA
  24880. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3506 .text.HAL_I2C_Master_Receive_DMA:000001c8 $d
  24881. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14944 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt
  24882. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3516 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t
  24883. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3522 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA
  24884. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3837 .text.HAL_I2C_Slave_Transmit_DMA:000001c8 $d
  24885. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 431
  24886. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12357 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA
  24887. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14875 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt
  24888. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3845 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t
  24889. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3851 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA
  24890. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4092 .text.HAL_I2C_Slave_Receive_DMA:0000015c $d
  24891. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15094 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt
  24892. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4100 .text.HAL_I2C_Mem_Write:00000000 $t
  24893. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4106 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write
  24894. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12672 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite
  24895. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4477 .text.HAL_I2C_Mem_Write:0000023c $d
  24896. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4483 .text.HAL_I2C_Mem_Read:00000000 $t
  24897. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4489 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read
  24898. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12809 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead
  24899. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4865 .text.HAL_I2C_Mem_Read:00000244 $d
  24900. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4872 .text.HAL_I2C_Mem_Write_IT:00000000 $t
  24901. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4878 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT
  24902. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5076 .text.HAL_I2C_Mem_Write_IT:0000011c $d
  24903. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10736 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT
  24904. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5084 .text.HAL_I2C_Mem_Read_IT:00000000 $t
  24905. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5090 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT
  24906. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5284 .text.HAL_I2C_Mem_Read_IT:00000114 $d
  24907. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5292 .text.HAL_I2C_Mem_Write_DMA:00000000 $t
  24908. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5298 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA
  24909. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5611 .text.HAL_I2C_Mem_Write_DMA:000001d0 $d
  24910. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11908 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA
  24911. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5621 .text.HAL_I2C_Mem_Read_DMA:00000000 $t
  24912. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5627 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA
  24913. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5940 .text.HAL_I2C_Mem_Read_DMA:000001cc $d
  24914. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5950 .text.HAL_I2C_IsDeviceReady:00000000 $t
  24915. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5956 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady
  24916. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6258 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t
  24917. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6264 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT
  24918. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16636 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions
  24919. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6567 .text.HAL_I2C_Master_Seq_Transmit_IT:000001b8 $d
  24920. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6574 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t
  24921. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6580 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA
  24922. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6976 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000024c $d
  24923. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6983 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000260 $t
  24924. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7069 .text.HAL_I2C_Master_Seq_Transmit_DMA:000002e4 $d
  24925. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7074 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t
  24926. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7080 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT
  24927. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7304 .text.HAL_I2C_Master_Seq_Receive_IT:00000144 $d
  24928. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7311 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t
  24929. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7317 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA
  24930. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7694 .text.HAL_I2C_Master_Seq_Receive_DMA:00000238 $d
  24931. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7704 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t
  24932. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7710 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT
  24933. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16495 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ
  24934. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7985 .text.HAL_I2C_Slave_Seq_Transmit_IT:000001a0 $d
  24935. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15222 .text.I2C_DMAAbort:00000000 I2C_DMAAbort
  24936. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7992 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t
  24937. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7998 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA
  24938. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8449 .text.HAL_I2C_Slave_Seq_Transmit_DMA:000002b8 $d
  24939. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8456 .text.HAL_I2C_Slave_Seq_Transmit_DMA:000002cc $t
  24940. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8472 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t
  24941. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8478 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT
  24942. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8753 .text.HAL_I2C_Slave_Seq_Receive_IT:000001a0 $d
  24943. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 432
  24944. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8760 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t
  24945. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8766 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA
  24946. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9217 .text.HAL_I2C_Slave_Seq_Receive_DMA:000002b8 $d
  24947. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9224 .text.HAL_I2C_Slave_Seq_Receive_DMA:000002cc $t
  24948. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9240 .text.HAL_I2C_EnableListen_IT:00000000 $t
  24949. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9246 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT
  24950. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9303 .text.HAL_I2C_EnableListen_IT:0000003c $d
  24951. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9308 .text.HAL_I2C_DisableListen_IT:00000000 $t
  24952. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9314 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT
  24953. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9395 .text.HAL_I2C_Master_Abort_IT:00000000 $t
  24954. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9401 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT
  24955. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9520 .text.HAL_I2C_Master_Abort_IT:000000a4 $d
  24956. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9525 .text.HAL_I2C_EV_IRQHandler:00000000 $t
  24957. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9531 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler
  24958. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9591 .text.HAL_I2C_ER_IRQHandler:00000000 $t
  24959. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9597 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler
  24960. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14255 .text.I2C_ITError:00000000 I2C_ITError
  24961. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9734 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t
  24962. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9740 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback
  24963. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9776 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t
  24964. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9782 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback
  24965. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9818 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t
  24966. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9824 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback
  24967. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9860 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t
  24968. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9866 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback
  24969. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9902 .text.HAL_I2C_AddrCallback:00000000 $t
  24970. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9908 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback
  24971. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9948 .text.HAL_I2C_ListenCpltCallback:00000000 $t
  24972. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9954 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback
  24973. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9990 .text.HAL_I2C_MemTxCpltCallback:00000000 $t
  24974. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9996 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback
  24975. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10032 .text.HAL_I2C_MemRxCpltCallback:00000000 $t
  24976. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10038 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback
  24977. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10074 .text.HAL_I2C_ErrorCallback:00000000 $t
  24978. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10080 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback
  24979. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10116 .text.HAL_I2C_AbortCpltCallback:00000000 $t
  24980. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10122 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback
  24981. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10158 .text.HAL_I2C_GetState:00000000 $t
  24982. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10164 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState
  24983. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10204 .text.HAL_I2C_GetMode:00000000 $t
  24984. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10210 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode
  24985. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10250 .text.HAL_I2C_GetError:00000000 $t
  24986. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10256 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError
  24987. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10295 .text.I2C_Master_ISR_IT:00000000 $t
  24988. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13129 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt
  24989. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13369 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt
  24990. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10731 .text.I2C_Mem_ISR_IT:00000000 $t
  24991. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11123 .text.I2C_Mem_ISR_IT:00000240 $d
  24992. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11127 .text.I2C_Mem_ISR_IT:00000248 $t
  24993. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11189 .text.I2C_Slave_ISR_IT:00000000 $t
  24994. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13641 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt
  24995. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14121 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt
  24996. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13227 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt
  24997. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12946 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt
  24998. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11550 .text.I2C_Master_ISR_DMA:00000000 $t
  24999. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11903 .text.I2C_Mem_ISR_DMA:00000000 $t
  25000. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12309 .text.I2C_Mem_ISR_DMA:00000260 $d
  25001. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 433
  25002. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12313 .text.I2C_Mem_ISR_DMA:00000268 $t
  25003. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12352 .text.I2C_Slave_ISR_DMA:00000000 $t
  25004. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12667 .text.I2C_RequestMemoryWrite:00000000 $t
  25005. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12799 .text.I2C_RequestMemoryWrite:000000a4 $d
  25006. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12804 .text.I2C_RequestMemoryRead:00000000 $t
  25007. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12936 .text.I2C_RequestMemoryRead:000000a4 $d
  25008. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12941 .text.I2C_ITAddrCplt:00000000 $t
  25009. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13124 .text.I2C_ITMasterSeqCplt:00000000 $t
  25010. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13222 .text.I2C_ITSlaveSeqCplt:00000000 $t
  25011. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13364 .text.I2C_ITMasterCplt:00000000 $t
  25012. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13630 .text.I2C_ITMasterCplt:0000018c $d
  25013. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13636 .text.I2C_ITSlaveCplt:00000000 $t
  25014. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14110 .text.I2C_ITSlaveCplt:000002cc $d
  25015. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14116 .text.I2C_ITListenCplt:00000000 $t
  25016. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14245 .text.I2C_ITListenCplt:000000a8 $d
  25017. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14250 .text.I2C_ITError:00000000 $t
  25018. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14595 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback
  25019. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14583 .text.I2C_ITError:000001d4 $d
  25020. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14590 .text.I2C_TreatErrorCallback:00000000 $t
  25021. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14664 .text.I2C_Flush_TXDR:00000000 $t
  25022. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14737 .text.I2C_DMAMasterTransmitCplt:00000000 $t
  25023. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14870 .text.I2C_DMASlaveTransmitCplt:00000000 $t
  25024. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14939 .text.I2C_DMAMasterReceiveCplt:00000000 $t
  25025. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15089 .text.I2C_DMASlaveReceiveCplt:00000000 $t
  25026. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15161 .text.I2C_DMAError:00000000 $t
  25027. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15217 .text.I2C_DMAAbort:00000000 $t
  25028. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15287 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t
  25029. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15860 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred
  25030. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15424 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t
  25031. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15539 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t
  25032. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15650 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t
  25033. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15850 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000114 $d
  25034. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15855 .text.I2C_IsErrorOccurred:00000000 $t
  25035. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16146 .text.I2C_IsErrorOccurred:000001bc $d
  25036. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16151 .text.I2C_TransferConfig:00000000 $t
  25037. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16286 .text.I2C_TransferConfig:000000c0 $d
  25038. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16297 .text.I2C_Enable_IRQ:00000000 $t
  25039. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16483 .text.I2C_Enable_IRQ:000000fc $d
  25040. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16490 .text.I2C_Disable_IRQ:00000000 $t
  25041. C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16631 .text.I2C_ConvertOtherXferOptions:00000000 $t
  25042. UNDEFINED SYMBOLS
  25043. assert_failed
  25044. HAL_GetTick
  25045. HAL_DMA_Start_IT
  25046. HAL_DMA_Abort_IT
  25047. HAL_DMA_GetState